2014-06-16 10 views
1

제가 새로운 변수 y 이러한 y <= max(x) 그 생성하고자 예이를 선형 제약 조건 집합으로 변환하는 방법은 무엇입니까?

x = [0,1,0,0,1] 

위해 이진 변수의 1 차원 배열의 지정된. 환언

에서

Y = 0 인 경우에만, 합 (X) = 0

Y = 1 경우에만, 합 (X)> 0

를 I는 이것을 변환 어떻게 선형 제약 집합?

IBM CP Optimizer Suite가 자동으로 처리 할 수 ​​있기 때문에 이것이 가능해야한다는 것을 알고 있지만 액세스 할 수는 없습니다.

답변

2

x가 0이면 y를 0으로 강제 설정합니다. < = sum (x)과 같은 간단한 것을 사용하십시오.

그런 다음 y를 1로 설정하면 몇 가지 사항을 선택할 수 있습니다. x에있는 모든 변수에 대해 y> = x 제약 조건을 추가하거나 My> = sum (x)와 같이 큰 M 제약 조건을 사용할 수 있습니다. 여기서 M은 x에서 변수의 최대 수인 동시에 상수 일 수 있습니다 별도의 구속 조건을 추가하면 특히 x 변수가 여러 개인 경우 더 긴 선형 완화를 제공 할 수 있습니다.

+0

니스가 정확합니다. – Jeff