2016-07-04 4 views
0

현재 잘 모르는 공식을 사용하고있는 선형 프로그램을 모델링하고 있습니다. 일부 변수 X가 있는데 일부 제약 조건에서 X가 일부 목록에서 값을 가져 오는지 또는 설정되어 있는지 확인하려고합니다 (이 경우에는이 값이 금지되고 그렇지 않으면 제약이 BigM 메서드 등을 통해 비활성화 됨). ,하지만 이것은별로 중요하지 않다고 생각합니다.) 예를 들어, SET = {1, 2, 10}이고, 이제 솔루션 X가 2 일 경우 이것이 허용되지 않습니다. X는 다른 값을 가져야합니다. 지금 SET에서 가능한 모든 값 x에 대한 제약 조건을 만들고 제약 조건에서 | X - x |를 사용하고 0과 같은 것을 실행합니다. < = | X - x | * 모든 x에 대해 BigM. 모델을 만드는 "표준"방법이 있습니까? 더 나은 해결책을 알고 있습니까? 나는이 주제와 관련된 것을 찾지 못했습니다. 고마워요!변수가 고정 된 값의 어떤 값과 같은지 확인하십시오.

OPL에서

답변

0

당신은

{INT} SET = {1,2,10}을 쓸 수 있습니다;

dvar int x;

피사체에 {

FORALL (I SET)에서 X = I!

}

관련 문제