add FJSP.
NP 难组合优化问题算法 SDK 与测试数据集.
*.cpp
*.cc
*.h
*.hpp
*.c
Src
.cpp
CMakeLists.txt
makefile
.vcxproj
.sln
-I
fstream
filesystem
Windows.h
Util.h
solve()
main()
XxxSolver::solve()
restMilliSec() > 0
seed
XxxTester::reportNewOptima()
设算例集为 III. 某解题者某次提交了算法 A. 算例 i∈Ii \in Ii∈I 上所有解题者求得的最优解目标函数值为 b(i)b(i)b(i). 算例 i∈Ii \in Ii∈I 上算法 A 求得的最优解目标函数值为 o(i)o(i)o(i). 若 b(i)b(i)b(i) 为 0, 则修正目标函数值 b(i)=b(i)+1,o(i)=o(i)+1b(i) = b(i) + 1, o(i) = o(i) + 1b(i)=b(i)+1,o(i)=o(i)+1 以避免除零错误. 则算例 i∈Ii \in Ii∈I 上算法 A 与所有解题者的最优解目标函数值绝对差距为 g(i)=∣o(i)−b(i)∣g(i) = |o(i) - b(i)|g(i)=∣o(i)−b(i)∣, 相对差距为 r(i)=g(i)/b(i)r(i) = g(i) / b(i)r(i)=g(i)/b(i). 另设衰减参数 t=1t = 1t=1, eee 为自然对数. 则算法 A 在算例 i∈Ii \in Ii∈I 上得分为 f(i)=1−e−t⋅r(i)f(i) = 1 - e^{-t \cdot r(i)}f(i)=1−e−t⋅r(i). 算法 A 在所有算例上的总得分为 f=∑i∈If(i)f = \sum_{i \in I} f(i)f=∑i∈If(i).
排行榜上排序时, 若两个算法总得分持平, 则比较总计算时间, 越短排名越靠前. 若总计算时间差距在 10∣I∣10 |I|10∣I∣ 秒内, 则提交时间越早排名越靠前.
SDK 根目录/问题名称/Submission/
run.log
NPBenchmark-SDK/
PCenter
NPBenchmark-SDK/PCenter/pcp.exe
NPBenchmark-SDK/PCenter/Submission/pcp/run.log
SDK 根目录/问题名称/Data/0.Baseline.txt
open
remove
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
NPBenchmark-SDK
NP 难组合优化问题算法 SDK 与测试数据集.
问题列表
提交要求
*.cpp,*.cc,*.h,*.hpp,*.c文件自动参与编译 (建议打包问题名称下Src目录或直接上传单个.cpp文件).CMakeLists.txt/makefile/.vcxproj/.sln等项目配置文件.-I选项), 包含自行编写的头文件时使用从根目录出发的相对路径.fstream,filesystem,Windows.h等头文件以及使用其中的函数或定义同名函数.Util.h.solve()函数内开多个线程只会算得更慢.main()函数.XxxSolver::solve()中实现求解算法.restMilliSec() > 0判断是否超时, 任意个测试用例超时直接提前终止后续算例的测试, 判定为无效提交.XxxSolver::solve()函数的随机种子seed初始化随机数发生器.XxxTester::reportNewOptima()函数向判题程序报告找到的最优解.评分规则
设算例集为 I. 某解题者某次提交了算法 A. 算例 i∈I 上所有解题者求得的最优解目标函数值为 b(i). 算例 i∈I 上算法 A 求得的最优解目标函数值为 o(i). 若 b(i) 为 0, 则修正目标函数值 b(i)=b(i)+1,o(i)=o(i)+1 以避免除零错误. 则算例 i∈I 上算法 A 与所有解题者的最优解目标函数值绝对差距为 g(i)=∣o(i)−b(i)∣, 相对差距为 r(i)=g(i)/b(i). 另设衰减参数 t=1, e 为自然对数. 则算法 A 在算例 i∈I 上得分为 f(i)=1−e−t⋅r(i). 算法 A 在所有算例上的总得分为 f=∑i∈If(i).
排行榜上排序时, 若两个算法总得分持平, 则比较总计算时间, 越短排名越靠前. 若总计算时间差距在 10∣I∣ 秒内, 则提交时间越早排名越靠前.
温馨提示
SDK 根目录/问题名称/Submission/目录下创建与编译生成的可执行文件同名目录, SDK 会在该目录内生成run.log文件, 记录有每次运行的情况 (同测评系统中 “我的提交” 页面的运行日志).NPBenchmark-SDK/, 问题为PCenter, 生成的可执行文件为NPBenchmark-SDK/PCenter/pcp.exe, 则可在NPBenchmark-SDK/PCenter/Submission/pcp/run.log找到运行日志.SDK 根目录/问题名称/Data/0.Baseline.txt文件可以控制测试哪些算例, 每个算例重复测试多少次, 以及每个算例的求解时间上限.open和remove等常见词, 易产生误判.