2016-12-05 14 views
0

을 프로그래밍하는 경우 경우 A = 0 다음에 b 다른 = 0, B = b는 이진 동안 정수는 1정수의 조건이 내가</p> <p>조건과 정수 프로그래밍 문제를 해결하고

나는 이전 질문을 이것과 비슷하게 보았지만 해결책을 찾지 못했습니다. 위의 조건에 대한 정수 프로그래밍에서 제약 방정식을 정의하는 데 도움을주십시오.

+0

어떤 유형입니까? – harold

+0

a는 정수이고 b는 이진 값인 –

답변

0

첫 번째 제약 조건은 쉽습니다. a = 0 ⇒ b = 0은 ≥으로 작성할 수 있습니다. b. 두 번째 제약 조건 (b = 1)은 더 복잡합니다. ≤ M 여기서 M은 비교적 작 으면 M ⋅ b ≥으로 작성할 수 있습니다. 그렇지 않으면 indicator constraints이라는 솔버 기능을 사용해야합니다.

+0

답장을 보내 주셔서 감사합니다. a가 음수 인 경우 a ≥ b는 참이되지 않습니다. –

+1

일반적으로 정수 프로그래밍에는 음수가 없습니다. 달리 명시되지 않으면 제로의 하한이 가정됩니다. – mattmilten

0

사용이 두 제약 : M 큰 숫자입니다

a<=bM 
b<=aM 

(M> 키). a = 0 일 때 첫 번째 제약 조건은 중복되고 두 번째 제약 조건은 b = 0을 부과합니다. a> 0이면 두 번째 제약 조건은 중복되지만 첫 번째 제약 조건은 b가 1의 값을 얻습니다 (M이 충분히 클 경우).

+0

b가 2 진수이기 때문에 두 번째 제한 조건을 b <= a로 단순화해야합니다. –

+0

그렉, 당신의 이전 대답을 잘못 읽었습니다. 나는 M이 콜론이 된 후에 당신이 넣은 (점). 기본적으로, 나는 단지 당신이 이미 한 일에 대해서 대답했습니다. 당신이 말한 것처럼 제 2의 제약에서 M은 필요하지 않습니다. –