【发布时间】:2017-03-29 18:38:28
【问题描述】:
我有以下代码:
List<String> instances2 = Arrays.asList("instances/umps20.txt","instances/umps22.txt","instances/umps24.txt","instances/umps26.txt","instances/umps28.txt","instances/umps30.txt","instances/umps32.txt");
List<Integer> qq1 = Arrays.asList(9,10,11,12,13,14,14);
List<Integer> qq2 = Arrays.asList(4,4,5,5,5,5,6);
for (int i = 0; i<7; i++) {
Tournament t = p.process(instances2.get(i));
int nTeams = t.getNTeams();
int q1 = qq1.get(i);
int q2 = qq2.get(i);
UndirectedGraph graph = g.create(t, q1, q2);
new Choco(graph, nTeams);
}
}
现在我想对每次迭代设置一个限制。因此,假设 3h = 10 800 000 毫秒后,我希望 for 循环中的所有内容都停止并开始循环的下一次迭代。有什么想法吗?
提前致谢!
尼古拉斯
【问题讨论】:
-
您是想限制执行时间以防万一,还是只是对当时的计算结果感兴趣?
-
如果我的算法在那之后还没有找到解决方案,那么它是不可行的,所以它应该继续下一个问题。 New Choco(...) 尝试为给定的图形找到图形着色(使用约束编程),但如果花费的时间超过 3 小时,它应该继续。