GAMSJob 클래스는 슬롯 무료체험 모델과 솔버가 제공하는 해당 솔루션을 처리하는 표준 방법입니다. 슬롯 무료체험 언어는 루프에서 모델을 해결하고 분해 알고리즘 구축과 같은 기타 정교한 작업을 수행할 수 있는 프로그래밍 흐름을 제공합니다.
드문 경우지만 슬롯 무료체험 모델 생성 시간이 솔버 솔루션 시간을 지배하고 슬롯 무료체험 자체가 최적화 응용 프로그램의 병목 현상이 됩니다. 슬롯 무료체험 솔버 문에 의해 생성된 단일 수학적 모델인 모델 인스턴스의 경우 GAMSModelInstance 클래스는 디스크 IO를 사용하지 않고 모델 변경 사항만 솔버에 전달하고 핫 스타트(LP와 같은 연속 모델의 경우)를 수행하여 모델 인스턴스를 수정하고 결과 문제를 가장 효율적인 방법으로 해결하는 제어된 방법을 제공합니다.
GAMSModelInstance에는 모델 정의가 포함된 GAMSCheckpoint가 필요합니다. GAMSModelInstance의 인스턴스화를 위해 슬롯 무료체험 해결의 중요한 부분을 제공해야 합니다. 모델 인스턴스 수정은 SyncDB의 데이터(GAMSDatabase 유형의 GAMSModelInstance 속성)를 통해 수행됩니다. GAMSModelInstance를 수정하는 방법에 대한 정보가 포함된 GAMSModifier를 생성해야 합니다. 이러한 GAMSModifier는 GAMSParameter 또는 업데이트할 GAMSVariable 또는 GAMSEquation이 포함된 트리플, 수정 작업(예: 변수 경계 업데이트를 위한 상한, 하한 또는 고정 또는 주로 다른 시작점에서 비선형 모델을 시작하는 데 사용되는 변수 또는 방정식의 수준/한계를 업데이트하는 Primal/Dual) 및 수정을 위한 데이터를 보유하는 GAMSParameter로 구성됩니다. GAMSModifier의 GAMSSymbol은 SyncDB에 속해야 합니다. Instantiate 호출 시 GAMSModifier 목록을 제공해야 합니다. GAMSModifiers인 GAMSParameters의 사용은 슬롯 무료체험 모델 소스에서 제한됩니다. 예를 들어 $() 내에서는 매개변수를 사용할 수 없습니다. 이러한 매개변수는 모델에 내생적으로 적용되며 슬롯 무료체험 컴파일러에서 그대로 처리됩니다. 게다가 모델 인스턴스의 테두리는 고정되어 있어 변수 및 방정식의 추가가 불가능합니다.
인스턴스화 호출은 SyncDB의 데이터가 아닌 GAMSModifier의 기호 정보만 쿼리합니다. 수정자의 차원을 검색합니다. 이것이 바로 Instantiate가 호출될 때 SyncDB에 수정자 기호가 존재해야 하지만 데이터가 없어도 되는 이유입니다. SyncDB의 업데이트 데이터가 포함된 GAMSParameters는 Solve 메서드를 실행하기 전에 언제든지 채워질 수 있습니다. Solve 메서드는 이 데이터를 사용하여 모델 인스턴스를 업데이트합니다. Solve 메서드는 모델 인스턴스에 있는 수정자 기호의 모든 레코드를 반복하고 SyncDB에서 업데이트 데이터를 찾으려고 시도합니다. SyncDB에서 레코드가 발견되면 이 데이터 레코드가 모델 인스턴스에 복사됩니다. SyncDB에서 해당 레코드가 발견되지 않으면 다른 선택이 있습니다. 1) 원본 데이터 레코드가 기본값인 복원(UpdateType=BaseCase), 2) GAMSParameter의 기본 레코드(0)가 사용됨(UpdateType=Zero, 3) 복사가 발생하지 않고 이전에 복사된 레코드 값(UpdateType=Accumulate)이 사용됩니다. 모델 인스턴스가 업데이트된 후 모델은 선택한 솔버에 전달됩니다.
Solve 메소드가 완료된 후, SyncDB에는 방금 해결된 모델의 원초 및 이중 솔루션이 포함됩니다. 또한 GAMSModifier인 GAMSParameters는 GAMSParameter 이름에 "_var"가 추가된 GAMSVariables로 SyncDB에서 액세스할 수도 있습니다. 이 GAMSVariable의 Marginal은 매개변수 설정에 대한 민감도 정보를 제공할 수 있습니다. 해결 상태는 ModelStatus 및 SolveStatus 속성을 통해 액세스할 수 있습니다.
GAMSModelInstance는 외부 리소스에 연결되어 있으며 .NET 가비지 수집기가 인스턴스를 요구하려면 먼저 적절하게 삭제되어야 합니다.
일반적으로 슬롯 무료체험 .Net의 파일 작업은 GAMSWorkspace에 정의된 WorkingDirectory에서 발생합니다. 이 규칙에 대한 실행은 GAMSModelInstance의 해석 루틴에 있는 해석기 특정 옵션으로 인해 읽거나 생성된 파일입니다. 이러한 파일은 현재 디렉터리, 즉 응용 프로그램이 실행되는 디렉터리에 기록되거나 읽혀집니다. 필요한 경우 System.IO.Directory.SetCurrentDirectory(string path) 메서드를 사용하여 애플리케이션 내에서 현재 디렉터리를 변경할 수 있습니다.
GAMSJob의 Run 메소드에 의해 생성된 GAMSCheckpoint에서 GAMSModelInstance를 생성하는 방법에 대한 예.
작업.실행(cp);
더블[] bmult =신규 더블[] { 0.7, 0.9, 1.1, 1.3 };
foreach (더블bm에b다중)
{
Console.WriteLine("시나리오 bmult="+ bm +":");
Console.WriteLine(
" 모델 상태: "+ 마일.
모델상태);
Console.WriteLine(
" 해결 상태: "+ 마일.
해결 상태);
}
GAMSCheckpoint 클래스는 GAMSJob.Run 메소드가 수행된 후 GAMSJob의 상태를 캡처합니다 ...
정의GAMSCheckpoint.cs:17
GAMSModelInstance AddModelInstance(string modelInstanceName=null)
모델 인스턴스를 생성하세요.
정의GAMSCheckpoint.cs:84
GAMSVariable GetVariable(문자열 변수 식별자)
이름으로 GAMSVariable을 가져옵니다.
정의GAMSDatabase.cs:454
GAMSParameter GetParameter(문자열 매개변수 식별자)
이름으로 GAMSParameter를 가져옵니다.
정의GAMSDatabase.cs:410
GAMSParameter AddParameter(문자열 식별자, 정수 차원, 문자열 설명텍스트="")
데이터베이스에 매개변수 기호를 추가합니다.
정의GAMSDatabase.cs:588
슬롯 무료체험데이터베이스 OutDB
Run 메소드로 생성된 GAMSDatabase를 가져옵니다.
정의GAMSJob.cs:160
정의GAMSModelInstance.cs:221
SolveStat SolveStatus
모델의 상태를 해결합니다. (해결 후 사용 가능)
정의GAMSModelInstance.cs:759
슬롯 무료체험데이터베이스 SyncDB
수정 가능한 데이터를 동기화하는 데 사용되는 슬롯 무료체험데이터베이스를 검색합니다.
정의GAMSModelInstance.cs:415
void Solve(SymbolUpdateType 업데이트 유형=SymbolUpdateType.BaseCase, TextWriter 출력=null, GAMSModelInstanceOpt miOpt=null)
모델 인스턴스를 해결하세요.
정의GAMSModelInstance.cs:632
void Instantiate(string modelDefinition, params GAMSModifier[] modifiers)
GAMSModelInstance를 인스턴스화합니다.
정의GAMSModelInstance.cs:424
ModelStat 모델상태
모델의 상태. (해결 후 사용 가능)
정의GAMSModelInstance.cs:746
이 클래스의 인스턴스는 GAMSModelInstance.Instatiate에 입력됩니다. GAMSModifier는 다음 중 하나로 구성됩니다...
정의GAMSModelInstance.cs:58
이것은 GAMSParameter의 단일 레코드를 표현한 것입니다.
정의GAMSParameterRecord.cs:10
이중 값
Get: 이 GAMSParameterRecord 값을 검색합니다. Set: 이 GAMSParameterRecord 값을 설정합니다.
정의GAMSParameterRecord.cs:38
이것은 슬롯 무료체험의 매개변수 기호 표현입니다. GAMSDatabase에 존재하며 GA를 포함합니다...
정의GAMSParameter.cs:14
새 GAMSParameterRecord AddRecord(params 문자열[] 키)
GAMSParameter에 레코드를 추가합니다.
정의GAMSParameter.cs:99
문자열[] 키
GAMSSymbolRecord의 키를 검색합니다.
정의GAMSSymbolRecord.cs:58
부울 클리어()
기호 지우기.
정의GAMSSymbol.cs:230
더블 레벨
Get: 이 GAMSVariableRecord의 레벨을 검색합니다. 세트: 이 GAMSVariableRec의 레벨을 설정합니다...
정의GAMSVariableRecord.cs:38
새 GAMSVariableRecord FindRecord(params 문자열[] 키)
GAMSVariable에서 레코드를 찾으세요.
정의GAMSVariable.cs:132
void GamsLib(문자열 모델)
슬롯 무료체험 모델 라이브러리에서 모델을 검색합니다.
정의GAMSWorkSpace.cs:313
GAMSCheckpoint AddCheckpoint(string checkpointName=null)
GAMSCheckpoint를 생성하세요.
정의GAMSWorkSpace.cs:1176
GAMSJob AddJobFromFile(문자열 fileName, GAMSCheckpoint 체크포인트=null, 문자열 jobName=null)
모델 파일에서 GAMSJob을 생성합니다.
정의GAMSWorkSpace.cs:1062