- •Содержание
- •1. Содержательная постановка задачи синтеза оптимальных расписаний параллельно-последовательной обслуживающей системы.
- •2. Постановка задачи оптимизации расписаний параллельной системы с задержками поступления заявок
- •3. Редукция задачи оптимизации расписаний параллельной системы в задачу частично-целочисленного линейного программирования
- •4. Бикритериальная упрощенная формулировка задачи синтеза расписаний параллельной системы и алгоритм решения
- •5. Декомпозиционные приближенные алгоритмы оптимизации расписаний параллельной системы с задержками поступления заявок. Жадный алгоритм и бикритериальное приближение.
- •6. Динамическое программирование с отсевом вариантов в оптимизации расписаний параллельной системы с задержками поступления заявок
- •7. Последовательные многостадийные обслуживающие системы. Моделирование на смешанных сетях.
- •8. Модификации метода ветвей и границ оптимизации расписаний последовательных многостадийных обслуживающих систем (jsp)
- •9. Алгоритм неполной декомпозиции задач оптимизации расписаний последовательных обслуживающих систем.
- •10. Многостадийные параллельно-последовательные обслуживающие системы. Подходы к формализации задач управления.
- •11. Декомпозиционный алгоритм оптимизации расписаний многостадийных параллельно-последовательных обслуживающих систем
- •12. Приложение моделей и алгоритмов оптимизации расписаний многостадийных параллельно-последовательных систем.
- •13. Содержательная постановка задачи управления материальными потоками предприятия
- •14. Формальная постановка задачи оптимизации управления входными и выходными материальными потоками
- •15. Задача оптимизации поставок сырья и комплектующих на предприятии. Содержательная постановка.
- •16. Формальная постановка задачи оптимизации поставок
- •17. Определение оптимальных цен продаж в задаче оптимизации управления входными и выходными материальными потоками
- •18. Декомпозиционный алгоритм решения задачи оптимизации поставок
- •19. Программные средства (пс) оптимизации управления входными и выходными материальными потоками предприятия (целиком из монографии)
- •20. Пс оптимизации расписаний последовательных, параллельных и параллельно-последовательных систем
- •21. Имитационное моделирование производственных систем и процессов. Языки, системы им.
- •22. Основные блоки сим Арена и их атрибуты.
- •23. Основные операторы языка gpss.
- •24. Моделирование параллельных систем в сим Арена
- •25. Моделирование последовательных систем в сим Арена.
- •26. Моделирование параллельных систем в gpss world.
- •27 Моделирование последовательных систем в gpss world.
- •28. Среда ibm ilog cplex studio. Назначение, возможности, задачи моделирования, разрешимые и неразрешимые в этой среде.
- •29. Проекты ibm ilog cplex studio, состав, назначение компонент. Основные элементы языка opl.
- •Задача №1.
- •Задача №2. Job Shop
28. Среда ibm ilog cplex studio. Назначение, возможности, задачи моделирования, разрешимые и неразрешимые в этой среде.
IBM ILOG CPLEX OptimizationStudio - комплект инструментов с поддержкой аналитических решений, предназначенный для быстрой разработки и развертывания моделей оптимизации с помощью математического программирования, и программирования в ограничениях. Он состоит из интегрированной среды разработки (IDE), мощного языка программирования для оптимизаций (OPL) и высокопроизводительных модулей решения ILOG CPLEX для оптимизаторов.
Возможности:
-
Оптимизация бизнес-решений за счет высокопроизводительных модулей оптимизации.
-
Быстрая разработка и развертывание моделей оптимизации за счет гибких интерфейсов и готовых сценариев развертывания.
-
Создание приложений, которые найдут применение в реальной жизни и смогут значительно улучшить бизнес-результаты.
Для решения задач оптимизации разработчиками предусмотрены два инструмента CPLEX (движок для решения проблем, описываемых при помощи математических моделей) и CP Optimizer (библиотека инструментов для решения задач с помощью программирования на ограничительных языках).
Задачи, разрещимые в этой среде:
-
Задачи линейного программирования (планирования производства)
Оптимизационные задачи обычно описываются целевой функцией и множеством ограничений на переменных решения. Решение задачи представляет собой присвоение переменным значений, которые удовлетворяют ограничениям и дают оптимальное значение целевой функции.
-
Задачи целочисленного программирования (задачи о ранце)
Целочисленное программирование выражает оптимизацию линейной функции с учетом множества линейных ограничений на целочисленных переменных.
-
Задачи частично-целочисленного линейного программирования
В частично-целочисленных линейных программах используются и целочисленные и вещественные переменные. В OPL для этих задач применяется в целом тот же подход, что и для целочисленных программ.
-
Задачи об управлении запасами
Задачи, неразрешимые в этой среде:
Некоторые ЗТР (задачи теории расписаний) с числом целых переменных не более ста являются фактически неразрешимыми для данного ПО (монография, стр. 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).
Параметры применяются только к модели в конфигурации выполнения, они не применяются к загружаемым и решаемым подмоделям.