21.3 주요 릴리스(2004년 1월 19일)
피망 슬롯 시스템
모델 라이브러리
- "Computible General Equilibrium Modeling 핸드북"(도쿄 대학 출판부, 도쿄(출시 예정))의 모델이 모델 라이브러리에 추가되었습니다.
- 여러 QCP 모델이 추가되었습니다
- BCH(Branch-and-Cut-and-Heuristic) 기능을 설명하는 일련의 모델이 추가되었습니다.
TESTLIB
- 테스트 및 품질 관리를 위해 개발된 새로운 모델 라이브러리:
- 솔버 정확성
- 기본 모듈 기능
- 성능
- 피망 슬롯 직원 및 솔버 제공업체가 사용하도록 설계됨
- 모든 사용자가 테스트를 재현할 수 있도록 허용
- testlib에서 모델을 검색하려면:
> 테스트립 ....
피망 슬롯 IDE
- 편집기에서 파일 이름을 보여주는 탭은 전체 경로 이름을 사용하여 정렬된 순서로 유지됩니다.
- 검색, 검색, 바꾸기 및 파일 검색에서 정규식 지원
- Ctrl-F를 사용하여 텍스트를 검색할 때 커서 아래의 단어가 검색할 텍스트로 사용됩니다.
- 참조 파일용 뷰어를 추가했습니다. 피망 슬롯 호출에서 rf 옵션을 사용하여 참조 파일이 생성됩니다. IDE는 참조 파일의 파일 확장자가 '.ref'라고 가정합니다.
- Epsilon 키보드 매핑의 하위 집합을 에뮬레이트하는 옵션이 추가되었습니다.
GDX 유틸리티
- GDXMerge가 추가되었습니다; 여러 gdx 파일을 단일 gdx 파일로 결합하는 유틸리티입니다.
- GDX2Veda가 추가되었습니다; 피망 슬롯 데이터를 다음으로 내보내는 유틸리티입니다.Versatile 데이터 분석가(VEDA).
피망 슬롯 분기 및 잘라내기 및 휴리스틱(BCH) 기능
- 피망 슬롯 BCH(Branch-and-Cut-and-Heuristic) 기능을 통해 피망 슬롯 사용자는 특수 피망 슬롯 프로그램을 제공하여 실행 중인 MIP/MINLP 솔버와 상호 작용하여 생성할 수 있습니다.절단면그리고 좋아정수 실행 가능한 솔루션. 이를 통해 피망 슬롯 사용자는 특정 MIP 시스템의 내부 작동에 대한 깊은 지식 없이도 복잡한 솔루션 전략을 적용할 수 있습니다. 이제 BCH 전략은 몇 주가 아닌 며칠 내에 신속하고 안정적으로 구현될 수 있습니다. 세부정보와 예시를 확인할 수 있습니다.여기.
2차적으로 제한된 프로그램 유형 QCP, MIQCP 및 RMIQCP
- 2차 제약 문제에 대한 새로운 모델 유형은 다음과 같습니다:
- QCP: 2차적으로 제한된 프로그램
- MIQCP: 혼합 정수 2차 제약 프로그램
- RMIQCP: 완화된 혼합 정수 2차 제약 프로그램
- 이러한 모델 유형은 비선형성이 2차 형식으로 제한된 NLP, MINLP 및 RMINLP와 같습니다. QCP 문제는 기존 비선형 솔버와 2차 확장을 제공하는 대규모 LP 솔버를 사용하여 해결할 수 있습니다. 예를 들어 모델 라이브러리에서 qalan, qcp1, qdemo7 및 qsambal 모델을 살펴보세요.
솔버 링크 옵션 SOLVELINK
- 이 새로운 옵션을 사용하면 솔버 또는 하위 시스템이 호출되는 방식을 제어할 수 있습니다. 이는 전체 데이터베이스의 크기에 비해 상대적으로 작은 다수의 모델을 해결할 때 도움이 될 수 있습니다.
- 새로운 옵션 값은 다음과 같습니다:
- 0: 각 해결에 대해 자동 저장/다시 시작(기본값 - 이전 동작)
- 1: 쉘 메소드를 사용하여 하위 시스템을 호출합니다.
- 2: 생성 메소드를 사용하여 하위 시스템 호출
- 이 옵션은 피망 슬롯 매개변수로 지정될 수 있습니다(
> 게임 ...solvlink=n), 옵션 문의 일부(옵션 풀링크=n;) 또는 모델 속성으로 지정됨(mymodel.solvelink=n;) 일부 데모 제한이 제거됨 - 심볼 수와 고유 세트 요소 수에 대한 데모 버전 크기 제한이 제거되었습니다. 이전에는 데모/학생 버전의 기호가 2,000개로 제한되었습니다.
저장 포인트 옵션 SAVEPOINT
- 이 새로운 옵션은 피망 슬롯가 나중에 동일한 프로그램이나 다른 프로그램에서 사용할 수 있도록 GDX 파일에 솔루션을 작성하도록 지시합니다. 이는 좋은 시작점을 제공하거나 이후 단계에서 많은 수의 솔루션을 처리하려는 경우에 도움이 될 수 있습니다. 새로운 옵션 값은 다음과 같습니다:
- 0: 포인트 파일을 쓰지 않음(기본값)
- 1: GDX 파일에 솔루션 작성
<작업 디렉터리><모델 이름>_p.gdx - 2: GDX 파일에 솔루션 작성
<workdir><모델 이름>_p<solvenumber>.gdx
- 이 옵션은 피망 슬롯 매개변수로 지정될 수 있습니다(
> 게임 ... 저장점=n), 옵션 문의 일부(옵션 저장점=n;) 또는 모델 속성으로 지정됨(mymodel.savepoint=n;).execute_loadpoint솔루션 포인트를 피망 슬롯 데이터베이스에 병합할 수 있습니다.
완화된 MCP 및 MPEC 구문
- 변수는 이제 하나 이상의 변수에 나타날 수 있습니다.
equ.var모델 목록의 쌍, 그러나 모델의 최종 인스턴스에서는 모든 매핑이 고유해야 합니다.
EXECUTE_LOAD 및 EXECUTE_UNLOAD 개선
- execute_load
gamspar = gdxvar.xx:xx될 수 있습니다lm...gamsvar.xx = gdxvar.xx
- execute_unload:
- 인수 없음은 모두 덤프를 의미합니다.
- 동일 기호의 다중 발생 허용
x.l x.up x a a x.l=a:a완전합니다x변수
새 EXECUTE_LOADPOINT
- 이 새로운 명령
execute_loadpoint다음과 유사함EXECUTE_LOAD그러나 새 값은 이전 값과 병합됩니다. GDX 파일 이름 외에 인수가 제공되지 않으면 호출하는 피망 슬롯 프로그램의 변수 및 방정식과 일치하는 모든 변수 및 방정식이 GDX 수준 및 한계 값과 병합됩니다. 경계, 규모, 우선순위는 변경되지 않습니다. 이는 다음과 관련하여 매우 유용할 수 있습니다.세이브포인트시설.
중첩된 피망 슬롯 매개변수 PF=xxx
- 이제 명령줄 포함 매개변수가 중첩된 포함을 처리할 수 있습니다.
새로운 기능
많은 새로운 기능이 추가되었습니다.
TimeStart: 누적된 재시작 시간TimeComp: 컴파일 시간(초)TimeExec: 실행 시간(초)시간닫기: 누적 저장 시간프랙: frac(x)는 x의 분수 부분입니다.오류레벨: 가장 최근에 호출된 외부 프로그램의 코드를 반환합니다.힙 크기: 현재 힙 크기(MB)사실: 계승UniformInt: 사이의 균일한 정수 난수UniformInt(낮음,높음)PI: 유명한 상수 3.14....NcpF:NcpF(x,y,c) = sqrt(sqr(x) + sqr(y) + 2*c) - x - y피셔NcpCM:NcpCM(x,y,c) = x - c*ln(1+exp((x-y)/c)첸-망가사리안엔트로피:엔트로피(x) = -x*log(x)시그모이드:시그모이드(x) = 1/(1+exp(-x))로그2: 대수 밑 2IfThen:ifthen(조건, 참 표현식, 거짓 표현식)편집자:Edist(x,y,..) = sqrt(sqr(x)+sqr(y)+..)엔트로피:중심점(x,c) = x*ln(x/c)교차 엔트로피
테이블 설정
- 매개변수 데이터와 유사한 표 형식으로 설정된 데이터를 입력할 수 있습니다. 데이터 항목은 숫자일 수도 있고 예/아니요를 포함한 특수 값일 수도 있습니다. 데이터 테이블을 매개변수 또는 집합으로 해석할 수 있도록 NO 및 YES의 특수 값은 각각 0과 1로 해석됩니다.
몇 가지 새로운 사소하고 이국적인 기능
- 실제 힘의 역동적인 재해석. 자동 변환을 사용할 때 지수가 일정하고 범위 내에 있는 경우 실수 거듭제곱을 정수 거듭제곱으로 처리하는 것이 도움이 될 수 있습니다.
e-12정수 값. Option을 설정하여 활성화할 수 있습니다.sys10=1;옵션 설정으로 비활성화됨sys10=0;(기본값). - 파일 이름 대소문자. 운영 체제에 전달된 파일 이름은 원래 대소문자를 유지합니다. 이는 피망 슬롯 매개변수로 변경될 수 있습니다.
FILECASE=n, 여기서n=0원래 대소문자를 유지한다는 의미(기본값)n=1파일 이름을 대문자로 하고n=2파일 이름은 소문자로 표시됩니다.
$CLEARERROR모든 컴파일 오류 지우기$TERMINATE컴파일을 종료하고 실행을 건너뜁니다.$SETNAMES 파일 이름 파일 경로 파일 이름 파일 확장자문자열 파일 이름을 세 가지 구성 요소로 분리한 다음 피망 슬롯 환경 변수로 저장합니다. 예를 들어,$setname d:\피망 슬롯\xxx.txt fp fn fe세 개의 문자열 변수 생성/업데이트fp,fn,fe다음에 의해 원래 파일 이름 문자열로 결합됩니다%fp%%fn%%fe%.$SETCOMPS s1.s2.s3.. 첫 번째 두 번째 세 번째문자열을 분리합니다s1.s2...구성요소에 추가하여 환경 변수에 저장첫 번째,초,..$IF 경고명령$REMARK문자열 대체가 포함된 주석$ON/OFFUNDF특수값 사용을 허용합니다UNDF데이터 문 및 표현식에서.시스템.xxx그리고%system.xxx%향상되고 통합되었습니다. 전체 목록은 다음과 같습니다.
그날짜, 시간, 제목, 페이지, SFILE, RTIME, RDATE, RFILE, IFILE, OFILE ,버전 플랫폼, LP, NLP, ...모든 모델 유형, LICE1, LICE2, GSTRING, SSTRING, PFILE ILINE, OPAGE, VERID, ELAPSED, MEMORY, TSTART, TCLOSE, TCOMP, TEXEC, INCPARENT INCPARENTL, INCNAME, INCLINE, LINE, LISTLINE, FILESYS, PRLINE, PRPAGE, FE, FN FP, REDIRLOG, ERRORLEVELsystem.xxx양식은 다음에서 사용됩니다PUT문장, 그%system.xxx%양식은 컴파일 중 문자열 대체에 사용됩니다.- 빠른 예측 및 집계 피망 슬롯 실행 엔진은 특정 대규모 데이터 구조에서 제대로 작동하지 않습니다. 이는 피망 슬롯에 다음을 통해 특정 작업을 '파이프라인'하도록 지시하여 극복할 수 있습니다.
옵션진술.
왼쪽과 오른쪽은 도메인 선언을 준수하는 피망 슬롯 식별자입니다. 왼쪽 기호의 차원은 오른쪽 기호의 차원과 같거나 작아야 합니다. 왼쪽 차원이 오른쪽 차원보다 작은 경우 수행되는 작업은 왼쪽의 데이터 유형에 따라 집계 또는 프로젝션입니다. 모든 경우에 인덱스는 도메인 정의에 따라 순열됩니다. 기호에 동일한 도메인 정의가 있는 경우 오른쪽에서 왼쪽으로 순열됩니다(옵션 왼쪽 < 오른쪽, 왼쪽 <= 오른쪽,...;<) 또는 왼쪽에서 오른쪽으로(<=). 예를 들어, 다음과 같다고 가정합니다.
다음과 동일함i를 설정, fromto(i,i), tofrom(i,i); 별칭(i,ii); 매개변수 in(i), out(i); 옵션 tofrom < fromto, in < fromto, out <= fromto;tofrom(i,ii) = fromto(ii,i); in(i) = sum(fromto(ii,i),1); out(i) = sum(fromto(i,ii), 1);
해결사
바론 6.0
- 향상된 메모리 관리
- 기본 경계는 새로운 +/- 무한대입니다.
- 한계값을 얻기 위해 CONOPT 실행이 필요하지 않음
- 다양한 알고리즘 개선
CPLEX 9.0
- 피망 슬롯/Cplex는 이제 Cplex 9.0을 기반으로 합니다. 성능 개선 및 기존 기능 향상 외에도 새로운 피망 슬롯 모델 유형 QCP 및 MIQCP에 대한 지원이 제공됩니다. 일부 호환성 문제로 인해 우리는 여전히 Digital Unix용 CPLEX 8.1을 제공합니다. 세부정보를 확인할 수 있습니다.여기.
대규모 QCP 솔버
- MOSEK은 QCP 및 MIQCP 모델을 처리합니다.
- CPLEX는 QCP 및 MIQCP 모델을 처리합니다.
- XPRESS는 목표에서만 2차 항으로 QCP를 처리합니다.
- SBB는 MIQCP 모델을 처리합니다.
- PATHNLP는 QCP 모델에 대해 2차 형식을 활용합니다.
QCP를 해결할 수 있는 NLP 해결사
- 모든 NLP 솔버(CONOPT, MINOS, SNOPT, ...)는 QCP 및 RMIQCP 모델을 처리합니다.
AMPL 및 Lingo Wrappers는 이제 피망 슬롯 배포판의 일부입니다.
모세크 3.0
MPSGE
- 공식 오류 보고 개선
- MPSGE 모델에서 적절한 라벨과 식별자를 선택하기 위한 새로운 규칙이 있습니다. MPSGE 엔진은 처음에 피망 슬롯/Base에서 부과한 라벨 및 식별자에 대한 기존 10자 제한을 중심으로 설계되었습니다. 피망 슬롯/Base가 이러한 제한을 31자로 완화했을 때 MPSGE 위반을 방지하기 위해 이전 규칙과의 호환성을 확인하는 플래그가 추가되었습니다. 이제 피망 슬롯/Base에서 검사를 제거했습니다. 이제 MPSGE 엔진이 자체 검사를 수행합니다. 이는 새로운 규칙에 따라 긴 라벨과 식별자를 사용할 수 있음을 의미합니다.
- testlib 모델
mpsge01 * mpsge10MPSGE 모델의 식별자에 대한 규칙을 문서화하고 테스트합니다. 예: 하다testlib mpsge01 게임 mpsge01