IMsTargetProblem.OptimisticScenario

Синтаксис Fore

OptimisticScenario: IMsScenario;

Синтаксис Fore.NET

OptimisticScenario: Prognoz.Platform.Interop.Ms.IMsScenario;

Описание

Свойство OptimisticScenario определяет сценарий оптимизационной задачи.

Комментарии

Для задания сценария целевой задачи и сценария для траектории целевой задачи используйте свойства IMsTargetProblem.TargetScenario и IMsTargetProblem.TrajectoryScenario.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS_DEFAULT», содержащего задачу моделирования с идентификатором «TARGET_PROBLEM». Данная задача должна быть предназначена для веб-приложения и содержать целевую функцию.

Добавьте ссылки на системные сборки: Metabase, Express.

Sub UserProc;
Var
    mb: IMetabase;
    MsObj: IMetabaseObject;
    Ms: IMsModelSpace;
    ScenarioTree: IMsScenarioTreeEntries;
    OptimisticScenario: IMsScenarioTreeElement;
    Scenario: IMsScenario;
    Problem: IMsProblem;
    TargetProblem: IMsTargetProblem;
Begin
    // Получаем текущий репозиторий
    mb := MetabaseClass.Active;
    // Получаем контейнер моделирования
    MsObj := mb.ItemById("MS_DEFAULT").Edit;
    Ms := MsObj As IMsModelSpace;
    // Получаем сценарии
    ScenarioTree := Ms.ScenarioTree;
    // Добавляем новый сценарий
    OptimisticScenario := ScenarioTree.AddScenario(FalseTrue);
    OptimisticScenario.Name := "Сценарий оптимизационной задачи";
    Scenario := OptimisticScenario.Scenario;
    // Получаем целевую задачу
    Problem := mb.ItemByIdNamespace("TARGET_PROBLEM", MsObj.Key).Edit As IMsProblem;
    TargetProblem := Problem.AdditionalDetails.Item(0As IMsTargetProblem;
    // Задаем сценарий оптимизационной задачи
    Problem.Scenarios.AddScenario(Scenario);
    TargetProblem.OptimisticScenario := Scenario;
    // Сохраняем изменения
    (Problem As IMetabaseObject).Save;
    MsObj.Save;
End Sub UserProc;

В результате выполнения примера для задачи моделирования будет задан сценарий оптимизационной задачи.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.

Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsObj: IMetabaseObject;
    Ms: IMsModelSpace;
    ScenarioTree: IMsScenarioTreeEntries;
    OptimisticScenario: IMsScenarioTreeElement;
    Scenario: IMsScenario;
    Problem: IMsProblem;
    TargetProblem: IMsTargetProblem;
Begin
    // Получаем текущий репозиторий
    mb := Params.Metabase;
    // Получаем контейнер моделирования
    MsObj := mb.ItemById["MS_DEFAULT"].Edit();
    Ms := MsObj As IMsModelSpace;
    // Получаем сценарии
    ScenarioTree := Ms.ScenarioTree;
    // Добавляем новый сценарий
    OptimisticScenario := ScenarioTree.AddScenario(FalseTrue);
    OptimisticScenario.Name := "Сценарий оптимизационной задачи";
    Scenario := OptimisticScenario.Scenario;
    // Получаем целевую задачу
    Problem := mb.ItemByIdNamespace["TARGET_PROBLEM", MsObj.Key].Edit() As IMsProblem;
    TargetProblem := Problem.AdditionalDetails.Item[0As IMsTargetProblem;
    // Задаем сценарий оптимизационной задачи
    Problem.Scenarios.AddScenario(Scenario);
    TargetProblem.OptimisticScenario := Scenario;
    // Сохраняем изменения
    (Problem As IMetabaseObject).Save();
    MsObj.Save();
End Sub;

См. также:

IMsTargetProblem