슬롯 사이트 추천.gms : 선형 곱셈 모델 - 유형 1

설명

다음의 무작위 선형 곱셈 모델을 생성하고 해결합니다.
"1번 유형."  문제 인스턴스는 다음이 제안한 대로 생성됩니다.
콘노와 쿠노. N. Sahinidis가 개발한 모델입니다.

대형 모델 유형 :NLP


카테고리 : 슬롯 사이트 추천 모델 라이브러리


메인 파일 : 슬롯 사이트 추천.gms

$title 선형 곱셈 프로그램 - 유형 1(슬롯 사이트 추천,SEQ=251)

$onText
다음의 무작위 선형 곱셈 모델을 생성하고 해결합니다.
"1번 유형."  문제 인스턴스는 다음이 제안한 대로 생성됩니다.
콘노와 쿠노. N. Sahinidis가 개발한 모델입니다.

H. Konno 및 T. Kuno, "선형 곱셈 프로그래밍",
수학적 프로그래밍, 56(51-64), 1992.

M. Tawarmalani 및 N. Sahinidis, 볼록화 및 글로벌
연속 및 혼합 정수 비선형의 최적화
프로그래밍: 이론, 알고리즘, 소프트웨어 및 응용 프로그램,
클루어 학술 출판사, 2002.

키워드: 비선형 계획법, 선형 곱셈 계획법, 수학,
          비볼록 2차 계획법, 전역 최적화,
          파라메트릭 단순 알고리즘
$offText

옵션 optCr = 0, optCa = 1.e-6, limRow = 0, limCol = 0, solPrint = off;

세트
   mm / m1*m220 /
   nn / n1*n200 /
   pp / p1*p5 /;

세트
   m(mm) '제약'
   n(nn) '변수'
   p(pp) '제품'
   c '케이스' / c1*c10 /
   i '인스턴스' / i1*i5 /;

* 해결해야 할 각 사례에 대해 서로 다른 (m,n,p) 삼중항을 사용합니다.
테이블 케이스(c,*)
          m n p
    c1 20 30 2
    c2 120 100 2
    c3 220 200 2
    c4 20 30 3
    c5 120 120 3
    c6 200 180 3
    c7 20 30 4
    c8 100 100 4
    c9 200 200 4
   c10 200 200 5;

매개변수
   cc(pp,nn) '비용 계수'
   A(mm,nn) '제약 계수'
   b(mm) '왼쪽'
   rep(c,*) '요약 보고서'
   ResMin
   레스맥스
   NodMin
   노드맥스;

변수
   y(pp)
   x(nn)
   obj;

방정식
   목표
   제약조건(mm)
   제품(pp);

목적.. obj =e= prod(p, y(p));

제품(p).. y(p) =e= sum(n, cc(p,n)*x(n));

제약 조건(m).. b(m) =l= sum(n, A(m,n)*x(n));

x.lo(nn) = 0;

모델 슬롯 사이트 추천 / 모두 /;

슬롯 사이트 추천.workSpace = 32;

담당자(c,'AvgResUsd') = 0;
담당자(c,'AvgNodUsd') = 0;

루프(c,
   m(mm) = ord(mm) <= 건수(c,'m');
   n(nn) = ord(nn) <= 케이스(c,'n');
   p(pp) = ord(pp) <= 케이스(c,'p');
   ResMin = inf;
   레스맥스 = 0;
   NodMin = inf;
   노드맥스 = 0;

   루프(나,
      cc(p,n) = 균일(0,100);
      A(m,n) = 균일(0,100);
      b(m) = 균일(0,100);

* 모든 모델의 초기 시작점을 0으로 설정
     x.l(n) = 0;
     y.l(p) = 0;

     nlp를 사용하여 obj를 최소화하는 슬롯 사이트 추천을 해결합니다.

     담당자(c,'AvgResUsd') = 담당자(c,'AvgResUsd') + 슬롯 사이트 추천.resUsd;
     담당자(c,'AvgNodUsd') = 담당자(c,'AvgNodUsd') + 슬롯 사이트 추천.nodUsd;
     ResMin = min(ResMin, 슬롯 사이트 추천.resUsd);
     NodMin = min(NodMin, 슬롯 사이트 추천.nodUsd);
     ResMax = max(ResMax, 슬롯 사이트 추천.resUsd);
     NodMax = max(NodMax, 슬롯 사이트 추천.nodUsd);
   );
   담당자(c,'MinResUsd') = ResMin;
   담당자(c,'MaxResUsd') = ResMax;
   담당자(c,'MinNodUsd') = NodMin;
   담당자(c,'MaxNodUsd') = NodMax;
);
담당자(c,'AvgResUsd') = 담당자(c,'AvgResUsd')/카드(i);
담당자(c,'AvgNodUsd') = 담당자(c,'AvgNodUsd')/카드(i);

디스플레이 담당자;