안녕하세요
OPL에서 다음과 같은 제약을 추가할려고 하는데, 잘 되지 않네요 도움바랍니다.
x[i]=1이고 y[i]=1이면
z[i]=1이다.
all x[i], y[i], z[i]는 0 or 1
그냥 LP formulation 하게되면 아마 이런식이 될것같은데요(Min)
x[i]+y[i]-1<=2*z[i];
그런데 이와같이 하면, feasible solution은 나오는데, 계산시간이 너무
오래걸립니다.
그래서 OPL의 if, then, endif; 를 사용했거든요.
그런데 if 다음에 decision variable이 들어가면 에러가 나오네요
즉 제가 한 코드는
forall( i in 1.. nbtime) ------- 1
ifx[i]=1 & y[i]=1 -------- 2
then z[i]=1 -------- 3
endif;
에러가 나오는 부분이 2번식이거든요. 즉 if 다음에는 index는 올 수 있어도 Decision var은 올 수 없을것 같다는 생각이네요.
빠른시간안에 서두에서 제시한 제약을 반영할 수 있는 다른 방법은 없는지요?
감사합니다.