2012-07-20 41 views
0

我試圖解決像下列情況下LP-解決爲什麼lp_solve在普通實例上失敗?

/* Objective function */ 
min: +x; 

/* Constraints */ 
+2046853249 x +2046853248 y +c = 0; 
+1954481150 x +1954481149 y +c = 0; 
R3: +x >= 1; 

/* Variable bounds */ 
-10000 <= x <= 10000; 
-10000 <= y <= 10000; 
-10000 <= c <= 10000; 

/* Integer definitions */ 
int x,y,c; 

這似乎並非是一個艱難的實例,但LP-解決未能解決這個問題。我對lp-solve文檔的理解是,求解器實際上開始將實例作爲常規lp解決,然後解決w.r.t中的問題。整數定義。在這種情況下,lp解決方案應該是正確的。

有人請給我一些見解,爲什麼這不起作用?特別是,有沒有一個「訣竅」很快解決這樣的事件?

回答

0

我與lp_solve的一些開發人員進行了聊天。這個問題的原因很明顯,lp_solve在內部使用double類型的變量,並且它們不能提供足夠的精度來處理大的整數。

看來,它是不可能解決這樣的系統使用lp_solve。如果您遇到像我這樣的類似問題,您可能會搜索另一種工具。