Исправленное упражнение Ветвь и граница

На этой странице представлено подробное исправленное упражнение задачи линейное программирование решается по алгоритму ветвь и связанный.

ветвь и связанный

Владелец механического цеха планирует расширение за счет приобретения новых станков, прессов и токарных станков. Владелец подсчитал, что каждый купленный станок увеличит прибыль на 100 $ в день, а каждое вращение увеличит прибыль на 150 $ в день. Количество машин, которые может приобрести владелец, ограничено стоимостью машин и доступной площадью в мастерской. Цены на покупку машины и требования к пространству указаны ниже.

разделение и оценка ветвей и границ

У владельца есть бюджет в размере 40 000 $ на покупку оборудования и 200 квадратных футов свободной площади. Владелец хочет знать, сколько машин каждого типа нужно купить, чтобы максимизировать ежедневное увеличение прибыли. Решить эту проблему.

Решение

Первым шагом является моделирование проблемы, это линейная задача целым числом (поэтому симплекс применить нельзя).

разделение и оценка ветвей и границ

С x_1 количество нажатий и x_2 количество поворотов.

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

разделение и оценка ветвей и границ

Расслабленное оптимальное решение: x_1=2,22 и x_2=5,56 с Z=1055,56.

Метод ветвей и границ использует диаграмму, состоящую из узлов и ветвей, в качестве основы для процесса решения. Первый узел на диаграмме ветвей и связей, показанной на рис. C-1, содержит упрощенное решение линейного программирования, показанное ранее, и округленное решение.

разделение и оценка ветвей и границ

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

Первое подключение

Создайте два ограничения (или подмножества), чтобы исключить дробную часть значения из решения, и посмотрите, какое из них дальше всего от округленного целочисленного значения (т. е. какая переменная имеет наибольшую дробную часть в абсолютном значении). Часть 0,56 от 5,56 является наибольшей дробной частью; таким образом, x_2 будет переменной, в которую мы собираемся «подключиться».

Другими словами, мы создадим две альтернативные линейные программы с учетом соответственно того, что x_2 должен быть меньше или равен 5 с одной стороны; а x_2 должен быть больше или равен 6, с другой стороны.

Итак, у нас есть следующая связь:

разделение и оценка ветвей и границ

Решим задачу слева:

разделение и оценка ветвей и границ

Это дает решение x_1=2,5, x_2=5 и Z=1000.

Решим систему справа:

разделение и оценка ветвей и границ

Эта система имеет для решения x_1 = 1,33 и x_2 = 6, Z = 1033,33

С практической точки зрения мы сократили поле определения с ограничением x_2=6 и разрешили по обе стороны от ограничения, снятого линейной системой.

разделение и оценка ветвей и границ

Давайте обновим наш график с новыми UB и LB каждой полученной системы.

разделение и оценка ветвей и границ

Поскольку у нас пока нет оптимального и допустимого целочисленного решения, нам нужно продолжить разветвление (т. е. разбиение) модели либо из узла 2, либо из узла 3. Взгляд на рисунок показывает, что если мы разветвляемся из узла 2, максимальное значение, которое может быть достигнуто, составляет 1000 $ (верхняя граница).

Однако, если мы начнем с узла 3, возможно более высокое максимальное значение 1033 $. Таким образом, мы будем ответвляться от узла 3. В общем, всегда ответвляйтесь от узла с максимальной верхней границей.

Второе соединение

Теперь шаги ветвления, которые ранее выполнялись в узле 1, повторяются в узле 3. Сначала выбирается переменная, имеющая значение с наибольшей дробной частью. Поскольку x_2 имеет целочисленное значение, x_1 с дробной частью 0,33 — единственная переменная, которую мы можем выбрать. Таким образом, два новых ограничения развиваются из x_1.

разделение и оценка ветвей и границ

Взяв узел 4, мы имеем следующую линейную программу:

разделение и оценка ветвей и границ

Решение проблемы: x_1=1 и x_2=6,17 с Z=1025.

Вторая проблема:

разделение и оценка ветвей и границ

Эта задача не допускает решения (нарушено первое ограничение). Таким образом, мы имеем следующий граф решения:

разделение и оценка ветвей и границ

У нас все еще нет целочисленного решения, поэтому мы должны продолжить алгоритм ветвей и границ.

Третье соединение

Node 4 имеет лучший UB. Поскольку x_2 — единственная переменная, которая не является целым числом, мы перейдем к этой переменной.

разделение и оценка ветвей и границ

После решения двух линейных программ в узлах 6 и 7 получаем полученные результаты следующий:

разделение и оценка ветвей и границ

Решение узла 6 соответствует критериям исходной задачи (т.е. в целом числе). Только ветви в 3 и 4 имеют UB выше, чем узел 6, однако ветвь, которая дает узлы 5 и 7, не имеет допустимого решения. Делаем вывод, что оптимальное решение находится в узле 6.

Краткое изложение метода

Вот краткое изложение на английском языке метода, который мы только что использовали.

разделение и оценка ветвей и границ

Делиться
ru_RURU