모델 인스턴스를 수정하고 가장 효율적인 방법으로 결과 문제를 해결합니다.더 보기...
공개 회원 기능 | |
| 무효 | 정리 () |
| 명시적으로 라이센스 세션을 닫습니다. | |
| 무료 슬롯control.ModelInstance | copyModelInstance(varargin) |
| 이것을 복사합니다모델인스턴스새로ModelInstance. | |
| 무효 | 처분 () |
| 비자바 라이브러리에 의해 보류된 외부 리소스를 해제합니다. | |
| 무효 | 인스턴스화(varargin) |
| 인스턴스화모델인스턴스. | |
| 무효 | 인터럽트 () |
| 실행 중으로 인터럽트 신호 보내기모델인스턴스. | |
| 논리적 | isDisposed () |
| 이것인지 문의하세요ModelInstance이미 폐기되었습니다. | |
| 무효 | 해결(varargin) |
| 모델 인스턴스를 해결합니다. | |
공개 속성 | |
| 무료 슬롯control.globals.ModelStat | 모델상태 |
| (읽기 전용) 모델 상태(해결 후 사용 가능) | |
| 문자열 | 이름 |
| (읽기 전용) 이름모델인스턴스 | |
| 무료 슬롯control.globals.SolveStat | 해결상태 |
| (읽기 전용) 모델의 해석 상태(해석 후 사용 가능) | |
| 무료 슬롯control.Database | syncDB |
| (읽기 전용)데이터베이스수정 가능한 데이터를 동기화하는 데 사용됨 | |
자세한 설명
모델 인스턴스를 수정하고 가장 효율적인 방법으로 결과 문제를 해결합니다.
A직업는 무료 슬롯 모델을 처리하는 표준 방법과 솔버에서 제공하는 해당 솔루션입니다. 무료 슬롯 언어는 루프에서 모델을 해결하고 분해 알고리즘 구축과 같은 기타 정교한 작업을 수행할 수 있는 프로그래밍 흐름을 제공합니다.
드문 경우지만 무료 슬롯 모델 생성 시간이 솔버 솔루션 시간을 지배하고 무료 슬롯 자체가 최적화 응용 프로그램에서 병목 현상이 됩니다. 무료 슬롯 풀이 문에 의해 생성된 단일 수학적 모델인 모델 인스턴스의 경우,모델인스턴스클래스는 디스크 IO를 사용하지 않고 모델의 변경 사항만 솔버에 전달하고 핫 스타트(LP와 같은 연속 모델의 경우)를 수행하여 모델 인스턴스를 수정하고 결과 문제를 가장 효율적인 방법으로 해결하는 제어된 방법을 제공합니다.
그ModelInstancea가 필요함체크포인트모델 정의가 포함되어 있습니다. 무료 슬롯 해결의 중요한 부분은 인스턴스화를 위해 제공되어야 합니다.ModelInstance. 모델 인스턴스의 수정은 syncDB의 데이터를 통해 수행됩니다(모델인스턴스유형데이터베이스). 생성해야 합니다.수정자수정 방법에 대한 정보가 포함되어 있습니다모델인스턴스. 그런수정자다음 중 하나로 구성됨매개변수또는 3중의변수또는수식업데이트될 수정 작업(예: 변수의 경계를 업데이트하기 위한 상한, 하한 또는 고정 또는 주로 다른 시작점에서 비선형 모델을 시작하는 데 사용되는 변수 또는 방정식의 수준/한계를 업데이트하기 위한 Primal/Dual) 및 a매개변수수정할 데이터를 보유하고 있습니다.기호a의 인스턴스수정자syncDB에 속해야 합니다. 목록은수정자인스턴스는 인스턴스화 호출 시 제공되어야 합니다. 의 사용매개변수인스턴스수정자인스턴스는 무료 슬롯 모델 소스에서 제한됩니다. 예를 들어 $() 내에서는 매개변수를 사용할 수 없습니다. 이러한 매개변수는 모델에 내생적으로 적용되며 무료 슬롯 컴파일러에서 그대로 처리됩니다. 게다가 모델 인스턴스의 테두리는 고정되어 있어 변수 및 방정식의 추가가 불가능합니다.
인스턴스화 호출은 기호 정보만 쿼리합니다수정자, syncDB의 데이터가 아닙니다. 수정자의 차원을 검색합니다. 이것이 바로 Instantiate가 호출될 때 syncDB에 수정자 기호가 존재해야 하는 이유입니다(그러나 데이터가 있을 필요는 없습니다). 그만큼매개변수syncDB의 업데이트 데이터가 포함된 인스턴스는 Solve 메소드를 실행하기 전에 언제든지 채워질 수 있습니다. Solve 메서드는 이 데이터를 사용하여 모델 인스턴스를 업데이트합니다. Solve 메서드는 모델 인스턴스에 있는 수정자 기호의 모든 레코드를 반복하고 syncDB에서 업데이트 데이터를 찾으려고 시도합니다. syncDB의 레코드가 발견되면 이 데이터 레코드가 모델 인스턴스에 복사됩니다. syncDB에 해당 레코드가 없으면 다른 선택이 있습니다.
- 원래 데이터 기록이 복원되었습니다. (globals.SymbolUpdateType=globals.SymbolUpdateType.BASECASE) 이는 기본값입니다.
- a의 기본 레코드매개변수(0)이 사용됩니다(globals.SymbolUpdateType=globals.SymbolUpdateType.ZERO) 및
- 복사가 발생하지 않으며 이전에 복사한 레코드 값을 사용합니다(globals.SymbolUpdateType=globals.SymbolUpdateType.ACCUMULATE). 모델 인스턴스가 업데이트된 후 모델은 선택한 솔버에 전달됩니다.
Solve 메소드가 완료된 후, syncDB에는 방금 해결된 모델의 원초 및 이중 솔루션이 포함됩니다. 또한 다음과 같은 GAMSParameters는수정자다음과 같이 syncDB에서도 액세스할 수 있습니다.변수이름으로매개변수+ "_var". 이것의 한계변수매개변수 설정에 대한 민감도 정보를 제공할 수 있습니다. 해결 상태는 modelStatus 및solvStatus 속성을 통해 액세스할 수 있습니다(참조전역).
A모델인스턴스외부 리소스에 연결되어 있으며 Java 가비지 수집기가 인스턴스를 요청하려면 먼저 적절하게 삭제되어야 합니다.
생성 방법에 대한 예모델인스턴스에서체크포인트다음의 Run 메소드에 의해 생성됨직업.
* ws = 무료 슬롯.\ref 무료 슬롯control.Workspace "작업 공간"();
* cp = ws.addCheckpoint();
*
* 직업 = ws.addJobFromGamsLib('trnsport');
* 작업.실행(cp);
*
* mi = cp.addModelInstance();
* b = mi.syncDB.addParameter('b', 1, '수요');
*
* mi.instantiate('transport us lp min z', 무료 슬롯.\ref 무료 슬롯control.Modifier "Modifier"(b));
*
* bmultlist = [0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3];
* i = 1:numel(bmultlist)의 경우
* b.clear();
* Rec의 경우 = job.outDB.getParameter('b').records
* b.addRecord(rec1.keys).value = rec1.value bmultlist(i);
* mi.solve();
* fprintf('시나리오 bmult=%f:\n', bm);
* fprintf(' 모델 상태: %s\n', mi.modelStatus);
* fprintf(' 해결 상태: %s\n', mi.solveStatus);
* fprintf(' Obj: %g\n', mi.syncDB.getVariable('z').findRecord().level);
* 끝
*
멤버 함수 문서
◆ 정리()
| void matlab.무료 슬롯control.ModelInstance.cleanup | ( | ) |
명시적으로 라이센스 세션을 닫습니다.
무료 슬롯의 실제 사용을 제한하는 라이센스를 사용할 때 라이센스 세션을 명시적으로 닫습니다. 이 메소드는 다음 경우에만 호출되어야 합니다.ModelInstance더 이상 사용되지 않습니다.
◆ copyModelInstance()
| 무료 슬롯control.ModelInstance matlab.무료 슬롯control.ModelInstance.copyModelInstance | ( | varargin | ) |
이것을 복사합니다모델인스턴스새로ModelInstance.
유효한 VARARGIN 서명:
- 문자열 모델InstanceName
인수:
- modelInstanceName: 식별자모델인스턴스(생략 시 자동으로 결정)
반환: 인스턴스모델인스턴스
◆ 처분()
| void matlab.무료 슬롯control.ModelInstance.dispose | ( | ) |
비자바 라이브러리에 의해 보류된 외부 리소스를 해제합니다.
삭제된 후 개체에 대한 후속 호출로 인해 예상치 못한 오류나 예외가 발생할 가능성이 있습니다. 객체가 더 이상 필요하지 않거나 리소스 관리가 애플리케이션에서 중요한 문제인 경우 이 메서드를 호출하세요.
◆ 인스턴스화()
| void matlab.무료 슬롯control.ModelInstance.instantiate | ( | varargin | ) |
◆ 인터럽트()
| void matlab.무료 슬롯control.ModelInstance.interrupt | ( | ) |
실행 중으로 인터럽트 신호 보내기모델인스턴스.
이 방법은 장기 실행을 중단하는 데 유용합니다.ModelInstance.
◆ isDisposed()
| 논리 matlab.무료 슬롯control.ModelInstance.isDisposed | ( | ) |
이것인지 문의하세요모델인스턴스이미 폐기되었습니다.
폐기되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
◆ 해결()
| void matlab.무료 슬롯control.ModelInstance.solve | ( | varargin | ) |
모델 인스턴스를 해결하세요.
Solve 메소드는 모델 인스턴스에 있는 수정자 기호의 모든 레코드를 반복하고 syncDB에서 업데이트 데이터를 찾으려고 시도합니다. syncDB의 레코드가 발견되면 이 데이터 레코드가 모델 인스턴스에 복사됩니다. syncDB에 해당 레코드가 없으면 다른 선택이 있습니다.
- 원래 데이터 레코드가 복원됩니다(updateType = BASECASE). 이는 기본값입니다.
- a의 기본 레코드매개변수(0)이 사용되며(updateType = ZERO), 그리고
- 복사가 발생하지 않으며 이전에 복사한 레코드 값(updateType = ACCUMULATE)을 사용합니다. 다른 기호 유형(예: updateType = INHERIT)은 풀이 문에 대한 잘못된 업데이트 유형입니다. 모델 인스턴스가 업데이트된 후 모델은 선택한 솔버에 전달됩니다.
유효한 VARARGIN 서명:
- ModelInstanceOptmiOpt
- globals.SymbolUpdateType업데이트 유형
- 인쇄스트림출력
- globals.SymbolUpdateType업데이트 유형,ModelInstanceOptmiOpt
- globals.SymbolUpdateType업데이트 유형,인쇄스트림출력
- 인쇄스트림출력,ModelInstanceOptmiOpt
- globals.SymbolUpdateType업데이트 유형,인쇄스트림출력,ModelInstanceOptmiOpt
인수:
- updateType: 업데이트 유형
- output: 출력을 저장할 파일 이름 또는 명령줄에 인쇄할 'cmdout'
- miOpt:모델인스턴스옵션