2016-11-12 52 views
0

我正在用下面的代碼設置routingModel的時間限制。orTools如何從RoutingModel獲取狀態?

RoutingSearchParameters search_parameters = RoutingModel.DefaultSearchParameters(); 
search_parameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PATH_CHEAPEST_ARC; 
search_parameters.TimeLimitMs = 30000; 
RoutingModel routing = new RoutingModel(number_of_locations, number_of_vehicles); 

但我不知道搜索完成,所以我可以檢查它是否是取消它或解決方案尚未發現因其他原因在期限過後,如何讓狀態。請幫助

Assignment solution = routing.SolveWithParameters(search_parameters); 

RoutingModel類有這個靜態屬性,但我不知道如何從實例閱讀:

public static readonly int ROUTING_FAIL; 
public static readonly int ROUTING_FAIL_TIMEOUT; 
public static readonly int ROUTING_INVALID; 
public static readonly int ROUTING_NOT_SOLVED; 
public static readonly int ROUTING_SUCCESS; 

回答

0

..它是時間限制取消,或解決方案有被發現..

這在Python 3工作對我來說:

.... 
solution = routing.SolveWithParameters(search_parameters) 

if solution: 
    print("Solution Found") 
    .... 
else: 
    print("Terminated without finding solution") 

從問題中不清楚您是否正在尋找上述解決方案,或者您是否有興趣檢查找到的解決方案是否最優。

+0

嗨NFern,感謝您的迴應。我在回答錯誤的地方輸入了「它是取消它的時間限制或解決方案已被找到......」我的意思是鍵入「是時間限制取消它或者因爲其他原因未找到解決方案「。我想知道時間限制是沒有找到解決方案的原因。 – Borbea