Google Or-Tools路由-解决方案为null

时间:2020-07-06 10:44:31

标签: c# matrix or-tools

我正在尝试实施Google OR-Tools的VRPTW。但是我面临一个问题。当我传递动态时间矩阵时,解决方案对象为null,但是当我传递示例中给出的时间矩阵时,它就起作用了。

这是我的代码

class="col"

这是主要功能代码

 public class DataModel
    {
        public long[,] DistanceMatrix { get; set; }
        public long[,] TimeMatrix = {
            //commented matrix is dynamic generated
  // {0,5,20,10,0,5},  
  //{5,0,25,10,5,5},
  //{20,25,0,30,20,20},
  //{10,10,30,0,10,15},
  //{0,5,20,10,0,5},
  //{5,5,20,15,5,0},
    {0, 6, 9, 8, 7, 3},
  {6, 0, 8, 3, 2, 6},
  {9, 8, 0, 11, 10, 6},
  {8, 3, 11, 0, 1, 7},
  {7, 2, 10, 1, 0, 6},
  {3, 6, 6, 7, 6, 0},
};
        public long[,] TimeWindows = {
  {0, 5},    // depot
  {7, 12},   // 1
  {10, 15},  // 2
  {16, 18},  // 3
  {10, 13},  // 4
  {0, 5},    // 5
};
        public int VehicleNumber = 3;
        public int Depot = 0;
    };

问题似乎出在AddDimension方法中。我对此感到震惊,但找不到任何解决方案。请提出任何解决方案。

1 个答案:

答案 0 :(得分:1)

解决方案为null表示求解器无法找到任何可行的解决方案。您的时间窗很可能太紧。

要么尝试放松时间窗口,要么

或确保节点是可选的(使用addDisjunction)。