首先,感謝那些對這個偉大的圖書館感興趣的人。OptaPlanner車輛路線 - 車輛時間窗口
我的約束是:
- 我有一個已經準備好,並且由於時間的客戶。
- 也有準備好和到期時間的車輛。
我沒有Java的經驗,我嘗試使用OptaPlanner通過使用提供的示例項目發送和接收xml。對於客戶時間窗口,我已經使用了「VrmTimeWindowedCustomer」,並且沒有問題。對於車輛時間窗約束,我嘗試使用「VrpTimeWindowedDepot」
我腦海裏想的是:當有車庫可用時(ReadyTime),車輛開始從該車庫工作並轉到客戶。然而,在我嘗試OptaPlanner沒有給出如下結果:我期待:
<depotList id="139">
<VrpTimeWindowedDepot id="140">
<id>1</id>
<location class="VrpRoadLocation" reference="3"/>
<readyTime>540000</readyTime>
<dueTime>1020000</dueTime>
</VrpTimeWindowedDepot>
<VrpTimeWindowedDepot id="141">
<id>2</id>
<location class="VrpRoadLocation" reference="5"/>
<readyTime>540000</readyTime>
<dueTime>1020000</dueTime>
</VrpTimeWindowedDepot>
</depotList>
結果是:
<VrpVehicle id="143">
<id>1</id>
<capacity>100001002</capacity>
<depot class="VrpTimeWindowedDepot" reference="140"/>
<nextCustomer class="VrpTimeWindowedCustomer" id="144">
<id>42</id>
<location class="VrpRoadLocation" reference="85"/>
<demand>206</demand>
<previousStandstill class="VrpVehicle" reference="143"/>
<nextCustomer class="VrpTimeWindowedCustomer" id="146">
...
<vehicle reference="143"/>
<readyTime>0</readyTime>
<dueTime>1440000</dueTime>
<serviceDuration>12000</serviceDuration>
<arrivalTime>22137</arrivalTime>
</nextCustomer>
<vehicle reference="143"/>
<readyTime>0</readyTime>
<dueTime>1440000</dueTime>
<serviceDuration>12000</serviceDuration>
<arrivalTime>8527</arrivalTime>
</nextCustomer>
</VrpVehicle>
對客戶ArrivalTime是爲客戶確定,但比汽車的車廠ReadyTime小。
我找不到我在這裏做錯了什麼。 我已閱讀Optaplanner - availability of Vehicles和OptaPlanner文檔;但無法理解並弄清楚爲我的情況做些什麼。
我也無法理解drl文件的語法,也找不到解釋如何編寫它的文檔。
編輯 - 另一個問題傑弗裏·迪斯
傑弗裏·迪斯,非常感謝你對你的快速respose,這是非常讚賞。我已經嘗試過您的更改。根據倉庫的準備時間,到貨時間現在可以確定。然而,有可能是對Depot的duetime參數另一個問題:
<VrpTimeWindowedDepot id="144">
<id>3</id>
<location class="VrpRoadLocation" reference="7"/>
<readyTime>540000</readyTime>
<dueTime>1020000</dueTime>
</VrpTimeWindowedDepot>
最後一個客戶到會參觀從這個倉庫中的一個車輛:
<nextCustomer class="VrpTimeWindowedCustomer" id="183">
<id>36</id>
<location class="VrpRoadLocation" reference="73"/>
<demand>187</demand>
<previousStandstill class="VrpTimeWindowedCustomer" reference="182"/>
<vehicle reference="146"/>
<readyTime>0</readyTime>
<dueTime>1440000</dueTime>
<serviceDuration>10000</serviceDuration>
<arrivalTime>1082091</arrivalTime>
</nextCustomer>
不應該到達時間少於102萬? (在3個車廠有3輛車,解決方案中只涉及2輛車,都有這樣的完成時間。)
我試圖添加這個作爲PLANNER-680 JIRA問題的評論,但我無法唱歌和登錄。我希望按照Stackoverflow的格式進行編輯。
[Fixed for 7.0.0.Beta3](https://issues.jboss.org/browse/PLANNER-680) –
哇這就是快:)您可以添加錯誤固定代碼;或者有什麼方法可以達到7.0.0.Beta3文件? – Koray
請參閱jira問題中的鏈接。 –