我正在使用 Google 的 ortools.constraint_solver 来寻找旅行商问题的解决方案。 如此处所示。 当我在一组点上运行程序时,一切都按预期工作。
现在我已经开始工作了,我正在尝试通过循环所有点集并在每个点集上调用约束求解器来求解多组点的 TSP。
我有下面的代码根据特定问题的大小重新定义gflag tsp_size
gflags.DEFINE_integer('tsp_size', len(points), 'Size of Traveling Salesman Problem instance.')
同样,当只指定一组时它可以工作,但是在运行第二组时,我收到错误:
gflags.DuplicateFlagError: The flag 'tsp_size' is defined twice.
for graph in graphs:
import shp
shp.run(graph)
del sys.modules['shp']
编辑:
上面的代码给我带来了问题,因为shp.py
没有作为 main 运行。我最终得到了这个:
from subprocess import call
# graph_files is a collection of filenames each referencing graph txt files I'm using.
for fn in graph_files:
call(["python", "shp.py", fn])
使用 subprocess.Popen
异步执行此操作。希望这对某人有帮助。