如何正确设置SetGlobalSpanCostCoefficient和AddDimension中的Capacity参数?

胡古尔塔

我正在使用OR-Tool解决VRP问题。我已经对文档中的示例性问题做了一些实验,并设法编写了一个可运行的程序,但是,我不了解SetGlobalSpanCostCoefficient的目的以及如何正确设置它。根据此站点,它是所有路径中全局跨度成本与最大和最小尺寸值之差之间的系数。因此,此全局成本是所有路线成本的总和,并且是根据“维度”的“容量”参数计算得出的,并像最大容量限制器一样使用。

我的代码中的问题是,除非我在AddDimension函数中调整容量(最大路径距离)并手动调整globalSpanCostcoefficient,否则不会使用somme容器。我有1000个节点:看起来像这样的距离分布(以米为单位):


    # Add Distance constraint.
    distance_dimension_name = 'Distance'
    routing.AddDimension(
        transit_callback_index,
        0,  # no slack
        25000,  # vehicle maximum travel distance
        True,  # start cumul to zero
        distance_dimension_name)
    distance_dimension = routing.GetDimensionOrDie(distance_dimension_name)
    distance_dimension.SetGlobalSpanCostCoefficient(100)

在这里,我得到了5辆和6辆汽车的最大路线距离为2610m,它分为两条路线。我尝试添加像它描述的维数这里却变得太慢,即使是100个节点,结果与5辆相同。

洛朗·佩伦(Laurent Perron)

跨度成本用于衡量空闲时间。

请参阅:SetGlobalSpanCostCoefficient doc条目

它与弧度成本不同,因为(1)它在节点处合并了松弛部分,并且(2)不计算在仓库的初始等待时间。

在您的示例中,您都禁止懈怠,并且将第一个累计数强制为0。因此SpanCost是无用的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 LinQ 和 List<T> 正确设置函数的参数?

如何正确设置启动参数

如何在SwiftUI的列表中设置和使用参数“选择”

如何在oracle中设置日期和天的参数

如何在HttpRequest中设置路径和查询参数?

如何为 Keras 拟合生成器正确调用和设置参数

如何为码标包中的roc_auc()函数正确设置估计参数

如何使用Golang HTTP客户端正确设置URL中的路径参数?

在Lua中,如何将nil参数正确设置为某个默认值?

Softlayer API中的capacity_restriction_min,capacity_restriction_max参数和存储大小之间有什么关系?

如何正确设置setState和useEffect以从React中的对象读取和显示值(挂钩)?

如何在TypeScript中为函数参数设置参数名称和类型?

如何在 ViewModel 中为数据类参数 LiveData 设置初始化和设置值

如何正确设置Getters setter和convertmintosec?

如何确认正确设置了$ GOPATH和$ GOROOT?

如何正确设置 ResourceBundle 和 ClassLoader?

如何正确设置Kibana的Filebeat和Metricbeat?

如何正确设置“ less”和“ lesspipe”?

如何正确设置zram和交换

如何更改和设置Rcpp编译参数

如何在keras中设置正确的batch_size和steps_per_epoch?

如何在模板中正确设置和获取传入的数组边界(在C ++中)?

如何在 CAShapLayer 中为三角形和笔划设置正确的路径?

如何为3D中的QML旋转动画设置动画和正确插入

如何在i386中正确设置SS和SP寄存器

如何在Google Cloud中设置Vault和Postgres以具有正确的权限?

扩展面板中的两个分组框,如何正确设置调整大小(拉伸和固定)?

如何正确传递参数中的指针

如何正确设置上限的非静态方法的参数?