回答

2

是的,只是不進入目標函數。 cplex會給你任何解決方案,它可以找到或證明沒有解決方案。

var x; 
var y; 
minimize 1; 

subject to con1: 
    x + y <= 6; 
    x + y >= 7; 
+0

不知道cplex會接受一個常量作爲目標函數。我正在通過最小化|| x ||^2來工作。謝謝 –

+0

當你在目標函數中使用一個常量時,Cplex將使用一個鬆弛變量的公式,這個公式與我在答案中建議的非常相似。自己明確添加鬆弛變量的好處是,它通常會給你一些想法,當問題變得不可行時,哪些約束相互矛盾。 – willem

1

您可以簡單地添加鬆弛到所有的限制,並只把鬆弛變量與成本1成本函數然後測試,如果發現的Cplex成本的解決方案0

0

一個簡單的方法是添加一個空的目標函數。例如,如果您爲.net使用concert,則使用AddMinimize()或AddMaximize()而不使用任何輸入參數將執行該作業。您也可以使用Populate()方法填充儘可能多的可行解決方案。

Aslo,你提到凸約束。我認爲cplex可以處理像日誌這樣的函數,但我認爲一些凸函數處於某種奇怪的形式,我不確定您是否可以將它們表達爲cplex模型中的表達式。