슬롯 무료체험

소개

키워드슬롯 무료체험다음에서 사용할 수 있는 GAMS 이름을 정의합니다.모델 진술. GAMS 슬롯 무료체험 이름은 모델에서 제약 조건을 생성하는 데 사용되는 기호 대수 관계와 연관되어 있습니다. 대수적 관계는 상수, 수학 연산자, 함수를 사용하여 정의됩니다.세트, 매개변수그리고변수. 변수와 마찬가지로 하나의 GAMS 슬롯 무료체험은 세트 그룹에 대해 정의될 수 있으며 차례로 해당 세트의 요소와 관련된 여러 개별 제약 조건에 매핑될 수 있습니다. 이 장의 예제 코드 대부분은 모델에서 나온 것입니다.위치.

이 장은 다음과 같이 구성되어 있습니다. 먼저 슬롯 무료체험을 선언하고 정의하는 방법을 소개한 다음 슬롯 무료체험 정의의 표현식을 논의하고 슬롯 무료체험 속성에 대한 섹션을 설명합니다. 요약과 빠른 참조로 이 장을 마무리합니다.

수식 선언

슬롯 무료체험모델에서 정의하고 사용하려면 먼저 선언해야 합니다.

구문

an의 선언슬롯 무료체험a와 유사함세트또는매개변수선언. 구문은 아래와 같습니다.

슬롯 무료체험[s] eqn_name [(index_list)] [설명 텍스트] [/eqn_data/] , eqn_name [(index_list)] [설명 텍스트] [/eqn_data/] ;

수식[들]은 하나 이상의 슬롯 무료체험 블록이 곧 선언될 것임을 나타내는 예약어입니다. 슬롯 무료체험 블록은 하나 이상의 개별 제약 조건을 시작할 수 있습니다.Eqn_name는 슬롯 무료체험의 내부 이름이며, an식별자GAMS에서. 선택사항에서index_list인덱싱된 슬롯 무료체험이 선언되는 집합이 지정됩니다. 선택사항설명 텍스트는 나중에 참조할 수 있도록 슬롯 무료체험을 설명하고 가독성을 높이기 위해 사용될 수 있습니다. 슬롯 무료체험 데이터를 지정하는 것은 슬롯 무료체험 선언의 또 다른 선택 요소입니다. 슬롯 무료체험 데이터를 사용하면 컴파일 타임에 슬롯 무료체험 속성을 초기화할 수 있습니다. 예를 보려면 다음 섹션을 참조하세요. 슬롯 무료체험 속성에 대한 자세한 내용은 섹션을 참조하세요.수식 속성.

하나 이상의 슬롯 무료체험이 하나에 선언될 수 있습니다.수식성명. 슬롯 무료체험 이름은 다음 예와 같이 쉼표나 줄바꿈으로 구분해야 합니다. 선언문의 끝은 세미콜론으로 표시됩니다.

참고
다음 문이 GAMS로 시작하는 경우 필수는 아니지만 슬롯 무료체험 선언을 세미콜론으로 끝내는 것이 좋습니다.키워드.

슬롯 무료체험 이름 선택 및 설명 텍스트 문구에 대한 조언은 장을 참조하세요.좋은 모델링 방법.

예시적인 예

다음 예는 모델의 예입니다.위치. 슬롯 무료체험 선언 외에도 관련 집합 정의가 제공됩니다.

세트
  sl '공급 위치' /s1, s2/
  wh '창고 위치' /a, b, c/;

슬롯 무료체험
  tcost_eq '총 비용 회계 슬롯 무료체험'
  Supply_eq(sl) '공급 위치에서 사용 가능한 공급 제한'
  용량_eq(wh) '창고 용량' /a.scale 50, a.l 10, b.m 20/;

키워드수식은 슬롯 무료체험 선언의 시작을 표시합니다. 각 슬롯 무료체험 이름 뒤에는 선택적으로 해당 도메인(연관 집합 또는 집합)이 옵니다.스칼라 슬롯 무료체험. 도메인 없이 색인 슬롯 무료체험을 선언하는 것은 가능하지만 좋은 습관은 아닙니다. 첫 번째 슬롯 무료체험의 이름은 다음과 같습니다.tcost_eq그리고 설명 텍스트 '가 이어집니다.총비용 회계 슬롯 무료체험'. 슬롯 무료체험의 이름tcost_eq다음에는 연관된 세트가 없습니다. 여기서는 모범 사례를 따르므로 다음과 같이 가정합니다.tcost_eq은 스칼라 슬롯 무료체험입니다. 스칼라 슬롯 무료체험에는 연관된 세트가 없으며 일반적으로 모델에서 하나의 슬롯 무료체험을 생성합니다. 스칼라 슬롯 무료체험에 대한 자세한 내용은 하위 섹션을 참조하세요.스칼라 슬롯 무료체험.

다른 두 슬롯 무료체험은 다음과 같습니다.색인된 슬롯 무료체험, 세트에 걸쳐 선언됩니다. 슬롯 무료체험공급_eq세트에 대해 선언됨sl및 슬롯 무료체험capacity_eq세트에 대해 선언됨wh. 일반적인 상황에서 색인 슬롯 무료체험 선언은 제약 블록이 생성됨을 의미합니다. 예를 들어 슬롯 무료체험공급_eq(sl)세트의 각 요소에 대해 하나씩 두 개의 제약 조건이 생성됨을 의미합니다.sl. 색인 슬롯 무료체험에 대한 자세한 내용은 하위 섹션을 참조하세요.색인된 슬롯 무료체험.

슬롯 무료체험의 선언capacity_eq일부 슬롯 무료체험 속성을 지정합니다. 첫 번째 항목은 슬롯 무료체험을 나타냅니다.capacity_eq('a')은 50배로 조정됩니다. 이는 모델이 솔버로 전달될 때 해당 슬롯 무료체험의 모든 항목을 50으로 나누는 것을 의미합니다. 확장에 대한 자세한 내용은 섹션을 참조하세요.모델 스케일링 - 스케일 옵션. 두 번째 항목은 슬롯 무료체험의 초기 값을 설정합니다.capacity_eq('a')10 및b.m슬롯 무료체험의 초기 한계값을 의미capacity_eq('b')는 20으로 설정됩니다. 또는 테이블 구조를 사용하여 슬롯 무료체험 속성 값을 지정할 수 있습니다. 다음 표는 위의 표기법을 대체할 수 있습니다.

슬롯 무료체험 테이블 용량_eq(wh) '창고 용량'
      규모 l m
   50 10
   b 20 ;

슬롯 무료체험 속성에 대한 자세한 내용은 섹션을 참조하세요.수식 속성.

참고
슬롯 무료체험은 둘 이상의 세트에 걸쳐 선언될 수 있습니다.

슬롯 무료체험 정의

슬롯 무료체험을 선언한 후에는 정의해야 합니다. 슬롯 무료체험의 정의는 GAMS에서 슬롯 무료체험의 대수적 구조를 지정합니다. 구문이 먼저 제공되고 예시가 이어지며 이 섹션의 나머지 부분에서는 슬롯 무료체험 정의의 주요 구성 요소 중 일부가 논의됩니다.

구문

슬롯 무료체험을 정의하는 구문은 다음과 같습니다:

eqn_name(index_list)[$logical_condition(s)].. 표현식 eqn_type 표현식 ;

Eqn_name은 슬롯 무료체험 선언에 도입된 슬롯 무료체험의 이름이며 뒤에는index_list색인 슬롯 무료체험의 경우. 에서index_list인덱싱된 슬롯 무료체험이 정의되는 집합이 지정됩니다. 이 세트는 또한 호출됩니다.정의 영역31463_31547색인된 슬롯 무료체험. 슬롯 무료체험 정의의 논리적 조건에 대한 자세한 내용은 다음을 참조하세요.정의 영역에 대한 달러 통제. 두 개의 점 '..' 필수이며 대수학의 시작을 나타냅니다. 다음 문이 GAMS 키워드로 시작하는 경우 필수는 아니지만 등식 정의를 세미콜론으로 끝내는 것이 좋습니다.

주의
슬롯 무료체험은 정의되기 전에 선언되어야 합니다.

표현는 기타 항목 중에서 변수, 매개변수, 함수 및 상수를 포함할 수 있는 대수식을 나타냅니다. GAMS 표현식에 대한 자세한 내용은 섹션을 참조하세요.표현식.

주의
슬롯 무료체험 정의에서 0이 아닌 계수로 한 번 이상 나타나는 변수만 모델에 나타납니다.

Eqn_type은 슬롯 무료체험을 구성하는 오른쪽 식과 왼쪽 식 사이에 기호로 표시되는 슬롯 무료체험 유형을 나타냅니다. 허용되는 기호는 다음과 같습니다.표 1.

유형설명
=e= 평등: 오른쪽은 왼쪽과 같아야 합니다.
=g= 보다 큼: 왼쪽은 오른쪽보다 크거나 같아야 합니다.
=l= 보다 작음: 왼쪽은 오른쪽보다 작거나 같아야 합니다.
=n= 왼쪽과 오른쪽 사이에는 암시된 관계가 없습니다. 이 슬롯 무료체험 유형은 다음에 사용하기에 매우 적합합니다.MCP모델 및 in변동 부등식.
=x= 슬롯 무료체험은 외부 프로그램에 의해 정의되었습니다. 참조외부 슬롯 무료체험.
=b= 부울 슬롯 무료체험. 참조논리 슬롯 무료체험.

표 1:수식 유형

슬롯 무료체험 정의는 필요한 만큼 많은 입력 라인에 걸쳐 수행될 수 있습니다. 가독성을 높이기 위해 공백을 넣을 수 있으며, 표현이 임의로 복잡해질 수 있습니다.

슬롯 무료체험은 한 번만 정의할 수 있습니다. 논리적 조건을 사용하면 생성되는 제약 조건을 제어할 수 있습니다. 또한 슬롯 무료체험의 구성 요소는 사용되는 데이터를 변경하여 수정될 수 있습니다. 그러나 슬롯 무료체험의 논리를 변경해야 하는 경우 새 이름을 가진 새 슬롯 무료체험을 선언하고 정의해야 합니다.

예시적인 예

모델에서 적용된 다음 예를 고려하세요.[mexss]. 관련 변수 및 슬롯 무료체험 선언도 포함됩니다.

변수 phi, phipsi, philam, phipi, phieps ;
슬롯 무료체험 obj ;
obj.. phi =e= phipsi + philam + phipi - phieps ;

정의되는 슬롯 무료체험의 이름은 다음과 같습니다.obj그리고 기호=e=이것은 동등함을 나타냅니다. 다음 슬롯 무료체험 형식은 모두 수학적으로 동일합니다.

obj..phipsi + philam + phipi - phieps =e= phi ;
obj.. phieps - phipsi =e= philam - phi + phipi ;
obj.. phi + phieps - phipsi - philam - phipi =e= 0 ;
obj.. 0 =e= phi + phieps - phipsi - philam - phipi ;
참고
슬롯 무료체험에서 항의 배열은 선택의 문제이지만 모델을 더 쉽게 이해할 수 있도록 특정 항을 선택하는 경우가 많습니다.

스칼라 슬롯 무료체험

스칼라 슬롯 무료체험은 관련 최적화 문제에서 하나의 슬롯 무료체험을 생성합니다. 슬롯 무료체험obj37380_37586합계또는프로드, 색인된 변수가 싱글톤 세트(요소가 하나만 있는 세트)를 참조하지 않는 경우. 모델의 다음 예를 고려하세요.위치. 참고로 세트wh세 가지 요소가 있습니다.

configure_eq..sum(wh,build(wh)) =l= 1;

변수빌드세트에 대해 정의됨wh, 인덱스 변수입니다. 스칼라 슬롯 무료체험에 사용될 수 있습니다.configure_eq인덱싱된 연산자와 함께 발생하기 때문에합계.

색인된 슬롯 무료체험

스칼라 슬롯 무료체험의 모든 집합 참조는 색인 연산자의 범위 내에 있거나 단일 집합을 참조합니다. 따라서 많은 변수, 세트 및 매개변수 참조가 하나의 슬롯 무료체험에 포함될 수 있습니다. 또한 GAMS는 슬롯 무료체험을 도메인에 대해 정의할 수 있도록 하여 제약 조건에 대한 간결한 표현을 개발합니다. 인덱스는 ' 왼쪽으로 설정됩니다...' 이라고 불린다.정의 영역슬롯 무료체험의.

참고
  • 도메인 검사를 통해 슬롯 무료체험이 정의된 도메인이 슬롯 무료체험이 선언된 집합(또는 집합) 또는 집합(또는 집합)의 하위 집합인지 확인합니다.
  • 결과적으로 도메인 검사는 색인이 일관되지 않은 순서로 나열되는 오류도 포착합니다. 예를 들어 슬롯 무료체험을 다음과 같이 선언합니다.myequation(s,t)그런 다음 정의에서 다음과 같이 이름을 지정합니다.myequation(t,s)오류가 발생합니다(그렇지 않은 경우s그리고t동일한 세트의 별칭입니다). 자세한 내용은 섹션을 참조하세요.도메인 확인.

단일 인덱스가 있는 다음 인덱스 슬롯 무료체험은 구동(또는 제어) 세트의 각 구성원에 대해 별도의 제약 조건을 생성합니다. 모델에서 가져온 것입니다.[체너리]. 이 예에서는,t세 멤버로 구성된 집합입니다.야옹그리고xsi매개변수이며m그리고g변수입니다.

dg(t).. g(t) =e= mew(t) + xsi(t)*m(t) ;

세트로t3개의 멤버가 있으며, 3개의 제약조건이 생성됩니다. 각 멤버마다 하나씩t의존성 지정g켜짐m. 매개변수와 관련된 데이터야옹그리고xsi개별 제약 조건을 구축하는 데 사용됩니다. 이 데이터는 슬롯 무료체험이 정의될 때 알 필요는 없지만 슬롯 무료체험이 포함된 모델이 해결되기 전에 채워져야 합니다.

' 왼쪽에 있는 두 개 이상의 색인 확장..' 분명하다. 괄호 안의 인덱스를 사용하여 구성할 수 있는 집합 요소의 각 조합에 대해 하나의 제약 조건이 생성됩니다. 다음은 모델의 두 가지 예입니다.[항공기], 스케줄링 모델.

bd(j,h).. b(j,h) =e= dd(j,h) - y(j,h) ;
yd(j,h).. y(j,h) =l= 합계(i, p(i,j)*x(i,j)) ;

두 슬롯 무료체험의 정의 영역은 다음의 데카르트 곱입니다.j그리고h: 이 두 집합의 구성원으로 구성할 수 있는 모든 집합 요소 쌍에 대해 제약 조건이 생성됩니다.

다음 예는 슬롯 무료체험 정의에서 선택적 논리 조건의 사용을 보여줍니다. 생산 및 유통 모델에서 따온 것입니다.[퍼트].

CC(m,i)$mpos(m,i).. sum(p$ppos(p,i), b(m,p)*z(p,i)) =l= util*k(m,i) ;

CC은 세트의 요소에 대해 정의된 용량 제약 조건입니다m그리고i. 그러나 이 경우에는 다음의 모든 경우가 아닙니다.m각 위치에 존재i및 매핑 세트mpos(m,i)경우를 말해줍니다m다음 위치에 존재함i따라서 제약 조건이 실제로 생성되는 도메인 사례를 제한하는 데 사용됩니다. 합계 제어pppos(p,i)추가적인 논리 조건이며 모든 프로세스가 아니기 때문에 필요합니다.p모든 위치에서 가능i.

슬롯 무료체험은 다음과 같은 방법으로 작성할 수도 있습니다:

CC(mpos(m,i)).. sum(ppos(p,i), b(m,p)*z(p,i)) =l= util*k(m,i) ;

지수에 대한 슬롯 무료체험을 정의하는 대신(m,i)슬롯 무료체험은 집합에 대해 정의됩니다mpos그 자체가 색인에 대해 정의됩니다(m,i). 합산을 제한하는 데에도 비슷한 논리가 적용됩니다.

조건식은 섹션에서 소개되고 논의됩니다.조건식, 할당 및 슬롯 무료체험. 구체적으로 살펴보세요정의 영역에 대한 달러 통제슬롯 무료체험 정의의 논리적 조건에 대해.

수식에서 라벨을 명시적으로 사용

때때로 슬롯 무료체험의 특정 집합 요소를 참조해야 할 수도 있습니다. 이는 매개변수와 마찬가지로 수행할 수 있습니다. - 따옴표나 큰따옴표를 사용하여 수행할 수 있습니다.라벨. 모델의 다음 예를 고려하세요.위치:

sum(m, ship_wm(wh,m)) =l= build(wh)*data(wh,"capacity") ;

논리 슬롯 무료체험

논리 슬롯 무료체험은 부울 대수를 사용하며 다음을 평가해야 합니다.(또는 1)이 가능합니다. GAMS에서 사용할 수 있는 부울 함수와 연산자의 기본 우선순위는 다음과 같습니다.표 2. 1은 우선순위가 가장 높거나 바인딩이 가장 높은 연산자를 나타내고 3은 우선순위가 가장 낮거나 바인딩이 가장 적은 연산자를 나타냅니다. 평소와 같이 기본 우선순위는 괄호가 없는 경우에만 유지되며 동일한 수준의 연산자는 왼쪽에서 오른쪽으로 평가됩니다.

기능운영자대체 표기법반환 값우선순위
부정아님x bool_not(x) \(x=0\)이면 1을 반환하고, 그렇지 않으면 0을 반환합니다.1
논리적 접속사x그리고y bool_and(x,y) \(x\neq 0\) 및 \(y\neq 0\)이면 1을 반환하고, 그렇지 않으면 0을 반환합니다.2
논리적 분리x또는y bool_or(x,y) \(x=y=0\)이면 0을 반환하고, 그렇지 않으면 1을 반환합니다.3
배타적 분리xxory bool_xor(x,y) 인 경우 1을 반환합니다.정확히한 인수는 \(\neq 0\)이고, 그렇지 않으면 0을 반환합니다.3
물질적 의미ximpy또는x->y bool_imp(x,y) \(x\neq 0\) 및 \(y=0\)이면 0을 반환하고, 그렇지 않으면 1을 반환합니다.3
물질적 동등성xeqvy또는x<=>y bool_eqv(x,y) 인 경우 0을 반환합니다.정확히한 인수는 0이고, 그렇지 않으면 1을 반환합니다.3

표 2:부울 함수 및 연산자 우선 순위

논리 슬롯 무료체험을 선언하고 정의하는 세 가지 방법이 있습니다.

  1. 논리 슬롯 무료체험은 키워드를 사용하여 선언됩니다.논리 슬롯 무료체험그리고 정의에는 부울 대수 기호만 포함되어 있습니다.
  2. 논리 슬롯 무료체험은 키워드를 사용하여 다른 슬롯 무료체험처럼 선언됩니다.수식그리고 정의에서 기호=b=논리 슬롯 무료체험임을 나타냅니다.
  3. 이것은 처음 두 옵션의 조합입니다. 슬롯 무료체험은 키워드로 선언됩니다.논리 슬롯 무료체험및 기호를 사용하여 정의=b=.

다음 예는 논리 슬롯 무료체험을 선언하고 정의하는 첫 번째 방법을 보여줍니다. 식품제조 문제를 응용한 것임[foodemp]. 이 문제에서는 오일 혼합이 모델링됩니다.

세트
  m "계획 기간(월)" / m1*m6 / 
  p "원유" / v1*v2, o1*o3 / ;

변수
  induse(m,p) "월별 원유 사용량 표시기" ;
바이너리 변수 induse;

논리 슬롯 무료체험
  deflogic(m) "일부 식물성 원료 기름을 사용하는 경우 비식물성 기름 o3도 사용해야 합니다." ;

deflogic(m).. induse(m,'v1') 또는 induse(m,'v2') -> induse(m,'o3');

변수인듀스은 이진 변수이며 값 0과 1만 사용할 수 있습니다. 슬롯 무료체험은 식물성 기름 중 하나라도 최적의 솔루션이 되도록 보장합니다.v1또는 식물성 기름v2제품에 혼합된 다음 비식물성 오일o3또한 해당 제품에 혼합되어 있습니다.

슬롯 무료체험의 대체 공식디플로직다음을 사용하여=b=기호는 아래에 나와 있습니다.

deflogic(m).. induse(m,'v1') 또는 induse(m,'v2') -> induse(m,'o3') =b= 1;

오른쪽의 1 값은 왼쪽의 논리 표현식이 다음과 같이 평가되어야 함을 의미합니다.실행 가능한 솔루션입니다. 더 자세히 설명하기 위해 논리 연산자를 사용하여 왼쪽 표현식을 부정할 수 있습니다.아님그리고 오른쪽은 0으로 평가되어야 합니다. 또는거짓위와 동일한 결과를 산출합니다. 각각의 슬롯 무료체험 정의는 다음과 같습니다.

deflogic(m).. not (induse(m,'v1') 또는 induse(m,'v2') -> induse(m,'o3')) =b= 0;

이진 변수와 부울 함수/연산자가 있는 논리 슬롯 무료체험은 다음에 의해 선형 제약 조건으로 재구성됩니다.LOGMipGAMS 모델 유형을 사용하는 솔버EMP. 해결사변환논리 슬롯 무료체험을 사용하여 스칼라 모델을 작성하지만 현재 다른 솔버는 논리 슬롯 무료체험을 활용할 수 없습니다. 원칙적으로(현재는 구현되지 않음) 논리 제약 조건을 사용하여 다음과 같은 복잡한 대수를 표현할 수 있습니다.표시자 제약:

defindic(m).. induse(m,'v1') = 1 -> sum(p, use(m,p)) >= minus(m);

슬롯 무료체험 정의의 표현식

산술 연산자 및 섹션에 설명된 일부 함수표현슬롯 무료체험 정의에 사용될 수 있습니다.

모델에서 적용된 다음 예를 고려하세요.[체너리]괄호와 지수의 사용을 보여줍니다.

dem(i) .. y(i) =e= ynot(i)*(pd*p(i))**thet(i) ;

산술 연산자 목록은 하위 섹션에 나와 있습니다.표준 산술 연산그리고색인된 작업.

슬롯 무료체험 정의의 함수

사용 가능한 모든 GAMS 기능이 섹션에 나열되어 있습니다.기능. 일부 함수는 슬롯 무료체험 정의에서 전혀 허용되지 않습니다. 여기에는 무작위 분포 함수가 포함되며 다음과 같이 표시됩니다.없음모든 기능을 나열하는 표의 세 번째 열에 있습니다.

주의
다음과 같은 일부 기능유니폼그리고정상수식 정의에서는 허용되지 않습니다.

다른 함수의 사용은 모델의 인수 유형에 따라 결정됩니다. 인수에는 두 가지 유형이 있습니다.

  1. 외생적 인수:인수는 알려져 있습니다. 매개변수 및 변수 속성(예:.l그리고.m속성)이 인수로 사용됩니다. 표현식은 모델이 설정될 때 한 번 평가되며 대부분의 수학 함수와 시간 및 달력 함수가 허용됩니다.
  2. 내생적 인수:인수는 변수이므로 모델 설정 시 알 수 없습니다. 모델이 해석되는 동안 중간 지점에서 함수가 여러 번 평가됩니다. 내생적 인수가 있는 함수의 발생은 모델이 선형이 아니라는 것을 의미합니다.

외생 인수로만 허용되는 기능은 다음과 같이 표시됩니다.아무거나모든 기능을 나열하는 표에 있습니다.

내생적 인수를 허용하는 두 가지 유형의 함수가 있습니다:부드러운함수 및불연속적인함수. 부드러운 함수는 연속 도함수를 갖는 연속 함수입니다(예:, 특급, 로그). 불연속 함수에는 불연속 도함수(예:)가 있는 연속 함수가 포함됩니다.최대, , 복근) 및 불연속 함수(예:, 로그인). 부드러운 기능은 비선형 모델에서 일상적으로 사용될 수 있습니다. 그러나 불연속 함수는 수치적 문제를 일으킬 수 있으므로 불가피한 경우에만 사용해야 하며 다음과 같은 특수 모델 유형에서만 사용해야 합니다.DNLP. 모델 유형에 대한 자세한 내용은 섹션을 참조하세요.모델 분류.

주의
불연속 함수를 모델링하는 가장 좋은 방법은 이진 변수를 사용하는 것입니다. 결과는 다음 유형의 모델입니다.MINLP. 모델[ABSMIP]함수에 대한 공식화 기술을 보여줍니다.복근, , 최대그리고로그인. 섹션도 참조하세요DNLP 모델 재구성. 우리는의 사용을 강력히 권장하지 않습니다.DNLP모델 유형.

표 3슬롯 무료체험 정의에서 함수의 사용이 요약되어 있습니다.

기능이 허용됩니다 ...기능 설명
전혀 아님표시된 기능없음섹션의 모든 기능을 나열하는 표의 세 번째 열에기능.
외생적 인수만 사용표시된 기능모든섹션의 모든 기능을 나열하는 표의 세 번째 열에기능.
내생적 인수 포함부드러운 기능. 표시되어 있습니다NLP섹션의 모든 기능을 나열하는 표의 세 번째 열에기능.
내생적 인수 포함불연속적인 기능. 표시되어 있습니다DNLP섹션의 모든 기능을 나열하는 표의 세 번째 열에기능.

표 3:슬롯 무료체험 정의의 함수

수식에서 정의되지 않은 연산 방지

일부 작업은 인수의 특정 값에 정의되지 않습니다. 두 가지 예는 0으로 나누는 것과로그-of 0. 이는 외생 함수 및 표현식에 대한 모델 설정에서 쉽게 식별할 수 있지만 용어에 변수가 포함될 경우 훨씬 더 어렵습니다. 문제가 해결될 때 표현식이 여러 번 평가될 수 있으며 정의되지 않은 결과는 특정 경우에만 발생할 수 있습니다. 표현식이 정의되지 않는 것을 방지하는 한 가지 방법은 해당 변수에 경계를 추가하는 것입니다. 모델의 다음 예를 고려하세요.[램지]:

c.lo(t) = 0.01 ;
util .. 유틸리티 =e= sum(t, beta(t)*log(c(t))) ;

하한값 지정c(t)0보다 약간 크면 다음을 방지합니다.로그-함수가 정의되지 않게 됩니다.

수식 속성

수식 속성은 변수 속성과 유사한 방식으로 지정될 수 있습니다. 5개의 값은 모든 슬롯 무료체험의 각 고유 레이블 조합과 연결됩니다. 접미사로 표시됩니다..l, .m, .lo, .up그리고.scale. 속성 목록과 해당 설명은 다음과 같습니다.표 4.

수식 속성기호설명
하한값 .lo 다음에 대한 음의 무한대=l=슬롯 무료체험. 의 오른쪽 값=g=, =e==b=슬롯 무료체험.
상한 .up 다음에 대한 양의 무한대=g=슬롯 무료체험. 의 오른쪽 값=l=, =e==b=슬롯 무료체험.
등식 수준 .l 현재 해법의 슬롯 무료체험 수준은 변수와 관련된 모든 항의 수준과 같습니다.
한계 .m 슬롯 무료체험의 한계값. 이 속성은 슬롯 무료체험이 포함된 모델이 해결되면 새 값으로 재설정됩니다. 슬롯 무료체험의 한계 값은 슬롯 무료체험의 그림자 가격이라고도 알려져 있으며 일반적으로 솔루션 이전에 정의되지 않지만 존재하는 경우 다음을 제공하는 데 도움이 될 수 있습니다.기초모델용
축척 계수 .scale 슬롯 무료체험의 모든 계수를 조정하는 수치 조정 요소. 이는 모델 속성인 경우에만 사용됩니다.scaleopt은 1로 설정됩니다. 크기 조정에 대한 자세한 내용은 섹션을 참조하세요.모델 스케일링 - 스케일 옵션.
스테이지 .스테이지 이 속성을 사용하면 확률론적 프로그램 또는 기타 블록 구조 모델의 단계에 슬롯 무료체험을 할당할 수 있습니다. 현재 사용은 DECIS로 해결된 2단계 확률론적 프로그램으로 제한됩니다.

표 4:수식 속성

다음을 제외한 모든 속성에 유의하세요..scale그리고.스테이지슬롯 무료체험의 속성 값을 포함이후모델의 해를 얻었습니다. 일부 솔버의 경우 한계 값을 지정하는 것이 유용할 수 있습니다..m및 레벨 값.l입력 시 시작 정보를 제공합니다. 또한 한계 값은 다음과 같이 알려져 있습니다.듀얼또는그림자 가격. 대략적으로 말하면 한계값.m슬롯 무료체험의 는 슬롯 무료체험 수준이 한 단위 이동된 경우 목적 변수의 값이 변경되는 양입니다.

슬롯 무료체험 속성은 표현식에서 참조될 수 있으며 시작 값을 지정하는 데 사용될 수 있습니다(섹션 참조)수식 선언). 또한 확장 목적과 모델 해결 후 보고용으로 사용됩니다. 예를 들어, 다음을 사용하여 표시될 수 있습니다.디스플레이문장. 다음 예는 모델의 예입니다.위치.

모델 창고 '창고 위치 모델' /all/;
mip min tcost를 사용하여 창고를 해결합니다.
공급_eq.l 표시;

디스플레이문은 목록 파일 끝에 다음 출력을 생성합니다.

---- 108 EQUATION Supply_eq.L 공급 위치에서 사용 가능한 공급 제한

s1 50.000, s2 75.000

슬롯 무료체험의 수준 값공급_eq표시됩니다. 예상대로 세트의 각 구성원에 대해 하나씩 두 개의 레벨 값이 있습니다.sl이에 대한 슬롯 무료체험공급_eq정의되었습니다.

참고
기본적으로 위에 소개된 모든 슬롯 무료체험 속성은 다음을 제외하고.scale목록 파일의 일부인 솔루션 보고서에 반영됩니다.

위에 소개된 슬롯 무료체험 속성 외에도 다음을 통해 할당하거나 내보낼 수 없는 여러 슬롯 무료체험 속성이 있습니다.execute_unload*그러나 계산에는 사용될 수 있습니다. 그들은 다음과 같이 주어진다.표 5.

수식 속성기호설명
범위 .range 슬롯 무료체험의 하한과 상한의 차이.
느슨한 하한 .slacklo 슬롯 무료체험 하한에서 느슨함. 이는 0 또는 수준 값과 슬롯 무료체험의 하한 간의 차이 중 더 큰 값으로 정의됩니다.
느슨한 상한 .slackup 슬롯 무료체험 상한에서 느슨함. 이는 두 값 중 더 큰 값, 즉 0 또는 슬롯 무료체험의 상한과 수준 값 간의 차이로 정의됩니다.
슬랙 .slack 슬롯 무료체험 경계의 최소 여유. 이는 슬롯 무료체험 하한의 여유와 슬롯 무료체험 상한의 여유라는 두 값의 최소값으로 정의됩니다.
실행불능 .infeas 슬롯 무료체험이 하한 아래 또는 상한보다 낮아서 실현 불가능한 양입니다. 이는 max(0, 하한 - 수준, 수준 - 상한)으로 정의됩니다.

표 5:할당할 수 없지만 계산에 사용할 수 있는 추가 슬롯 무료체험 속성.

요약 및 빠른 참조

이 장에서 우리는 다음의 선언과 정의를 다루었습니다.슬롯 무료체험GAMS의 수식 및 수식 속성에 사용할 수 있는 산술 연산 및 함수입니다. 다음은 명심해야 할 주요 사항을 요약한 목록입니다.

  • 슬롯 무료체험은 정의되기 전에 선언되어야 합니다.[1]
  • 선언에 설명 텍스트를 추가하는 것이 좋습니다.[2]
  • 한 번에 둘 이상의 슬롯 무료체험을 선언할 수 있습니다. 슬롯 무료체험 이름은 쉼표나 줄바꿈으로 구분해야 합니다.[3]
  • 슬롯 무료체험은 슬롯 무료체험 정의 영역이라고 불리는 집합에 대해 선언되고 정의될 수 있습니다.[4]
  • 인덱싱된 하나의 슬롯 무료체험은 정의된 집합의 크기에 따라 많은 제약 조건을 생성할 수 있습니다.[5]
  • 슬롯 무료체험은 하위 집합에 대해 정의될 수 있습니다. 달러 조건은 구성원의 하위 집합만 고려되도록 집합의 구성원을 필터링하는 데 사용될 수 있습니다.[6]
  • 슬롯 무료체험이 정의된 집합은 슬롯 무료체험이 선언된 집합과 일치해야 하며 집합 자체이거나 집합의 하위 집합이어야 합니다.[7]
  • 슬롯 무료체험에서 항의 배열은 서로에게 달려 있습니다. 변수는 슬롯 무료체험의 양쪽에 나타날 수 있습니다.[8]
  • 특정 집합 요소의 레이블은 슬롯 무료체험에서 명시적으로 사용될 수 있습니다.[9]
  • 식을 평가하는 데 사용할 수 있는 모든 산술 연산은 슬롯 무료체험에서도 허용됩니다.[10]
  • GAMS에 정의된 많은 함수가 슬롯 무료체험에 사용될 수 있습니다.[11]
  • 슬롯 무료체험에 특정 값에서 정의되지 않은 연산이 포함된 경우 정의되지 않은 연산을 피하기 위해 변수에 대한 경계를 설정하는 것이 좋습니다.[12]
  • 슬롯 무료체험에는 변수와 유사한 속성이 있습니다(.l, .m, .lo, .up그리고.scale). [13]