如何最大化取件和送件而不是最小化电弧成本?
How to maximize the pickups and deliveries instead of minimizing arc costs?
到目前为止,我正在使用 ortools 的路由包和弧成本评估器:
costCallbackIndex = model.registerTransitCallback(this::costCallback);
model.setArcCostEvaluatorOfAllVehicles(costCallbackIndex);
但我意识到我更感兴趣的是最大化取件和送件的数量(它们是可选的,使用 model.addDisjunction
并有掉落惩罚)而不是行驶的总米数。由于我要处理大量的取货和送货,我不想让求解器承担最小化电弧成本的额外压力。
一个选项是定义一个始终 returns 0 的弧成本回调,但这可能会使求解器感到困惑。我也无法调用方法 setArcCostEvaluatorOfAllVehicles
,因此向求解器建议我对弧成本不感兴趣。
推荐的方法是什么?
你为什么不直接避免使用 setArcCostEvaluatorOfAllVehicles
?
到目前为止,我正在使用 ortools 的路由包和弧成本评估器:
costCallbackIndex = model.registerTransitCallback(this::costCallback);
model.setArcCostEvaluatorOfAllVehicles(costCallbackIndex);
但我意识到我更感兴趣的是最大化取件和送件的数量(它们是可选的,使用 model.addDisjunction
并有掉落惩罚)而不是行驶的总米数。由于我要处理大量的取货和送货,我不想让求解器承担最小化电弧成本的额外压力。
一个选项是定义一个始终 returns 0 的弧成本回调,但这可能会使求解器感到困惑。我也无法调用方法 setArcCostEvaluatorOfAllVehicles
,因此向求解器建议我对弧成本不感兴趣。
推荐的方法是什么?
你为什么不直接避免使用 setArcCostEvaluatorOfAllVehicles
?