안녕하세요? CPLEX 관련 문의 드립니다. 코드 작성 중에 제약식에서 최소값 또는 최대값을 찾는 함수를 적용하고 싶은데요, 그런 함수를 지원하는지 궁금합니다.
엑셀을 예로 들면 A < B 인 경우 min(A, B) = A max(A, B) = B 값을 리턴하는 함수가 CPLEX에도 존재하는지 궁금합니다.
감사합니다.
댓글 6
비회원2017-07-18
1. A, B가 상수인 경우, IloMax, IloMin 함수를 이용하시면 됩니다.
2. A, B가 변수인 경우, CPLEX의 기본적형식인 1차식의 표현이 아니기 때문에, 이런 제약식은 잘 사용하지 않습니다. (1차식 표현으로 모델링 하셔야합니다.) 단, IloIfThen 이란 함수를 이용하여 표현은 가능하나, performance에 좋지 않은 형태의 제약입니다.
비회원2017-07-18
앞의 답변 2번도 Concert API에서 가능합니다. 즉, IloMax(변수A, 변수B) 및 IloMax(변수열)도 사용할 수 있습니다. -- 여기서 변수라 함은 IloNumVar, IloIntVar 를 말함. 뿐만 아니라 IloMax(변수, 상수) 와 그 반대 등의 조합도 가능합니다. 예제: IloIntVarArray x(env, 5, 0, 1000); IloNumVar y(env, -1000, 5000); IloNumVar z(env, -1000, 1000);
IloMin(x) >= IloAbs(y);
비회원2017-07-18
앞의 답변 2번도 Concert API에서 가능합니다. 즉, IloMax(변수A, 변수B) 및 IloMax(변수열)도 사용할 수 있습니다. -- 여기서 변수라 함은 IloNumVar, IloIntVar 를 말함. 뿐만 아니라 IloMax(변수, 상수) 와 그 반대 등의 조합도 가능합니다. 유사 함수로 IloMin, IloAbs 도 있습니다. 예제: IloIntVarArray x(env, 5, 0, 1000); IloNumVar y(env, -1000, 5000); IloNumVar z(env, -1000, 1000);
IloMax(x) >= IloAbs(y);
비회원2018-02-21
1. A, B가 상수인 경우, IloMax, IloMin 함수를 이용하시면 됩니다.
2. A, B가 변수인 경우, CPLEX의 기본적형식인 1차식의 표현이 아니기 때문에, 이런 제약식은 잘 사용하지 않습니다. (1차식 표현으로 모델링 하셔야합니다.) 단, IloIfThen 이란 함수를 이용하여 표현은 가능하나, performance에 좋지 않은 형태의 제약입니다.
비회원2018-02-21
2. A, B가 변수인 경우, CPLEX의 기본적형식인 1차식의 표현이 아니기 때문에, 이런 제약식은 잘 사용하지 않습니다. (1차식 표현으로 모델링 하셔야합니다.) 단, IloIfThen 이란 함수를 이용하여 표현은 가능하나, performance에 좋지 않은 형태의 제약입니다.