Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций ЭММ.doc
Скачиваний:
28
Добавлен:
17.11.2018
Размер:
2.35 Mб
Скачать

5.2. Метод ветвей и границ

Алгоритм метода ветвей и границ можно представить такой последовательностью шагов:

Шаг 1. Решается линейно ослабленная задача. Если получено целочисленное решение, то задача решена, иначе переход к шагу 2.

Шаг 2. Рассматриваем любую переменную (например, xj), которая приняла нецелочисленное значение. Для нее составляет два ограничения:

а) xj  [xjopt]; б) xj  [xjopt] +1,

где [xjopt] – целая часть оптимального значения переменной xj.

Шаг 3. На основе исходной задачи составляем две задачи: первая содержит ограничения исходной + ограничение а); вторая – ограничения исходной + ограничение б). Переход к шагу 1.

Таким образом, построение новых задач приводит к возрастанию дерева задач. Если по какой-то из ветвей получается целочисленное решение, оно берется в качестве ориентира (Zориент.). С ним впоследствии будут сравниваться вновь получаемые целочисленные решения. Процесс решения по каждой из ветвей продолжается до тех пор, пока не встретится один из следующих случаев:

1. Получено новое целочисленное решение. Если оно лучше ориентира Zориент., оно берется в качестве нового ориентира, если хуже – отбрасывается.

2. Получено недопустимое решение.

3. Получено нецелочисленное решение, которое хуже найденного ранее ориентира Zориент.. Исходя из утверждения 1, целочисленное решение по этой ветви окажется хуже найденного ранее.

Рассмотрим применение этого метода на примере 5.2.

x1,2 – целые.

Исходя из решения линейно ослабленной задачи (1 6/7; 0), сформируем две задачи:

1) исходная + ограничение x1  2;

2) исходная + ограничение x1  1.

Задача 1) не имеет решений, поскольку ОДЗ – пустое множество.

Решим графическим методом задачу 2) (рис. 5.2)

Р ис. 5.2. Решение задачи примера 5.2 с ограничением x1  1.

Решением задачи 2) является (1; 1,5), которое нецелочис­лен­ное. Разобьем эту задачу на две:

21) задача 2) + ограничение x2  2 (рис. 5.3 а);

22) задача 2) + ограничение x2  1 (рис. 5.3 б).

а) б)

Рис. 5.3. Решение задачи примера 5.2 с ограничением x1  1: а) с ограничением x2  2; б) x2  1.

Решение задачи 21): x1 = 5/7; x2 = 2; Z21 = 74. Решение нецелочисленное.

Решение задачи 22): x1 = 1; x2 = 1; Z22 = 64. Данное решение целочис­ленное, поэтому задачу 22) уже не разбиваем, а ее решение берем в качестве ориентира Zориент. = 64.

Поскольку Z21 = 74 > Zориент., задачу 21) разобьем на две:

211) задача 21) + ограничение x1  1 – она не имеет решений, так как ОДЗ – пустое множество;

212) задача 21) + ограничение x1 = 0. Получим решение (0; 3,25), Z212 = 71,5. Решение нецелочисленное. Поскольку Z212 > Zориент., продолжаем разбиение:

2121) задача 212) + ограничение x2  4 – не имеет решений, так как ОДЗ – пустое множество.

2122) задача 212) + ограничение x2  3. Ее решение (0; 3), Z2122 = 66. Поскольку Z2122 > Zориент. = 64, это решение является окончательным.

Оптимум наблюдается в точке (0; 3).

В итоге получили следующее дерево решения задачи (рис. 5.4):

Рис. 5.4. Дерево решений целочисленной задачи примера 5.2