목차
데시스
소개
DECIS는 대규모 확률론적 프로그램, 즉 확실하게 알려지지 않았지만 확률 분포에 의해 알려진 것으로 가정되는 크레이지 슬롯변수(계수 및 우변)를 포함하는 프로그램을 해결하기 위한 시스템입니다. Benders 분해 및 고급 Monte Carlo 샘플링 기술을 사용합니다. DECIS에는 우주 문제 해결, 기대값 문제 해결, Benders 분해 알고리즘 내 Monte Carlo 샘플링, Monte Carlo 사전 샘플링 등 다양한 솔루션 전략이 포함되어 있습니다. 몬테카를로 샘플링을 사용할 때 사용자는 분산 감소 기법 없이 원시 몬테카를로를 사용하거나 분산 감소 기법으로 중요도 샘플링 또는 덧셈 또는 곱셈 근사 함수를 기반으로 한 변량 제어를 사용할 수 있습니다. 사전 샘플링은 원유 Monte Carlo만을 사용하는 것으로 제한됩니다.
선형 및 비선형 프로그램(분해로 인해 발생하는 마스터 및 하위 문제)을 해결하기 위해 DECIS는 MINOS 또는 CPLEX와 인터페이스합니다. MINOS, Murtagh and Saunders(1983) 참조 [141] 은 대규모 선형 및 비선형 프로그램을 위한 최첨단 솔버이며, CPLEX는 사용 가능한 가장 빠른 선형 프로그래밍 솔버 중 하나입니다.
DECIS 시스템에 대한 자세한 내용은 다음을 참조하세요.DECIS 사용자 가이드Infanger(1997) 참조 [99] . 여기에는 DECIS에서 사용하는 방법에 대한 포괄적인 수학적 설명이 포함되어 있습니다. 이 가이드에서는 GAMS에서 직접 DECIS를 사용하는 방법, 특히 GAMS/DECIS 인터페이스를 사용하여 확률론적 프로그램을 모델링하는 방법에 중점을 둡니다. 그러나 먼저 섹션에서DECIS가 할 수 있는 일DECIS가 수행할 수 있는 작업과 DECIS가 사용하는 솔루션 전략에 대해 간략하게 설명합니다. 이 설명은 DECIS 사용자 가이드에서 수정되었습니다. 섹션에서GAMS/결정GAMS/DECIS를 사용하여 확률론적 문제를 설정하는 방법을 자세히 논의하고 크레이지 슬롯변수 설정 및 얻은 출력에 대해 설명합니다. 에서부록 A - GAMS/DECIS 예시 예시DECIS 사용자 가이드에서 논의된 두 가지 예시(APL1P 및 APL1PC)의 GAMS/DECIS 공식을 보여줍니다. DECIS 오류 메시지 목록은 다음과 같습니다.부록 B - 오류 메시지.
DECIS가 할 수 있는 일
DECIS는 의지를 통해 2단계 확률론적 선형 프로그램을 해결합니다.
\begineqnarray*
여기서 \(x\)는 첫 번째 단계를 나타내고 \(y^\omega\)는 두 번째 단계 결정 변수를 나타내고 \(c\)는 첫 번째 단계를 나타내고 \(f^\omega\)는 두 번째 단계 객관적 계수를 나타내고 \(A\), \(b\)는 첫 번째 단계 제약 조건의 계수와 오른쪽을 나타내고 \(B^\omega\), \(D^\omega\), \(d^\omega\)는 두 번째 단계 제약 조건의 크레이지 슬롯 변수를 나타내며, 여기서 전이 행렬 \(B^\omega\)은 두 단계를 연결합니다. 문헌에서는 \(D^\omega\)를 종종 기술 매트릭스 또는 자원 매트릭스라고 합니다. 첫 번째 단계 크레이지 슬롯변수는 확실하게 알려져 있습니다. 두 번째 단계 크레이지 슬롯변수는 \(\omega\)라는 라벨이 붙은 결과와 확률 \(p(\omega)\)를 가정하는 무작위 크레이지 슬롯변수입니다. 여기서 \(\Omega\)는 가능한 모든 결과 라벨의 집합을 나타냅니다.
1단계 결정\(x\)이 내려져야 할 때, 2단계 크레이지 슬롯변수는 가능한 결과의 확률 분포로만 알려져 있습니다. 나중에 \(x\)가 이미 결정된 후에는 2단계 크레이지 슬롯변수의 실제 결과가 알려지고 실제 결과 \(\omega\)에 대한 지식을 바탕으로 2단계 결정 \(y^\omega\)이 내려집니다. 목표는 총 예상 비용, 즉 1단계 비용과 예상 2단계 비용의 합을 최소화하는 실행 가능한 결정 \(x\)을 찾는 것입니다.
무작위 크레이지 슬롯변수의 이산 분포의 경우, 확률론적 선형 프로그램은 해당으로 표현될 수 있습니다.등가 결정론적 선형 프로그램:
\[ \begin배열rcrcrcrccccrcl \min\ z &=& cx &+& p^1 fy^1 &+& p^2fy^2 &+&\cdots&+&p^Wfy^W & & \\ s/t && 도끼 & & & & & & & & &=& b \\ &&-B^1x&+&Dy^1 & & & & & & &=& d^1 \\ &&-B^2x& & &+&Dy^2 & & & & &=& d^2 \\ &&\vdots& & & & & &\ddots& & & &\vdots \\ &&-B^Wx& & & & & & &+&Dy^W &=&d^W \\ &&x, & & y^1, & &y^2, & &\ldots,& & y^W &\geq& 0, \\ \end배열
가능한 모든 결과가 포함되어 있습니다 \(\omega \in \Omega\). 실제 문제의 경우 \(W\)는 매우 큽니다. 예를 들어 일반적인 숫자는 \(10^20\)일 수 있으며 결과로 나타나는 등가 결정론적 선형 문제는 너무 커서 직접 풀 수 없습니다.
기본 의사결정 프로세스의 2단계 특성을 확인하기 위해 다음 표현도 자주 사용됩니다.
\begineqnarray*
어디에서
\begineqnarray*
DECIS는 2단계 확률론적 선형 프로그램을 해결하기 위해 다양한 전략을 사용합니다. 문제에 대한 정확한 최적 솔루션을 계산하거나 실제 최적 솔루션에 매우 근접하게 접근하고 실제 최적 목표가 95% 신뢰도에 있는 신뢰 구간을 제공합니다.
불확실함을 나타냄
구조에서 불확실한 2단계 크레이지 슬롯변수를 나타내는 것이 유리합니다. \(v^\omega = 결과를 가정하는 \(h\)차원 독립 확률 벡터 크레이지 슬롯변수 \(V=(V_1, \ldots, V_h)\) 사용 (v_1, \ldots, v_h)^\omega\) 확률 \(p^\omega = p(v^\omega)\)을 사용하여 문제의 불확실한 2단계 크레이지 슬롯변수를 독립 확률 크레이지 슬롯변수 \(V\)의 함수로 나타냅니다.
각 구성 요소 \(V_i\)에는 결과 \(v_i^\omega_i\), \(\omega_i \in \Omega_i\)가 있습니다. 여기서 \(\omega_i\)는 구성 요소 \(i\)의 가능한 결과를 표시하고 \(\Omega_i\)는 구성 요소 \(i\)의 가능한 모든 결과 집합을 나타냅니다. 랜덤 벡터의 결과
\(h\) 독립 구성 요소 결과로 구성됩니다. 세트
은 집합 \(\Omega_i\)의 교차를 나타냅니다. 각 세트 \(\Omega_i\)가 \(W_i\)개의 가능한 결과, \(|\Omega_i| = W_i\)를 포함한다고 가정하면 세트 \(\Omega\)는 \(W = \prod W_i\) 요소를 포함합니다. 여기서 \(|\Omega| = W\)는 랜덤 벡터 \(V\)의 가능한 모든 결과의 수를 나타냅니다. 독립성에 기초하여 결합 확률은 곱입니다.
\(\eta\)는 모든 2단계 무작위 크레이지 슬롯변수의 벡터를 나타냅니다(예: \(\eta = \hboxvec(f, B, D, d)\). \(\eta\)의 결과는 다음과 같은 일반 선형 종속성 모델로 표현될 수 있습니다.
여기서 \(H\)는 적합한 차원의 행렬입니다. DECIS는 이러한 일반적인 선형 종속성 모델로 문제를 해결할 수 있습니다.
우주 문제 해결
모든 가능한 결과를 고려하고 \(\omega \in \Omega\) 해당 문제를 정확하게 해결한다면 우주 문제를 참조합니다. 가능한 실현 \(\omega \in \Omega\)이 너무 많을 수 있으므로 이것이 항상 가능한 것은 아닙니다. 문제를 해결하기 위해 DECIS는 벤더 분해를 사용하여 문제를 첫 번째 단계 결정에 해당하는 마스터 문제로 분할하고, 두 번째 단계 결정에 해당하는 각 \(\omega \in \Omega\)에 대해 하나씩 하위 문제로 나눕니다. 우주 문제를 해결하는 데 사용되는 알고리즘과 기술에 대한 자세한 내용은 DECIS 사용자 매뉴얼에서 논의됩니다.
우주 문제 해결은 전략 4라고 합니다. 이 전략은 우주 시나리오의 수가 상당히 적은 경우에만 사용하십시오. DECIS가 처리할 수 있는 최대 유니버스 시나리오 수는 특정 리소스에 따라 다릅니다.
기대값 문제 해결
기대값 문제는 확률론적 크레이지 슬롯변수를 기대값으로 대체한 결과입니다. 솔버를 직접 활용하여 쉽게 풀 수도 있는 선형 프로그램입니다. 기대값 문제를 해결하는 것은 그 자체로 유용할 수 있으며(예: 확률론적 문제를 해결하여 얻은 솔루션을 비교하기 위한 벤치마크로) 확률론적 문제를 해결하기 위한 좋은 시작 솔루션을 제공할 수도 있습니다. DECIS는 벤더 분해를 사용하여 기대값 문제를 해결합니다. 기대값 문제 생성에 대한 자세한 내용과 이를 해결하는 데 사용되는 알고리즘은 DECIS 사용자 매뉴얼에서 논의됩니다. 기대값 문제를 해결하려면 전략 1을 선택하세요.
몬테카를로 샘플링 사용
위에서 언급한 바와 같이, 많은 실제 문제의 경우 우주 솔루션을 얻는 것이 불가능합니다. 왜냐하면 가능한 실현 횟수 \(|\Omega|\)가 너무 크기 때문입니다. DECIS의 힘은 몬테카를로 샘플링 기술을 사용하여 뛰어난 근사 솔루션을 계산하는 능력에 있습니다. 예상 비용과 계수 및 벤더 컷의 우변을 정확하게 계산하는 대신(우주 문제를 풀 때 수행되는 것처럼) DECIS는 Monte Carlo 샘플링을 사용할 때 무작위 크레이지 슬롯변수의 분포에서 추출된 독립적인 샘플을 사용하여 각 반복의 수량을 추정합니다. 원시 몬테카를로를 사용하는 것 외에도 DECIS는 중요도 샘플링 또는 제어 변량을 분산 감소 기술로 사용합니다.
알고리즘의 세부사항과 사용된 다양한 기술은 DECIS 사용자 매뉴얼에 설명되어 있습니다. 전략 6이라고 하는 조잡한 Monte Carlo, 전략 2라고 하는 Monte Carlo 중요도 샘플링 또는 전략 10이라고 하는 제어 변량을 선택할 수 있습니다. Monte Carlo 중요도 샘플링과 제어 변량 모두 많은 문제에 대해 표시되어 조잡한 Monte Carlo 샘플링을 사용하는 것에 비해 더 나은 근사치를 제공합니다.
몬테카를로 샘플링을 사용할 때 DECIS는 문제의 실제 솔루션에 가까운 근사치를 계산하고 실제 최적 목표 값에 가까운 근사치를 추정합니다. 또한 문제의 실제 최적 목표가 있는 신뢰 구간(예: 95% 신뢰도)을 계산합니다. 신뢰 구간은 엄격한 통계 이론을 기반으로 합니다. 신뢰 구간을 계산하는 방법에 대한 개요는 DECIS 사용자 매뉴얼에 나와 있습니다. 신뢰구간의 크기는 확률론적 문제의 2단계 비용 분산과 추정에 사용된 표본 크기에 따라 달라집니다. 특히 중요도 샘플링을 사용하거나 분산 감소 기술로 변량을 제어하는 경우 신뢰 구간이 매우 작을 것으로 예상할 수 있습니다.
몬테카를로 샘플링 기술을 사용할 때 샘플 크기를 선택해야 합니다(크레이지 슬롯변수 파일에 설정). 분명히, 표본 크기가 클수록 DECIS가 계산하는 대략적인 솔루션이 더 좋고, 실제 최적 목표 값에 대한 신뢰 구간이 더 작을 것입니다. 표본 크기의 기본값은 100입니다. 표본 크기를 너무 작게 설정하면 신뢰 구간 추정에 편향이 발생할 수 있으므로 표본 크기는 30 이상이어야 합니다.
몬테카를로 사전 샘플링
우선 무작위 크레이지 슬롯변수의 분포에서 무작위 표본을 추출한 후 표본에 의해 정의된 대략적인 확률론적 문제를 생성할 때 사전 표본추출을 참조합니다. 얻은 근사 문제는 분해를 사용하여 정확하게 해결됩니다. 이는 분해의 각 반복에서 Monte Carlo 샘플링을 사용했던 이전 섹션에서 Monte Carlo 샘플링을 사용한 방식과 대조됩니다.
사전 샘플링에 사용되는 기술에 대한 자세한 내용은 DECIS 사용자 매뉴얼에 설명되어 있습니다. DECIS는 분해를 사용하여 샘플링된 문제의 정확한 솔루션을 계산합니다. 이 해는 원래 확률론적 문제의 대략적인 해입니다. 이 근사 솔루션 외에도 DECIS는 이 근사 솔루션에 해당하는 예상 비용의 추정치와 원래 확률론적 문제의 실제 최적 목표가 95% 신뢰도에 있는 신뢰 구간을 계산합니다. 신뢰구간은 통계이론에 기초하고 있으며, 그 크기는 확률론적 문제의 2단계 비용의 분산과 근사 문제를 생성하는 데 사용된 표본 크기에 따라 달라집니다. 사전 샘플링과 함께 현재 분산 감소 기술은 구현되지 않습니다.
Monte Carlo 사전 샘플링을 사용하면 샘플 크기를 선택해야 합니다. 확실히, 선택한 표본 크기가 클수록 DECIS가 계산하는 솔루션이 더 좋아지고 실제 최적 목표 값에 대한 신뢰 구간이 작아집니다. 샘플 크기의 기본값은 100입니다. 다시 말하지만, 샘플 크기를 너무 작게 설정하면 신뢰 구간 추정에 편향이 발생할 수 있으므로 샘플 크기는 30 이상이어야 합니다.
몬테카를로 사전 샘플링을 사용하려면 전략 8을 선택하세요.
정규 분해
실제 문제를 해결할 때 벤더 반복 횟수가 상당히 클 수 있습니다. 분해를 제어하기 위해 반복 횟수와 해결 시간을 줄이기 위해 DECIS는 정규화를 사용합니다. 정규화를 사용할 때 마스터 문제의 목표에 추가 2차 항이 추가되어 지금까지 찾은 최상의 솔루션(현재 솔루션)과 변수 \(x\) 사이의 거리의 제곱을 나타냅니다. DECIS는 이 용어를 사용하여 연속적인 분해 반복에서 솔루션 간의 거리를 제어합니다.
정규화를 활성화하려면 해당 크레이지 슬롯변수를 설정해야 합니다. 또한 정규화 항에서 상수 rho 값을 선택해야 합니다. 기본값은 정규화 비활성화입니다. DECIS가 정규화를 수행하는 방법에 대한 자세한 내용은 DECIS 사용자 매뉴얼에 나와 있습니다.
정규화는 하위 문제 해결을 위한 최적화 도구로 MINOS를 사용할 때만 구현됩니다. 정규화는 정규화 없이 해결될 때 많은 수의 Bender 반복이 필요한 문제에 도움이 되는 것으로 입증되었습니다. 정규화 없이 적은 수의 Benders 반복만 필요한 문제는 정규화를 통해 크게 개선될 것으로 예상되지 않으며 정규화가 없는 경우보다 정규화가 더 많은 반복이 필요할 수 있습니다.
GAMS/결정
GAMS는 General Algebraic Modeling Language의 약자로 가장 널리 사용되는 모델링 언어 중 하나입니다. GAMS에서 직접 DECIS를 사용하면 입력 형식의 모든 세부정보에 대해 걱정할 필요가 없습니다. 문제 공식화가 훨씬 쉬워지지만 DECIS를 직접 사용할 수 있는 거의 모든 유연성을 제공합니다.
GAMS에서 DECIS로의 링크는 확률론적 프로그램의 공식화 및 솔루션을 수행하는 데 GAMS 모델링 언어에 대한 확장이 거의 필요하지 않은 방식으로 설계되었습니다. 그러나 향후 GAMS 릴리스에서는 확률론적 프로그램을 훨씬 더 우아한 방식으로 모델링할 수 있는 언어가 추가될 예정입니다.
GAMS/DECIS를 사용하여 확률론적 프로그램 설정
GAMS에서 DECIS로의 인터페이스는 확률론적 공식화 및 솔루션을 지원합니다.선형프로그램. DECIS는 2단계 분해를 사용하여 이를 해결합니다. GAMS/DECIS 인터페이스는 DECIS 사용자 매뉴얼에서 논의된 SMPS(확률적 수학 프로그래밍 인터페이스)의 구조와 매우 유사합니다. GAMS/DECIS를 사용한 확률론적 문제의 사양은 다음 구성요소를 사용합니다.
- 결정적(핵심) 모델,
- 결정 단계의 사양,
- 임의의 크레이지 슬롯변수 지정 및
- DECIS를 사용할 최적화 프로그램으로 설정합니다.
결정론적 모델로 시작
핵심 모델은 모든 무작위 크레이지 슬롯변수가 평균 또는 특정 실현으로 대체되는 결정적 선형 프로그램입니다. 임의성이 없는 GAMS 모델로 볼 수도 있습니다. 여러분이 갖고 있는 결정론적 모델을 확률론적 모델로 확장하려는 것일 수도 있습니다. GAMS와 함께 DECIS를 사용하면 결정론적 선형 프로그래밍 모델을 확률론적 모델로 쉽게 확장할 수 있습니다. 예를 들어, 다음 GAMS 모델은 Infanger(1994)에서 논의된 전력 확장 계획 예시의 결정론적 버전을 나타냅니다.
* APL1P 테스트 모델
* Gerd Infanger 박사, 1997년 11월
* 결정론적 프로그램
g 발전기 설정 / g1, g2/;
dl 수요 수준 설정 /h, m, l/;
크레이지 슬롯변수 알파(g) 가용성 / g1 0.68, g2 0.64 /;
크레이지 슬롯변수 ccmin(g) 최소 용량 / g1 1000, g2 1000 /;
크레이지 슬롯변수 ccmax(g) 최대 용량 / g1 10000, g2 10000 /;
크레이지 슬롯변수 c(g) 투자 / g1 4.0, g2 2.5 /;
테이블 f(g,dl) 운영 비용
흠 내가
g1 4.3 2.0 0.5
g2 8.7 4.0 1.0;
크레이지 슬롯변수 d(dl) 수요 / h 1040, m 1040, l 1040 /;
크레이지 슬롯변수 us(dl) 미처리 수요 비용 / h 10, m 10, l 10 /;
무료 가변 tcost 총 비용;
양의 변수 x(g) 발전기 용량;
양의 변수 y(g, dl) 작동 수준;
양수 변수 s(dl) 제공되지 않은 수요;
방정식
비용 총비용
cmin(g) 최소 용량
cmax(g) 최대 용량
omax(g) 최대 작동 수준
수요(dl)는 수요를 충족시킵니다.
비용 .. tcost =e= sum(g, c(g)*x(g))
+ 합계(g, 합계(dl, f(g,dl)*y(g,dl)))
+ 합계(dl,us(dl)*s(dl));
cmin(g) .. x(g) =g= ccmin(g);
cmax(g) .. x(g) =l= ccmax(g);
omax(g) .. sum(dl, y(g,dl)) =l= alpha(g)*x(g);
수요(dl) .. sum(g, y(g,dl)) + s(dl) =g= d(dl);
모델 apl1p /all/;
옵션 lp=미노스;
tcost를 최소화하는 lp를 사용하여 apl1p를 해결합니다.
스칼라 ccost 자본 비용;
스칼라 ocost 운영 비용;
ccost = sum(g, c(g) * x.l(g));
ocost = tcost.l - ccost;
x.l, tcost.l, ccost, ocost, y.l, s.l을 표시합니다.
결정 단계 설정
다음으로 결정론적 모델을 확률론적 모델로 확장하려면 결정 단계를 지정해야 합니다. DECIS는 2단계 분해를 통해 확률론적 프로그램을 해결합니다. 따라서 첫 번째 단계에 속하는 변수와 두 번째 단계에 속하는 변수는 물론, 첫 번째 단계 제약 조건과 두 번째 단계 제약 조건도 지정해야 합니다. 첫 번째 단계 제약 조건에는 첫 번째 단계 변수만 포함되는 반면, 두 번째 단계 제약 조건에는 첫 번째 단계 변수와 두 번째 단계 변수가 모두 포함됩니다. 첫 번째 또는 두 번째 단계 변수 또는 제약 조건인지에 따라 단계 접미사 ".STAGE"를 1개 또는 2개로 설정하여 변수 또는 제약 조건의 단계를 지정해야 합니다. 예를 들어, 위의 예시 모델을 다음과 같이 확장합니다.
* 결정 단계 설정 x.stage(g) = 1; y.stage(g, dl) = 2; s.stage(dl) = 2; cmin.stage(g) = 1; cmax.stage(g) = 1; omax.stage(g) = 2; 수요.단계(dl) = 2;
\(\hboxx(g)\) 1단계 변수, \(\hboxy(g, dl)\) 및 \(\hboxs(dl)\) 2단계 변수, \(\hboxcmin(g)\) 및 \(\hboxcmax(g)\) 1단계 제약 조건을 만들고, \(\hboxomax(g)\) 및 \(\hboxdemand(g)\) 2단계 제약 조건. 목적은 별도로 처리되므로 목적 변수와 목적 방정식에 대한 단계 접미사를 설정할 필요가 없습니다.
다음의 사용에 주의하세요.stage변수 및 방정식 접미사는 GAMS 확장 기능을 유발합니다(예:.scale접미사)를 사용할 수 없습니다. 확률론적 모델은 수동으로 확장해야 합니다.
확률적 모델 지정
DECIS는 모든 선형 종속성 모델을 지원합니다. 즉, 선형 프로그램에서 불확실한 크레이지 슬롯변수의 결과는 여러 독립적인 무작위 크레이지 슬롯변수 결과의 선형 함수입니다. DECIS는 이산형 분포만 고려합니다. 연속 분포는 이산형 분포로 근사해야 합니다. 이산 확률 크레이지 슬롯변수의 가능한 실현 횟수에 따라 근사치의 정확도가 결정됩니다. 모델에 독립적인 무작위 크레이지 슬롯변수만 있는 경우 선형 종속성 모델의 특별한 경우가 발생합니다. 이 경우 독립적인 무작위 크레이지 슬롯변수는 확률론적 프로그램의 무작위 크레이지 슬롯변수에 일대일로 매핑됩니다. 먼저 독립 사례를 제시한 후 선형 종속 사례로 확장하겠습니다. 선형 종속성 모델 설정에 따라 먼저 독립적인 무작위 크레이지 슬롯변수를 정의한 다음 모델에서 불확실한 크레이지 슬롯변수의 분포를 정의하여 GAMS의 공식을 제시합니다.
독립적인 무작위 크레이지 슬롯변수 지정
물론 GAMS에서 독립적인 무작위 크레이지 슬롯변수를 설정할 수 있는 다양한 방법이 있습니다. 다음에서는 일반적이므로 다양한 모델에 적용할 수 있는 한 가지 가능한 방법을 보여줍니다. 이 설정은 각 독립 무작위 크레이지 슬롯변수에 대해 "out"이라는 이름의 결과와 "pro"라는 확률이라는 라벨을 지정하기 위해 \(\hboxstoch\) 세트를 사용합니다. 다음에서는 독립적인 무작위 크레이지 슬롯변수(예: \(\hboxv1\))를 정의하는 방법을 보여줍니다. 공식은 구동 세트로 세트 \(\hboxomega1\)를 사용합니다. 여기서 세트는 랜덤 크레이지 슬롯변수가 가정할 수 있는 가능한 각 실현에 대해 하나의 요소를 포함합니다. 예를 들어, \(\hboxomega1\) 세트에는 4가지 가능한 결과의 개별 분포에 따라 4개의 요소가 있습니다. 무작위 크레이지 슬롯변수의 분포는 크레이지 슬롯변수 \(\hboxv1\), 결과 "out"의 2차원 배열 및 집합 \(\hboxomega1\), "o11", "o12", "o13" 및 "o14"의 가능한 실현 각각에 대한 해당 확률 "pro"로 정의됩니다. 예를 들어, 무작위 크레이지 슬롯변수 \(\hboxv1\)는 각각 \(0.2, 0.3, 0.4, 0.1\) 확률을 갖는 \(-1.0, -0.9, -0.5, -0.1\)의 결과를 갖습니다. 다양한 실현 및 해당 확률을 입력하기 위해 할당문을 사용하는 대신 테이블 문을 사용할 수도 있습니다. 항상 각 독립 무작위 크레이지 슬롯변수의 확률 합계가 1이 되도록 하세요.
* 독립적인 확률론적 크레이지 슬롯변수 정의
스토크 설정 /out, pro /;
오메가1 / o11, o12, o13, o14 / 설정;
테이블 v1(스토크, 오메가1)
o11 o12 o13 o14
아웃 -1.0 -0.9 -0.5 -0.1
프로 0.2 0.3 0.4 0.1
;무작위 크레이지 슬롯변수 \(\hboxv1\)는 예시 모델 APL1P의 5개 독립적인 무작위 크레이지 슬롯변수 중 첫 번째입니다. 여기서 처음 두 개는 생성기 \(\hboxg1\) 및 \(\hboxg2\)의 독립적인 가용성을 나타내고 후자 3개는 수요 수준 \(\hboxh\)의 독립적인 수요를 나타냅니다. \(\hboxm\) 및 \(\hboxl\). 또한 나머지 4개의 독립적인 무작위 크레이지 슬롯변수의 정의도 나타냅니다. 무작위 크레이지 슬롯변수 \(\hboxv3\), \(\hboxv4\) 및 \(\hboxv5\)는 동일하게 분포됩니다.
오메가2 / o21, o22, o23, o24, o25 / 설정;
테이블 v2(스토크, 오메가2)
o21 o22 o23 o24 o25
아웃 -1.0 -0.9 -0.7 -0.1 -0.0
프로 0.1 0.2 0.5 0.1 0.1
;
오메가3 / o31, o32, o33, o34 / 설정;
테이블 v3(스토크, 오메가1)
o11 o12 o13 o14
아웃 900 1000 1100 1200
프로 0.15 0.45 0.25 0.15
;
오메가4 / o41, o42, o43, o44 / 설정;
테이블 v4(스토크,오메가1)
o11 o12 o13 o14
아웃 900 1000 1100 1200
프로 0.15 0.45 0.25 0.15
;
오메가5 / o51, o52, o53, o54 / 설정;
테이블 v5(스토크,오메가1)
o11 o12 o13 o14
아웃 900 1000 1100 1200
프로 0.15 0.45 0.25 0.15
;모델에서 불확실한 크레이지 슬롯변수의 분포 정의
독립적인 확률론적 크레이지 슬롯변수를 정의한 후(위의 설정을 복사하여 모델에 맞게 조정할 수 있음) 다음으로 GAMS 모델에서 확률론적 크레이지 슬롯변수를 정의합니다. 모델의 확률론적 크레이지 슬롯변수는 GAMS의 put 기능을 사용하여 GAMS 확률론적 파일이라는 파일을 작성하여 정의됩니다. GAMS 확률론적 파일은 SMPS 입력 형식의 확률론적 파일과 매우 유사합니다. 주요 차이점은 GAMS 모델의 행, 열, 경계 및 오른쪽 이름을 사용하며 이를 자유 형식으로 작성할 수 있다는 것입니다.
독립 확률론적 크레이지 슬롯변수
먼저 모델의 모든 확률론적 크레이지 슬롯변수가 독립적인 경우를 설명합니다. 아래에서 5개의 독립적인 확률론적 크레이지 슬롯변수가 있는 예시 APL1P에 대한 확률론적 크레이지 슬롯변수 표현을 참조하세요.
먼저 GAMS 확률론적 파일 "MODEL.STG"를 정의하고(대문자로 된 정확한 이름만 지원됨) 여기에 쓰도록 GAMS를 설정하십시오. 이는 처음 두 명령문에 의해 수행됩니다. 파일 쓰기에 put을 사용하는 방법에 대해서는 GAMS 매뉴얼을 참조할 수 있습니다. 다음 문장 "INDEP DISCRETE"는 독립적인 확률론적 크레이지 슬롯변수 섹션이 뒤따른다는 것을 나타냅니다. 그런 다음 루프 문을 사용하여 각 확률 크레이지 슬롯변수에 대해 가능한 모든 결과와 해당 확률을 작성합니다. 물론 각 줄을 별도로 작성할 수도 있지만 루프는 훌륭하게 작동합니다. 독립적인 확률론적 크레이지 슬롯변수의 정의 사이에 "*"를 쓰는 것은 단지 광학적 이유일 뿐이므로 생략할 수 있습니다.
* 분포 정의(MODEL.STG 파일 작성)
파일 stg /MODEL.STG/;
stg를 넣어;
"INDEP DISCRETE"를 입력하세요. /;
루프(오메가1,
"x g1 omax g1 ", v1("out", omega1), " period2 ", v1("pro", omega1) /;
);
놓다 "*" /;
루프(오메가2,
"x g2 omax g2 ", v2("out", omega2), " period2 ", v2("pro", omega2) /;
);
놓다 "*" /;
루프(오메가3,
put "RHS 수요 h", v3("out", omega3), " period2 ", v3("pro", omega3) /;
);
놓다 "*" /;
루프(오메가4,
"RHS 수요 m ", v4("out", omega4), " period2 ", v4("pro", omega4) /;
)
"*" 넣기 /;
루프(오메가5,
"RHS 수요 l", v5("out", omega5), " period2 ", v5("pro", omega5) /;
);
putclose stg;APL1P 예에서 첫 번째 확률론적 크레이지 슬롯변수는 생성기 \(\hboxg1\)의 가용성입니다. 모델에서 크레이지 슬롯변수는 방정식 \(\hboxomax(g1)\)에서 변수 \(\hboxx(g1)\)의 계수로 나타납니다. put 문을 사용한 정의는 먼저 변수 \(\hboxx(g1)\)와 방정식 \(\hboxomax(g1)\)의 교차점으로 확률론적 크레이지 슬롯변수를 제공하지만 중괄호를 입력할 필요가 없으므로x g1 omax g1그럼 결과는v1("아웃", 오메가1)그리고 확률v1("프로", 오메가1)구분자"기간2". 명령문의 다양한 요소는 공백으로 구분되어야 합니다. 첫 번째 확률론적 크레이지 슬롯변수의 결과와 확률은 \(\hboxomega1\) 세트에 의해 결정되므로 세트 \(\hboxomega1\)의 모든 요소를 반복합니다. 우리는 5개의 독립적인 확률론적 크레이지 슬롯변수 각각에 대해 가능한 모든 결과를 계속해서 정의합니다.
독립 확률론적 크레이지 슬롯변수의 예에서, put 기능을 사용하여 확률론적 크레이지 슬롯변수 분포를 지정하면 다음 파일 "MODEL.STG"가 생성되며, 이 파일은 GAMS/DECIS 인터페이스에 의해 처리됩니다.
독립적 개별 x g1 omax g1 -1.00 기간2 0.20 x g1 omax g1 -0.90 주기2 0.30 x g1 omax g1 -0.50 주기2 0.40 x g1 omax g1 -0.10 주기2 0.10 * x g2 omax g2 -1.00 기간2 0.10 x g2 omax g2 -0.90 주기2 0.20 x g2 omax g2 -0.70 주기2 0.50 x g2 omax g2 -0.10 주기2 0.10 x g2 omax g2 0.00 기간2 0.10 * RHS 수요 h 900.00 기간2 0.15 RHS 수요 h 1000.00 기간2 0.45 RHS 수요 h 1100.00 기간2 0.25 RHS 수요 h 1200.00 기간2 0.15 * RHS 수요 m 900.00 기간2 0.15 RHS 수요 m 1000.00 기간2 0.45 RHS 수요 m 1100.00 기간2 0.25 RHS 수요 m 1200.00 기간2 0.15 * RHS 수요 l 900.00 기간2 0.15 RHS 수요 l 1000.00 기간2 0.45 RHS 수요 l 1100.00 기간2 0.25 RHS 수요 l 1200.00 기간2 0.15
모델 오른쪽에 확률론적 크레이지 슬롯변수를 정의하려면 키워드를 사용하세요.RHS열 이름, 오른쪽이 불확실한 방정식의 방정식 이름, 예를 들어 불확실한 수요의 사양 참조RHS 수요 h, RHS는 m을 요구합니다및RHS 수요 l. 불확실한 경계 크레이지 슬롯변수를 정의하려면 키워드를 사용합니다.UP, LO또는FX, 문자열bnd및 상한, 하한 또는 고정 경계가 불확실한 변수의 변수 이름입니다.
정의에 대한 모든 키워드는 대문자로 되어 있습니다(예: "INDEP DISCRETE", "RHS"). "UP", "LO" 및 "FX" 예에서는 표시되지 않습니다.
GAMS 방정식에서 변수는 오른쪽에 나타날 수 있습니다. 예:"EQ.. X+1 =L= 2*Y". 계수 2가 무작위 변수인 경우 GAMS가 다음 LP 행을 생성한다는 점을 알아야 합니다.X - 2*Y =L= -1. 이 무작위 변수의 확률 분포가 다음과 같이 주어진다고 가정합니다.
세트 시나리오 /비관적, 평균, 낙관적/;
크레이지 슬롯변수 결과 / 비관적 1.5
평균 2.0
낙관적 2.3 /;
크레이지 슬롯변수 확률 / 비관적 0.2
평균 0.6
낙관적 0.2 /;그러면 확률론적 파일에 항목을 생성하는 올바른 방법은 다음과 같습니다:
루프(들, "Y EQ ",(-결과)," PERIOD2 ",prob(s)/를 입력합니다. );
결과 크레이지 슬롯변수의 부정에 주목하세요. 또한 PUT 문의 표현식은 괄호로 묶어야 합니다. GAMS 보고서는 다음과 같습니다.행 목록65273_65448
의존 확률론적 크레이지 슬롯변수
다음으로 우리는 모델에서 확률론적 크레이지 슬롯변수의 일반적인 선형 종속성의 경우를 설명합니다. 두 개의 독립적인 확률론적 무작위 크레이지 슬롯변수에 의해 구동되는 세 가지 종속 확률론적 요구가 있는 예시 APL1PCA에 대한 확률론적 크레이지 슬롯변수 표현 아래를 참조하세요. 먼저 두 개의 독립적인 확률론적 크레이지 슬롯변수에 대한 정의를 제공합니다. 이 예에서는 각각 두 개의 결과가 발생합니다.
* 독립적인 확률론적 크레이지 슬롯변수 정의
스토크 설정 /out, pro/;
오메가1 / o11, o12 / 설정;
테이블 v1(스토크,오메가1)
o11 o12
아웃 2.1 1.0
프로 0.5 0.5 ;
오메가2 / o21, o22 / 설정;
테이블 v2(스토크, 오메가2)
o21 o22
아웃 2.0 1.0
프로 0.2 0.8 ;다음으로 모델의 독립 확률론적 크레이지 슬롯변수에서 종속 확률론적 크레이지 슬롯변수로의 전이 행렬의 크레이지 슬롯변수를 정의합니다. 우리는 두 개의 크레이지 슬롯변수 벡터를 정의함으로써 이를 수행합니다. 여기서 벡터 \(hm1\)는 세 가지 수요 수준 각각에서 독립 무작위 크레이지 슬롯변수 \(v1\)의 계수를 제공하고 벡터 \(hm2\)는 세 가지 수요 수준 각각에서 독립 무작위 크레이지 슬롯변수 \(v2\)의 계수를 제공합니다.
크레이지 슬롯변수 hm1(dl) / h 300., m 400., l 200. /; 크레이지 슬롯변수 hm2(dl) / h 100., m 150., l 300. /;
다시 먼저 GAMS 확률론적 파일 "MODEL.STG"를 정의하고 GAMS가 여기에 쓰도록 설정하세요. 진술블록 개별선형 종속 확률론적 크레이지 슬롯변수 섹션이 이어짐을 나타냅니다.
* 분포 정의(MODEL.STG 파일 작성)
파일 stg / MODEL.STG /;
stg를 넣어;
"블록 분리"를 입력하세요. /;
스칼라 h1;
루프(오메가1,
"BL v1 period2 ", v1("pro", omega1)/;
루프(dl,
h1 = hm1(dl) * v1("아웃", 오메가1);
"RHS 수요", dl.tl:1, " ", h1/을 입력합니다.
);
);
루프(오메가2,
" BL v2 period2 ", v2("pro", omega2) /;
루프(dl,
h1 = hm2(dl) * v2("출력", 오메가2);
"RHS 수요", dl.tl:1, " ", h1/을 입력합니다.
);
);
putclose stg;종속 확률론적 크레이지 슬롯변수는 독립적인 무작위 크레이지 슬롯변수의 함수로 정의됩니다. 키워드BL독립적인 무작위 크레이지 슬롯변수의 실현 가능성을 표시합니다. 그 외의 이름은BL키워드는 동일한 독립적 무작위 크레이지 슬롯변수의 서로 다른 결과 또는 다른 결과를 구별하는 데 사용됩니다. 독립적인 무작위 크레이지 슬롯변수에 대해 고유한 이름을 사용할 수 있지만 위에서 이미 정의한 이름(예: \(v1\) 및 \(v2\))을 사용하는 것이 자연스러운 것처럼 보입니다. 각 독립 무작위 크레이지 슬롯변수의 각 실현에 대해 모든 종속 무작위 크레이지 슬롯변수의 결과를 (독립 크레이지 슬롯변수의 함수로) 정의합니다. GAMS 모델의 종속 무작위 크레이지 슬롯변수가 두 개 이상의 서로 다른 독립 무작위 크레이지 슬롯변수에 의존하는 경우 각 독립 크레이지 슬롯변수의 기여도가 추가됩니다. 따라서 우리는 모든 선형 종속성 모델을 모델링할 수 있는 위치에 있습니다. (여기서 수용할 수 있는 모델 클래스는 선형보다 더 일반적입니다. 독립 확률 변수가 종속 확률 변수에 기여하는 함수는 하나의 인수에 있는 임의의 함수일 수 있습니다. 일반적으로 선형 회귀로 추정할 수 있는 확률 모델은 GAMS/DECIS에서 지원됩니다.)
각 독립적인 무작위 크레이지 슬롯변수 결과 및 이와 관련된 확률을 정의합니다. 예를 들어,로 시작하는 문은BL v1 기간2(독립적 무작위 크레이지 슬롯변수)의 결과를 나타냅니다.v1정의 중입니다. 이름기간22단계 무작위 크레이지 슬롯변수임을 나타내며v1("프로", 오메가1)이 결과와 관련된 확률을 제공합니다. 다음에는 방금 정의한 독립적인 무작위 크레이지 슬롯변수 결과에 종속되는 모든 무작위 크레이지 슬롯변수를 나열합니다. 이 실현과 관련된 크레이지 슬롯변수 값과 함께 GAMS 변수 이름과 방정식 이름 또는 "RHS"와 변수 이름으로 종속 확률론적 크레이지 슬롯변수 계수를 정의합니다. 이 예에는 세 가지 종속 수요가 있습니다. 계산 결과를 중간에 저장하기 위해 스칼라 \(h1\)를 사용하여 우리가 계산한 다양한 수요 수준 \(dl\)을 반복합니다.h1 = hm1(dl) * v1("아웃", 오메가1)그리고 종속 무작위 크레이지 슬롯변수를 방정식 \(수요(dl)\)의 우변으로 정의합니다.
독립적인 무작위 크레이지 슬롯변수 결과를 정의할 때 블록 이름이 이전 이름과 동일한 경우(예: 언제BL v1두 번째로 나타남), 동일한 독립적 무작위 크레이지 슬롯변수의 다른 결과가 정의되는 반면, 다른 블록 이름(예: whenBL v2appears the first time)은 다른 독립적인 무작위 크레이지 슬롯변수의 첫 번째 결과가 정의되고 있음을 나타냅니다. 각각의 독립적인 무작위 크레이지 슬롯변수의 다양한 결과에 대한 확률의 합이 1이 되도록 해야 합니다. \(omega1\)의 모든 요소에 대한 루프는 독립 확률 크레이지 슬롯변수 \(v1\)의 모든 구현을 정의하고 \(omega2\)의 모든 요소에 대한 루프는 독립 확률 크레이지 슬롯변수 \(v2\)의 모든 구현을 정의합니다.
독립적인 무작위 크레이지 슬롯변수를 처음으로 실현하려면 다음을 수행해야 합니다.반드시모든 종속 크레이지 슬롯변수와 그 실현을 정의합니다. 입력된 값은 기본 사례로 사용됩니다. 독립 확률 크레이지 슬롯변수를 다른 방식으로 구현하려면 기본 사례에서 정의된 것과 다른 계수를 갖는 종속 크레이지 슬롯변수만 정의하면 됩니다. 특정 구현에 정의되지 않은 경우 기본 사례의 값이 자동으로 추가됩니다.
위의 종속 확률 크레이지 슬롯변수의 예에서, put 기능을 사용한 확률 크레이지 슬롯변수 분포 지정은 다음 파일 "MODEL.STG"를 생성하며, 이 파일은 GAMS/DECIS 인터페이스에 의해 처리됩니다:
블록 개별 BL v1 기간2 0.50 RHS 수요 h 630.00 RHS 수요 m 840.00 RHS 수요 l 420.00 BL v1 기간2 0.50 RHS 수요 h 300.00 RHS 수요 m 400.00 RHS 수요 l 200.00 BL v2 기간2 0.20 RHS 수요 h 200.00 RHS 수요 m 300.00 RHS 수요 l 600.00 BL v2 기간2 0.80 RHS 수요 h 100.00 RHS 수요 m 150.00 RHS 수요 l 300.00
정의에 대한 모든 키워드는 대문자로 되어 있습니다. 즉, "BLOCKS DISCRETE", "BL", "RHS"이며 예에서는 "UP", "LO" 및 "FX"로 표시되지 않습니다.
GAMS 모델에서는 0이 아닌 무작위 크레이지 슬롯변수 계수만 정의할 수 있습니다. 결정론적 핵심 모델을 설정할 때 확률론적 크레이지 슬롯변수로 지정하려는 계수에 대한 자리 표시자로 0이 아닌 항목을 입력합니다. GAMS 모델에서 계수가 0인 위치에 임의의 크레이지 슬롯변수를 지정하면 DECIS가 오류 메시지와 함께 종료됩니다.
DECIS를 최적화 도구로 설정
확률적 정의를 마친 후 DECIS를 최적화 프로그램으로 설정해야 합니다. 이는 다음 문을 실행하여 수행됩니다.
* DECIS를 최적화 프로그램으로 설정 * DECISM은 MINOS를 사용하고, DECISC는 CPLEX를 사용합니다. 옵션 lp=결단론; apl1p.optfile = 1;
성명문옵션 lp = 결정론확률적 문제를 해결하는 데 사용할 최적화 프로그램으로 MINOS LP 엔진을 사용하는 DECIS를 설정합니다. DECIS를 사용하지 않고 대신 다른 선형 프로그래밍 최적화 프로그램을 사용하는 경우 GAMS 모델은 사용자가 지정한 결정적 핵심 모델을 계속 실행하고 최적화합니다. 진술apl1p.optfile = 1GAMS가 파일을 처리하도록 지시합니다.DECIS.OPT, DECIS 크레이지 슬롯변수를 정의할 수 있습니다.
GAMS 모델에서 크레이지 슬롯변수 옵션 설정
옵션 반복 제한 및 리소스 제한은 GAMS 모델 파일에서 직접 설정할 수 있습니다. 예를 들어, 다음 문은
옵션 iterlim = 1000; 옵션 reslim = 6000;
분해 반복 횟수를 1000 이하로 제한하고 DECIS 실행에 소요되는 경과 시간을 6000초 또는 100분 이하로 제한합니다.
DECIS 옵션 파일에서 크레이지 슬롯변수 설정
DECIS 옵션 파일에서 사용된 솔루션 알고리즘에 관한 크레이지 슬롯변수를 지정하고 DECIS 프로그램의 출력을 제어할 수 있습니다. 지정하려는 각 크레이지 슬롯변수에 대한 기록이 있습니다. 각 레코드는 지정하려는 크레이지 슬롯변수 값과 크레이지 슬롯변수를 식별하는 키워드로 구성되며 공백 문자나 쉼표로 구분됩니다. 다음 키워드를 사용하여 크레이지 슬롯변수를 지정할 수 있습니다.istrat, ns샘플, nzrows, iwrite, ibug, iscratch, ireg, 로, 톨벤및톨우 순서 상관없이. 각 키워드는 (A10) 형식으로 소문자 또는 대문자 텍스트로 지정할 수 있습니다. DECIS는 자유 형식으로 레코드를 읽기 때문에 형식에 대해 걱정할 필요가 없지만 일부 컴퓨터에서는 텍스트를 따옴표로 입력해야 합니다. 크레이지 슬롯변수 파일에 지정되지 않은 크레이지 슬롯변수는 자동으로 기본값을 가정합니다. 섹션에서 이러한 크레이지 슬롯변수에 대한 세부정보를 확인하세요.GAMS/DECIS 옵션 설명.
예
다음 예에서는 크레이지 슬롯변수 istrat = 7, nsamples = 200 및 nzrows = 200이 지정되었습니다. 다른 모든 크레이지 슬롯변수는 기본값으로 설정됩니다. DECIS는 먼저 기대값 문제를 해결한 다음 표본 크기가 nsamples = 200인 조잡한 Monte Carlo 샘플링을 사용하여 확률론적 문제를 해결합니다. DECIS는 최대 nzrows = 50 컷을 위한 공간을 예약합니다.
7 "이스트라트" 200 "샘플" 50 "NZROWS"
MINOS 사양 파일에서 MINOS 크레이지 슬롯변수 설정
마스터 및 하위 문제를 해결하기 위한 최적화 프로그램으로 MINOS를 사용할 때 MINOS 사양 파일 "MINOS.SPC"에 최적화 크레이지 슬롯변수를 지정해야 합니다. 파일의 각 레코드는 하나의 크레이지 슬롯변수 사양에 해당하며 키워드와 자유 형식의 크레이지 슬롯변수 값으로 구성됩니다. 첫 번째 문자가 "*"인 레코드는 주석 행으로 간주되어 더 이상 처리되지 않습니다. 이러한 크레이지 슬롯변수에 대한 자세한 설명은 MINOS 사용자 가이드(Murtagh and Saunders(1983) [141] . 다음 크레이지 슬롯변수는 몇 가지 사항을 고려하여 지정해야 합니다.
-
AIJ TOLERANCE — 문제의 제약조건 행렬 요소에 대한 0이 아닌 허용오차를 지정합니다. \(|a_ij|\)가 "AIJ TOLERANCE"보다 작은 값을 갖는 행렬 요소 \(a_ij\)는 MINOS에서 0으로 간주되어 문제에서 자동으로 제거됩니다. "AIJ TOLERANCE 0.0"을 지정하는 것이 좋습니다.
-
SCALE — 문제를 확장할지("SCALE YES") 확장하지 않을지("SCALE NO") MINOS를 지정합니다. "SCALE NO"를 지정하는 것이 좋습니다.
-
ROWS — MINOS가 문제를 읽을 때 데이터 구조에서 적절한 공간을 예약하도록 행 수를 지정합니다. 'ROWS'는 핵심 문제의 제약 조건 수 이상으로 지정되어야 합니다.
-
COLUMNS — 문제를 읽을 때 MINOS가 데이터 구조에서 적절한 공간을 예약하도록 열 수를 지정합니다. 'COLUMNS'는 핵심 문제의 변수 개수 이상으로 지정되어야 합니다.
-
ELEMENTS — MINOS가 문제를 읽을 때 데이터 구조에 적절한 공간을 확보할 수 있도록 0이 아닌 행렬 계수의 수를 지정합니다. "ELEMENTS"는 핵심 문제에서 0이 아닌 행렬 계수의 개수 이상으로 지정되어야 합니다.
예
다음 예는 MINOS를 최적화 프로그램으로 사용하여 DECIS를 실행하기 위한 일반적인 사양을 나타냅니다.
사양 시작 인쇄 레벨 1 로그 빈도 10 요약 주파수 10 MPS 파일 12 행 20000 열 50000 요소 100000 반복 제한 30000 * 인수분해 빈도 100 AIJ 공차 0.0 * 규모 번호 사양 끝
시스템 환경 변수를 사용하여 CPLEX 크레이지 슬롯변수 설정
CPLEX를 마스터 및 하위 문제 해결을 위한 최적화 프로그램으로 사용하는 경우 시스템 환경 변수를 통해 최적화 크레이지 슬롯변수를 지정해야 합니다. "CPLEXLICDIR", "SCALELP", "NOPRESOLVE", "ITERLOG", "OPTIMALITYTOL", "FEASIBILIITYTOL" 및 "DUALSIMPLEX" 크레이지 슬롯변수를 지정할 수 있습니다.
-
CPLEXLICDIR — CPLEX 라이센스 디렉토리에 대한 경로를 포함합니다. 예를 들어, /usr/users/cplex/cplexlicdir에 CPLEX 라이센스 디렉토리가 있는 Unix 시스템에서는 다음 명령을 실행합니다.setenv CPLEXLICDIR /usr/users/cplex/cplexlicdir.
-
SCALELP — 마스터 및 하위 문제를 해결하기 전에 크기를 조정하도록 CPLEX를 지정합니다. 환경 변수가 설정되지 않으면 크기 조정이 사용되지 않습니다. 예를 들어 명령을 실행하여 환경 변수 설정setenv SCALELP 예, 크기 조정이 켜져 있습니다.
-
NOPRESOLVE — CPLEX의 사전 해결 프로그램을 끌 수 있습니다. 환경 변수가 설정되지 않은 경우 presolve가 사용됩니다. 환경 변수 설정(예: 설정을 통해)setenv NOPRESOLVE 예, 사전 해결이 사용되지 않습니다.
-
ITERLOG — "MODEL.CPX" 파일에 인쇄할 CPLEX 반복의 반복 로그를 지정합니다. 환경 변수를 설정하지 않으면 반복 로그가 인쇄되지 않습니다. 환경 변수 설정(예: 설정을 통해)setenv ITERLOG 예, CPLEX 반복 로그가 인쇄됩니다.
-
OPTIMALITYTOL — CPLEX 최적화 프로그램에 대한 최적 허용오차를 지정합니다. 환경 변수를 설정하지 않으면 CPLEX 기본값이 사용됩니다. 예를 들어 설정setenv OPTIMALITYTOL 1.0E-7CPLEX 최적 허용 오차를 0.0000001로 설정합니다.
-
FEASIBILIITYTOL — CPLEX 최적화 프로그램에 대한 실현 가능성 허용 범위를 지정합니다. 환경 변수를 설정하지 않으면 CPLEX 기본값이 사용됩니다. 예를 들어 설정setenv 타당성TOL 1.0E-7CPLEX 최적성 허용 오차를 0.0000001로 설정합니다.
-
DUALSIMPLEX — 사용할 CPLEX의 이중 단순 알고리즘을 지정합니다. 환경 변수가 설정되지 않은 경우 원시 단순 알고리즘이 사용됩니다. 이것이 기본값이며 대부분의 문제에 효과적으로 작동합니다. 환경 변수가 설정된 경우(예: 설정을 통해)setenv DUALSIMPLEX 예, CPLEX는 마스터 문제와 하위 문제를 모두 해결하기 위해 이중 심플렉스 알고리즘을 사용합니다.
GAMS/DECIS 출력
문제를 성공적으로 해결한 후 DECIS는 목표, 최적의 원시 및 최적의 이중 솔루션, 변수 상태(기본 여부) 및 방정식 상태(결합 여부)를 GAMS에 반환합니다. 1단계 변수 및 방정식의 경우 다른 솔버와 마찬가지로 GAMS에서 모든 정보를 사용할 수 있지만 결정론적 핵심 문제에 대한 최적의 값을 얻는 대신 실제로 확률론적 문제에 대한 최적의 값을 갖게 됩니다. 그러나 두 번째 단계 변수 및 제약 조건의 경우 최적의 원문제 및 최적의 이중 솔루션의 예상 값이 보고됩니다. 이는 공간을 절약하고 위험 측정값을 계산하는 데 유용합니다. 그러나 확률론적 프로그램의 다양한 시나리오에서 최적의 원초 및 이중 솔루션이 무엇인지에 대한 정보는 GAMS에 다시 보고되지 않습니다. GAMS/DECIS 인터페이스의 향후 릴리스에서 GAMS 언어는 적어도 선택된 변수 및 방정식에 대한 시나리오 2단계 최적의 원시 및 쌍대 값을 처리하도록 확장될 예정입니다.
실행하는 동안 DECIS는 실행 진행 상황에 대한 중요한 정보를 컴퓨터 화면에 출력합니다. DECIS는 문제를 성공적으로 해결한 후 최적의 솔루션을 솔루션 출력 파일 "MODEL.SOL"로 출력합니다. 디버그 출력 파일 "MODEL.SCR"에는 최적화 실행에 대한 중요한 정보가 포함되어 있으며 최적화 프로그램 출력 파일 "MODEL.MO"(MINOS와 함께 DECIS를 사용하는 경우) 또는 "MODEL.CPX"(CPLEX와 함께 DECIS를 사용하는 경우)에는 사용된 최적화 프로그램의 솔루션 출력이 포함되어 있습니다. DECIS 사용자 가이드에서는 화면 출력, 솔루션 보고서 및 출력 파일의 정보를 해석하는 방법에 대한 자세한 설명을 찾을 수 있습니다.
화면 출력
화면 출력을 통해 DECIS 실행 진행 상황을 관찰할 수 있습니다. 프로그램 로고와 저작권 표시 뒤에는 프로그램이 진행되는 동안 화면에 4개의 출력 열이 기록되는 것을 볼 수 있습니다. 첫 번째 열(왼쪽에서 오른쪽으로)은 반복 횟수를 나타내고, 두 번째 열은 하한(마스터 문제의 최적 목표)을 나타내고, 세 번째 열은 최상의 상한(지금까지 찾은 최상의 솔루션의 총 예상 비용의 정확한 값 또는 추정치), 네 번째 열은 현재 상한(현재 솔루션의 총 예상 비용의 정확한 값 또는 추정치)을 나타냅니다. 성공적으로 완료되면 DECIS는 "Normal Exit"로 종료됩니다. 그렇지 않고 오류가 발생하면 프로그램은 "Error Exit" 메시지와 함께 중지됩니다.
예
전략 5를 사용하여 예시 APL1P를 풀 때 화면에 다음 보고서를 얻습니다.
TH E D E C I S S Y S T E M 저작권 (c) 1989 - 1999 작성자: Gerd Infanger 박사 모든 권리 보유. iter 하한 최고 상한 전류 상한 0 -0.9935E+06 1 -0.4626E+06 0.2590E+05 0.2590E+05 2 0.2111E+05 0.2590E+05 0.5487E+06 3 0.2170E+05 0.2590E+05 0.2697E+05 4 0.2368E+05 0.2384E+05 0.2384E+05 5 0.2370E+05 0.2384E+05 0.2401E+05 6 0.2370E+05 0.2370E+05 0.2370E+05 iter 하한 최고 상한 전류 상한 6 0.2370E+05 7 0.2403E+05 0.2470E+05 0.2470E+05 8 0.2433E+05 0.2470E+05 0.2694E+05 9 0.2441E+05 0.2470E+05 0.2602E+05 10 0.2453E+05 0.2470E+05 0.2499E+05 11 0.2455E+05 0.2470E+05 0.2483E+05 12 0.2461E+05 0.2467E+05 0.2467E+05 13 0.2461E+05 0.2467E+05 0.2469E+05 14 0.2461E+05 0.2465E+05 0.2465E+05 15 0.2463E+05 0.2465E+05 0.2467E+05 16 0.2463E+05 0.2465E+05 0.2465E+05 17 0.2464E+05 0.2465E+05 0.2465E+05 18 0.2464E+05 0.2464E+05 0.2464E+05 19 0.2464E+05 0.2464E+05 0.2464E+05 20 0.2464E+05 0.2464E+05 0.2464E+05 21 0.2464E+05 0.2464E+05 0.2464E+05 22 0.2464E+05 0.2464E+05 0.2464E+05 일반출구
솔루션 출력 파일
솔루션 출력 파일에는 DECIS 실행의 솔루션 보고서가 포함되어 있습니다. 이름은 "MODEL.SOL"입니다. 파일에는 발견된 최상의 목적 함수 값, 해당하는 1단계 변수 값, 해당하는 최적의 2단계 비용, 문제의 최적 목적에 대한 하한 및 상한이 포함되어 있습니다. 또한 유니버스 시나리오 수와 중지 허용 오차 설정이 보고됩니다. 문제 해결을 위해 결정론적 전략을 사용하는 경우 정확한 값이 보고됩니다. 몬테카를로 샘플링을 사용하는 경우 추정에 사용된 추정값, 분산, 표본 크기가 보고됩니다. 정확한 상한 및 하한 대신, 실제 최적 솔루션이 95% 신뢰도에 있는 확률적 상한 및 하한, 95% 신뢰 구간이 보고됩니다. 솔루션 출력 파일에 대한 자세한 설명은 DECIS 사용자 가이드에서 확인할 수 있습니다.
디버그 출력 파일
디버그 출력 파일에는 문제, 크레이지 슬롯변수 및 솔루션에 대한 중요한 정보가 포함된 DECIS 실행의 표준 출력이 포함되어 있습니다. 또한 DECIS 실행 중에 발생할 수 있는 오류 메시지도 포함되어 있습니다. DECIS가 실행을 성공적으로 완료하지 못한 경우 일반적으로 디버그 출력 파일의 정보를 사용하여 문제의 원인을 찾을 수 있습니다. 표준 출력이 충분한 정보를 제공하지 않으면 디버그 크레이지 슬롯변수를 설정할 수 있습니다.ibug크레이지 슬롯변수 입력 파일을 더 높은 값으로 설정하고 추가 디버그 출력을 얻습니다. 디버그 출력 파일에 대한 자세한 설명은 DECIS 사용자 가이드에서 확인할 수 있습니다.
최적화기 출력 파일
최적화기 출력 파일 "MODEL.MO"에는 DECIS가 서브루틴으로 호출할 때 MINOS의 모든 출력이 포함되어 있습니다. MINOS 사양 파일에서 적절한 "PRINT LEVEL"을 설정하여 출력해야 하는 세부 수준을 지정할 수 있습니다. 최적화 프로그램 출력 파일 "MODEL.CPX"는 마스터 및 하위 문제를 해결할 때 CPLEX에서 메시지와 반복 로그(환경 변수를 사용하여 전환한 경우)를 보고합니다.
GAMS/DECIS 옵션 설명
DECIS 솔버 옵션
| 옵션 | 설명 | 기본값 |
|---|---|---|
| I버그 | 디버그 출력 | 0 |
| ireg | 정규화된 분해에 대한 표시기 - MINOS에만 해당 | 0 |
| I스크래치 | 출력 및 디버그를 위한 내부 장치 번호 | 17 |
| ISrat | 사용된 솔루션 전략을 정의 | 3 |
| iwrite | 하위 문제 출력 | 0 |
| NSamples | 추정에 사용된 샘플 크기 | 100 |
| nzrows | 마스터 문제의 컷을 위해 예약된 행 수 | 100 |
| 로 | 목적 함수에서 정규화 항의 rho 크레이지 슬롯변수 | 1000 |
| 톨벤 | 분해 알고리즘 중지에 대한 허용 오차 | 1e-7 |
| 톨W | 디버그 솔루션 출력 작성 시 허용 오차 | 1e-9 |
I버그 (정수): 디버그 출력↵
기본값:
0
값 의미 0DECIS는 디버그 출력을 작성하지 않습니다. 1각 반복의 마스터 문제 해결 2값 1 더하기 시나리오 지수 및 해결된 각 하위 문제에 대한 최적의 목표 값 3값 2 + 중요도 샘플링에 관한 정보 4값 3 + 컷의 최적 이중 변수 5값 4에 계수와 컷의 오른쪽을 더한 값 6값 5 + MPS 형식의 마스터 문제 및 하위 문제 덤프
ireg (부울): 정규화된 분해에 대한 표시기 - MINOS에만 해당↵
기본값:
0
I스크래치 (정수): 출력 및 디버그를 위한 내부 장치 번호↵
범위:
1, ..., 무한기본값:
17
istrat (정수): 사용된 솔루션 전략을 정의↵
기본값:
3
값 의미 1기대값 문제 해결 2몬테카를로 중요도 샘플링을 사용하여 확률론적 문제를 해결합니다. 3istrat = 1 더하기 istrat = 2를 참조함 4확률론적 우주 문제를 해결합니다. 5istrat = 1 더하기 istrat = 4를 참조함 6조악한 몬테카를로 샘플링을 사용하여 확률론적 문제를 해결합니다. 7istrat = 1 더하기 istrat = 6을 참조함 8몬테 카를로 사전 샘플링을 사용하여 확률론적 문제를 해결합니다. 9istrat = 1 더하기 istrat = 8을 참조함 10통제 변량을 사용하여 확률론적 문제를 해결합니다. 11istrat = 1 더하기 istrat = 10을 참조합니다.
iwrite (정수): 하위 문제 출력↵
기본값:
0
값 의미 0최적화기 출력이 기록되지 않습니다 1최적화 프로그램 출력이 파일에 기록됩니다.
NSamples (정수): 추정에 사용된 표본 크기↵
범위:
30, ..., 무한기본값:
100
nzrows (정수): 마스터 문제의 컷용으로 예약된 행 수↵
범위:
1, ..., 무한기본값:
100
로 (진짜): 목적 함수에서 정규화 항의 rho 크레이지 슬롯변수↵
기본값:
1000
톨벤 (실제): 분해 알고리즘 중지에 대한 허용오차↵
기본값:
1e-7
톨W (진짜): 디버그 솔루션 출력 작성 시 허용 오차↵
기본값:
1e-9
부록 A - GAMS/DECIS 예시 예시
예 APL1P
* APL1P 테스트 모델
* Gerd Infanger 박사, 1997년 11월
g 생성기 /g1, g2/를 설정합니다.
dl 수요 수준 설정 /h, m, l/;
크레이지 슬롯변수 알파(g) 가용성 / g1 0.68, g2 0.64 /;
크레이지 슬롯변수 ccmin(g) 최소 용량 / g1 1000, g2 1000 /;
크레이지 슬롯변수 ccmax(g) 최대 용량 / g1 10000, g2 10000 /;
크레이지 슬롯변수 c(g) 투자 / g1 4.0, g2 2.5 /;
테이블 f(g,dl) 운영 비용
흠 내가
g1 4.3 2.0 0.5
g2 8.7 4.0 1.0;
크레이지 슬롯변수 d(dl) 수요 / h 1040, m 1040, l 1040 /;
크레이지 슬롯변수 us(dl) 미처리 수요 비용 / h 10, m 10, l 10 /;
무료 가변 tcost 총 비용;
양의 변수 x(g) 발전기 용량;
양의 변수 y(g, dl) 작동 수준;
양수 변수 s(dl) 제공되지 않은 수요;
방정식
비용 총비용
cmin(g) 최소 용량
cmax(g) 최대 용량
omax(g) 최대 작동 수준
수요(dl)는 수요를 충족시킵니다.
비용 .. tcost =e= sum(g, c(g)*x(g))
+ 합계(g, 합계(dl, f(g,dl)*y(g,dl)))
+ 합계(dl,us(dl)*s(dl));
cmin(g) .. x(g) =g= ccmin(g);
cmax(g) .. x(g) =l= ccmax(g);
omax(g) .. sum(dl, y(g,dl)) =l= alpha(g)*x(g);
수요(dl) .. sum(g, y(g,dl)) + s(dl) =g= d(dl);
모델 apl1p /all/;
* 결정 단계 설정
x.stage(g) = 1;
y.stage(g, dl) = 2;
s.stage(dl) = 2;
cmin.stage(g) = 1;
cmax.stage(g) = 1;
omax.stage(g) = 2;
수요.단계(dl) = 2;
* 독립적인 확률론적 크레이지 슬롯변수 정의
스토크 설정 /out, pro /;
오메가1 / o11, o12, o13, o14 / 설정;
테이블 v1(스토크, 오메가1)
o11 o12 o13 o14
아웃 -1.0 -0.9 -0.5 -0.1
프로 0.2 0.3 0.4 0.1
;
오메가2 / o21, o22, o23, o24, o25 / 설정;
테이블 v2(스토크, 오메가2)
o21 o22 o23 o24 o25
아웃 -1.0 -0.9 -0.7 -0.1 -0.0
프로 0.1 0.2 0.5 0.1 0.1
;
오메가3 / o31, o32, o33, o34 / 설정;
테이블 v3(스토크, 오메가1)
o11 o12 o13 o14
아웃 900 1000 1100 1200
프로 0.15 0.45 0.25 0.15
;
오메가4 / o41, o42, o43, o44 / 설정;
테이블 v4(스토크,오메가1)
o11 o12 o13 o14
아웃 900 1000 1100 1200
프로 0.15 0.45 0.25 0.15
;
오메가5 / o51, o52, o53, o54 / 설정;
테이블 v5(스토크,오메가1)
o11 o12 o13 o14
아웃 900 1000 1100 1200
프로 0.15 0.45 0.25 0.15
;
* 분포 정의
파일 stg /MODEL.STG/;
stg를 넣어;
"INDEP DISCRETE"를 입력하세요. /;
루프(오메가1,
"x g1 omax g1 ", v1("out", omega1), " period2 ", v1("pro", omega1) /;
);
놓다 "*" /;
루프(오메가2,
"x g2 omax g2 ", v2("out", omega2), " period2 ", v2("pro", omega2) /;
);
놓다 "*" /;
루프(오메가3,
put "RHS 수요 h", v3("out", omega3), " period2 ", v3("pro", omega3) /;
);
놓다 "*" /;
루프(오메가4,
"RHS 수요 m ", v4("out", omega4), " period2 ", v4("pro", omega4) /;
);
놓다 "*" /;
루프(오메가5,
"RHS 수요 l", v5("out", omega5), " period2 ", v5("pro", omega5) /;
);
putclose stg;
* DECIS를 옵티마이저로 설정
* DECISM은 MINOS를 사용하고, DECISC는 CPLEX를 사용합니다.
옵션 lp=결단론;
apl1p.optfile = 1;
tcost를 최소화하는 lp를 사용하여 apl1p를 해결합니다.
스칼라 ccost 자본 비용;
스칼라 ocost 운영 비용;
ccost = sum(g, c(g) * x.l(g));
ocost = tcost.l - ccost;
x.l, tcost.l, ccost, ocost, y.l, s.l을 표시합니다.예 APL1PCA
* APL1PCA 테스트 모델
* Gerd Infanger 박사, 1997년 11월
g 생성기 /g1, g2/를 설정합니다.
dl 수요 수준 설정 /h, m, l/;
크레이지 슬롯변수 알파(g) 가용성 / g1 0.68, g2 0.64 /;
크레이지 슬롯변수 ccmin(g) 최소 용량 / g1 1000, g2 1000 /;
크레이지 슬롯변수 ccmax(g) 최대 용량 / g1 10000, g2 10000 /;
크레이지 슬롯변수 c(g) 투자 / g1 4.0, g2 2.5 /;
테이블 f(g,dl) 운영 비용
흠 내가
g1 4.3 2.0 0.5
g2 8.7 4.0 1.0;
크레이지 슬롯변수 d(dl) 수요 / h 1040, m 1040, l 1040 /;
크레이지 슬롯변수 us(dl) 미처리 수요 비용 / h 10, m 10, l 10 /;
무료 가변 tcost 총 비용;
양의 변수 x(g) 발전기 용량;
양의 변수 y(g, dl) 작동 수준;
양수 변수 s(dl) 제공되지 않은 수요;
방정식
비용 총비용
cmin(g) 최소 용량
cmax(g) 최대 용량
omax(g) 최대 작동 수준
수요(dl)는 수요를 충족시킵니다.
비용 .. tcost =e= sum(g, c(g)*x(g))
+ 합계(g, 합계(dl, f(g,dl)*y(g,dl)))
+ 합계(dl,us(dl)*s(dl));
cmin(g) .. x(g) =g= ccmin(g);
cmax(g) .. x(g) =l= ccmax(g);
omax(g) .. sum(dl, y(g,dl)) =l= alpha(g)*x(g);
수요(dl) .. sum(g, y(g,dl)) + s(dl) =g= d(dl);
모델 apl1p /all/;
* 결정 단계 설정
x.stage(g) = 1;
y.stage(g, dl) = 2;
s.stage(dl) = 2;
cmin.stage(g) = 1;
cmax.stage(g) = 1;
omax.stage(g) = 2;
수요.단계(dl) = 2;
* 독립적인 확률론적 크레이지 슬롯변수 정의
스토크 설정 /out, pro/;
오메가1 / o11, o12 / 설정;
테이블 v1(스토크,오메가1)
o11 o12
아웃 2.1 1.0
프로 0.5 0.5 ;
오메가2 / o21, o22 / 설정;
테이블 v2(스토크, 오메가2)
o21 o22
아웃 2.0 1.0
프로 0.2 0.8 ;
크레이지 슬롯변수 hm1(dl) / h 300., m 400., l 200. /;
크레이지 슬롯변수 hm2(dl) / h 100., m 150., l 300. /;
* 분포 정의(MODEL.STG 파일 작성)
파일 stg / MODEL.STG /;
stg를 넣어;
"블록 분리"를 입력하세요. /;
스칼라 h1;
루프(오메가1,
"BL v1 period2 ", v1("pro", omega1)/;
루프(dl,
h1 = hm1(dl) * v1("아웃", 오메가1);
"RHS 수요", dl.tl:1, " ", h1/을 입력합니다.
);
);
루프(오메가2,
" BL v2 period2 ", v2("pro", omega2) /;
루프(dl,
h1 = hm2(dl) * v2("출력", 오메가2);
"RHS 수요", dl.tl:1, " ", h1/을 입력합니다.
);
);
putclose stg;
* DECIS를 옵티마이저로 설정
* DECISM은 MINOS를 사용하고, DECISC는 CPLEX를 사용합니다.
옵션 lp=결단론;
apl1p.optfile = 1;
tcost를 최소화하는 lp를 사용하여 apl1p를 해결합니다.
스칼라 ccost 자본 비용;
스칼라 ocost 운영 비용;
ccost = sum(g, c(g) * x.l(g));
ocost = tcost.l - ccost;
x.l, tcost.l, ccost, ocost, y.l, s.l을 표시합니다.
부록 B - 오류 메시지
- MODEL.STO의 오류: kwd, word1, word2가 첫 번째 블록 구현에서 일치하지 않았습니다.
확률적 크레이지 슬롯변수의 지정이 올바르지 않습니다. 블록의 첫 번째 결과 사양에 확률론적 크레이지 슬롯변수가 지정되지 않았습니다. 블록의 첫 번째 결과를 지정할 때 항상 블록에 해당하는 모든 확률적 크레이지 슬롯변수를 포함합니다. - 옵션 word1 word2는 지원되지 않습니다.
확률론적 파일에 지원되지 않는 입력 분포를 지정했습니다. 지원되는 배포판은 DECIS 매뉴얼을 확인하세요. - 시간 파일 오류
시간 파일이 올바르지 않습니다. MODEL.TIM 파일을 확인하십시오. 시간 파일 형식은 DECIS 매뉴얼을 확인하세요. - MODEL.STO 오류: 목표에 대한 확률론적 RHS, 행 이름2
확률적 파일의 사양이 올바르지 않습니다. 목표 행(row name2)에 대해 확률론적 오른쪽을 지정하려고 했습니다. MODEL.STO 파일을 확인하세요. - MODEL.STO의 오류: 마스터의 확률론적 RHS, 행 이름2
확률적 파일의 사양이 올바르지 않습니다. 마스터 문제(행 이름2)에 대해 확률론적 우변을 지정하려고 했습니다. MODEL.STO 파일을 확인하세요. - MODEL.STO 오류: 열을 찾을 수 없음, name1
확률론적 파일의 사양이 올바르지 않습니다. 확률론적 파일 name1의 항목이 코어 파일에 없습니다. MODEL.STO 파일을 확인하세요. - MODEL.STO 오류: 잘못된 열/행 조합, (name1/name2)
확률론적 파일(MODEL.STO)에 잘못된 사양이 포함되어 있습니다. - MODEL.STO의 오류: 열/행(name1, name2)에 대해 (B 또는 D 매트릭스에서) 0이 아닌 항목을 찾을 수 없습니다.
B-매트릭스 또는 D-매트릭스의 name1(열)과 name2(행) 조합에 대해 0이 아닌 항목이 없습니다. 확률론적 파일(MODEL.STO)에서 해당 항목을 확인하십시오. 코어 파일(MODEL.COR)의 (열/행)에 대해 0이 아닌 계수를 포함할 수 있습니다. - MODEL.STO 오류: 열을 찾을 수 없음, name2
확률 파일(MODEL.STO)에 지정한 컬럼 이름이 코어 파일(MODEL.COR)에 존재하지 않습니다. MODEL.STO 파일을 확인하세요. - MODEL.STO의 오류: 마스터의 확률적 바운드, 열 이름2
1단계 변수 name2에 확률론적 한계를 지정했습니다. MODEL.STO 파일을 확인하세요. - MODEL.STO 오류: 열 이름2에 대한 잘못된 바인딩 유형(kwd)
지정한 바인딩 유형 kwd가 유효하지 않습니다. MODEL.STO 파일을 확인하세요. - MODEL.STO 오류: 행을 찾을 수 없음, name2
확률적 파일의 사양이 올바르지 않습니다. 행 이름 name2가 코어 파일에 존재하지 않습니다. MODEL.STO 파일을 확인하세요. - 오류: 실행 불가능한 문제
해결된 문제(마스터 또는 하위 문제)가 실행 불가능한 것으로 판명되었습니다. 하위 문제가 실현 불가능한 경우 해당 문제가 "완전한 의지" 속성을 갖는 것으로 지정하지 않은 것입니다. 완전 의지란 첫 번째 단계 결정이 하위 문제로 전달되더라도 하위 문제에는 실행 가능한 솔루션이 있음을 의미합니다. 이는 특히 샘플링 기반 솔루션 전략을 사용하는 경우 문제를 지정하는 가장 좋은 방법입니다. DECIS가 실행 가능한 하위 문제를 발견하면 실행 가능성 삭감을 추가하고 실행을 계속합니다. DECIS가 실행 불가능한 마스터 문제에 직면하면, 지정한 문제는 실행 불가능하고 DECIS는 종료됩니다. 문제 구성을 확인하세요. - 오류: 문제는 무한합니다
해결된 문제(마스터 또는 하위 문제)는 무한한 것으로 나타났습니다. 문제 구성을 확인하세요. - 오류: 오류 코드: 알림
문제(마스터 또는 하위 문제) 해결 중 오류 코드와 함께 솔버가 반환되었습니다. 오류 코드의 의미를 알아보려면 솔버(MINOS 또는 CPLEX)의 사용자 매뉴얼을 참조하세요. 문제 구성을 확인하세요. - 오류: SPECS 파일을 읽는 중
MINOS 사양 파일(MINOS.SPC)에 오류가 포함되어 있습니다. 사양 파일을 확인하세요. MINOS 사용자 매뉴얼을 참조하세요. - 오류: mps 파일을 읽는 중, mpsfile
핵심 파일 mpsfile(예: MODEL.COR)이 올바르지 않습니다. MPS 형식에 관한 지침은 DECIS 매뉴얼을 참조하세요. - 오류: 문제의 행 1은 사용 가능한 행이 아닙니다.
문제의 첫 번째 행은 자유 행이 아닙니다(즉, 목표 행이 아닙니다). 첫 번째 행을 자유 행으로 만들려면 행 유형을 'N'으로 설정합니다. 문제의 MPS 사양은 DECIS 매뉴얼을 참조하세요. - 오류: 이름을 찾을 수 없음 = nam1, nam2
코어 파일(MODEL.COR)에 오류가 있습니다. 문제를 올바르게 분해할 수 없습니다. 코어 파일을 확인하고 모델 공식을 확인하세요. - 오류: 계단 형태의 행렬이 아님
코어 파일(MODEL.COR)에 지정된 문제의 제약 조건 매트릭스가 계단 형식이 아닙니다. 1단계 행과 열과 2단계 행과 열이 서로 혼합되어 있습니다. 코어 파일을 지정하는 방법은 DECIS 매뉴얼을 확인하세요. 코어 파일을 확인하여 행과 열의 순서를 변경해 보세요.
DECIS 라이센스 및 보증
이 라이센스와 함께 제공되는 소프트웨어("소프트웨어")은 Gerd Infanger의 자산이며 저작권법에 의해 보호됩니다. Gerd Infanger가 계속해서 소프트웨어를 소유하는 동안 귀하는 본 라이센스에 동의한 후 소프트웨어를 사용할 수 있는 특정 권리를 갖게 됩니다. 본 라이센스와 함께 제공되는 라이센스 부록에 의해 수정될 수 있는 경우를 제외하고, 본 소프트웨어 사용과 관련된 귀하의 권리와 의무는 다음과 같습니다.
- 당신은 할 수 있습니다
- 단일 컴퓨터에서 하나의 소프트웨어 사본을 사용하십시오.
- 보관 목적으로 소프트웨어 사본 하나를 만들거나 소프트웨어를 컴퓨터의 하드 디스크에 복사하고 원본을 보관 목적으로 보관하십시오.
- 해당 네트워크를 통해 소프트웨어에 액세스할 수 있는 각 컴퓨터에 대해 라이센스가 부여된 소프트웨어 사본이 있는 경우 네트워크에서 소프트웨어를 사용하십시오. Gerd Infanger에게 서면으로 통지한 후 귀하가 소프트웨어 사본을 보유하지 않고 양수인이 본 계약 조건에 동의한다는 조건 하에 소프트웨어를 영구적으로 다른 사람 또는 법인에게 양도하십시오.
- 당신은 그렇지 않을 수도 있습니다
- 소프트웨어와 함께 제공되는 문서를 복사하세요.
- 소프트웨어의 일부를 재라이센스, 임대 또는 임대합니다.
- 역엔지니어링, 디컴파일, 분해, 수정, 번역, 소프트웨어 소스 코드 발견을 시도하거나 소프트웨어에서 파생물 생성을 시도합니다.
제한적 보증:
Gerd Infanger는 소프트웨어가 배포된 미디어에 소프트웨어가 배송된 날로부터 30일 동안 결함이 없음을 보증합니다. 보증 위반 시 귀하의 유일한 구제책은 Gerd Infanger가 자신의 선택에 따라 보증 기간 내에 Gerd Infanger에 반환한 결함 있는 미디어를 교체하거나 귀하가 소프트웨어에 대해 지불한 금액을 환불하는 것입니다. Gerd Infanger는 소프트웨어가 귀하의 요구 사항을 충족하거나 소프트웨어 작동이 중단되지 않거나 소프트웨어에 오류가 없을 것이라고 보증하지 않습니다.
위 보증은 배타적이며 상품성, 특정 목적에의 적합성 및 비침해에 대한 묵시적인 보증을 포함하여 명시적이든 묵시적이든 다른 모든 보증을 대신합니다.
손해 면책조항:
여기에 명시된 구제책이 본질적인 목적을 달성하지 못하더라도 GERD INFANGER는 이익 손실이나 데이터 손실을 포함하여 특별하고 결과적이며 간접적이거나 유사한 손해에 대해 귀하에게 책임을 지지 않습니다. GERD INFANGER가 그러한 손해의 가능성에 대해 조언을 받은 경우에도 소프트웨어를 사용하지 않거나 사용할 수 없는 경우.
어떤 경우에도 GERD INFANGER의 책임은 소프트웨어 구매 가격을 초과할 수 없습니다. 위에 명시된 면책 조항 및 제한 사항은 귀하가 소프트웨어를 수락하는지 여부에 관계없이 적용됩니다.
일반:
본 계약은 캘리포니아주 법률의 적용을 받습니다. 본 계약은 본 라이센스와 함께 제공되는 라이센스 부록 또는 귀하와 Gerd Infanger가 모두 서명한 서면 문서에 의해서만 수정될 수 있습니다. 본 계약과 관련하여 질문이 있거나 어떤 이유로든 Gerd Infanger에게 연락하고 싶다면 다음을 적어주세요.
Gerd Infanger, 1590 Escondido Way, Belmont, CA 94002, USA.
- 참고
- 1)저작권 © 1989 – 1999, Gerd Infanger 제작. 모든 권리 보유. GAMS/DECIS 사용자 가이드는 저작권으로 보호되며 모든 권리는 보유됩니다. 이 문서의 정보는 사전 통지 없이 변경될 수 있으며 Gerd Infanger 측의 약속을 나타내지 않습니다. 이 문서에 설명된 DECIS 소프트웨어는 라이센스 계약에 따라 제공되며 이 계약 조건에 따라서만 사용할 수 있습니다. DECIS 소프트웨어는 Infanger Investment Technology, LLC 또는 Gams Development Corporation을 통해 라이선스를 받을 수 있습니다.