Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТВ. ГОЛЬДШТЕЙН А.Л. ТПР.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
1.67 Mб
Скачать

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

Метод можно применять как к полностью, так и частично целочисленным задачам.

Метод заключается в построении дерева задач. Оценка V– это значение критерия, заведомо не хуже оптимального, а рекорд Z – достигнутое в процессе решения значение критерия исходной задачи. Задача будет порождающей только при условии, что ее оценка лучше рекорда. При этом уровень, на котором находится задача, не имеет значения.

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

Алгоритм:

1. Задается начальное значение рекорда и в список задач помещается исходная задача без требования целочисленности переменных.

2. Анализируется список задач: если он пуст, то переход на шаг 6. Иначе выбирается одна из задач с удалением ее из списка.

3. Выбранная задача решается одним из методов линейного программирования. Если задача неразрешима или оптимальное значение критерия L*Z, ветвь обрывается (задача прозондирована). Переход на шаг 2.

4. Полученное решение анализируется на целочисленность. Если решение целочисленное, оно фиксируется, рекорду присваивается оптимальное значение критерия решенной непрерывной задачи (Z:=L*), ветвь обрывается и осуществляется переход на шаг 2.

5. Выбирается одна из переменных, имеющих нецелочисленные значения. По ней производится ветвление: порождаются 2 задачи, одна образуется присоединением к решенной (родительской) задаче условия хj , другая – добавлением к родительской ограничения хj +1. Эти задачи заносятся в список задач. Переход на шаг2.

6. Вывод результатов (если значение рекорда больше начального, получено оптимальное решение исходной задачи, иначе задача неразрешима).

Число решаемых задач существенно зависит от выбора задачи из списка и переменной для ветвления. Из алгоритма, что ветвь обрывается по одной из трех причин:

- неразрешимость задачи;

- задача имеет целочисленное решение;

- верхняя оценка не больше рекорда.

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

Недостатки метода ветвей и границ:

- Нельзя оценить число задач, которые придется решать; Отсутствие признака оптимальности. Оптимальность устанавливается только по исчерпании списка задач; Размерность ограничена примерно 100.

Аддитивный алгоритм

Он разработан применительно к задачам с булевыми переменными. Алгоритм представляет собой реализацию одного из методов частичного перебора.

Модель задачи должна быть представлена в стандартной форме.

L= (10) (11) (12)

Требования: все условия неравенства; cj – неотрицательны, если ck < 0 xk = 1-xk; постоянная в критерии не влияет на решение.

Представим условия (11) в канонической форме: , (13)

где Si – дополнительные переменные. Тогда начальное решение очевидно: хj=0 и Si=bi. Как уже говорилось, если Si  0, оно оптимально. В противном случае осуществляется частичный перебор решений. Для пояснения алгоритма восполььзуемся табл., которая аналогична симплексной.

A0 (Решение)

x1

x2

. . .

xn

S1

S2

. . .

Sm

b1

a11

a12

. . .

a1n

1

0

. . .

0

b2

a21

a22

. . .

a2n

0

1

. . .

0

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

bm

am1

am2

. . .

amn

0

0

. . .

1

L

c1

c2

. . .

cn

0

0

. . .

0

В алгоритме переменные разделяются на фиксированные и свободные. Переменную которой присвоено определенное значение, называют фиксированной. Значение свободной переменной можно изменять. Основным объектом алгоритма является частичное решение – это решение, в котором часть переменных фиксирована. Оно описывается упорядоченным множеством индексов фиксированных переменных. При этом индекс переменных, равных нулю, записывается со знаком "минус" It={-2, 4}.

Первоначальное частичное множество всегда пустое (I0=), а значение рекорда z=. Алгоритм состоит из четырех проверок, которые выполняются для того, чтобы определить наличие перспективных свободных переменных. Если такая переменная находится, то изменяя ее значение, можно улучшить результат. По умолчанию принято, что свободные переменные находятся на нижнем уровне (равны нулю). Частичное решение считается прозондированным, если оно не может привести к допустимому решению и уменьшению значения критерия.

Пусть имеем частичное решение It с критерием Lt и вектором дополнительных переменных St=(S1t, S2t, ..., Smt). К нему применяются следующие проверки.

1. Для каждой свободной переменной xr проверяются коэффициенты air в строках с Sit<0 (табл.). Если во всех таких строках air0, переменная xr исключается, так как изменение ее значения с 0 на 1 не приведет к положительности хотя бы одной из рассматриваемых Sit.

2. Анализируется возможность улучшения критерия. Если для свободной переменной xr выполняется неравенство Cr + Lt z, изменение ее значения не может привести к уменьшению рекорда. Поэтому она исключается.

Оставшиеся после этих проверок свободные переменные образуют множество Pt. Если оно пустое, то текущее частичное решение не перспективно, то есть считается прозондированным.

3. Выясняется возможность получения допустимого решения на основе данного частичного. В строках с Sit<0 проверяется условие (14)

Если оно выполняется хотя бы для одной строки, все переменные из Pt исключаются. В этом случае решение It считается прозондированным (ветвь обрывается).

Если условия (14) не выполняются, проводится проверка 4.

4. При Pt   ветвь продолжается. Для получения нового частичного решения из It вычисляются оценки каждой переменной из Pt: (15)

Оценка дает суммарную величину недопустимости, остающейся после изменения значения переменной xj Pt c 0 на 1. Как видно из (15), отрицательная оценка свидетельствует о наличии недопустимости. Из полученных оценок определяется максимальная . (16)

Очевидно, что если vkt=0, то изменение xk с 0 на 1 дает допустимое решение с меньшим значением критерия. Поэтому рекорду z присваивается значение Lt+Ck, а новое частичное рещение It+1={It, k} считается прозондированным. Если же vkt < 0, то допустимое решение не достигнуто и частичное решение It+1={It, k} подвергается всем проверкам. Если в результате проверок оно окажется прозондированным, новое частичное решение получают из It+1 изменением знака индекса введенной переменной: It+2={It, -k}, то есть фиксацией xk со значением 0.