Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мезенцев Имитационное моделирование / Вопросы и задачи к экзамену по ИМ.docx
Скачиваний:
100
Добавлен:
04.01.2020
Размер:
17.27 Mб
Скачать

28. Среда ibm ilog cplex studio. Назначение, возможности, задачи моделирования, разрешимые и неразрешимые в этой среде.

IBM ILOG CPLEX OptimizationStudio - комплект инструментов с поддержкой аналитических решений, предназначенный для быстрой разработки и развертывания моделей оптимизации с помощью математического программирования, и программирования в ограничениях. Он состоит из интегрированной среды разработки (IDE), мощного языка программирования для оптимизаций (OPL) и высокопроизводительных модулей решения ILOG CPLEX для оптимизаторов.

Возможности:

  • Оптимизация бизнес-решений за счет высокопроизводительных модулей оптимизации.

  • Быстрая разработка и развертывание моделей оптимизации за счет гибких интерфейсов и готовых сценариев развертывания.

  • Создание приложений, которые найдут применение в реальной жизни и смогут значительно улучшить бизнес-результаты.

Для решения задач оптимизации разработчиками предусмотрены два инструмента CPLEX (движок для решения проблем, описываемых при помощи математических моделей) и CP Optimizer (библиотека инструментов для решения задач с помощью программирования на ограничительных языках).

Задачи, разрещимые в этой среде:

  1. Задачи линейного программирования (планирования производства)

Оптимизационные задачи обычно описываются целевой функцией и множеством ограничений на переменных решения. Решение задачи представляет собой присвоение переменным значений, которые удовлетворяют ограничениям и дают оптимальное значение целевой функции.

  1. Задачи целочисленного программирования (задачи о ранце)

Целочисленное программирование выражает оптимизацию линейной функции с учетом множества линейных ограничений на целочисленных переменных.

  1. Задачи частично-целочисленного линейного программирования

В частично-целочисленных линейных программах используются и целочисленные и вещественные переменные. В OPL для этих задач применяется в целом тот же подход, что и для целочисленных программ.

  1. Задачи об управлении запасами

Задачи, неразрешимые в этой среде:

Некоторые ЗТР (задачи теории расписаний) с числом целых переменных не более ста являются фактически неразрешимыми для данного ПО (монография, стр. 16, внизу).

29. Проекты ibm ilog cplex studio, состав, назначение компонент. Основные элементы языка opl.

IBM ILOG CPLEX OptimizationStudio – продукт, позволяющий создавать математические модели для решения различныхоптимизационных задач, как линейного, так и нелинейного и интегрированного характера.

Любой проект содержит собственно математическую модель, вводимые данные и опции по выполнению процесса оптимизации. Рабочая область модели и данных заполняется кодом на языке OPL (OptimizationProgrammingLanguage).

OPL относится к моделирующим языкам, созданным для решения некоторых задач математического программирования. При помощи таких языков можно описать задачи математического программирования так, что они будут восприниматься и решаться при помощи программного обеспечения.

В CPLEX Studio в состав проекта составления расписаний входят файлы моделей,файлы данных и файлы параметров.

Файлы моделей

Файлы моделей (расширение .mod) содержат все операторы OPL. Файл модели, как правило, содержит следующие компоненты:

  • Объявления данных

Объявления данных позволяют присвоить данным имена, упростив тем самым их использование в модели. Например, если таблица содержит стоимость доставки единицы материалов из расположения i в расположение j, то элемент данных можно назвать costij, где i=1,...,n, j=1,...,n и n - это число расположений в модели. Объявление этих данных модели в OPL выглядит следующим образом:

int n = ... ;

float cost[1..n][1..n] = ... ;

Многоточие (…) означает, что физические значения таблицы расположены в файле данных, который должен быть указан в текущем проекте.

  • Объявления переменных решений

Объявления переменных описывают имя и тип каждой переменной в модели. Например, количество материалов, доставленных из расположения i в расположение j, можно указать в переменной с именем shipij:

dvarint+ ship[1..n][1..n];

Ключевое слово dvar позволяет объявить переменную решения. Поскольку тип int+ разрешает только положительные целые значения, оператор объявляет массив положительных целых переменных.

  • Объявление службы

Модель составления расписаний начинается с объявления службы, которое выглядит следующим образом:

using CP;

Это объявление указывает, что для решения задачи следует использовать службу CP. Кроме того, оно разрешает применение ограничений, относящихся к программированию в ограничениях и составлению расписанию.

  • Функция цели

Функция цели - это выражение, которое требуется оптимизировать. Она должна содержать переменные и данные, объявленные ранее в файле модели. Функция цели объявляется с помощью ключевого слова minimize или maximize. Пример:

minimize endOf(tasks["moving"]);

Этот оператор указывает, что требуется максимально сократить конец переменной интервала tasks["moving"].

  • Ограничения

Ограничения описывают условия, необходимые для осуществимого решения модели. Ограничения объявляются в блоке subject to. Пример:

subject to {

forall(t in Tasks)

forall(s in successors[t])

endBeforeStart(tasks[t], tasks[s]);

}

Этот оператор объявляет набор ограничений очередности.

  • Операторы сценариев

Между разными блоками модели (объявления данных, переменных или ограничений) или после ограничений можно добавить операторы сценариев. Они помогают обеспечить предварительную обработку и отображение данных, а также отображение результатов.

Допустимы следующие операторы верхнего уровня:

  • оператор main для сценария управления потоком

  • оператор execute для сценариев предварительной и заключительной обработки.

minimizeendOf(tasks["moving"]);

subject to {

...

}

execute DISPLAY {

writeln("end=", tasks["moving"].end);

}

Файлы данных

Для более эффективной организации больших задач можно разделить модель и данные экземпляра. В этом случае данные экземпляра хранятся в файлах данных (расширение .dat). Файлы данных содержат фактические значения применяемых в модели данных. Файл данных будет выглядеть следующим образом:

n = 3;

c = [[0.0 1.5 2.3]

[1.5 0.0 3.7]

[2.3 3.7 0.0]];

В каждом файле данных можно указать одно или несколько соединений с источниками данных, такими как реляционная база данных или электронная таблица, для чтения и записи данных. В IDE внешние и внутренние данные можно экспортировать в файл .dat, который затем можно использовать в качестве входных данных. В файлы данных экспортируются только данные, которые фактически применяются в модели.

Файлы параметров

При изменении значений параметров по умолчанию новые значения параметров сохраняются в файле параметров проекта.

В файлах параметров (.ops) сохраняются пользовательские значения параметров при изменении значений параметров по умолчанию языка OPL, программирования в ограничениях (CP Optimizer) и математического программирования (CPLEX).

Параметры применяются только к модели в конфигурации выполнения, они не применяются к загружаемым и решаемым подмоделям.