我用MathProg語言編寫了一個問題來檢查我對某些混合整數問題的理解是否正確。過了一段時間,我才弄清楚了,我可以假設這個解決方案是正確的。MathProg轉換爲C++
GLPK Simplex Optimizer, v4.45
37 rows, 30 columns, 97 non-zeros
0: obj = -1.300000000e+01 infeas = 1.300e+01 (0)
* 10: obj = 7.677248677e+00 infeas = 0.000e+00 (0)
* 14: obj = 5.925925926e-01 infeas = 7.889e-31 (0)
OPTIMAL SOLUTION FOUND
Integer optimization begins...
+ 14: mip = not found yet >= -inf (1; 0)
+ 15: >>>>> 5.925925926e-01 >= 5.925925926e-01 0.0% (2; 0)
+ 15: mip = 5.925925926e-01 >= tree is empty 0.0% (0; 3)
INTEGER OPTIMAL SOLUTION FOUND
Time used: 0.0 secs
Memory used: 0.2 Mb (204010 bytes)
...
Model has been successfully processed
但我真正需要的是在C++代碼中實現的非常相同的例程。我花了一段時間用GLPK C API來重寫問題,但在單元測試期間,我發現C++版本沒有返回解決方案,因爲沒有可行的解決方案。
GLPK Simplex Optimizer, v4.45
37 rows, 30 columns, 10 non-zeros
0: obj = 0.000000000e+00 infeas = 2.000e+00 (16)
PROBLEM HAS NO FEASIBLE SOLUTION
顯然我犯了一些錯誤,我需要找到在哪裏。
是否有一些可用於調試或預覽的方法,例如,查看由我的C++代碼生成的模型以及MathProg模型生成的模型,以比較它們?簡單地通過所有我可以搞砸的地方將是一些解決方案,但效果不佳。