8. Целочисленное линейное программирование.ppt
- Количество слайдов: 19
8. Целочисленное линейное программирование 1. 2. 3. 4. 5. 6. Постановка задачи целочисленного программирования. Методы решения задач ЦЛП Методы отсечения. Метод Гомори. Пример решения задачи методом Гомори. Метод ветвей и границ. Пример решения задачи методом ветвей и границ.
1. Постановка задачи целочисленного программирования n n Целочисленное линейное программирование (ЦЛП) ориентировано на решение задач линейного программирования, в которых все или некоторые переменные должны принимать целочисленные (или дискретные) значения. По физическому смыслу значительная часть экономических задач относится к задачам целочисленного линейного программирования: оптимальный выбор ассортимента продукции, когда переменные означают количество единиц неделимой продукции; распределение капиталовложений на определенный период времени; выбор постоянных затратных программ и многие другие.
Математическая модель задачи ЦЛП Найти такое решение (план) X = (х1, х2, . . . , хn), при котором достигается (1) , при ограничениях , (2) целые числа, . . (3) Следует отметить, что классическая транспортная задача и некоторые другие задачи транспортного типа "автоматически" обеспечивают решение задачи в целых числах (если целочисленные параметры условий).
2. Методы решения задач ЦЛП Для решения задач линейного целочисленного программирования используется ряд методов. Самый простой из них обычный метод линейного программирования. В случае если компоненты оптимального решения оказываются нецелочисленными, их округляют до ближайших целых чисел. Этот метод применяют тогда, когда дробная часть совокупности составляет малую часть объема всей совокупности. В противном случае округление может привести к далекому от оптимального целочисленному решению. Для решения таких задач используют специально разработанные методы. n. Методы целочисленной оптимизации можно разделить на три основные группы: а) методы отсечения; б) комбинаторные методы; в) приближенные методы. n
3. Методы отсечения. Метод Гомори Сущность метода отсечения, предложенного Р. Е. Гомори в 1957 -1958 гг, состоит в том, что сначала задача решается без условия целочисленности. Если полученный план целочисленный, задача решена. В противном случае к ограничениям задачи добавляется новое ограничение, обладающее следующими свойствами: оно должно быть линейным; должно отсекать найденный оптимальный нецелочисленный план; не должно отсекать ни одного целочисленного плана. n Далее задача решается с учетом нового ограничения. После этого в случае необходимости добавляется еще одно ограничение и т. д. n Геометрически добавление каждого линейного ограничения отвечает проведению прямой (гиперплоскости), которая отсекает от многоугольника (многогранника) решений некоторую его часть вместе с оптимальной точкой с нецелыми координатами, но не затрагивает ни одной из целых точек этого многогранника. n
Построение отсечений В результате новый многогранник решений содержит все целые точки, заключавшиеся в первоначальном многограннике решений, и соответственно полученное при этом многограннике оптимальное решение будет целочисленным (рис. 1, пространство допустимых решений задачи целочисленного линейного программирования представлено точками. )
Метод Гомори Искомое отсечение строится на основании дробных составляющих коэффициентов производящей строки. По этой причине его называют дробным отсечением. n Если же в оптимальном плане задачи некоторая переменная хj имеет нецелое значение, то решается новая с учетом дополнительного неравенства (4) n В данном неравенстве и – преобразованные исходные величины и , значения которых взяты из последней симплекс-таблицы (из оптимального плана без учета целочисленности), а и – дробные части чисел. Под дробной частью числа k понимается разность k – [k], где[k] – целая часть числа k. Под целой частью числа k понимается наибольшее целое число, не превосходящее k. n Рассмотрим следующий пример: {3. 2}=3. 2–[3. 2]=3. 2– 3=0. 2; {-3. 2} = -3. 2 – [-3. 2] = -3. 2 – (-4) = 0. 8. n
Метод Гомори n. Если в оптимальном плане задачи (1) – (3) дробные значения принимают несколько переменных, то дополнительное неравенство (4) формируется исходя из строки итоговой симплекс-таблицы, соответствующей наибольшей дробной части этих переменных. n. Если в найденном плане задачи (1) – (4) переменные принимают нецелые значения, то снова добавляют одно дополнительное ограничение, и процесс вычислений повторяют. n. Проведя конечное число итераций, либо получают оптимальный план задачи целочисленного программирования, либо устанавливают ее неразрешимость.
Пример решения задачи методом Гомори Приведя данную задачу к каноническому виду и не обращая внимания на условия целочисленности переменных , найдем оптимальное решение симплекс-методом. – целые числа Таблица 1
Пример решения задачи методом Гомори Табл. 2 Табл. 3
Пример решения задачи методом Гомори Полученное решение x 1 = 9. 5 и x 2 = 3. 5 ( Fmax= 35. 5) является оптимальным, но переменные x 1 и x 2 имеют нецелочисленные значения. n Найдем дробные части этих чисел: {x 1} = {9. 5} = 0. 5; {x 2} = {3. 5}= 0. 5. Дробные части одинаковы, поэтому можно сформировать дополнительное ограничение для любой из переменных, например для x 2. n Из последней симплекс-таблицы для строки, соответствующей x 2 получаем n n Составим дополнительное ограничение по Гомори: n так как =0; то получим n =0. 5; или =0. 5
Пример решения задачи методом Гомори n Добавим каноническую форму полученного ограничение к исходной задаче, и новую задачу решим симплекс-методом. Эта задача имеет оптимальный план x 1 = 9 и x 2 = 4 (Fmax = 35). Этот план является решением исходной задачи целочисленного программирования (1) – (3), так как обе переменные имеют целые значения.
5. Метод ветвей и границ – один из комбинаторных методов. Впервые метод ветвей и границ был предложен в 1960 году А. Лэндом и Дж. Дойгом для решения целочисленных задач линейного программирования. Его суть заключается в упорядоченном переборе вариантов и рассмотрении лишь тех из них, которые оказываются по определенным признакам перспективными, и отбрасывании бесперспективных вариантов. n Метод ветвей и границ состоит в следующем: множество допустимых решений (планов) некоторым способом разбивается на подмножества, каждое из которых этим же способом снова разбивается на подмножества. Процесс продолжается до тех пор, пока не получено оптимальное целочисленное решение исходной задачи. n
Метод ветвей и границ Ветвление производится последовательным введением дополнительных ограничений. Пусть xk – целочисленная переменная, значение которой в оптимальном решении получилось дробным. Интервал [хk] < xk < [хk ]+1 не содержит целочисленных компонентов решения. Поэтому допустимое целое значение xk должно удовлетворять одному из неравенств xk≥[хk]+1 или xk≤[хk]. Это и есть дополнительные ограничения. n Введение их в методе ветвей и границ на каждом шаге порождает две не связанные между собой подзадачи. Каждая подзадача решается как задача линейного программирования с исходной целевой функцией. После конечного числа шагов будет найдено целочисленное оптимальное решение. n
6. Пример решения задачи методом ветвей и границ Найти максимальное значение функции F(x) = 2 x 1 + 3 x 2 при ограничения: 3 x 1+4 x 2≤ 24 ; 2 x 1+5 x 2≤ 22; x 1, 2≥ 0 – целые. n Шаг 1. Решается задача линейного программирования без условий целочисленности переменных с помощью симплексметода. Результатом решения является: х*1=4 ; х*2=2 ; Fmax=16. n
Пример решения задачи методом ветвей и границ Графическая интерпретация задачи приведена на рис. 2. Здесь область допустимых решений (ОДР) представлена четырехугольником ABCD, а координаты вершины С совпадают с x*1 и x*2. Обе переменные в оптимальном решении являются нецелыми, поэтому любая из них может быть выбрана в качестве переменной, инициирующей процесс ветвления. n Пусть это будет x 2. Выбор x 2 порождает две подзадачи (2 и 3), одна из них получается путем добавления ограничения x 2≥ 3 к исходной задаче, а другая – путем добавления ограничения x 2≤ 2. При этом ОДР разбивается на две заштрихованные области, а полоса значений 2 < x 2 < 3 исключается из рассмотрения. Однако множество допустимых целочисленных решений сохраняется, порожденные подзадачи содержат все целочисленные решения исходной задачи. n
Пример решения задачи методом ветвей и границ n. Шаг 2. Осуществляется выбор одной из обозначенных ранее подзадач. Не существует точных методов определения, какой из подзадач отдать предпочтение. Случайный выбор приводит к разным последовательностям подзадач и, следовательно, к различным количествам итераций, обеспечивающих получение оптимального решения. n. Пусть вначале решается подзадача 3 с дополнительным ограничением x 2≤ 2. В результате применения симплексметода получено решение: х1=5 ; х2=2; Fmax=16. n. Переменная x 1 нецелая, поэтому ветвление необходимо продолжить; при этом возникают подзадачи 4 и 5 с ограничениями x 1≤ 5 и x 1 ≥ 6 соответственно. Полоса значений 5 < x 1 < 6 исключается из рассмотрения.
Пример решения задачи методом ветвей и границ n. Шаг 3. Решаются подзадачи 4 и 5. Из рис. 2 видно, что оптимальное целочисленное решение подзадачи 4 достигается в вершине К с координатами x 1=5, x 2=2, однако это не означает, что найден оптимум исходной задачи. Причиной такого вывода являются еще не решенные подзадачи 2 и 5, которые также могут дать целочисленные решения. Найденное целочисленное решение F = 16 определяет нижнюю границу значений целевой функции, т. е. меньше этого значения оно быть не должно. n. Подзадача 5 предполагает введение дополнительного ограничения x 1≥ 6 в подзадачу 3. Графическое решение на рис. 2 определяет вершину L с координатами x 1=6, x 2=3/2 , в которой достигается оптимальное решение подзадачи 5: Fmax = 16. 5. Дальнейшее ветвление в этом направлении осуществлять нецелесообразно, так как большего, чем 16, целого значения функции цели получить невозможно. Ветвление подзадачи 5 в лучшем случае приведёт к другому целочисленному решению, в котором F = 16.
Пример решения задачи методом ветвей и границ n. Шаг 4. Исследуется подзадача 2 с ограничением x 2≥ 3, находится её оптимальное решение, которое соответствует вершине М (рис. 2) с координатами x 1=3. 5, x 2=3. Значение функции цели при этом Fmax =16, которое не превышает найденного ранее решения. Таким образом, поиск вдоль ветви x 2≥ 3 следует прекратить. n. Отметим, что алгоритм метода ветвей и границ является наиболее надёжным средством решения целочисленных задач, он положен в основу большинства прикладных программ для компьютеров, используемых для этих целей.