Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Метод ветвей и границ. Транспортная задача в сетевой постановке




Транспортная задача в сетевой постановке.

ПОСТАНОВКА ЗАДАЧИ.

Имеется сеть (I,D,G) с заданными стоимостями перемещения единицы продукта по дуге cd и интенсивностями вершин bi::

bi >0 – для пунктов отправления, i – источник;

bi <0 – для пунктов назначения, i – сток;

bi =0 – для нейтральных вершин.

Требуется найти оптимальный поток, для которого

При ограничениях ,

КРИТЕРИЙ ОПТИМАЛЬНОСТИ. Для того, чтобы допустимый поток был оптимальным, необходимо и достаточно существование для каждой вершины i такого числа vi, называемого потенциалом, что для всех дуг d=(i,j)

vj - vi ≤ cd, если xd =0

vj - vi =cd, если xd >0

АЛГОРИТМ МЕТОДА ПОТЕНЦИАЛОВ.

1. Найдем допустимый невырожденный поток.

а) с помощью транспортной таблицы;

б) с помощью вспомогательной задачи:

к множеству вершин сети добавим фиктивную вершину с b0 =0, все вершины, для которых bi <0 соединим с нулевой вершиной входящими дугами (0,i), а для которых bi >0 – исходящими (i,0), стоимость транспортировки для вновь добавленных дуг положим равными 1, а для остальных =0.

2. Проверим оптимальность текущего потока.

Строим систему потенциалов:

произвольно выбираем пункт i, потенциал которого полагаем равным 0;

вычисляем потенциалы вершин для которых xd >0 по правилу

vj = vi +cd, если дуга направлена от i

vj = vi -cd, если дуга направлена к i

Проверяем условие оптимальности:

Если условие оптимальности выполнено, то текущий поток является оптимальным. Вычислительный процесс завершаем.

Если не выполнено, то переходим к следующему пункту.

3. Определим дугу, вводимую в поток.

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

4. Построим цикл.

Цикл должен содержать дугу dk и дуги, для которых xd >0

5. Преобразуем текущий поток.

Среди всех дуг цикла рассмотрим дуги, ориентация которых не совпадает с ориентацией дуги dk и найдем Δ= min xd

Преобразуем поток, добавляя Δ для всех сонаправленных с dk дуг и отнимая Δ для всех противоположно направленных дуг.

Перейдем к пункту 2.

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

ПРИМЕР 3.10. Найти кратчайший путь из А в В.

М 9 К

3 2 4 3

А 3 1 2 7 В

Р 5 Т

 

Вначале рассмотрим 2 подмножества путей, которые являются продолжением отрезков [A, M] и [A,P]. За нижнюю оценку каждого из этих подмножеств можно взять длины дуг: v[A,M]=v[A, P]=3. Так как оценки равны, рассмотрим продолжения каждого из этих путей: v[А,М,Р]=4; v[А,М,К]=12; v[А,М,Т]=5; v[А,Р,К]=7; v[А,Р,Т]=8. Оценка нового пути до вершины Р оказалась больше предыдущей, следовательно путь [А,М,Р] отсекается. Также отсекаются пути [А,М,К] и [А,Р,Т]. Рассмотрим варианты продолжения пути с наименьшей оценкой [А,М,Т]: v[А,М,Т,В]=12. Допустимый путь получен. Однако его оценка не является наименьшей оценкой среди других висячих вершин. Рассмотрим варианты продолжения пути [А,Р,К]: v[А,Р,К,В]=10; v[А,Р,К,Т]=9. Второй вариант отбрасываем, т.к. к вершине Т существует путь с меньшей оценкой. Получили оптимальный путь [А,Р,К,В]

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

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

Коммивояжеру необходимо посетить N городов, заходя в каждый город 1 раз и вернуться домой. С точки зрения теории графов: найти минимальный Гамильтонов цикл.

АЛГОРИТМ ЛИТТЛА.

0. Представим граф в виде матрицы стоимостей, на главной диагонали которой стоимость = ∞.

1. Найдем в каждой строке матрицы минимальный элемент и вычтем его из всех элементов этой строки.
Если в полученной матрице оказались столбцы без нулевых элементов, то находим в каждом из них минимальный элемент и вычитаем его из всех элементов этого столбца.
Просуммируем все вычтенные элементы и получим нижнюю границу цикла в

2. Проведём оценку всех нулевых элементов матрицы.
, исключая выбранный элемент.
Выберем максимальную из оценок θ=max γijkl

3. Множество путей разобьём на два подмножества: пути, содержащие дугу (k,l) и пути, не содержащие дугу (k,l).
Для второго подмножества нижней границей будет: в/=в+ θ
Чтобы вычислить границу для первого подмножества, перейдём к матрице на порядок ниже, вычеркнув k-строку и l-столбец. В новой матрице для исключения пути (l,k) в соответствующую клетку поставим знак ∞.
Вычислим оценку полученной матрицы аналогично п.1 и добавим её к нижней границе цикла. Эта сумма в// и будет границей для первого подмножества.

4. Сравним границы всех висячих вершин и выберем вершину с наименьшей границей. Если минимальной является граница в/, то возвращаемся к матрице на порядок выше и, чтобы исключить дугу (k,l) из рассмотрения, заносим в соответствующую клетку знак ∞. Переходим к п.1.

5. Процесс продолжается до тех пор, пока не получим матрицу 1-ого порядка.

ПРИМЕР 3.11. Найти все Гамильтоновы циклы. Определить оптимальный путь коммивояжера по алгоритму Литтла.




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 1605; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.