我们与Optaplanner有一个棘手的问题。 我们正在开展一个项目,我们需要计算一个优化的车辆路线,该路线考虑了客户希望服务的特定时间。
我们已经能够创建一个vrp文件,就像在Optaplanner的examples文件夹中给出的那样。时隙的小时数以秒为单位进行编码。它在GUI-app中正确加载。
但是,似乎路由问题不可行。当我们不考虑时间段时,我们会得到一个结果。我们查看了XML文件,发现ArrivalTime并不符合到期时间。实际上,我们想知道如何解释XML,找到我们的错误。
<VrpVehicle id="19">
<id>1</id>
<capacity>75</capacity>
<depot class="VrpTimeWindowedDepot" reference="14"/>
<nextCustomer class="VrpTimeWindowedCustomer" id="20">
<id>4</id>
<location class="VrpRoadLocation" reference="11"/>
<demand>1</demand>
<previousStandstill class="VrpVehicle" reference="19"/>
<nextCustomer class="VrpTimeWindowedCustomer" id="21">
<id>2</id>
<location class="VrpRoadLocation" reference="7"/>
<demand>1</demand>
<previousStandstill class="VrpTimeWindowedCustomer" reference="20"/>
<vehicle reference="19"/>
<readyTime>39600</readyTime>
<dueTime>43200</dueTime>
<serviceDuration>60</serviceDuration>
<arrivalTime>3300060</arrivalTime>
</nextCustomer>
有人熟悉Optaplanner生成的输出吗? 我们如何检索建议的路线以及ArrivalTime的含义是什么?目前,我们认为4-2是车辆19的最佳路线。这是正确的吗?
亲切的问候, MB
答案 0 :(得分:0)
您对该路线的解释是正确的,尽管它是为客户4提供的车辆1 - > 2并且它不一定是最佳的,而是当前的路线。
示例中的arrivalTime由ArrivalTimeUpdatingVariableListener更新,它使用客户的位置来确定距离。这些距离不能用于您的用例,因为它们的单位不是秒,可能缩放1000倍。
您需要以秒为单位的距离或将秒数缩放到&#39;单位&#39;在示例中用于正确计算到达时间。