簡體   English   中英

如何找到最長的路線?

[英]How to find the longest possible route?

以下問題:

發動機(例如汽車)在直線路上開始行駛。 它的消耗量與距離成正比(例如480公里使用一單位燃料,因此48公里使用十分一單位燃料)。 該發動機最多可以運輸一單位燃料。

首先是供應n0個燃料單元。 在路線的不同點上有燃料庫(例如n1 @ d1,n2 @ d2等),駕駛員可以在路線上的任何地方卸載燃料。 例如,對於一個單位,值為480 km,駕駛員可以行駛160 km,創建一個包含1/3單位燃料的倉庫,然后開車返回起點為其引擎加油。

我正在尋找一種算法(或一些想法來尋找一種算法),以根據起始燃料和路線上的倉庫找到可以實現的最大距離。

通過直覺,貪婪算法應該是最佳的,即,通過最大化每個倉庫的可用燃料量,您正在最大化可能的路線。 這只是我的意見,我認為“路線上的任何地方”實際上是“任何倉庫”。

貪婪算法將如何工作? 在每個時間點,您只有兩個決定:“前進”或“返回到先前的倉庫進行加油”。 只要增加當前倉庫的儲備量,貪婪的人就會一直向后移動。

我認為您也可以“反轉” a *,dijkstra方法中使用的“ <=”比較。

或添加邏輯參數(最佳,最差)路徑。

因此,您無需重復代碼即可保持相同的路徑搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM