4

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

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”?

4

1 回答 1

0

自发布此问题以来,文档很可能已经更新,阐明了 100 的含义:

该方法为路线的全局跨度SetGlobalSpanCostCoefficient设置了一个较大的系数 ( 100),在此示例中,该系数是路线距离的最大值。这使得全局跨度成为目标函数中的主要因素,因此程序最小化了最长路线的长度。

通常(来自API 参考),该方法

[设置] 一个与全局维度跨度成比例的成本,即路线结束累积变量的最大值与路线开始累积变量的最小值之差。换句话说:global_span_cost = 系数 * (Max(dimension end value) - Min(dimension start value))。

于 2019-10-22T13:11:00.127 回答