qcp1.gms : 표준 QP 모델 QCP

설명

QCP로 표현된 gamslib 모델 QP1입니다. 또한
전체 크기의 데이터 세트가 사용되며
Q 행렬의 처리가 단순화되었습니다.

표준에 대한 일련의 변형 중 첫 번째
QP 공식화. 후속 모델은 데이터를 활용합니다.
그리고 문제 구조는 다음과 같은 공식에 도달합니다.
놀라운 계산적 이점을 가지고 있습니다. 추가
정보는 다음에서 찾을 수 있습니다:

/modlib/adddocs/qp1doc.htm

소형 모델 유형 :QCP


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


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

$title 표준 QCP 모델(QCP1,SEQ=283)

$onText
QCP로 표현한 gamslib 모델 QP1 입니다. 또한
전체 크기의 데이터 세트가 사용되며
Q 행렬의 처리가 단순화되었습니다.

표준에 대한 일련의 변형 중 첫 번째
QP 공식화. 후속 모델은 데이터를 활용합니다.
그리고 문제 구조는 다음과 같은 공식에 도달합니다.
놀라운 계산적 이점을 가지고 있습니다. 추가
정보는 다음에서 찾을 수 있습니다:

/modlib/adddocs/qp1doc.htm

Kalvelagen, E, 무료 슬롯를 사용한 모델 구축. 곧
de Wetering, AV, 개인 통신.

키워드: 2차 제약조건 프로그래밍, 재무, 포트폴리오 최적화,
          투자 계획
$offText

$eolCom //
$include qpdata.inc

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

별칭(s,t);

* 정의 때문에 첫 번째 날을 삭제해야 한다는 점에 유의하세요.
* 수익률(주식,일-1) = val(주식,일) - 주가(주식,일-1);

d(일+1) = 예;   // 첫날에는 삭제됩니다.
s(주식) = 예;

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

평균(들) = sum(d, return(s,d))/card(d);
dev(s,d) = return(s,d) - 평균(들);
covar(s,t) = sum(d, dev(s,d)*dev(t,d))/(카드(d)-1);
totmean = 합계(들, 평균(들))/(카드(들));

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

양수 변수 x;

방정식
   obj '목표'
   예산
   retcon '반환 제약';

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

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

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

모델 qcp1 / 모두 /;

옵션 limCol = 0, limRow = 0;
qcp1.workFactor = 20;

z를 최소화하는 qcp를 사용하여 qcp1을 해결합니다.