OptaPlanner –具有真实道路距离的车辆路线
在現(xiàn)實(shí)世界中,車輛路徑問題(VRP)中的車輛必須走這條路:它們不能在客戶之間直線行駛。 大多數(shù)VRP研究論文和演示都樂于忽略此實(shí)現(xiàn)細(xì)節(jié)。 和我一樣,過去。 盡管使用道路距離(而不是空中距離)不會(huì)對VRP的NP硬性產(chǎn)生很大影響,但確實(shí)會(huì)帶來一些額外的挑戰(zhàn)。 讓我們來看看這些挑戰(zhàn)。
道路距離數(shù)據(jù)集
首先,我們需要現(xiàn)實(shí)的數(shù)據(jù)集。 不幸的是,在VRP研究社區(qū)中,缺乏具有道路距離的公共VRP數(shù)據(jù)集。 VRP Web很少,例如位于29個(gè)位置的巴伐利亞數(shù)據(jù)集,但沒有什么嚴(yán)重的。 因此,我必須根據(jù)以下要求自己生成一些實(shí)際的數(shù)據(jù)集:
- 例如,在小道路上合理的時(shí)候使用高速公路。
我最終生成了比利時(shí)的數(shù)據(jù)集,其中包含城市,城鎮(zhèn)和郊區(qū)的位置。 最大的一個(gè)有2750個(gè)位置。 稍后我可能會(huì)添加USA數(shù)據(jù)集的道路變體,這些變體最多可達(dá)10萬個(gè)位置。
通過使用基于OpenStreetMap的出色的Java庫GraphHopper ,查詢實(shí)際道路距離相對容易。 只要整個(gè)道路網(wǎng)(比利時(shí)只有200MB)可以加載到內(nèi)存中,它也很快。 加載北美的整個(gè)道路網(wǎng)絡(luò)(6GB)更具挑戰(zhàn)性。 我將這些數(shù)據(jù)集提交到VRP Web,以便其他研究人員也可以使用它們。
所有這一切都發(fā)生在 OptaPlanner的VRP示例開始解決它之前。 在求解過程中,距離已經(jīng)在查找表中可用。 一旦我們開始生成具有1000個(gè)或更多位置的數(shù)據(jù)集,預(yù)先計(jì)算每個(gè)位置對之間的所有距離可能會(huì)帶來內(nèi)存和性能問題。 我將在下一個(gè)博客中解釋這些以及補(bǔ)救措施。
空中距離與道路距離
為了清楚起見,我將集中在數(shù)據(jù)集belgium-n50-k10.vrp上,該數(shù)據(jù)集具有50個(gè)位置和10個(gè)車輛,每個(gè)車輛的容量為125。 OptaPlanner有5分鐘的時(shí)間來解決這兩種變體(空中和道路距離)。
使用空中距離 (可根據(jù)緯度和經(jīng)度計(jì)算歐幾里得距離)會(huì)導(dǎo)致:
總距離22.99并不重要,因?yàn)樗辉谕ㄓ玫亩攘繂挝粌?nèi),而且因?yàn)槲覀兊能囕v無論如何也無法從點(diǎn)到點(diǎn)飛行。 我們需要將此空距解決方案應(yīng)用于真實(shí)道路網(wǎng)絡(luò) (如下所示),以了解真實(shí)距離:
現(xiàn)在,讓我們將上方的空中距離解決方案與下方的道路距離解決方案進(jìn)行比較。
道路距離解決方案所需的時(shí)間減少了108.45公里,因此幾乎提高了5%! 這就是世界上最密集的道路網(wǎng)絡(luò)之一(比利時(shí)的道路網(wǎng)絡(luò)):在更稀疏的道路網(wǎng)絡(luò)上,收益可能會(huì)更多。
結(jié)論
使用實(shí)際距離而不是空中距離確實(shí)很重要。 用空距離求解VRP,然后應(yīng)用道路距離不是最理想的。
但是,我們真的可以預(yù)先計(jì)算大型數(shù)據(jù)集中的每個(gè)位置對嗎? 敬請關(guān)注。
翻譯自: https://www.javacodegeeks.com/2014/09/optaplanner-vehicle-routing-with-real-road-distances.html
總結(jié)
以上是生活随笔為你收集整理的OptaPlanner –具有真实道路距离的车辆路线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 耳机插到电脑上没有声音(耳机插到电脑上没
- 下一篇: 揭示垃圾收集暂停的时间长度