我想解決整數編程問題。我都試過使用SCIP和LPSolve解決整數線性規劃:爲什麼求解器求解可解實例是不可行的?
例如,假設A和B的最終值,我想在下面的C#代碼來解決瓦拉:
Int32 a = 0, b = 0;
a = a*-6 + b + 0x74FA - valA;
b = b/3 + a + 0x81BE - valA;
a = a*-6 + b + 0x74FA - valA;
b = b/3 + a + 0x81BE - valA;
// a == -86561, b == -32299
其中我實現這個整數在LP格式程序(捨去除法引起併發症少):
min: ;
+valA >= 0;
+valA < 92;
remAA_sign >= 0;
remAA_sign <= 1;
remAA <= 2;
remAA >= -2;
remAA +2 remAA_sign >= 0;
remAA +2 remAA_sign <= 2;
remAA +4294967296 remAA_range >= -2147483648;
remAA +4294967296 remAA_range <= 2147483647;
remAA +4294967296 remAA_range +2147483648 remAA_sign >= 0;
remAA +4294967296 remAA_range +2147483648 remAA_sign <= 2147483648;
-1 remAA +4294967296 remAA_range +3 remAA_mul3 = 0;
remAB_sign >= 0;
remAB_sign <= 1;
remAB <= 2;
remAB >= -2;
remAB +2 remAB_sign >= 0;
remAB +2 remAB_sign <= 2;
remAB +4294967296 remAB_range >= -2147483648;
remAB +4294967296 remAB_range <= 2147483647;
remAB +4294967296 remAB_range +2147483648 remAB_sign >= 0;
remAB +4294967296 remAB_range +2147483648 remAB_sign <= 2147483648;
+1431655765 remAA +1 offA -2 valA +1 offB -1 remAB +4294967296 remAB_range +3 remAB_mul3 = 0;
a = -86561;
b = -32299;
offA = 29946;
offB = 33214;
-4 offA +3 valA +1431655765 remAA +1 offB +4294967296 Fa - a = 0;
+477218588 remAA -1431655769 offA -1431655764 valA -1431655763 offB +1431655765 remAB +4294967296 Fb - b = 0;
int valA;
int remAA;
int remAA_range;
int remAA_sign;
int remAA_mul3;
int remAB;
int remAB_range;
int remAB_sign;
int remAB_mul3;
int Fa;
int Fb;
int offA;
int offB;
int a;
int b;
,然後試圖解決這個問題:
The model is INFEASIBLE
但是,我知道有一個可行的解決方案,因爲我知道一個可行的變量賦值。 添加下列條件使溶液被發現:
a = -86561;
b = -32299;
offA = 29946;
offB = 33214;
valA = 3;
remAA = 0;
remAA_range = 0;
remAA_sign = 0;
remAA_mul3 = 0;
remAB = 1;
remAB_range = 0;
remAB_sign = 0;
remAB_mul3 = -21051;
Fa = 0;
Fb = 21054;
兩個不同的解算器都聲稱這是可行的問題是不可行的。我違反了一些不成文的條件嗎?這是怎麼回事?有解決方案能夠真正解決問題嗎?
如果您構建模型,請導出.lp文件並將其發送給我,我將通過CPLEX運行它。它有很好的衝突(不可行性)信息。我的電子郵件地址是我在gmail dot com的用戶名。我想你也可以把它放在Pastebin或類似的東西上。 – raoulcousins
@raoul我通過電子郵件發送了與scip一起使用的lp-cplex文件。 –
我用CPLEX解決了這個問題,這是可行的。最優解有一個目標函數值爲零。這與LP弛豫相同,其具有條件編號(kappa)爲3.4的基礎矩陣。有了額外的約束,目標函數是一樣的;條件編號爲4.6。我不確定CPLEX在這個問題上的做法與SCIP不同。您可以使用neos-server.org解決您的模型並使用CPLEX嗎? – raoulcousins