谷歌或工具的SetGlobalSpanCoefficient方法

时间:2018-11-26 18:39:50

标签: vehicle-routing

我正在尝试使用Google或工具解决车辆路线问题。 这是链接https://developers.google.com/optimization/routing/vrp。 我正在尝试使用Google提供的代码,但是当我遇到这段代码时:

def add_distance_dimension(routing, distance_callback):
  """Add Global Span constraint"""
  distance = 'Distance'
  maximum_distance = 3000  # Maximum distance per vehicle.
  routing.AddDimension(
      distance_callback,
      0,  # null slack
      maximum_distance,
      True,  # start cumul to zero
      distance)
  distance_dimension = routing.GetDimensionOrDie(distance)
  # Try to minimize the max distance among vehicles.
  distance_dimension.SetGlobalSpanCostCoefficient(100)

我不了解最后一个指令的含义

distance_dimension.SetGlobalSpanCostCoefficient(100)

此函数的目的是什么,参数的含义是什么?为什么那里有“ 100”呢?

1 个答案:

答案 0 :(得分:0)

自发布此问题以来,很可能已对documentation进行了更新,它阐明了100的含义:

  

方法SetGlobalSpanCostCoefficient为路线的整体跨度设置较大的系数(100),在此示例中,这是路线距离的最大值。这使全局范围成为目标函数中的主要因素,因此该程序将最长路径的长度减至最小。

通常(来自API reference),方法

  

[设置]与 global 维度范围成正比的成本,即路径终点累计变量的最大值与路径起点累计变量的最小值之间的差。换句话说:global_span_cost =系数*(最大值(尺寸最终值)-最小值(尺寸起始值))。