2012-11-12 116 views
2

我是cplex的新手。在我的ilp中,我有幾個if-else語句。我想用cplex來解決使用java API的問題。我不知道如何在cplex中制定if-else。 例如:cplex for if-else statments

if x>0 then a=1 
else if x=0 then a=0 

回答

4

我不認爲在Java API支持的if/then/else結構,但它是可以做到的if/then

IloCplex cplex = new IloCplex(); 
IloNumVar x = cplex.numVar(-100, 100); 
IloNumVar a = cplex.intVar(0, 1); 

cplex.ifThen(cplex.ge(x, 100), cplex.eq(a, 1)); 
cplex.ifThen(cplex.eq(x, 0), cplex.eq(a, 0)); 
+0

非常感謝。對於「或」語句還有一件事,我使用了大量的「M」,並使statmenet呈線性。你知道我是否可以在cplex中使用它? 如果x + y = 2那麼c + b Sara

+1

ifThen()的第二個參數是一個約束,所以如果該約束是一個or語句,它應該可以工作。 – Guillaume