Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 全球效率背后的直觉_Python 3.x_Or Tools - Fatal编程技术网

Python 3.x 全球效率背后的直觉

Python 3.x 全球效率背后的直觉,python-3.x,or-tools,Python 3.x,Or Tools,我正在研究的是一种能使车队中速度最慢的卡车的成本最小化的方法 现在目标函数应该包含两个量: 所有车辆总距离的所有过渡的总和,以及 最昂贵路线的费用 这些价值观是如何结合的?我假设整体跨度系数 距离尺寸。设置全局成本系数100 涉及到什么?这是加权和的系数吗 cost = w*A + (100-w)*B 其中A是最慢卡车的成本,B是所有卡车的总距离?不,简单地说:成本=B+A B=通常使用routing.SetArcCostEvaluatorofAllVehicles ARC_cost_回调设置

我正在研究的是一种能使车队中速度最慢的卡车的成本最小化的方法

现在目标函数应该包含两个量:

所有车辆总距离的所有过渡的总和,以及 最昂贵路线的费用 这些价值观是如何结合的?我假设整体跨度系数

距离尺寸。设置全局成本系数100

涉及到什么?这是加权和的系数吗

cost = w*A + (100-w)*B
其中A是最慢卡车的成本,B是所有卡车的总距离?

不,简单地说:成本=B+A B=通常使用routing.SetArcCostEvaluatorofAllVehicles ARC_cost_回调设置的路线中所有边缘成本的总和 A=w*max{end}-min{start}

注意:需要B来帮助解算器找到第一个好的解决方案,否则像最便宜的路径这样的策略会表现出奇怪的行为,因为选择最便宜的…,并没有边际成本,而a通过最小化最大累积风险来帮助分配工作。但它仍然不是真正的分散激励 e、 g.假设一个维度的起点为0,4条路径的成本为0,0,6,6,它与2,2,2,6或6,6,6,6一样好,但B在这里更高。 i、 e.在两种情况下,maxcumul_end==6

我在文档中添加了一个关于GlobalSpan的部分

附:看一看 pps:在doc示例中,如果我记得清楚,请尝试将最大_距离=3000更改为1800或3500;
购买力平价:注意,你可以在多个维度上拥有多个全球范围,目标只是所有这些成本的总和乘以各自的系数…

关于w的大小有什么想法吗?另外,如果fix_start_cumul_to_zero=False,那么解算器可能会尝试增加min{start}以减少A对目标函数的贡献,是吗?我认为这是可能的,前提是这种增加不会同时增加max{end}。此外,您可能会影响B成本,这可能会阻止这种情况的发生。规模?对不起,我不明白。如果我记得清楚的话,所有成本都存储为int64,w只是应用于维度的标量,例如,B以km为单位,4辆车分别行驶1,2,3,4 km,因此B将为10。现在假设成本为秒,所有车辆从0开始,如果以秒为单位存储值,则30分钟A的最大路线耗时将为w*1800。不幸的是,w是一个整数,所以你不能除以,即乘以0。etci想知道为什么选择w=100而不是w=10或w=10000,但我想这只是一个尝试和错误,例如使用1000,我只是将SpanCost的数字从route cost中移走,这样我就可以在眨眼之间看到/检查这两个值。否则,您需要回答以下问题:相对于其他成本值,将该值增加1个单位的成本是多少,并相应地设置系数->即,开始在约束之间进行权衡,例如,我应该将路线增加w*N km还是使用固定成本为M的其他车辆。。。