슬롯 사이트문

소개

디스플레이22469_22909GAMS 출력. 그 외에도디스플레이성명, GAMS 제안쓰기 기능 넣기, 보고서를 생성하는 보다 정교한 방법으로, 사용자는 개별 항목의 출력을 훨씬 더 유연하게 제어할 수 있습니다.

구문

일반적으로 다음 구문은디스플레이GAMS의 진술은 다음과 같습니다:

슬롯 사이트 ID | 인용된 텍스트 , ident | 인용된 텍스트;

키워드디스플레이이것이 다음임을 나타냅니다.디스플레이문장. 그 뒤에는식별자. 식별자가 세트 또는 매개변수인 경우 세트 또는 매개변수 자체의 이름만 지정됩니다. 식별자가 변수, 방정식 또는 모델인 경우 접미사가 와야 합니다(예: a변수 속성, 방정식 속성또는모델 속성각각. 평소처럼,인용된 텍스트작은따옴표나 큰따옴표로 묶어야 합니다. 식별자와 텍스트는 임의의 순서로 혼합 및 일치될 수 있으며 전체 명령문은 여러 줄에 걸쳐 계속될 수 있습니다. 에 대한조건부 슬롯 사이트달러 조건이 키워드 뒤에 올 수 있습니다.디스플레이.

display 문에 의해 생성된 출력은 라벨과 데이터로 구성됩니다. 다차원 세트의 경우 키워드(멤버십을 나타냄)이 값 대신 사용됩니다.

참고
모든 데이터 유형에 대해 기본값이 아닌 값만 슬롯 사이트됩니다.

기본값은 일반적으로 0입니다. 변수와 방정식의 일부 상한 및 하한은 예외입니다(속성.lo그리고.up). 기본값은 섹션에 나열되어 있습니다.변수 속성그리고수식 속성각각.

display 문의 구문은 다음 예에서 설명됩니다:

s / s1*s4 /를 설정합니다.
           t / t5*t7 /
           st(s,t) / s1.t5, s1.t7, s2.t6, s3.t7, s4.t5 / ;
매개변수 p(s) / s1 0.33, s3 0.67 /
           q(t) / t5 0.33, t7 0.67 / ;
변수 v(s,t) ;
v.l(s,t) = p(s)*q(t);
'먼저 간단한 집합', s, '다음에 2차원 집합', st, '다음에 매개변수', p를 슬롯 사이트합니다.
        '변수의 활동 수준', v.l;

display 문은 목록 파일에 다음 줄을 생성합니다:

---- 8 먼저 간단한 세트

---- 8개 세트

s1, s2, s3, s4

---- 8 다음 2차원 세트

---- 8개 세트

            t5 t6 t7

s1 예 예
s2 예
s3 예
s4 예

---- 8 다음 매개변수

---- 8개 매개변수 p

s1 0.330, s3 0.670

---- 8이면 변수의 활동 수준

---- 8개 변수 v.L

            t5 t7

초1 0.109 0.221
s3 0.221 0.449

세트와 같은 다차원 식별자의 경우st및 변수의 레벨 값v, 데이터는 기본적으로 읽기 쉬운 표 형식으로 보고됩니다. 기본값이 아닌 값만 슬롯 사이트됩니다. 0 값을 슬롯 사이트하려면 특수 값EPS사용할 수 있습니다. 위의 예에서 매개변수의 모든 값은p다음 줄을 추가하면 슬롯 사이트될 수 있습니다.

display '모든 값 슬롯 사이트';
p(s)$(p(s) 아님) = EPS;
디스플레이 p;

다음 줄은 목록 파일에 슬롯 사이트됩니다.

---- 11 모든 값 슬롯 사이트

---- 13 매개변수 p

s1 0.330, s2 EPS, s3 0.670, s4 EPS

슬롯 사이트의 대안EPS사용하는 것입니다약어그러나 결과 매개변수로는 계산을 수행할 수 없습니다.

다차원 식별자 슬롯 사이트: 라벨 순서

우리는 2차원 식별자가 테이블 형식으로 슬롯 사이트되는 것을 보았습니다. 다차원 식별자를 슬롯 사이트하기 위한 기본 레이아웃은 다음에 요약되어 있습니다.표 1. 기본 형식은 다음을 사용하여 수정할 수 있습니다.로컬 디스플레이 제어. 표의 숫자는 식별자의 도메인 목록에서 인덱스 위치를 나타냅니다. 예를 들어 다음과 같이 슬롯 사이트하면x, 여기서x다음과 같이 선언되었습니다.x(i,j,k,l), 그러면i레이블(첫 번째 색인)은 기본적으로 개별 하위 테이블과 연결됩니다.j그리고k행 라벨과l(네 번째이자 마지막 색인)을 열 제목으로 바꿉니다.

색인 수하위 테이블행의 인덱스 위치칼럼
1 목록 형식
2 - 1 2
3 - 1,2 3
4 1 2,3 4
5 1,2 3,4 5
6 1,2,3 4,5 6

표 1:다차원 식별자 슬롯 사이트를 위한 기본 레이아웃

7부터 최대 인덱스까지의 경우 자연스러운 진행을 따릅니다. 현재 최대 인덱스 수는 다음을 참조하세요.치수. 레이블은 첫 번째 인덱스 위치에서 가장 느리게 변하고 가장 높은 인덱스 위치에서는 가장 빠릅니다. 각 인덱스 위치 내에서 라벨의 순서는 라벨의 GAMS 입력 순서입니다. 일부 사용자는 라벨 순서를 조작해야 할 수도 있습니다.

참고
각 색인 위치에 대한 라벨이 디스플레이 출력에 나타나는 순서를 변경하는 유일한 방법은 GAMS 프로그램에서 라벨의 슬롯 사이트 순서를 변경하는 것입니다.

이것은 필요한 순서대로 모든 라벨을 나열하는 것이 유일한 목적인 세트를 선언함으로써 가장 쉽게 수행됩니다. 이 세트를 GAMS 프로그램의 첫 번째 선언으로 만드세요.

식별자의 색인 순서는 항상 선언문의 순서와 같습니다. 마음에 드는 순서대로 선언하거나 다음과 같이 다른 순서로 새 식별자를 할당할 수 있습니다.아래.

다차원 디스플레이의 예

다음 예를 고려해보세요. 매개변수x에는 4개의 차원 또는 인덱스 위치가 있습니다. 매개변수 형식을 사용하여 초기화한 후 아래와 같이 슬롯 사이트됩니다.

첫 번째 인덱스 설정 / 첫 번째, 두 번째 /
    j 두 번째 인덱스 / 하나, 둘, 셋 /
    k 세 번째 인덱스 / a, b /
    l 네 번째 인덱스 / i, ii / ;

매개변수
    x(i,j,k,l) 4차원 구조 /
               두 번째.one.a.i 0.00013, 첫 번째 . three.b.i -6.3161
               첫 번째 .one.b.i 5.63559, 두 번째.two .b.i 20000.00
               second.one.b.ii -17.29948, 첫 번째 .two .b.ii 10.3457
               첫 번째 .two.a.ii 0.02873, 두 번째.one .a.ii 1.0037
               second.two.a.ii +inf, 첫 번째 .two .a.i -2.9393
               첫 번째 .one.a.ii 0.00000 /
    y(k,l,i,j) 인덱스 순서가 변경된 4차원 구조;
y(k,l,i,j) = x(i,j,k,l);
x, y를 슬롯 사이트;

변수용x코드 조각은 다음과 같은 출력을 생성합니다:

-- 16 PARAMETER x 4차원 구조

인덱스 1 = 첫 번째

                  나 ii

하나 .b 5.636
두 .a -2.939 0.029
두 .b 10.346
three.b -6.316

인덱스 1 = 두 번째

                나 ii

하나.a 1.300000E-4 1.004
one.b -17.299
2.a +INF
two.b 20000.000

첫 번째 색인 위치의 각 라벨에 대해 하나씩, 두 개의 하위 테이블이 있음을 확인하세요. 라벨의 순서는 매개변수의 입력 데이터 목록과 동일하지 않습니다.x, 그러나 구동 세트의 라벨 순서를 따릅니다. 크기가 1에 가까운 숫자는 고정된 형식으로 슬롯 사이트되고 세 자리 숫자로 반올림됩니다(기본값). 이 기본값은 다음과 같이 수정될 수 있습니다.디스플레이 제어, 다음 섹션의 주제입니다. 이와 대조적으로 특히 작은 값은 E 형식으로 나타납니다. 즉, 고정 형식에서는 모두 0으로 슬롯 사이트됩니다. 또한 목록에 있는 0은x('첫번째','하나','a','ii')34553_34705

또한 매개변수 y를 사용하여 동일한 데이터를 다른 색인 순서로 슬롯 사이트하는 방법에 대해 알아보세요.

디스플레이 제어

GAMS를 사용하면 사용자가 다음 수를 수정할 수 있습니다.슬롯 사이트 목록의 행 및 열 레이블과 슬롯 사이트되는 데이터의 정확성. 전역 및 로컬 디스플레이 컨트롤이 있습니다. 전역 디스플레이 제어를 통해 사용자는 둘 이상의 디스플레이 문에 영향을 미칠 수 있습니다. 특정 데이터를 특정 형식으로 나열해야 하는 경우 로컬 디스플레이 컨트롤을 사용하여 전역 컨트롤을 재정의할 수 있습니다. 두 컨트롤 모두 다음과 같이 표현됩니다.옵션 문.

전역 디스플레이 제어

전역 디스플레이 제어의 첫 번째 옵션은 소수점 뒤에 슬롯 사이트되는 자릿수를 지정합니다. 아래 슬롯 사이트된 대로 특정 식별자에 대해 변경되지 않는 한 옵션 문 다음에 나오는 모든 디스플레이 출력에 나타나는 숫자에 영향을 줍니다. 이 옵션 문의 일반적인 형식은 다음과 같습니다.

옵션 소수점 = 값;

키워드옵션이것이 옵션 문임을 나타냅니다.소수점특정 옵션이고은 0에서 8 사이의 정수입니다. 값 0은 소수점뿐만 아니라 소수점도 슬롯 사이트하지 않습니다. 기본값은 다음과 같습니다.십진수=3, 이 옵션을 설정해도 필드 너비는 변경되지 않고 소수 자릿수만 변경됩니다. 증가소수점결과적으로 더 많은 숫자가 슬롯 사이트됩니다. 더 긴 고정 형식 결과가 필드 너비를 초과하는 경우 숫자가 E 형식으로 나타날 수 있습니다.

슬롯 사이트 목적의 반올림에 대한 설명이 적절합니다. 동점인 경우 슬롯 사이트 루틴은반올림 대 짝수동점 분리 규칙. 예를 들어, 다음과 같이십진수=0, 1.5와 2.5 모두 다음과 같이 슬롯 사이트됩니다.2. 마찬가지로,십진수=1, 2.25는 다음과 같이 슬롯 사이트됩니다.2.22.75는 다음과 같이 슬롯 사이트됩니다.2.8.

이전 섹션에서 논의된 예에 대한 다음 확장을 고려하십시오.

옵션 소수점 = 1;  디스플레이 x;

GAMS는 다음을 사용하여 숫자를 슬롯 사이트합니다.슬롯 사이트 너비를 초과하거나 모두 0을 슬롯 사이트하는 것을 방지하기 위해 필요한 경우 E 형식입니다. 출력은 다음과 같습니다:

-- 14 PARAMETER x 4차원 구조

인덱스 1 = 첫 번째

                  나 ii

하나 .b 5.6
두 .a -2.9 2.873000E-2
두 .b 10.3
three.b -6.3

인덱스 1 = 두 번째

                나 ii

하나.a 1.300000E-4 1.0
one.b -17.3
2.a +INF
two.b 20000.0

GAMS는 소수점 선택을 무시함을 참고하세요x('첫 번째','두','a','ii')작은 숫자가 0으로 슬롯 사이트되지 않도록 합니다.

전역 디스플레이 제어를 위한 또 다른 옵션은 디스플레이 너비를 수정합니다. 이는 긴 레이블 이름의 경우 특히 중요합니다. 테이블 형식으로 데이터를 슬롯 사이트할 경우 컬럼의 헤더인 라벨 이름은 9자 이후부터 잘립니다. 다음 옵션을 사용하면 더 긴 이름을 전체적으로 슬롯 사이트할 수 있습니다.

옵션 dispwidth = 값;

옵션 이름은dispwidth그리고은 31보다 작거나 같은 양의 정수입니다. 예시는 다음과 같습니다.

'남아프리카 도시'로 설정 / 요하네스버그, Cape_Town /
    j '다른 아프리카 도시들' / 마푸토, 다르에스살람 /
    f(i,j) '직항 항공편' / Johannesburg.Maputo, Johannesburg.Dar_es_Salaam, Cape_Town.Maputo /;
f를 슬롯 사이트 ;

display 문은 다음과 같은 출력을 생성합니다:

---- 4 SET f 직항편 연결

                  마푸토 Dar_es_Sa
요하네스버그 예 예
케이프타운 예

라벨만 참고하십시오.'Dar_es_Salaam'열을 향하고 있기 때문에 잘립니다. 라벨'요하네스버그'행의 레이블이므로 잘리지 않습니다. 이제 슬롯 사이트 문의 너비를 변경하기 위해 다음 줄을 추가합니다.

옵션 dispwidth = 15; 디스플레이 f;

예상대로 출력이 변경되고 라벨이 변경됩니다.'Dar_es_Salaam'더 이상 잘리지 않습니다.

---- 5 SET f 직항편 연결

                       마푸토 다르에스살람

요하네스버그 예 예
케이프타운 예

로컬 디스플레이 제어

특정 식별자의 소수 자릿수를 별도로 제어하는 것이 유용한 경우가 많습니다. 다음 옵션 문은 이를 수행합니다.

옵션 ident:d-값;

ID식별자의 이름을 나타내며d-값은 0~8 범위의 정수입니다. 모든 디스플레이에 슬롯 사이트되는 소수 자릿수입니다.ident다음은 다음과 같습니다d-값.

이 옵션 명령문은 소수점 자리 외에 데이터 레이아웃을 제어하도록 확장될 수 있습니다. 일반적인 형식은 다음과 같습니다.

옵션 ident:d-값:r-값:c-값 ;

여기r-값행 레이블을 형성하기 위해 결합되는 인덱스 위치의 수를 나타냅니다.c-값열 헤더의 색인 수를 의미합니다.

이전 섹션에서 논의된 예는 로컬 디스플레이 제어를 설명하기 위해 추가로 확장되었습니다.

옵션 x:5:3:1; 디스플레이 x;

이 두 명령문은 다음과 같은 출력을 생성합니다:

-- 17 PARAMETER x 4차원 구조

                         나 ii

첫 번째 .one .b 5.63559
첫 번째 .two .a -2.93930 0.02873
첫 번째 .두 .b 10.34570
첫 번째 .3.b -6.31610
두 번째.원 .a 0.00013 1.00370
두 번째.하나 .b -17.29948
두 번째.두 .a +INF
두 번째.두 .b 20000.00000

소수점 5자리가 슬롯 사이트되고 3개의 라벨이 행을 슬롯 사이트하는 데 사용되며 1개의 라벨이 열의 머리 역할을 한다는 점에 유의하세요. 4차원 구조이기 때문에 모든 인덱스가 고려됩니다.

다음 예에서는 행과 열 레이블 각각에 두 개의 색인을 배치하고 소수점 다섯 자리를 유지합니다.

옵션 x:5:2:2; 디스플레이 x;

출력은 다음과 같습니다:

-- 18 PARAMETER x 4차원 구조

                     a.i a.ii b.i b.ii

첫 번째 .one 5.63559
첫 번째 .two -2.93930 0.02873 10.34570
첫 번째 .3 -6.31610
두 번째.원 0.00013 1.00370 -17.29948
두 번째.두 +INF 20000.00000

옵션 명령문에서 도메인의 인덱스 수보다 적은 차원이 지정되면 시작 인덱스의 레이블에 대한 하위 테이블이 생성됩니다. 다음 명령문을 사용하면 디스플레이 레이아웃이 어떻게 변경되는지 관찰하세요.

옵션 x:0:1:1;  디스플레이 x;

출력은 다음과 같습니다.

-- 19 PARAMETER x 4차원 구조

INDEX 1 = 첫 번째 INDEX 2 = 1

            나

비 6

INDEX 1 = 첫 번째 INDEX 2 = 2

            나 ii

-3 2.873000E-2
비 10

인덱스 1 = 첫 번째 인덱스 2 = 3

            나

b -6

INDEX 1 = 두 번째 INDEX 2 = 1

            나 ii

1.300000E-4 1
b -17

INDEX 1 = 두 번째 INDEX 2 = 2

            나 ii

+INF
b 20000

옵션 문은 식별자의 차원에 대해 일관성이 있는지 확인되며 옵션 문에 지정된 차원의 수가 식별자 도메인의 인덱스 수보다 큰 경우 오류 메시지가 발행됩니다.

목록 형식으로 데이터를 생성하는 슬롯 사이트 문

로컬 디스플레이 제어를 위한 옵션 명령문은 다음을 설정하여 목록 형식의 데이터를 생성하는 데 사용될 수 있습니다.r-값0으로:

옵션 ident:d-값:0:c-값;

이 경우에는c-값한 줄에 슬롯 사이트되는 최대 항목 수를 지정합니다. 실제 개수는 페이지 너비와 라벨 개수 및 길이에 따라 달라집니다.

이전 섹션과 동일한 예를 사용하여 다음을 변경합니다.r-값옵션 설명에서 0으로 설정:

옵션 x:5:0:1; 디스플레이 x;
옵션 x:5:0:2; 디스플레이 x;

다양한 영향을 설명하기 위해 하나와 두 개의 열을 지정했습니다.c-값설정. 이 문은 다음과 같은 출력을 생성합니다.

-- 20 PARAMETER x 4차원 구조

첫 번째 .one .b.i 5.63559
첫 번째 .two .ai -2.93930
첫 번째 .두 .a.ii 0.02873
첫 번째 .two .b.ii 10.34570
첫 번째 .3.b.i -6.31610
second.one .ai 0.00013
second.one .a.ii 1.00370
두 번째.원 .b.ii -17.29948
두 번째.두 .a.ii +INF
두 번째.두 .b.i 20000.00000

---- 21 PARAMETER x 4차원 구조

첫 번째 .one .b.i 5.63559, 첫 번째 .two .a.i -2.93930
첫 번째 .two .a.ii 0.02873, 첫 번째 .two .b.ii 10.34570
첫 번째 .3.b.i -6.31610, 두 번째.1 .a.i 0.00013
둘째.원 .a.ii 1.00370, 둘째.원 .b.ii -17.29948
second.two .a.ii +INF, second.two .b.i 20000.00000

이 출력은 라벨 순서를 잘 보여줍니다. 사용되었습니다. 첫 번째 인덱스는 가장 느리고 마지막 인덱스는 가장 빠르며 각 인덱스는 왼쪽의 다음 인덱스가 진행되기 전에 처음부터 끝까지 실행됩니다. 이 순서 체계는 방정식 및 열 목록과 풀이 문에 의해 생성된 솔루션 보고서에도 사용됩니다.

조건부 슬롯 사이트

이 섹션에서는 다음에 익숙하다고 가정합니다.if 문그리고달러 조건.

슬롯 사이트 문은 조건식에 의해 제어될 수 있습니다. 조건문은 논리적 조건이 만족되는 경우에만 항목이 슬롯 사이트되는 효과가 있습니다. GAMS에서 조건부 슬롯 사이트를 표현하는 방법에는 달러 조건과 다음을 사용하는 두 가지 방법이 있습니다.if문장. 달러 조건을 사용하는 구문은 다음과 같습니다.

display$logical_condition ident | 인용된 텍스트 , ident | 인용된 텍스트;

달러 조건은 키워드 뒤에 삽입됩니다.디스플레이. GAMS의 다양한 형태의 조건식에 대한 자세한 내용은 섹션을 참조하세요.논리적 조건그리고필터링 세트. 다음의 간단한 예를 고려해 보세요.

스칼라 x, y;
x = 7;
y = 3;
display$(x-y < 0) "x 빼기 y가 0보다 작은 경우 슬롯 사이트", x, y;

논리적 조건(x-y < 0)슬롯 사이트문을 제어합니다. 이 경우 만족하지 않으므로 슬롯 사이트 출력이 발생하지 않습니다. 값이 인 경우y이 10으로 변경되면 논리 조건이 충족되고 슬롯 사이트 문은 다음 출력을 생성합니다.

---- x 빼기 y가 0보다 작으면 4가 슬롯 사이트됩니다.
            매개변수 x = 7.000
            매개변수 y = 10.000

다음을 사용한 조건부 슬롯 사이트 구문if문은 다음과 같습니다:

if( 논리 조건, 슬롯 사이트 문 );

위의 간단한 예는 다음과 같이 재구성될 수 있습니다:

스칼라 x, y;
x = 7;
y = 3;
if( x-y < 0,
  "x 빼기 y가 0보다 작은 경우 슬롯 사이트", x, y;
);