【问题标题】:SetGlobalSpanCoefficient method google or toolsSetGlobalSpanCoefficient 方法 google or tools
【发布时间】:2019-04-28 10:54:48
【问题描述】:

我正在尝试使用谷歌或工具来解决车辆路线问题。 这是链接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”?

【问题讨论】:

    标签: or-tools vehicle-routing


    【解决方案1】:

    documentation 很可能在发布此问题后已更新,它阐明了 100 的含义:

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

    一般情况下(来自API reference),方法

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

    【讨论】:

      猜你喜欢
      • 2022-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 2021-10-15
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多