qp3.gms : 표준 QP 모델 - 중간 변수

설명

비선형 항을 단순화하여 속도를 더욱 높였습니다.
추가 정보는 다음에서 확인할 수 있습니다.

/modlib/adddocs/qp3doc.htm

대형 모델 유형 :NLP


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


메인 파일 : qp3.gms   포함: qpdata.inc

$title 표준 QP 모델 - 중간 변수 (QP3,SEQ=173)

$onText
비선형 항을 단순화하여 속도를 더욱 향상시킵니다.
추가 정보는 다음에서 확인할 수 있습니다.

/modlib/adddocs/qp3doc.htm

Kalvelagen, E, 슬롯 나라를 사용한 모델 구축. 곧

de Wetering, AV, 개인 통신.

키워드: 비선형 계획법, 2차 계획법, 금융
$offText

$include qpdata.inc

세트
   d(days) '선택한 날짜'
   s(stocks) '선택된 주식';

별칭(s,t);

* 주식 및 기간의 하위 집합 선택
d(일) = ord(일) > 1 및 ord(일) < 31;
s(주식) = ord(주식) < 51;

매개변수
   평균(주식) '일일 수익률 평균'
   dev(주식,일) '편차'
   covar(stocks,sstocks) '수익률의 공분산 행렬(상위)'
   covarx(stocks,sstocks) '공분산 행렬 - 변동(상위)'
   totmean '총 평균 수익률';

평균(들) = sum(d, return(s,d))/card(d);
dev(s,d) = return(s,d)-평균(s);

* 공분산 계산
* 메모리와 시간을 절약하기 위해 상부 삼각함수만 계산합니다.
* 공분산 행렬이 대칭인 부분
covar(upper(s,t)) = sum(d, dev(s,d)*dev(t,d))/(card(d) - 1);
covarx(s,t) = 2*covar(s,t);
covarx(s,s) = covar(s,s);
totmean = 합계(들, 평균(들))/(카드(들));

변수
   z '객관 변수'
   x(주식) '투자'
   y(주식) '중간변수';

양수 변수 x;

방정식
   obj '목표'
   예산
   retcon '반환 제약'
   ydefa(stocks) '대칭성을 이용하지 않음'
   ydefb(stocks) '대칭성을 활용';

obj.. z =e= sum(s, y(s)*x(s));

ydefa(t).. y(t) =e= sum(upper(s,t), x(s)*covar(s,t))
                 + sum(lower(s,t), x(s)*covar(t,s));

ydefb(t).. y(t) =e= sum(s, x(s)*covarx(s,t));

예산.. 합계(s, x(s)) =e= 1.0;

retcon.. sum(s, 평균(들)*x(s)) =g= totmean*1.25;

모델
   qp3a / obj, ydefa, 예산, retcon /
   qp3b / obj, ydefb, 예산, retcon /;

z를 최소화하는 nlp를 사용하여 qp3a를 해결합니다.

디스플레이 x.l;

ydefb.m(t) = ydefa.m(t);

z를 최소화하는 nlp를 사용하여 qp3b를 해결합니다.

디스플레이 xl;