【发布时间】:2020-03-06 00:04:04
【问题描述】:
我正在尝试在 google colab 上运行以下代码以生成销售员问题的图表,但是当我运行它时,即使我没有使用此类模块,我也会收到 no module named urlparse found 的错误。我试过 !pip install urlparse 但没有这样的模块(错误:找不到满足 urlparse 要求的版本(来自版本:无) 错误:没有为 urlparse 找到匹配的分布)。 我很困惑这个错误究竟从哪里出现以便解决它
import time
import argparse
import pprint as pp
import os
import pandas as pd
import numpy as np
from concorde.tsp import TSPSolver
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--num_samples", type=int, default=10000)
parser.add_argument("--num_nodes", type=int, default=20)
parser.add_argument("--node_dim", type=int, default=2)
parser.add_argument("--filename", type=str, default=None)
opts = parser.parse_args()
if opts.filename is None:
opts.filename = f"tsp{opts.num_nodes}_concorde.txt"
# Pretty print the run args
pp.pprint(vars(opts))
set_nodes_coord = np.random.random([opts.num_samples, opts.num_nodes, opts.node_dim])
with open(opts.filename, "w") as f:
start_time = time.time()
for nodes_coord in set_nodes_coord:
solver = TSPSolver.from_data(nodes_coord[:,0], nodes_coord[:,1], norm="GEO")
solution = solver.solve()
f.write( " ".join( str(x)+str(" ")+str(y) for x,y in nodes_coord) )
f.write( str(" ") + str('output') + str(" ") )
f.write( str(" ").join( str(node_idx+1) for node_idx in solution.tour) )
f.write( str(" ") + str(solution.tour[0]+1) + str(" ") )
f.write( "\n" )
end_time = time.time() - start_time
print(f"Completed generation of {opts.num_samples} samples of TSP{opts.num_nodes}.")
print(f"Total time: {end_time/3600:.1f}h")
print(f"Average time: {(end_time/3600)/opts.num_samples:.1f}h")
【问题讨论】: