2017-02-14 21 views
2

다음 공식 중 가장 큰 보상을 얻기 위해 최적의 동작을 찾으려고합니다. 프로그램이 실행 중이지만 출력이 입력과 동일합니다. 이는 코드에 문제가 있음을 의미합니다.제약 조건에서 if 문을 정의하는 방법 - GAMS 최적화

가격 탄력성을 정의하려고 시도하는 메신저는 피크 시간대와 저 피크 시간대에 옵티 엄 가격 관세를 찾고 특정 시간대를 정의해야합니다. 높은 봉우리는 16-23 oclock이고 낮은 봉우리는 나머지 시간입니다. 내 질문에 제약 조건에 if 문을 정의 할 수 있습니까?

Con4 (hpd) $ (if (ord (hpd)> 15) 및 (ord (hpd) <23)) .. P_H (hpd) = E = PHP; (hpd) $ ((ord (hpd) < 16) 및 (ord (hpd)> 22)) ... P_H (hpd) = E = PLP;

전체

답변

0

거의 다 왔어. (달러 기호는 기본적으로 if)으로 작성해야 할 필요는 없으며 두 번째 방정식에서와 마찬가지로 조건부 자체 만 쓸 수 있습니다. 두 번째 수식은 과 또는 대신 대신 또는이되어야합니다.

작은 애완 동물 초조, 나는 ORD로, .val 대신 ORD()의 사용하려고는 세트가 1 발에서 시작하지 않는 경우 지저분 당신에게 set 요소의 수치를 제공합니다 집합 요소가 숫자라고 가정합니다.

Con4(hpd)$(hpd.val>=16 and hpd.val<=22).. P_H(hpd) =E= PHP; 
Con5(hpd)$(hpd.val<16 or hpd.val>22).. P_H(hpd) =E= PLP;