Научная Петербургская Академия

Лекция: Лекции по вычислительной математике

Лекция: Лекции по вычислительной математике

Вычислительная математика

Специальность ПО

5-й семестр

Конспект лекций

Лекция 1

Общее описание метода ветвей и границ организации пол-ного перебора

возможностей. Решение задачи о коммивояжере методом ветвей и границ:

основная схема.

Пусть Лекция: Лекции по вычислительной математике - конечное

множество и Лекция: Лекции по вычислительной математике -

ве-щественно-значная функция на нем; требуется найти минимум

этой функции и элемент множества, на котором этот минимум

достигается.

Когда имеется та или иная дополнительная информация о множестве, решение этой

задачи иногда удается осуществить без полного перебора элементов всего

множества M. Но чаще

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

обязательно возникает задача, как лучше перебор организовать.

Метод ветвей и границ - это один из методов организации полного перебора. Он

применим не всегда, а только тогда, когда

выполняются специфические дополнительные условия на множе-

ство M и минимизируемую на нем функцию. А именно, -

предположим, что имеется вещественно-значная функция j на

множестве подмножеств множества M со следующими двумя свойствами:

1) для Лекция: Лекции по вычислительной математике (здесь Лекция: Лекции по вычислительной математике - множество, состоящее

из единственного элемента Лекция: Лекции по вычислительной математике );

2) если Лекция: Лекции по вычислительной математике и Лекция: Лекции по вычислительной математике , то Лекция: Лекции по вычислительной математике .

В этих условиях можно организовать перебор элементов множества M с целью

минимизации функции на этом множестве так:

разобьем множество M на части (любым способом) и выбе-

рем ту из его частей W1, на которой функция j минимальна;

за-тем разобьем на несколько частей множество W1 и выберем ту из его

частей W2, на которой минимальна функция j; затем разо-бьем

W2 на несколько частей и выберем ту из них, где минималь-на j,

и так далее, пока не придем к какому-либо одноэлементно-му множеству Лекция: Лекции по вычислительной математике

.

Это одноэлементное множество Лекция: Лекции по вычислительной математике называется рекордом.

Функция j, которой мы при этом выборе пользуемся, называется

оценочной. Очевидно, что рекорд не обязан доставлять минимум

функции f; однако, вот какая возможность возникает сократить

перебор при благоприятных обстоятельствах.

Описанный выше процесс построения рекорда состоял из последовательных этапов,

на каждом из которых фиксировалось

несколько множеств и выбиралось затем одно из них. Пусть Лекция: Лекции по вычислительной математике

Лекция: Лекции по вычислительной математике - подмножества

множества M, возникшие на предпослед-нем этапе построения рекорда, и

пусть множество Лекция: Лекции по вычислительной математике

оказалось

выбранным с помощью оценочной функции. Именно при разбие-нии Лекция: Лекции по вычислительной математике

и возник рекорд, который сейчас для определенности обозначим через Лекция: Лекции по вычислительной математике

. Согласно сказанному выше, Лекция: Лекции по вычислительной математике

,

Лекция: Лекции по вычислительной математике ; кроме того, по определению оценочной функции, Лекция: Лекции по вычислительной математике .

Предположим, что Лекция: Лекции по вычислительной математике ;

тогда для любого элемента m множества M, принадлежащего

множеству Лекция: Лекции по вычислительной математике , будут

верны не-

равенстваЛекция: Лекции по вычислительной математике Лекция: Лекции по вычислительной математике ; это значит, что при полном пере-

боре элементов из M элементы из Лекция: Лекции по вычислительной математике уже вообще не надо рас-

сматривать. Если же неравенство Лекция: Лекции по вычислительной математике не будет выполне-

но, то все элементы из Лекция: Лекции по вычислительной математике надо последовательно сравнить с най-

денным рекордом и как только отыщется элемент, дающий мень-

шее значение оптимизируемой функции, надо им заменить ре-корд и продолжить

перебор. Последнее действие называется

улучшением рекорда.

Слова метод ветвей и границ связаны с естественной гра-

фической интерпретацией всего изложенного: строится много-

уровневое дерево, на нижнем этаже которого располагаются

элементы множества M, на котором ветви ведут к рекорду и его

улучшениям и на котором часть ветвей остаются «оборванными»,

потому что их развитие оказалось нецелесообразным.

Мы рассмотрим сейчас первый из двух запланированных в

этом курсе примеров применения метода ветвей и границ - ре-шение задачи о

коммивояжере. Вот ее формулировка.

Имеется несколько городов, соединеных некоторым обра-зом дорогами с известной

длиной; требуется установить, имеет-

ся ли путь, двигаясь по которому можно побывать в каждом горо-

де только один раз и при этом вернуться в город, откуда путь был начат

(«обход коммивояжера»), и, если таковой путь имеет-

ся, установить кратчайший из таких путей.

Формализуем условие в терминах теории графов. Города

будут вершинами графа, а дороги между городами - ориентиро-ванными

(направленными) ребрами графа, на каждом из кото-рых задана весовая функция:

вес ребра - это длина соответству-

ющей дороги. Путь, который требуется найти, это - ориентиро-ванный остовный

простой цикл минимального веса в орграфе (напомним: цикл называется

остовным, если он проходит по всем вершинам графа; цикл называется

простым, если он прохо-

дит по каждой своей вершине только один раз; цикл называется

ориентированным, если начало каждого последующего ребра совпадает с

концом предыдущего; вес цикла - это сумма весов его ребер; наконец,

орграф называется полным, если в нем име-ются все возможные ребра);

такие циклы называются также га-

мильтоновыми.

Очевидно, в полном орграфе циклы указанного выше типа есть. Заметим, что вопрос

о наличии в орграфе гамильтонова цикла достаточно рассмотреть как частный

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

орграф не является полным, то его можно дополнить до полного недостающими

ребрами и каждому из добавленных ребер при-писать вес ¥, считая, что ¥

- это «компьютерная бесконечность», т.е. максимальное из всех возможных в

рассмотрениях чисел. Если во вновь построенном полном орграфе найти теперь

лег-чайший гамильтонов цикл, то при наличии у него ребер с весом ¥ можно

будет говорить, что в данном, исходном графе «цикла коммивояжера» нет. Если же

в полном орграфе легчайший га-мильтонов цикл окажется конечным по весу, то он и

будет иско-мым циклом в исходном графе.

Отсюла следует, что задачу о коммивояжере достаточно ре-шить для полных

орграфов с весовой функцией. Сформулируем

теперь это в окончательном виде:

пусть Лекция: Лекции по вычислительной математике - полный ориентированный граф и Лекция: Лекции по вычислительной математике -

весовая функция; найти простой остовный ориентированный цикл («цикл

коммивояжера») минимального веса.

Пусть Лекция: Лекции по вычислительной математике конкретный состав множества вершин и

Лекция: Лекции по вычислительной математике - весовая матрица данного орграфа, т.е.

Лекция: Лекции по вычислительной математике ,

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

Рассмотрение метода ветвей и границ для решения задачи о коммивояжере удобнее

всего проводить на фоне конкретного

примера. Пользуясь введенными здесь обозначениями, мы проводим это описание в

следующей лекции.

Введем некоторые термины. Пусть имеется некоторая чис-

ловая матрица. Привести строку этой матрицы означает выде-лить в

строке минимальный элемент (его называют константой приведения) и

вычесть его из всех элементов этой строки. Оче-видно, в результате в этой

строке на месте минимального эле-мента окажется ноль, а все остальные элементы

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

матрицы.

Слова привести матрицу по строкам означают, что все строки матрицы

приводятся. Аналогичный смысл имеют слова

привести матрицу по столбцам.

Наконец, слова привести матрицу означают, что матрица

сначала приводится по строкам, а потом приводится по столб-цам.

Весом элемента матрицы называют сумму констант приве-

дения матрицы, которая получается из данной матрицы заменой обсуждаемого

элемента на ¥. Следовательно, слова самый тяжелый нуль в матрице

означают, что в матрице подсчитан вес каждого нуля, а затем фиксирован нуль с

максимальным весом.

Приступим теперь к описанию метода ветвей и границ для

решения задачи о коммивояжере.

Первый шаг. Фиксируем множество всех обходов коммиво-

яжера (т.е. всех простых ориентированных остовных циклов). По-

скольку граф - полный, это множество заведомо непусто. Сопо-ставим ему число,

которое будет играть роль значения на этом

множестве оценочной функции: это число равно сумме констант

приведения данной матрицы весов ребер графа. Если множест-во всех обходов

коммивояжера обозначить через G, то сумму

констант приведения матрицы весов обозначим через j(G). При-веденную матрицу

весов данного графа следует запомнить; обо-значим ее через M1

; таким образом, итог первого шага:

множеству G всех обходов коммивояжера сопоставлено чис-ло j(G) и матрица M1.

Второй шаг. Выберем в матрице M1 самый тяжелый нуль;

пусть он стоит в клетке Лекция: Лекции по вычислительной математике

; фиксируем ребро графа Лекция: Лекции по вычислительной математике

и раз-

делим множество G на две части: на часть Лекция: Лекции по вычислительной математике , состоящую из

обходов, которые проходят через ребро Лекция: Лекции по вычислительной математике , и на часть Лекция: Лекции по вычислительной математике ,

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

Сопоставим множеству Лекция: Лекции по вычислительной математике следующую матрицу M1,1: в

матрице M1 заменим на ¥ число в клетке Лекция: Лекции по вычислительной математике

. Затем в получен-ной матрице вычеркнем строку номер i и столбец номер

j, причем у оставшихся строк и столбцов сохраним их исходные номера.

Наконец, приведем эту последнюю матрицу и запомним сумму констант приведения.

Полученная приведенная матрица и будет матрицей M1,1

; только что запомненную сумму констант приведения прибавим к j(G) и результат,

обозначаемый в даль-нейшем через j(Лекция: Лекции по вычислительной математике

), сопоставим множеству Лекция: Лекции по вычислительной математике

.

Теперь множеству Лекция: Лекции по вычислительной математике тоже сопоставим некую матрицу

M1,2. Для этого в матрице M1 заменим на ¥ число в клетке Лекция: Лекции по вычислительной математике

и полученную в результате матрицу приведем. Сумму констант

приведения запомним, а полученную матрицу обозначим через M1,2

. Прибавим запомненную сумму констант приведения к

числу j(G) и полученное число, обозначаемое в дальнейшем че-

рез j(Лекция: Лекции по вычислительной математике ), сопоставим множеству Лекция: Лекции по вычислительной математике .

Теперь выберем между множествами Лекция: Лекции по вычислительной математике и Лекция: Лекции по вычислительной математике то, на

котором минимальна функция j (т.е. то из множеств, которому

соответствует меньшее из чисел j(Лекция: Лекции по вычислительной математике ) и j(Лекция: Лекции по вычислительной математике ).

Заметим теперь, что в проведенных рассуждениях исполь-зовался в качестве

исходного только один фактический объект - приведенная матрица весов данного

орграфа. По ней было вы-делено определенное ребро графа и были построены

новые

матрицы, к которым, конечно, можно все то же самое применить.

При каждом таком повторном применении будет фиксироваться очередное ребро графа.

Условимся о следующем действии: пе-ред тем, как в очередной матрице

вычеркнуть строку и столбец,

в ней надо заменить на ¥ числа во всех тех клетках, которые со-ответвуют

ребрам, заведомо не принадлежащим тем гамильто-новым циклам, которые проходят

через уже отобранные ранее ребра; эту довольно трудную фразу мы еще не раз

рассмотрим в

следующей лекции на конкретном примере.

К выбранному множеству с сопоставленными ему матрицей и числом j повторим все

то же самое и так далее, пока это воз-можно.

Доказывается, что в результате получится множество, со-стоящее из

единственного обхода коммивояжера, вес которого равен очередному значению

функции j; таким образом, оказы-ваются выполненными все условия, обсуждавшиеся

при описа-нии метода ветвей и границ.

После этого осуществляется улучшение рекорда вплоть до получения

окончательного ответа.



(C) 2009