Google OR-Tools车辆路线:每辆车的最低电弧成本?

时间:2019-02-19 12:15:11

标签: python or-tools vehicle-routing

我正在尝试通过Google或工具优化产品分销业务的总成本。因此,我将弧线成本计算为特定车辆的美元金额,以KM驱动*车辆每公里成本计算:

for n, vehicle_cost in enumerate(vehicle_costs):
    def vehicle_distance_cost_evaluator(source, destination):
        return distance_evaluator(source, destination) * vehicle_cost

    routing.SetArcCostEvaluatorOfVehicle(vehicle_distance_cost_evaluator, n)

这很好用,但是有一个陷阱:除了每公里成本外,每辆车的最低雇用成本。例如,一辆汽车每公里成本为1美元,而最低租赁成本为100美元。这意味着,行驶到100公里以下的任何距离仍需支付100美元。从那里开始,行驶101公里将花费101美元,依此类推。

我该如何实施呢?修改vehicle_distance_cost_evaluator,使其返回100美元以离开仓库,然后以某种方式访问​​并重新计算车辆的真实先前路径,返回0美元,直到我们行驶100公里?

也许有更好的方法通过一些路由约束来做到这一点?我正在使用OR-tools的python版本,如果有任何更改。

0 个答案:

没有答案