컴파일 무료 슬롯 사이트 수정

장에 자세히 설명되어 있음GAMS 출력, GAMS 프로그램 실행은 여러 단계를 거칩니다. 여기서편집첫 번째 단계입니다. 프로그램을 처음 실행하면 컴파일 무료 슬롯 사이트로 인해 프로그램을 성공적으로 해결할 수 없는 경우가 많습니다. 특히 신규 사용자에게는 매우 실망스러울 수 있습니다. 이 튜토리얼에서는 가장 일반적인 컴파일 무료 슬롯 사이트의 원인을 설명하고 이를 해결하는 방법에 대한 조언을 제공합니다. 컴파일 무료 슬롯 사이트에 대한 소개는 섹션을 참조하세요.컴파일 무료 슬롯 사이트. 또한 튜토리얼Richard E. Rosenthal의 GAMS 튜토리얼이 주제에 대한 자세한 자료를 제공합니다.

참고
흔히 코드 후반부의 많은 컴파일 무료 슬롯 사이트는 실제로 결과적인 무료 슬롯 사이트로, 처음의 컴파일 무료 슬롯 사이트가 해결되자마자 사라지게 됩니다. 따라서 처음 몇 가지 무료 슬롯 사이트를 수정하는 것부터 시작하고 프로그램을 다시 실행하는 것이 좋습니다. 대부분의 후속 컴파일 무료 슬롯 사이트는 사라집니다.

머리말

가장 일반적인 무료 슬롯 사이트에 대한 개요, 이를 설명하는 예 및 해결 방법에 대한 조언을 살펴보기 전에 컴파일 무료 슬롯 사이트 및 무료 슬롯 사이트 메시지에 대한 몇 가지 기본 정보를 제공하겠습니다.

컴파일 무료 슬롯 사이트 찾기

컴파일 무료 슬롯 사이트는 4개의 별표로 표시됩니다(****)에서컴파일 출력GAMS 목록 파일(확장자가 있으므로 출력 파일 또는 lst 파일이라고도 함.lst), 따라서 검사를 통해 컴파일 무료 슬롯 사이트가 발생한 행을 쉽게 감지할 수 있습니다.

참고
컴파일 무료 슬롯 사이트 메시지는 로그 파일에도 나타납니다. 그리고 GAMS Studio를 사용하는 경우 로그의 무료 슬롯 사이트 메시지를 클릭하면 소스 파일의 문제가 있는 코드로 직접 이동됩니다.

다음의 간단한 예를 생각해 보십시오:

세트 c "작물" / 보리, 밀, 콩, 밀, 쌀 /;

이 set 문이 프로그램에 나타나면 결과 컴파일 출력에는 다음 줄이 포함됩니다:

1 세트 c "작물" / 보리, 밀, 콩, 밀, 쌀 /;
**** $172

...
무료 슬롯 사이트 메시지

172 요소가 재정의되었습니다.

다음에 주의하세요에코 인쇄입력 파일의 다음으로 시작하는 줄****삽입되고 달러 기호$다음에 숫자가 이 줄에 나타납니다. 이는 컴파일 무료 슬롯 사이트를 나타냅니다. 이 경우 무료 슬롯 사이트172- 위 줄에서 발견되었습니다. 또한 설명 무료 슬롯 사이트 메시지와 함께 모든 무료 슬롯 사이트 목록이 에코 인쇄 끝에 제공됩니다.

이 예에서 무료 슬롯 사이트는 다음을 참조합니다.그리고 무료 슬롯 사이트 메시지는 무료 슬롯 사이트의 원인을 해결합니다. 각 요소가 재정의됩니다. 따라서 우리는 세트의 다른 요소를 확인하고 이를 신속하게 인식합니다.두 번째로 나타납니다. 두 번째 인스턴스를 삭제하면그리고 코드를 다시 실행하면 이 줄은 더 이상 무료 슬롯 사이트를 일으키지 않습니다. 많은 컴파일 무료 슬롯 사이트는 여기에 설명된 것처럼 수정하기 쉽습니다.

컴파일 무료 슬롯 사이트 메시지 위치 변경

기본적으로 무료 슬롯 사이트 메시지는 해당 무료 슬롯 사이트가 표시된 줄 바로 아래에 표시됩니다. GAMS에서는 명령줄 매개변수를 사용하여 이 위치를 맞춤설정할 수 있습니다.ErrMsg:의 값은 0입니다.ErrMsg는 에코 인쇄 끝에 모든 무료 슬롯 사이트 메시지를 나열하고 값 2는 lst 파일의 무료 슬롯 사이트 메시지를 완전히 억제합니다. 기본값은 1입니다.

다음의 간단한 예를 생각해 보세요.

a / a1 * a7 / 설정;
b(a) / a7 * a9 / 설정;
매개변수 p(k) / i3 47 /;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

1 a / a1 * a7 / 설정;
   2 b(a) / a7 * a9 / 설정;
**** $170
**** 170 요소에 대한 도메인 위반
   3 매개변수 p(k) / i3 47 /;
**** $120
**** 120 세트로 입력된 알 수 없는 식별자

무료 슬롯 사이트가 표시된 후 해당 줄에 무료 슬롯 사이트 메시지가 표시되는 것을 관찰하십시오. 이는 프로그램에 많은 코드 줄이 포함되어 있는 경우 특히 유용할 수 있습니다. 다음으로, 다음 호출로 동일한 코드를 실행합니다.

> 게임 테스트 ErrMsg=0

결과 컴파일 출력은 다음과 같습니다.

1 a / a1 * a7 /를 설정합니다.
   2 b(a) / a7 * a9 / 설정;
**** $170
   3 매개변수 p(k) / i3 47 /;
**** $120
...
무료 슬롯 사이트 메시지

120 알 수 없는 식별자가 세트로 입력되었습니다.
170 요소에 대한 도메인 위반

이제 컴파일러 목록 끝에 무료 슬롯 사이트 메시지가 표시됩니다.

참고
명령줄 매개변수 및 환경 변수의 기본값은 구성 파일 gamsconfig.yaml을 사용하여 지정할 수 있습니다.GAMS 구성 편집기GAMS 구성 파일을 보고 편집하는 데 사용할 수 있지만 다른 텍스트 편집기도 사용할 수 있습니다. 또는 사용자는 다음 줄을 입력하여 시스템 수준 기본값을 변경할 수 있습니다.ErrMsg=0파일에서gmsprmnt.txtWindows의 경우 또는gmsprmun.txt다음 예와 같이 Unix 시스템에서:
*****************************************************
* Windows NT용 GAMS 2.50 기본 매개변수 파일 *
* 감스개발(주) *
* 날짜 : 1998년 3월 20일 *
*****************************************************
* CMEX에 필요한 항목은 gams.exe에 입력됩니다.
* 시스템디르
* SCRDIR
* 스크립트다음
* 입력
errmsg=0

일반적인 컴파일 무료 슬롯 사이트 해결

GAMS에는 수백 개의 컴파일 무료 슬롯 사이트가 있지만 그 중 일부는 특히 자주 발생합니다. 아래 표에는 이러한 일반적인 무료 슬롯 사이트가 나와 있으며, 가능한 원인에 대한 간략한 설명과 예제 및 자세한 내용이 제공되는 하위 섹션에 대한 링크가 나와 있습니다. 무료 슬롯 사이트 메시지에는 추가 힌트가 포함되어 있는 경우가 많으므로 사용자도 무료 슬롯 사이트 메시지를 읽어 보는 것이 좋습니다.

GAMS 무료 슬롯 사이트무료 슬롯 사이트의 일반적인 원인예제 및 자세한 내용이 포함된 하위 섹션
8 닫는 괄호, 대괄호 또는 중괄호가 누락되었습니다.H
36 두 개의 점..방정식 정의에 누락되었습니다.I
37 수식 유형(예.=L=32203_32249I
51-60 금지된 비선형 표현이 있습니다.J
66 수치 값이 제공되지 않은 데이터 항목이 방정식에 나타납니다.K
71 등식이 선언되었지만 정의되지 않았습니다.I
96, 97 문 다음에 또 다른 문이 따라오는 문은 다음으로 끝나지 않습니다.;. B
120 GAMS는 이 이름을 가진 집합을 찾을 수 없습니다. 따옴표 없이 참조되는 세트 이름 및 세트 요소에 오타가 있는지 확인하세요.C, L
125 세트는 예를 들어 다음과 같은 색인 작업에 의해 두 번 이상 제어됩니다.합계그리고 방정식 정의에 따라.F
140 GAMS는 다음을 찾고 있습니다.키워드또는 항목을 선언했지만 찾을 수 없습니다. 철자와 선언을 확인하세요.A, C, K, M
141 데이터가 없는 매개변수가 사용되었거나 문제가 있습니다.해결따라서 속성.l그리고.m비어있습니다.K
148 식별자선언보다 더 많거나 적은 색인 세트로 참조됩니다.E
149 이 세트는 다음과 같은 색인 작업에 의해서도 제어되지 않습니다.합계, 방정식 정의나 루프 또는 유사한 것에 의한 것도 아닙니다.G, L
170 참조된 세트 요소는 이 인덱스 위치에 대해 정의된 세트에서 찾을 수 없습니다. 오타, 집합 선언의 누락, 따옴표 누락, 잘못된 집합에 대한 참조를 확인하세요.C, D
171 도메인 무료 슬롯 사이트입니다. 해당 인덱스 위치에 잘못된 세트가 참조되었습니다.E, L
195 여기에 사용된 이름은 이미 다른 이름으로 사용되었습니다.식별자. N
198 작업 사용ord또는 순서가 지정되지 않은 세트를 사용한 지연/선행 작업.O
256 모델 사양에 문제가 있습니다. 이는 종종 다른 무료 슬롯 사이트의 결과적인 무료 슬롯 사이트입니다. 해결 문 바로 다음에 다른 무료 슬롯 사이트 메시지를 찾아보세요.I, J
257 솔버가 확인되지 않았습니다. 이는 GAMS 무료 슬롯 사이트로 인해 결과적으로 발생한 무료 슬롯 사이트일 수 있습니다.
340 아마도 집합 요소 참조의 따옴표가 누락된 것 같습니다.L
408 여분의 닫는 괄호, 대괄호 또는 중괄호.H

무료 슬롯 사이트 A: 잘못된 세미콜론

아마도 신규 사용자에게 가장 흔한 무료 슬롯 사이트는 세미콜론과 관련이 있을 것입니다. 잘 알려진 운송 모델을 적용한 다음 예를 고려해 보세요.[TRNSPORT]:

설정 i "통조림 공장" / 시애틀, 샌디에고 / ;
      j "markets" / 뉴욕, 시카고, 토피카 / ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

20 세트 i 통조림 공장 / 시애틀, 샌디에고 / ;
   21개 J 마켓 / 뉴욕, 시카고, 토피카 / ;
**** $140 $36
...
무료 슬롯 사이트 메시지

 36 '=' 또는 '..' 또는 ':=' 또는 '$=' 연산자가 필요합니다.
     나머지 문은 무시됨
140 알 수 없는 기호

무슨 문제가 있었나요? 다음과 같은 GAMS 문설정문이 예에서는 다음 코드 줄이 a로 시작하지 않는 한 세미콜론으로 끝나야 합니다.예약어. 이제 set 문은 여러 줄에 걸쳐 확장되고 여러 세트를 정의할 수 있습니다. 이 예에서는 set 문이 두 줄에 걸쳐 확장되고 두 개의 집합이 선언됩니다. 그러나 첫 번째 줄 끝에 세미콜론이 있으므로 GAMS는 set 문이 거기서 끝나는 것으로 가정합니다. 기호J다음 줄의 시작 부분은 아직 선언되지 않았으며 GAMS 키워드가 아니므로 다음과 같이 표시됩니다.알 수 없음 기호. 무료 슬롯 사이트에 유의하세요.36첫 번째 무료 슬롯 사이트가 해결되자마자 사라지는 결과적인 무료 슬롯 사이트입니다.

이 문제를 어떻게 해결하나요? 두 가지 방법이 있습니다. 첫 번째 줄 끝에 세미콜론을 삭제하여 set 문이 두 번째 줄까지 계속됨을 나타내거나 키워드를 삽입할 수 있습니다.설정두 번째 줄의 시작 부분에 새로운 set 문을 도입합니다. 이 두 가지 대안은 아래에 설명되어 있습니다.

"통조림 공장" 설정 / 시애틀, 샌디에이고 / 
      j "markets" / 뉴욕, 시카고, 토피카 / ;

또는

설정 i "통조림 공장" / 시애틀, 샌디에고 / ;
j "시장" 설정 / 뉴욕, 시카고, 토피카 / ;
참고
  • 일반적으로,GAMS 문세미콜론으로 끝나야 합니다. 다음 줄이 a로 시작하는 경우 세미콜론을 생략할 수 있습니다.GAMS 키워드.
  • 필요하지 않더라도 항상 세미콜론으로 명령문을 끝내는 것이 좋습니다.

무료 슬롯 사이트 B: 세미콜론 누락

잘 알려진 운송 모델을 적용한 다음 예를 고려하십시오.[TRNSPORT]:

방정식
       비용 "목적 함수 정의"
       Supply(i) "공장 i의 공급 제한을 준수하십시오"
       수요(j) "시장 j의 수요를 충족"

비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

52 방정식
   53 비용 정의 목적 함수
   54 공급(i) 공장 i의 공급 제한을 준수하십시오.
   55 수요(j)는 시장 j의 수요를 충족시킵니다.
   56
   57 비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
**** $97 $195,96,195,96 $195,96
...
무료 슬롯 사이트 메시지

 96 식별자와 텍스트 사이에 공백이 필요합니다.
       (또는 식별자의 잘못된 문자)
       (-또는- 이전 줄에 ';'이 누락되었는지 확인)
 97 설명 텍스트는 '$', '=' 또는 '..'으로 시작할 수 없습니다.
       (-또는- 이전 줄에 ';'이 누락되었는지 확인)

무슨 문제가 있었나요?GAMS 문좋아요방정식 선언이 예에서는 다음 코드 줄이 a로 시작하지 않는 한 세미콜론으로 끝나야 합니다.GAMS 키워드. 이 예에서는 방정식 선언문 끝에 세미콜론을 생략하고 빈 줄 다음에 새 문을 시작했습니다.

이 문제를 어떻게 해결하나요? 방정식 선언문 끝의 마지막 설명 텍스트 뒤에 세미콜론을 추가하기만 하면 됩니다.

참고
세미콜론 누락은 종종 무료 슬롯 사이트와 연관됩니다.96또는97.

무료 슬롯 사이트 C: 철자 무료 슬롯 사이트

이 무료 슬롯 사이트는 세트, 세트 요소, 매개변수 등이 선언된 이름과 다른 이름으로 참조되는 경우 발생합니다. GAMS는 대소문자를 구분하지 않으므로 대문자 사용의 차이는 철자 무료 슬롯 사이트로 간주되지 않습니다.

잘 알려진 운송 모델을 적용한 다음 예를 고려하십시오.[TRNSPORT]:

"통조림 공장" 설정 / 시애틀, 샌디에고 / 
     j "시장" / 뉴욕, 시카고, 토피카 / ;

매개변수 a(i) "경우에 따라 플랜트 i의 용량"
          / 시애틀 350
              샌디에이고 600 / ;
...
방정식
       비용 "목적 함수 정의"
       Supply(i) "공장 i의 공급 제한을 준수하십시오"
       수요(j) "시장 j의 수요를 충족";

cst .. z =e= sum((i,j), c(i,j)*x(i,j)) ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

20 세트 i 통조림 공장 / 시애틀, 샌디에고 /
   21개 J 마켓 / 뉴욕, 시카고, 토피카 / ;
   22
   23 매개변수 a(i) 경우에 따라 플랜트 i의 용량
   24 / 시애틀 350
**** $170
   25 샌디에이고 600 / ;
...
   49 방정식
   50 비용 정의 목적 함수
   51 공급(i) 공장 i의 공급 제한을 준수하십시오.
   52 수요(j)는 시장 j의 수요를 충족합니다.
   53
   54 cst .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
**** $140
...
무료 슬롯 사이트 메시지

140 알 수 없는 기호
...
170 요소에 대한 도메인 위반

무엇이 잘못되었나요? 24번째 줄에서 set 요소에 주목하세요.시애틀다음으로 참조됨시애틀. GAMS는 이 기호를 집합의 요소로 인식하지 않습니다.I따라서 이를 무료 슬롯 사이트로 표시170:도메인 위반. GAMS는 자동으로 수행되므로 이 무료 슬롯 사이트를 포착합니다.도메인 확인. 54번째 줄에 오타가 있습니다. 여기서 방정식은 다음과 같습니다.비용다음으로 참조됨cst, 무료 슬롯 사이트로 표시됨140 (알 수 없음 기호), 이후cst이었음아님이전에 선언되었습니다.

참고
세트 이름 철자 무료 슬롯 사이트가 무료 슬롯 사이트와 관련되어 있습니다.120, 요소 철자 무료 슬롯 사이트 설정170및 기타 철자 무료 슬롯 사이트140.

이러한 무료 슬롯 사이트를 수정하는 것은 오타를 수정하는 것만큼 쉽습니다.

무료 슬롯 사이트 D: 세트 요소 누락

때때로 사용자는 set 문에 요소를 포함하는 것을 잊었지만 나중에 참조합니다. 다음의 간단한 예를 고려해 보세요.

세트 c "작물" / 보리, 밀, 콩 /;
매개변수 d(c) "수요(미터톤)" / 쌀 3, 보리 1, 밀 4, 콩 2 /;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

1 세트 c "작물" / 보리, 밀, 콩 /;
   2 매개변수 d(c) "수요(미터톤)" / 쌀 3, 보리 1, 밀 4, 콩 2 /;
**** $170
...
무료 슬롯 사이트 메시지

170 요소에 대한 도메인 위반

무슨 문제가 있었나요? 기호에 유의하세요.세트의 요소로 정의되지 않았습니다.C, 따라서 GAMS는 이를 인식하지 못하고 무료 슬롯 사이트로 표시합니다.170:도메인 위반. GAMS는 자동으로 수행되므로 이 무료 슬롯 사이트를 포착합니다.도메인 확인.

참고
기호가 집합 요소로 정의되지 않았지만 나중에 집합에 속하는 것처럼 참조되는 경우 무료 슬롯 사이트170발생할 것입니다.

이것은 수정하기 쉽습니다. 누락된 요소를 해당 세트의 요소에 추가하기만 하면 됩니다.

무료 슬롯 사이트 E: 색인 문제

변수, 세트, 매개변수 및 방정식은 하나 이상의 색인에 대해 정의될 수 있음을 기억하십시오. 나중에 프로그램에서 식별자가 참조되는 경우 인덱스는 각 정의문에 지정된 순서대로 정확하게 나타나야 합니다. 잘 알려진 운송 모델을 적용한 다음 예를 고려해 보세요.[TRNSPORT]:

설정 "통조림 공장" / 시애틀, 샌디에고 / 
     j "시장" / 뉴욕, 시카고, 토피카 / ;

테이블 d(i,j) "거리(천 마일)"
                    뉴욕 시카고 토피카
      시애틀 2.5 1.7 1.8
      샌디에고 2.5 1.8 1.4 ;

스칼라 f "1,000마일당 케이스당 운임(달러)" /90/ ;
매개변수 c(i,j) "케이스당 운송 비용(단위: 수천 달러)" ;
c(i,j,j) = f * d(j,i) / 1000 ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

40 매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ;
   41 c(i,j,j) = f * d(j,i) / 1000 ;
**** $148 $171,171
...
무료 슬롯 사이트 메시지

148 차원이 다름 - 기호는 more/less로 참조됩니다.
        선언된 인덱스
171 세트에 대한 도메인 위반

무엇이 잘못됐나요? 매개변수에 유의하세요.C은 두 개의 인덱스에 걸쳐 선언되었지만 41행의 할당문에서는 세 개의 인덱스로 참조됩니다. 이러한 실수는 무료 슬롯 사이트로 표시됩니다.148. 추가로, 인덱스는D잘못된 순서로 참조되어 무료 슬롯 사이트로 표시됨171.

참고
식별자가 선언된 대로 어느 정도의 색인으로 참조되면 무료 슬롯 사이트가 발생합니다.148발동됩니다. 인덱스의 순서가 잘못된 경우 무료 슬롯 사이트가 발생합니다.171트리거됩니다.

이 문제는 해결하기 쉽습니다. 선언 또는 정의문을 확인하고 참조를 조정하기만 하면 됩니다.

도메인 무료 슬롯 사이트 확인171식별자가 색인으로 참조되는 경우에도 트리거됩니다.I, 그러나 지나치게 정의되었습니다J. 그러나 다음과 같은 경우에는 도메인 무료 슬롯 사이트가 발생하지 않습니다.I는의 하위 집합입니다.J또는I그리고J동일한 세트를 참조합니다.별칭.

무료 슬롯 사이트 F: 이미 색인이 생성된 세트에 대한 합산

잘 알려진 운송 모델에서 채택된 다음 방정식 정의를 고려하십시오.[TRNSPORT]:

공급(i) .. sum((i,j), x(i,j)) =l= a(i) ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

59 공급(i) .. sum((i,j), x(i,j)) =l= a(i) ;
**** $125
...
무료 슬롯 사이트 메시지

125 세트는 이미 통제되고 있습니다.

무슨 문제가 있었나요? 방정식은 집합에 대해 색인화되어 있습니다.I, 따라서 색인화된 작업합계방정식 본문은 색인에 의해 제어되지 않을 수 있습니다.I다시.

참고
이미 색인화된 세트를 합산하면 무료 슬롯 사이트가 발생합니다.125.

이 문제를 어떻게 해결하나요? 인덱스 작업을 주의 깊게 확인하고 잉여 인덱스를 삭제해야 합니다. 다른 경우에는 제어 색인을 방정식 이름에서 삭제해야 할 수도 있습니다. 이와 같은 무료 슬롯 사이트는 사고의 명확성이 부족함을 나타내는 경우가 많습니다.

무료 슬롯 사이트 G: 제어되지 않은 세트

잘 알려진 운송 모델에서 채택된 다음 방정식 정의를 고려하십시오.[TRNSPORT]:

수요 .. sum(i, x(i,j)) =g= b(j) ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

61 수요 .. sum(i, x(i,j)) =g= b(j) ;
**** $149 $149
...
무료 슬롯 사이트 메시지

149 제어되지 않는 세트가 상수로 입력됨

무엇이 잘못되었나요? 변수에 유의하세요.x세트에 대해 색인이 생성됩니다I그리고J하지만, 동안I인덱싱된 작업의 인덱스입니다합계, J"무료"입니다. 방정식의 색인이나 제어 색인으로 표시되지 않습니다.합계. 따라서 상수인 것처럼 입력되었습니다. 추가로 참고하세요.J또한 제어되지 않고 방정식 오른쪽의 색인으로 사용됩니다.

참고
무료 슬롯 사이트149다음과 같은 방정식 또는 색인 작업의 맥락에서 색인이 제어되지 않는 경우를 표시합니다.또는프로드.

이 문제를 어떻게 해결하나요? 우리는 실제로 모델링하고 싶은 것이 무엇인지 생각해야 합니다. 이 경우 다음을 입력해야 합니다.J방정식의 제어 지수로 사용됩니다. 그러나 이를 제어 색인으로 추가하는 것도 가능합니다.합계(그러나 둘 다는 아닙니다!). 후자의 경우 오른쪽에는 다른 색인 작업으로 처리해야 하는 무료 슬롯 사이트가 여전히 있습니다(예:합계다시. 두 접근 방식 모두 컴파일 무료 슬롯 사이트를 제거하지만 여기서 올바른 수정 사항을 결정하려면 실제로 무엇을 모델링해야 하는지 생각해야 합니다.

무료 슬롯 사이트 H: 일치하지 않는 괄호

모델에서 적용된 다음 두 방정식을 고려하세요.[체너리]:

mb(i).. x(i) =g= y(i) + sum(j, aio(i,j)*x(j)) + ( e(i) - m(i) ))$t(i) ;
...
dvv(i)$(sig(i) <> 0).. vv(i) =e= (pi*(1-del(i))/del(i))**(-rho(i)/(1+rho(i)) ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

137 mb(i).. x(i) =g= y(i) + sum(j, aio(i,j)*x(j)) + ( e(i) - m(i) ))$t(i) ;
**** $408,409
...
   155 dvv(i)$(sig(i) <> 0).. vv(i) =e= (pi*(1-del(i))/del(i))**(-rho(i)/(1+rho(i)) ;
**** $8
...
무료 슬롯 사이트 메시지

  8')' 예상됨
...
408 너무 많습니다 ),] 또는

무슨 문제가 있었나요? 첫 번째 방정식에는 하나의 잉여 닫는 괄호가 있으며 이는 무료 슬롯 사이트로 표시됩니다.408. 다음과 같은 무료 슬롯 사이트가 표시됩니다.409은 결과적인 무료 슬롯 사이트입니다. 첫 번째 무료 슬롯 사이트가 수정되면 사라집니다. 두 번째 방정식에서는 닫는 괄호 하나가 누락되어 무료 슬롯 사이트가 발생했습니다.8.

주의
괄호 열기 및 닫기( ), 대괄호[ ]및 중괄호(중괄호){ }일치해야 합니다.
참고
여분의 닫는 괄호, 대괄호 및 중괄호는 무료 슬롯 사이트로 표시됩니다.408그리고 닫는 괄호가 누락되어 대괄호와 중괄호가 무료 슬롯 사이트로 표시됩니다.8. 누락됨 열기괄호, 대괄호 및 중괄호로 인해 GAMS 표시가 발생할 수 있습니다.잉여 닫는괄호, 대괄호 및 중괄호;잉여 열기괄호, 대괄호 및 중괄호로 인해 GAMS 표시가 발생할 수 있습니다.누락 닫는괄호, 대괄호 및 중괄호.

이러한 무료 슬롯 사이트를 수정하려면 열고 닫는 괄호를 주의 깊게 계산해야 하지만, 일치하지 않는 괄호 무료 슬롯 사이트를 방지하는 데 도움이 되는 전략이 있습니다. GAMS Studio와 같은 많은 텍스트 편집기는 일치하는 괄호를 식별하고 불일치가 있는 경우 경고를 표시하는 기능을 제공합니다. 이 기능을 사용하는 것이 좋습니다. 또한 괄호 대신 대괄호와 중괄호를 사용하는 것이 좋습니다. 여는 괄호가 여러 개인 경우 각 괄호에 일치하는 닫는 기호가 있는지 검사하여 결정하는 것이 더 쉽기 때문에 특히 유용합니다.

무료 슬롯 사이트 I: 방정식과 관련된 실수

각각 선언한 것을 기억하세요방정식에서 사용하려면 정의해야 합니다.모델 진술. 방정식 정의가 누락된 경우 GAMS는 정의되지 않은 각 방정식을 참조하는 모델을 참조하는 풀이 문 아래에 무료 슬롯 사이트를 표시합니다. 잘 알려진 운송 모델을 적용한 다음 예를 고려해 보세요.[TRNSPORT]:

방정식
       비용 "목적 함수 정의"
       Supply(i) "공장 i의 공급 제한을 준수하십시오"
       수요(j) "시장 j의 수요를 충족";

비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
공급(i) .. sum(j, x(i,j)) =l= a(i) ;

모델 전송 /all/ ;
z를 최소화하는 lp를 사용하여 전송 문제를 해결합니다.

결과 컴파일 출력에는 다음 줄이 포함됩니다:

60 모델 수송 /all/ ;
   61 z를 최소화하는 lp를 사용하여 전송을 해결합니다.
**** $71,256
**** 모델 전송 중 다음 LP 무료 슬롯 사이트가 감지되었습니다.
**** 71 수요는 정의되지 않은 방정식입니다.
...
무료 슬롯 사이트 메시지

 71 표시된 기호는 방정식으로 선언되었지만
        기호 방정식(..)을 찾았습니다. 힌트 - 쉼표를 찾으세요.
        방정식에 대한 문서 텍스트입니다. 주위에 따옴표를 사용하십시오
        텍스트를 입력하거나 쉼표를 삭제하세요.
256 해결 문 분석 중 무료 슬롯 사이트가 발생했습니다. 자세한 내용이 나타납니다.
     위의 해결 문 아래

무엇이 잘못되었나요? 방정식에 주목하세요.수요선언되어 모델에 포함되었습니다.운송이지만 정의되지 않았습니다. GAMS는 모델과 관련된 풀이 문을 컴파일할 때 방정식 정의가 누락되었음을 감지합니다.운송. 따라서 무료 슬롯 사이트71거기에만 나타납니다. 무료 슬롯 사이트256은 결과적인 무료 슬롯 사이트입니다. 누락된 방정식 정의가 추가되면 사라집니다. (이전에해결 문).

참고
무료 슬롯 사이트71누락된 방정식 정의를 표시합니다. 이 무료 슬롯 사이트와 관련된 메시지는 매우 설명적이고 무료 슬롯 사이트 수정 방법에 대한 조언을 제공하는 무료 슬롯 사이트 메시지의 좋은 예입니다.

선언된 방정식을 정의하는 것을 잊어버린 것과 방정식 정의 문을 세미콜론으로 끝내는 것을 잊어버린 것 외에도(참조), 방정식과 관련된 두 가지 다른 실수가 자주 발생합니다: 구문 요소 생략..방정식 이름 뒤에 있고 올바르게 정의하지 않음수식 유형방정식 정의문에서. 포트폴리오 분석 모델을 적용한 다음의 간단한 예[ALAN]이러한 실수를 설명합니다:

fsum sum(i, x(i)) =e= 1.0;
dmean.. sum(i, 평균(i)*x(i)) = 목표;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

45 fsum sum(i, x(i)) =e= 1.0;
**** $36
   46 d평균.. sum(i, 평균(i)*x(i)) = 목표;
**** $37
...
무료 슬롯 사이트 메시지

36 '=' 또는 '..' 또는 ':=' 또는 '$=' 연산자가 필요합니다.
     나머지 문은 무시됨
37 '=l=' 또는 '=e=' 또는 '=g=' 연산자가 필요합니다

무슨 문제가 있었나요? 첫 번째 방정식에서 두 개의 점을 주목하세요...누락되어 무료 슬롯 사이트로 표시됨36, 두 번째 방정식에서는 방정식 유형이 제대로 지정되지 않아 무료 슬롯 사이트가 발생합니다.37.

무료 슬롯 사이트 J: 비선형 표현식 관련 문제

컴파일 무료 슬롯 사이트 메시지5160방정식의 변수와 관련된 비선형 표현식 문제를 참조하세요. 예를 들어, LP 모델의 비선형 표현식은 이러한 종류의 무료 슬롯 사이트를 발생시킵니다. NLP 모델에서 내생적 인수가 있는 불연속 함수도 마찬가지입니다. 함수의 내생 인수에 대한 자세한 내용은 섹션을 참조하세요.방정식 정의의 함수. GAMS 모델 유형에 대한 개요는 섹션을 참조하세요.모델 분류.

다음의 간단한 인위적인 예를 생각해 보십시오:

변수 x, y, z ;
방정식 eq1, eq2 ;

eq1.. x**2 - y =e= z ;
eq2..min(x,y) =l= 20 ;

모델 바보 / 모두 / ;
z를 최대화하는 lp를 사용하여 어리석은 문제를 해결하세요.

결과 컴파일 출력에는 다음 줄이 포함됩니다:

7 모델 바보 / 모두 / ;
   8 z를 최대화하는 lp를 사용하여 어리석은 문제를 해결합니다.
**** $54,51,256
**** 모델 바보에서 다음 LP 무료 슬롯 사이트가 감지되었습니다.
**** 54 방정식 eq1.. **에 대한 VAR 피연산자
**** 51 방정식 eq2.. MIN 함수가 상수가 아닌 인수로 호출됩니다.

무료 슬롯 사이트 메시지

51 선형 모델에서는 내생 함수 인수가 허용되지 않습니다.
54 **에 대한 내생 피연산자는 선형 모형에서 허용되지 않습니다.
256 해결 문 분석 중 무료 슬롯 사이트가 발생했습니다. 자세한 내용이 나타납니다.
     위의 해결 문 아래

무료 슬롯 사이트에 주의하세요54선형 모델에서 비선형 표현식 \(x^2\)을 표시하고 무료 슬롯 사이트가 발생함51불연속 함수를 나타냄DNLP 유형의 모델에서만 변수와 함께 사용할 수 있습니다. 무료 슬롯 사이트256이전 두 무료 슬롯 사이트의 결과입니다.

무료 슬롯 사이트 K: 정의되지 않은 데이터 사용

스칼라, 매개변수 또는 테이블 문으로 선언되지 않은 데이터 항목을 참조하면 무료 슬롯 사이트가 발생합니다140: GAMS는 해당 기호를 알 수 없음을 나타냅니다. 데이터 항목이 선언되지만 정의되지 않는 경우가 더 많습니다. 즉, 값으로 초기화되지 않습니다.

잘 알려진 운송 모델을 적용한 다음 예를 고려하십시오.[TRNSPORT]. 스칼라는 다음과 같다고 가정합니다.F이(가) 선언되었지만 숫자 값이 없습니다. 결과 컴파일 출력에는 다음 줄이 포함됩니다.

40 스칼라 f 운임(1,000마일당 케이스당 달러) ;
   41
   42 매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ;
   43
   44 c(i,j) = f * d(i,j) / 1000 ;
**** $141 
...
   61 모델 전송 /all/ ;
   62 z를 최소화하는 lp를 사용하여 전송을 해결합니다.
**** $257
   63
   64 디스플레이 x.l, x.m ;
**** $141
...
무료 슬롯 사이트 메시지

141 기호가 선언되었지만 값이 할당되지 않았습니다. 누락 확인
        데이터 정의, 할당, 데이터 로딩 또는 암시적 할당
        해결 문을 통해.
        와일드 샷: 설명에 가짜 쉼표가 있을 수 있습니다.
        선언문. 기호 참조 목록을 확인하세요.
257 이전 무료 슬롯 사이트로 인해 Solve 문이 확인되지 않았습니다.

무슨 문제가 있었나요? 스칼라F이 선언되었지만 할당된 값이 없습니다. 따라서 44행의 계산에서 참조될 때 "빈" 스칼라로 인해 무료 슬롯 사이트가 발생합니다.141. 무료 슬롯 사이트257결과적인 무료 슬롯 사이트이며 두 번째 무료 슬롯 사이트로 이어집니다.141. 이 무료 슬롯 사이트는 표시 문의 변수 속성 컨텍스트에서 발생합니다. 그것을 기억해내세요변수 속성변수와 연관된 데이터입니다. 풀이문을 확인할 수 없어 변수의 수준과 한계값x정의되지 않았으므로 무료 슬롯 사이트141다음과 같습니다.

참고
무료 슬롯 사이트141정의되지 않은 데이터 항목이 할당문의 맥락에서 계산에서 참조되는 위치를 표시합니다. 또한 정의되지 않은 변수(또는 방정식) 속성이 참조되는 위치를 표시합니다.

또한 정의되지 않은 데이터 항목은 방정식 정의의 맥락에서 참조될 수 있습니다. 매개변수를 선언한다고 가정해 보겠습니다.C모델에서[TRNSPORT], 그러나 해당 할당문은 잊어버립니다. 그러면 컴파일 출력에 다음 줄이 포함됩니다.

57 비용 .. z =e= sum((i,j), c(i,j)* x(i,j)) ;
 ...
   62 z를 최소화하는 lp를 사용하여 전송을 해결합니다.
**** $66,256
**** 모델 전송 중 다음 LP 무료 슬롯 사이트가 감지되었습니다.
**** 66 방정식 비용.. 기호 "c"에는 할당된 값이 없습니다.
...
무료 슬롯 사이트 메시지

 66 표시된 기호는 정의되거나 할당되지 않았습니다.
        와일드 샷: 설명에 가짜 쉼표가 있을 수 있습니다.
        선언문. 기호 참조 목록을 확인하세요.
256 해결 문 분석 중 무료 슬롯 사이트가 발생했습니다. 자세한 내용이 나타납니다.
     위의 해결 문 아래

등식 본문에 누락된 데이터가 있음에 유의하세요.비용무료 슬롯 사이트로 표시됨66그리고 다음 무료 슬롯 사이트는 한 번 사라지는 결과적인 무료 슬롯 사이트입니다.66수정되었습니다.

참고
방정식 본문에서 정의되지 않은 데이터 항목을 참조하면 무료 슬롯 사이트가 발생함66.

무료 슬롯 사이트 L: 따옴표 없이 집합 요소 참조

설정 요소가 참조되는 경우 작은따옴표나 큰따옴표로 표시되어야 한다는 점을 기억하세요. 따옴표를 생략하면 상황에 따라 다른 무료 슬롯 사이트가 발생할 수 있습니다. 다음 예는 잘 알려진 운송 모델에서 채택되었습니다.[TRNSPORT]. 두 개의 세트와 두 개의 매개변수를 정의하는 것으로 시작한 후 다음 명령문을 추가한다고 가정합니다.

스칼라 s;
s = a(시애틀);

결과 컴파일 출력에는 다음 줄이 포함됩니다:

37 스칼라 s;
   38s = a(시애틀);
**** $120,340,149,171
...
무료 슬롯 사이트 메시지

120 알 수 없는 식별자가 세트로 입력되었습니다.
149 제어되지 않는 세트가 상수로 입력되었습니다.
171 세트에 대한 도메인 위반
340 동일한 이름의 라벨/요소가 존재합니다. 잊어버렸을 수도 있어요
        라벨/요소 참조를 인용합니다. 예를 들어,
        나는 / a,b,c /를 설정; 매개변수 x(i); x('a') = 10;

무슨 문제가 있었나요? 할당문의 오른쪽에는 따옴표가 누락된 참조가 있습니다. 이렇게 하면 4개의(!) 무료 슬롯 사이트가 발생합니다.

  • 120- GAMS는 제어 세트를 기대하며시애틀인식되지 않으므로 알 수 없는 식별자로 간주됩니다.
  • 340- 그러면 GAMS는 실제로라는 라벨이 있다는 것을 알게 됩니다.시애틀프로그램에서 유용한 힌트를 제공합니다.라벨/요소 참조를 인용하는 것을 잊었을 수도 있습니다.
  • 149- 섹션 참조무료 슬롯 사이트 G: 제어되지 않은 세트위.
  • 171- 섹션 참조무료 슬롯 사이트 E: 색인 문제위.

이것은 어려워 보일 수 있는 여러 무료 슬롯 사이트를 유발하는 한 번의 실수에 대한 좋은 예입니다. 그러나 작은따옴표나 큰따옴표를 추가하는 것만큼 쉽게 문제를 해결할 수 있습니다.

무료 슬롯 사이트 M: 선언문 누락

세트, 매개변수, 변수 및 방정식은 정의 또는 할당문에서 사용되기 전에 선언되어야 한다는 점을 기억하십시오. 방정식을 가정하자수요잘 알려진 운송 모델에서[TRNSPORT]정의되었지만 선언되지 않았습니다. 그러면 컴파일 출력에 다음 줄이 포함됩니다.

59 수요(j) .. sum(i, x(i,j)) =g= b(j) ;
**** $140
...
무료 슬롯 사이트 메시지

140 알 수 없는 기호

참고하세요수요선언되지 않았습니다. GAMS가 이를 인식하지 못하므로 무료 슬롯 사이트로 표시합니다.140:알 수 없는 기호.

참고
무료 슬롯 사이트인 경우140이 보고되면 해당 선언문이 누락되었을 수 있습니다. 그러나 근본적인 원인은 단순한 오타일 수도 있습니다.

무료 슬롯 사이트 N: 다른 식별자에 동일한 이름 사용

각각 기억하세요GAMS 식별자고유한 이름이 있어야 합니다. 동일한 이름이 두 번 이상 사용되면 무료 슬롯 사이트가 발생합니다. 운송 모델의 다음 수정을 고려하십시오.[TRNSPORT]:

매개변수 용량(i) "경우에 따른 식물 i의 용량"
                / 시애틀 350, 샌디에이고 600 /

            수요(j) "경우에 따라 시장 j의 수요"
                / 뉴욕 325, 시카고 300, 토피카 275 /;
...
방정식
       비용 "목적 함수 정의"
       Supply(i) "공장 i의 공급 제한을 준수하십시오"
       수요(j) "시장 j의 수요를 충족" ;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

47 방정식
   48 비용 정의 목적 함수
   49 공급(i) 공장 i의 공급 제한을 준수하십시오.
   50 수요(j)는 시장 j의 수요를 충족시킵니다.
**** $195
...
무료 슬롯 사이트 메시지

195 다른 유형으로 재정의된 기호

무슨 문제가 있었나요? 참고하세요수요은 처음에는 매개변수로 선언되었고 나중에는 방정식으로 선언되었습니다. GAMS는 동일한 이름을 반복적으로 사용하면 무료 슬롯 사이트로 표시합니다.195.

무료 슬롯 사이트 O: 순서가 지정되지 않은 집합에 ORD 사용

이 작업을 기억하세요ord다음에 대해서만 정의됩니다.세트 주문. 만일ord순서가 지정되지 않은 세트와 함께 사용되었습니다. 무료 슬롯 사이트198발동됩니다.

다음 예를 고려해보세요:

"몇 가지 요소" 설정 / r2, r3 /;
b "추가 요소" 설정 / r1*r4 /;
스칼라 c "카운터" / 0 /;

루프( b $ (ord(b) > 3), 
    c = c + 1 );
디스플레이 c;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

5 루프( b $ (ord(b) > 3),
**** $198
   6c = c + 1 );
...
무료 슬롯 사이트 메시지

198 'ord' 또는 lag에 사용된 세트가 순서가 없습니다.
        힌트: 세트의 일부 요소는 이전에 사용되었습니다.
        초기화되었으며 사용된 순서와 다른 순서가 있습니다.
        이 세트에. 세트를 더 일찍 초기화해 보십시오.
        $offOrder는 동적 세트에 대한 지연 작업을 허용하고 다음을 사용하여 재설정합니다.
        $onOrder

무슨 문제가 있었나요? 세트의 두 요소B이미 세트에 포함되어 있습니다A설정 전에 정의된 것B. 따라서 집합의 요소 순서는 다음과 같습니다.B다음과 같습니다:

r2 r3 r1 r4

분명히 이 세트는 순서가 지정되지 않았으므로 GAMS는 무료 슬롯 사이트를 표시합니다.198연산자가ord적용됩니다.

이 문제를 어떻게 해결하나요? 이 경우에는 쉽습니다. 집합을 정의하기만 하면 됩니다.B설정 전A그리고B주문세트가 됩니다.

마지막 예를 하나 생각해 보십시오:

"모든 요소" / r1*r10 / 설정;
b "다른 순서의 요소" 설정 / r3, r1, r4, r7 /;
스칼라 c "카운터" / 0 /;

루프( b $ (ord(b) > 3),
    c = c +1 );
디스플레이 c;

결과 컴파일 출력에는 다음 줄이 포함됩니다:

5 루프( b $ (ord(b) > 3),
**** $198
   6c = c +1 );

무슨 문제가 있었나요? 세트의 모든 요소가B또한 집합의 요소입니다A, 동일한 순서로 지정되지 않았습니다. 그러므로 세트B순서가 없습니다. 자세한 내용은 섹션을 참조하세요.정렬된 세트와 정렬되지 않은 세트.