cclinpts.gms : 전력 유틸리티 함수를 선형화할 때 최적의 중단점 찾기

설명

일관적인 상대 위험 회피 기능을 갖춘 전력 유틸리티 기능이 자주 사용됩니다.
경제 및 금융 모델링. 계산을 위해 바람직할 수도 있습니다.
이유는 제약 조건과 함께 사용될 때 이 함수를 선형화하기 위함입니다.
정수 변수가 필요합니다. 이 모델은 최적의 중단점을 찾습니다.
주어진 간격에 대한 선형화입니다.

소형 모델 유형 :NLP


카테고리 : 메가 슬롯 모델 라이브러리


메인 파일 : cclinpts.gms

$title 전력 유틸리티 함수를 선형화할 때 최적의 중단점 찾기(SEQ=373)

$onText
일정한 상대적 위험 회피를 갖는 전력 효용 함수가 자주 사용됩니다.
경제 및 금융 모델링. 계산을 위해 바람직할 수도 있습니다.
이유는 제약 조건과 함께 사용될 때 이 함수를 선형화하기 위함입니다.
정수 변수가 필요합니다. 이 모델은 최적의 중단점을 찾습니다.
주어진 간격에 대한 선형화.

작성자:
Kourosh Marjani Rasmussen, 2011년 7월, 덴마크 공과대학 학과
금융공학그룹 경영공학부 운영연구부

키워드: 비선형 프로그래밍, 금융, 선형화, 최적 중단점,
          전력 유틸리티 기능
$offText

$ 첫 번째 s1 설정
$set 마지막 s30

스칼라 감마 '상대적 위험 회피' / 2 /;

세트
   j '중단점 수' / %first%*%last% /
   먼저(j)
   마지막(j);

별칭(j,jj);

first('%first%') = 예;
last('%last%') = 예;

* 선형화 간격의 시작 및 끝 x축 값
스칼라
   b0 '시작점(양수)' / 5 /
   bm '종료점' / 100 /;

abort$(b0 < 0) 'b0은 양수여야 합니다.', b0;
abort$(bm < b0) '끝점은 시작점보다 커야 합니다.', b0, bm;

변수
   ObjV '목적 함수의 값'
   b(j) '중단점'
   fb(j) '중단점에 대한 함수 값';

b.lo(j) = b0;
b.up(j) = bm;

방정식
   객체 '곡선 아래의 영역'
   FBCalc(j) '전력함수 값 계산';

개체..
   ObjV =e= sum(j$(마지막이 아님(j)), [b('%last%') - b(j)]*[fb(j) - fb(j-1)])
         + 0.5*sum(j$(첫 번째가 아님(j)), [b(j) - b(j-1)]*[fb(j) - fb(j-1)]);

FBCalc(j).. fb(j) =e= power(b(j),(1 - 감마))/(1 - 감마);

b.fx('%first%') = b0;
b.fx('%last%') = bm;

모델 최적선형화 / all /;

ObjV를 최대화하는 nlp를 사용하여 OptimalLinearization을 해결합니다.