2.5 Целочисленное линейное программирование
Под задачей целочисленного линейного программирования (ЦЛП) понимается задача линейного программирования, в которой некоторые (а возможно, и все) переменные должны принимать целые значения. Задача ЦЛП называется полностью целочисленной, если все её переменные должны быть целочисленными. Для смешанной задачи ЦЛП лишь некоторые переменные предполагаются целочисленными, а остальные могут принимать произвольные (нецелые) значения.
Задачу ЦЛП можно решить, например, как задачу ЛП без учёта условий целочисленности переменных, а затем округлить полученное решение. Использование такого подхода требует проверки допустимости полученного решения. Таким методом часто пользуются при решении практических задач, особенно когда значения переменных настолько велики, что можно пренебречь ошибками округления. Однако при решении задач, в которых целочисленные переменные принимают малые значения, округление может привести к далёкому от истинного оптимума целочисленному решению. Кроме того, при решении задач большой размерности такой метод требует слишком много машинного времени. Например, пусть оптимальное решение соответствующей задачи ЛП имеет вид x1 = 2,4; x2 = 3,5 . Для получения приближённого оптимального решения необходимо рассмотреть четыре точки (2;3); (2;4); (3;3); (3;4) и выбрать среди них допустимую точку с наилучшими значениями целевой функции. Если в задаче имеются 10 целочисленных переменных, то следует рассмотреть 210 = 1024 варианта целочисленного решения. Но даже рассмотрение всех вариантов не гарантирует получения оптимального целочисленного решения задачи.
Одним из методов решения как полностью целочисленных, так и смешанных задач ЦЛП является метод ветвей и границ. Он представляет собой эффективную процедуру перебора всех целочисленных допустимых решений.
Удобно представить последовательность задач ЛП, возникающих при использовании процедуры метода ветвей и границ, в виде сети или дерева. Они состоят из множества вершин и соединяющих их дуг или ветвей. Каждая вершина представляет собой либо начальную, либо конечную точку некоторой ветви. В том случае, если в некоторой вершине возникает ситуация, когда исследуемое решение является оптимальным и целочисленным или, наоборот, решение отсутствует, то нет необходимости производить дальнейшее ветвление, поэтому рассматриваемая вершина является прозондированной.
Для определения переменной, по которой производится начальное ветвление, разработан ряд правил.
1. Выбор целочисленной переменной, значение которой в оптимальном решении ЛП-1 имеет наибольшее дробное значение.
2. Приоритетной является переменная, коэффициент которой в целевой функции превосходит остальные.
3. Выбор переменной с наименьшим номером.
Для дальнейшего ветвления выбираются следующие вершины.
Следует выбирать вершину, соответствующую наибольшему оптимальному значению целевой функции.
Произвольным образом выбирается задача ЛП, решавшаяся последней.
Промежуточная вершина является прозондированной в том случае, если она удовлетворяет хотя бы одному из следующих условий:
1. Оптимальное решение, соответствующее данной вершине целочисленно.
2. Задача ЛП, соответствующая рассмотренной вершине, не имеет допустимых решений.
3. Оптимальное значение f(x) соответствующей задачи ЛП не превосходит текущей нижней границы.
При использовании метода ветвей и границ выбор вершины для дальнейшего ветвления происходит до тех пор, пока остаётся хотя бы одна не прозондированная вершина. Прозондированная вершина с наилучшим значением f(x) даёт оптимальное решение исходной задачи ЦЛП. Получение перед реализацией метода ветвей и границ допустимого целочисленного решения задачи ЦЛП может оказаться весьма полезным, так как оно даёт начальную нижнюю границу, используемую до получения лучшей нижней границы по методу ветвей и границ.
Анализ опыта решения практических задач привёл к выработке ряда рекомендаций который можно использовать для уменьшения времени вычислений.
1. Количество целочисленных переменных следует уменьшить насколько возможно. Например, целочисленные переменные, значения которых должны быть не меньше 20, можно рассматривать как непрерывные.
2. Добавление новых ограничений, особенно включающих целочисленные переменные, обычно уменьшает время решения задач ЦЛП.
3. По возможности следует получать близкие друг к другу верхнюю и нижнюю границы значений целочисленных переменных.
4. Можно заканчивать реализацию метода ветвей и границ, если для задач максимизации выполняется соотношение:
.
5. Рекомендуется выбирать для ветвления целочисленные переменные в порядке убывания их приоритета, назначаемого в соответствии с технико - экономической интерпретацией переменных и опытом пользователя.
В задачах с большим количеством переменных более эффективным является метод отсечения Гомори, который основан на введении дополнительных условий и анализе значений базисных и небазисных переменных, т. е. выполняется модифицированный симплекс-метод. Кроме того, данный метод может применяться в параметрическом программировании, когда исходные данные (коэффициенты) в ЦФ и ограничениях являются не постоянными величинами, а функциями, зависящими определенным образом от некоторых параметров.
- Введение
- Тема 1 Математическое программирование и оптимизация
- 1.1 Эволюция развития математических методов и моделей в экономике
- 1.2 Классификация экономико-математических моделей
- 1.3 Математическое программирование
- 1.4 Оптимизация в математике и ее методы
- 1.5 Метод Монте-Карло
- 1.5.1 Алгоритм Бюффона для определения числа Пи
- 1.5.2 Связь стохастических процессов и дифференциальных уравнений
- 1.5.3 Рождение метода Монте-Карло в Лос-Аламосе
- 1.5.4 Дальнейшее развитие и современность
- 1.5.5 Интегрирование методом Монте-Карло
- 1.5.6 Обычный алгоритм Монте-Карло интегрирования
- 1.5.7 Геометрический алгоритм Монте-Карло интегрирования
- Тема 2 Линейное программирование
- 2.1 Общая задача линейного программирования
- 2.2 Основная задача лп (озлп)
- 2.3 Симплекс-метод линейного программирования
- 2.4 Двойственные задачи линейного программирования
- 2.5 Целочисленное линейное программирование
- 2.6 Параметрическое линейное программирование
- 2.7 Дробно-линейное программирование
- 2.8 Блочное программирование
- 2.9 Теория графов
- 2.10 Транспортная задача
- 2.10.1 Общая характеристика транспортной задачи
- 2.10.2 Математическая модель транспортной задачи
- Тема 3 Нелинейное программирование
- 3.1 Методы нелинейного программирования
- 3.2 Метод множителей Лагранжа
- 3.3 Сепарабельное программирование
- 3.4 Выпуклое программирование
- 3.5 Квадратичное программирование
- 3.6 Геометрическое программирование
- 3.7 Динамическое программирование
- 3.8 Стохастическое программирование
- Тема 4 Межотраслевой баланс и сетевое моделирование
- 4.1 Задача межотраслевого баланса
- 4.2 Балансовая модель Леонтьева
- 4.3 Модели межотраслевого баланса в планировании инновационных программ
- 4.3.1 Однопродуктовая динамическая макроэкономическая модель
- 1) Открытая однопродуктовая динамическая модель Леонтьева
- 2) Замкнутая однопродуктовая модель Леонтьева
- 4.4 Сетевая модель данных
- 4.4.1 Историческая справка
- 4.4.2 Основные элементы сетевой модели данных
- 4.4.3 Особенности построения сетевой модели данных
- 4.4.4 Операции над данными сетевой модели
- 4.4.5 Использование сетевой модели
- 4.5 Сетевой график
- 4.6 Методика составления сетевого графика
- 5. Задачи оптимального проектирования
- 5.1. Постановка задачи оптимального проектирования
- 5.1.1. Основные понятия и определения
- 5.2. Пример задачи оптимального проектирования
- 5.3. Классификация задач оптимального проектирования
- Первая постановка
- 5.4 Определение уравнений линейной регрессии
- 5.7. Методика получения исходных данных
- 5.3. Решение задач оптимального проектирования
- 5.3.1. Оптимизация параметров изделия