2017-12-27 153 views
0

我運行求解器上的規劃和各種答案集我得到了我認爲是之間的警告(因爲它不termiate執行)說以下內容:Clingo - 進展錯誤/警告

Progression : [2;8] (Error: 3) 
Progression : [3;8] (Error: 1.66667) 
Progression : [4;8] (Error: 1) 
Progression : [5;8] (Error: 0.6) 
Progression : [6;8] (Error: 0.333333) 
Progression : [7;8] (Error: 0.142857) 

我找不到任何有關該警告的提示,所以我希望有人知道他們的意思。

回答

0

這些行提供有關優化的當前狀態的有價值的信息:在你的榜樣,解算器已經找到了成本8的解決方案,但還沒有證明解決方案是最優的,但它正在證明它的方法:它證明了成本至少2,3,4,...,7。所以,如果你在拉斯維加斯之後中止求解器t線,您可以保證您找到的解決方案可以是最優的,也可以是最優的。

該信息可以幫助您在最優性和求解時間之間進行合成。如果您的次優結果足夠接近最佳值,那麼通常情況下您的應用都很好。

0

快速搜索釦環來源https://github.com/potassco/clasp/blob/master/src/clasp_output.cpp表明方法TextOutput::printUnsat負責這些消息。

在基類中的註釋顯示Output::printUnsat

//! Called on unsat - may print new info. 

具體來說,TextOutput::printUnsat評論是

//! Prints the given lower bound and upper bounds that are known to be optimal.