Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lecture1

.doc
Скачиваний:
6
Добавлен:
15.06.2014
Размер:
229.38 Кб
Скачать

ЗАДАЧИ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ

1. Метод ветвей и границ. Задача коммивояжера.

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

Рассмотрим общую задачу математического программирования:

Если множество D является конечным или счетным, то условие – это условие дискретности и данная задача является задачей дискретного программирования.

Среди задач дискретного программирования можно выделить класс экстремальных комбинаторных задач. В данных задачах необходимо найти экстремум некоторой целевой функции, заданной на конечном множестве, элементами которого являются перестановки из n объектов.

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

§Общая схема метода ветвей и границ.

Итак, рассмотрим комбинаторную задачу:

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

  1. Вычисление нижней границы (оценки) целевой функции f(x)

Иногда удается для вычислить нижнюю оценку целевой функции f(x), такую что:

2. Ветвление (разбиение на подмножества)

Реализация метода связана с разбиением множества D на попарно непересекающиеся подмножества.

Ветвление происходит по следующей схеме:

Шаг 0. Исходное множество D=D0, разбиваем некоторым способом на конечное число непересекающихся подмножеств , т.е. при этом .

Получаем начальное дерево разбиения с корнем D0 и листьями :

Ш аг k (k>=1). Пусть к началу k-го шага имеется семейство множеств {Dki} еще не подвергающихся разбиению. Им соответствуют висячие вершины дерева вариантов. По некоторому правилу, выбираются одно из множеств Dkv и это множество вновь разбивается на конечное число подмножеств.

3. Пересчет оценок.

Е сли , то

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

4. Нахождение планов.

Способы построения допустимых решений зависят от специфики задачи.

5. Признак оптимальности.

Имеем разбиение , где {Di}– cемейство множеств еще неподвергающихся ветвлению (висячие вершины). Если существует такое Dv и решение

То х* - оптимальное решение , такое что , то x* – оптмальное решение.

Предлагается на самостоятельное доказательство (доказательство следует из определения оценки ).

6. Оценка точности приближенного решения.

Пусть

Если , то .

Если невелика, то

Невелика, то х можно принять за приближенное решение, а Δ – оценка его точности.

§Алгоритм метода

Шаг 0. Вычисляется оценка ξ(D).

if (при этом удается найти такое допустимое решение )

then х* – оптимальное решение, stop.

else (если такого допустимого решения найти не удается)

then подвергаем множество D ветвлению: . Вычисляем оценки ξ(Di), i=1..S.

Ш аг k (k>=1).

Пусть , де {Di} – семейство множеств, еще не подвергавшихся ветвлению, им соответствуют висячие вершины дерева вариантов.

If (удается найти такое множество Dv в этом семействе и такое допустимое решение , такое что )

then x* оптимальное решение. Stop!

else для дальнейшего разбиения выбираем наиболее перспективное множествоDv по правилу .

Dv разбиваем на непересекающиеся подмножества Dv1,…,Dvk. Вычисляются оценки ξ(Dvj). И переходим к (k+1)-ой итерации.

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

§Задача коммивояжера

Реальная ситуация:

Имеется сеть населенных пунктов(городов) в количестве n штук. Имеется бродячий торговец – коммивояжер. Ему надо посетить все n городов по своим торговым делам. Расстояние между городами ему известно. Его цель минимизировать расходы на передвижение и посетить все n городов. Это означает, что он не должен посещать один и тот же город дважды. И традиционно полагается, что он должен вернуться в исходную точку.

Содержательная постановка:

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

Теоретико-графическая модель:

Пронумеруем города числами от i=1..n. Каждому i ставим в соответствие в вершину графа G. Задаем матрицу расстояний С=[Cij]nxn, Cij – расстояние от города i до города j, ребро (i,j) в G. G – полный взвешенный граф(все вершины попарно смежны, каждому ребру соответствует некоторое число(расстояние)). В общем случае .

С =.

Определение: Гамильтоновым циклом в графе называется замкнутый маршрут проходящий по всем вершинам ровно один раз.

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

Пусть х=(i1,i2,…,in,i1) – допустимый гамильтоновый цикл (допустимый маршрут коммивояжера), l(x)=Ci1Ci2+Ci2Ci3+…+Cini1 – длина маршрута.

Задача коммивояжера относится к классу задач комбинаторной оптимизации. Задачи отличаются тем, что их решение конечно.

Математическая модель:

Пусть , тогда математическая модель задачи имеет следующий вид:

г де – произвольные целые неотрицательные числа.

§ Метод ветвей и границ для задачи коммивояжера.

Основные построения.

  1. Задание множества D.

D={множество всех Гамильтоновых циклов в графе G}.

  1. Вычисление оценки для D.

Рассмотрим некоторый Гамильтоновый цикл x=(i1,i2,…,in,i1), его длина l(x)=Ci1i2+Ci2i3+…+Cini1.

Положим , тогда . При этом .

Положим , тогда . При этом .

Этот процесс называется приведением матрицы C=[Cij]. Полученная в итоге матрица C’’=[Cij] называется приведенной.

Величины αi , βj – называются константами приведения.

Таким образом, приведенная матрица C получается из С, вычитанием из всех элементов каждой строки минимального элемента этой строки, а затем из всех элементов столбца, минимального элемента этого столбца.

Матрица C обладает одним замечательным свойством, у нее в каждой строке и в каждом столбце имеется хотя бы один нулевой элемент.

Положим – это нижняя оценка множества D. Ясно, что .

Теорема. Оптимальное решение ЗК с матрицей C является также оптимальным и для ЗК с матрицей С. При этом длина пути l(x), соответствующего матрице С и длина пути l(x), соответствующего матрицы C связаны соотношением l(x)=l(x)+ξ(D).

Доказательство: очевидно из построения оценки ξ(D), длина маршрутов уменьшается на одну и ту же величину ξ(D).

  1. Выбор множества для ветвления.

Каждой висячей вершине соответствует своя оценка ξ и своя приведенная матрица C. Из семейства множеств, еще не подвергавшихся ветвлению (висячие вершины дерева), выбирается множество D c наименьшей оценкой.

На начальном шаге это множество D (D=D).

  1. Ветвление.

Множество D всегда разбивается на два непересекающихся подмножества , где D1={множество Гамильтоновых циклов содержащих дугу (p, q)}, D2={множество Гамильтоновых циклов не содержащих дугу (p, q)}.

Выбор дуги (p,q): Дуга (p,q) выбирается таким образом, чтобы множество D1 c наибольшей вероятностью содержало оптимальный цикл, а множество D2 – не содержало.

Естественно выбрать (p,q), такое что Cpq=0, при этом выбор надо сделать таким образом, чтобы циклы входящие в множество D2 были как можно длиннее, т.е. по определению D2 из пункта p переходим в некоторый пункт ij, а в пункт q попадаем из некоторого пункта jp.

Очевидно, что длина этого пути будет не меньше чем . Таким образом выбираем (p,q) такую, что .

  1. П реобразование матрицы расстояний. Пересчет оценок.

Пусть C”( D1) – матрица соответствующая D1, ξ(D1) – его оценка, С”( D2) – матрица соответствующая D2, ξ(D2) – его оценка .

  1. C”( D2) получается из С”, полагая cpq =∞ и выполняется процедура приведения.

При этом сумма приводящих констант равна ∆(p,q), тогда оценка множества ξ(D2) = ξ(D’)+ ∆(p,q).

  1. C”( D1) – получается из C путем вычеркивания р-ой строки и q-ого столбца. Кроме того необходимо запретить некоторые элементы, для исключения из множества D1 замкнутых маршрутов , проходящих по уже включенным в Гамильтоновый цикл дугам, но не содержащих все n городов (обычно С”pq =∞). И плюс процедура приведения матрицы. Оценка .

И так далее.

Ветвление продолжают до тех пор, пока одно из множеств не будет содержать только один Гамильтоновый цикл, и нижняя оценка этого множества будет минимальной.

7

Соседние файлы в предмете Теория принятия решений