Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Постановка задачі: Знайти найкоротший маршрут з кінцевого пункту в початковий, якщо відома матриця транспортних витрат (см. табл 46).
Таблиця 46. Матриця транспортних витрат
Алгоритм рішення:
fn(s) – вартість, що відповідає стратегії min витрат для шляху від пункту s, якщо до кінцевого пункту залишилося n кроків.
jn(s) - рішення, що дозволяє досягти fn(s).
Розраховувати будемо, користуючись рекурентним співвідношенням:
fn(s) =min (csj+ fn-1(j)) по всем s и j на сети.
Рішенне:
Шаг 1
в Из | f | j | |
Шаг 2
в Из | f | j | |||
11+8 | 13+7 | ||||
12+8 | 9+6 |
Шаг 3
в Из | f | j | |||
11+19 | 7+15 | 12+8 | |||
8+19 | 5+15 | 9+8 | |||
10+19 | 10+15 | 6+8 |
Шаг 4
в Из | f | j | |||
7+20 | 5+17 | 9+14 |
Рисунок 19 Транспортная сеть
Ответ: F=22, кратчайший путь 1-3-7-10.
Варианты задачи 1
«Задача о дилижансе»
1. Построить сеть.
2. Ручной расчет.
Варианты:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
15.
16.
17.
18.
19.
20.
М етод ветвей и границ
К задачам целочисленного программирования относятся задачи комбинаторного вида, т.е. такие задачи в которых решение ищется на конечном множестве возможных значений переменных.
Например. Задача Коммивояжера (конечное число маршрутов (n!), задача о ранце (конечное число предметов), задача о максимальном потоке или кратчайшем пути в сетевых задачах (конечное число вершин графа).
Метод Гомори решения целочисленных задач линейного программирования не всегда дает удовлетворительные результаты, из-за слабой сходимости или вообще расходится из-за накопления ошибок вычислений. Другим методом, который вообще не связан с накоплением вычислительной погрешности, является метод ветвей и границ (МВиГ). МВиГ впервые был предложен Лендом и Дойгом в 1960 г., но получил широкое распространение в связи с применением этого метода в работе Литтла, Мурти, Суини и Кэрел в 1963 г., посвященной задаче о коммивояжере.
Идея метода состоит в следующем.
Рассмотрим задачу дискретного программирования:
требуется min ® Z=f(Х) (1)
при условии, что ХÎG (2)
где G некоторое конечное множество.
Функция f(Х) и конечное множество G произвольного вида.
В основе метода лежат построения, позволяющие в ряде случаев существенно уменьшить число перебора вариантов. Введем обозначение G0 = G. Пусть нам удалось каким-либо образом найти такое значение x(G0), для которого можно сказать с уверенностью, что выполняется условие
f(x) ³ x(G0), при xÎG0 (3)
т.е. какое бы xÎG0 мы не взяли, значение f(x) всегда будет ³ x(G0), т.е. x(G0) является нижней граню для Z. Значение x(G0) может и не достигаться на G0, но если оно достигается, т.е. существует Х* такой, что f(Х*)= x(G0), т.е. Х* – оптимальное решение (f(x) не может быть > x(G0), к.к. это нижняя грань, но если мы вышли на эту нижнюю грань оставаясь в G0 то задача решена).
Производим разбиение G0 на подмножества так, чтобы
, " i, j, i¹j (4)
Для каждого из полученных определяем нижнюю грань . Причем, если
, то x(G0) нижняя грань x на множестве Gi устанавливается более точно чем на G0.
Определяем:
(5)
Если существует план Х* Î Þ f(x*)= , то Х* оптимальный план (существенным является не только то, что Х* Î , но и то, что Х* является планом (1)-(2)).
Если , , то множество считается перспективным и его разбивают аналогично G0 (4) на подмножества . Переобозначим все множества и на .
(6)
и переходим к (5) и т.д., до тех пор пока не будет найден оптимальный план. Здесь следует отметить тот факт, что в первую очередь ветвлению подвергаются только перспективные подмножества, при этом к ранее не перспективным можно вернуться на одном из последующих шагов, когда их оценка нижней грани будет £ оценки перспективного множества на этом шаге.
Требуется найти кратчайший путь из вершины 1 в 7, проходящий через вершины 4 или 5.
Планом задачи здесь является путь ведущий из вершины 1, через вершину 4 или 5 в вершину 7.
Шаг 1. Разбиваем множество всех путей ведущих из вершины 1 на 2 не пересекающихся подмножества:G1 – множество всех путей проходящих из вершины 1 в вершину 2 и далее к вершине 7;G2 – множество всех путей проходящих из вершины 1 в вершину 3 и далее к вершине 7.
В качестве оценки x возьмем длину ребер [1,2] и [1,3], т.к. это части пути, то длина полного пути всегда ³ xi.
|
На третьем шаге получен путь [1,3,5,7], являющийся планом, т.е. ведущим из начальной вершины 1 в конечную – 7 и проходящий через вершину 5, но его оценка хуже двух других возможных маршрутов: x[1,3,2] = x[1,3,4] = 5 < f([1,3,5,7]) = 7, поэтому процесс продолжаем, ветвлением вершин [1,3,2] и [1,3,4].
На четвертом шаге получен план [1,3,4,7] и f(X) = 6 т.к. x(Gn)=6 и существует план с f(X)=6, то решение найдено.
Пути из всех остальных вершин с x=6 могут только увеличиваться, т.к. эти маршруты еще не являются планами.
МВиГ является универсальным методом решения комбинаторных задач. Сложность практического применения метода заключается в трудности нахождения способа ветвления множеств на подмножества и вычисления соответствующих оценок, которые зависят от специфики конкретной задачи.
Методом ветвей и границ решаются классические задачи «О коммивояжере» и «Задача Джонсона».
Дата публикования: 2015-01-15; Прочитано: 1283 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!