修改 google ortools vrptw 示例失败

modifying google ortools vrptw example fails

我用这个例子做了一些实验:

https://developers.google.com/optimization/routing/vrptw

我的数据集是这样的:

 data['time_windows'] = [(0, 1), (0, 84), (0, 84), (0, 84), (0, 84), (0, 84), (12, 36), (12, 36)]

 data['time_matrix'] = [[0, 8, 7, 8, 4, 6, 8, 7], [0, 0, 10, 11, 4, 9, 8, 7], [0, 10, 0, 11, 4, 9, 8, 7], [0, 10, 11, 0, 4, 9, 8, 7], [0, 10, 11, 4, 0, 9, 8, 7], [0, 10, 11, 4, 9, 0, 8, 7], [0, 10, 11, 4, 9, 8, 0, 7], [0, 10, 11, 4, 9, 8, 7, 0]]

我只想测试一辆车。但是,如果我设置“ data['num_vehicles'] = 1 ”,我不会得到任何输出,而是一个干净的退出。为什么?我想这只是一个标准的 TSP,如果我将车辆减少到 1。

好吧,正如 Laurent Perron 在评论中提到的,在这个例子中每辆车有一个最大时间。

 routing.AddDimension(
    transit_callback_index,
    30,  # allow waiting time
    30,  # maximum time per vehicle            <<<<<<<<<<<<<<<<<<< 
    False,  # Don't force start cumul to zero.
    time)

我把它改成了一个更大的数字 (99),所有的废话都很好:)