我必须为生产级应用程序解决一个车辆路线问题。
问题说明:-
车辆具有:-
- 类型
- 容量
- 车队时间
- 成本=固定成本+可变成本
- 如果我们在车队时间之后使用车辆,则会增加可变成本
拾取点:-
- 要拾取的负载。我们必须挑选所有的货物
- 我们可以选择的时间段
- 拾取负载所花费的时间
目的地:-
- 车辆只能在该时间段内到达
- 卸载所花费的时间
车辆可以再次返回起点或直接前往目的地。
目的地点将与取货点相距一定距离。因此,多辆小型车辆可以在一个点上相遇(可以是起点,也可以是我们将始终定义的点),然后将其货物发送给大型车辆。
较大的车辆可以直接到达目的地。
我们也可以运行更大的车辆在第一位。它将从所有点拾取负载。然后前往目的地。
如果我也能得到车辆数量作为路线输出的一部分,那就太好了。
我是这方面的新手。jsprit或optaplanner能为此提供解决方案吗?
我可以说jsprit和optaplanner都可以解决这个问题。我更熟悉的是jsprit。在jsprit中有很多例子,你也可以尝试一下。您可以从一个简单的示例开始:https://github.com/graphhopper/jsprit/blob/master/jsprit-examples/src/main/java/com/graphhopper/jsprit/examples/SimpleExample.java
然后是有时间窗口的提货和交货问题的例子。https://github.com/graphhopper/jsprit/blob/master/jsprit-examples/src/main/java/com/graphhopper/jsprit/examples/PickupAndDeliveryExample.java