Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Алгоритм самой близкой вставки



1. Выбрать любую вершину. Выбрать инцидентное вершине ребро е с самым маленьким весом, и пусть С является последовательностью ребер: е, е. С - стартовый "цикл", (хотя строго говоря это не цикл, так как данная последовательность содержит повторяющееся ребро).

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

3. Увеличении цикла в результате включения выбранной вершины V 0. Чтобы решить, как вставить V 0, следует рассмотреть все пары V 1, V 2 смежных вершин цикла С и выбрать такую пару, для которой выражение:

I = d 10 + d 02- d 12

является минимальным, где dij - обозначает вес ребра, соединяющего Vi и Vj. Это выражение I представляет увеличение полного веса цикла С, после включения в него вершины V 0. Мы увеличиваем цикл С, включая вершину V 0 путем присоединения ребра соединяющего вершины V 1 и V 0, и ребра, соединяющего вершины V 0 и V 2, и удаляя затем ребро соединяющее вершины V 1 и V 2.

4. Повторяем шаги 2 и 3, пока цикл не будет включать в себя все вершины графа.

Пример 5.1. Проиллюстрируем алгоритм ближайшего включения для сети, представленной на рис. 13 (которая удовлетворяет неравенству треугольника). Веса ребер представлены в матрице расстояний, см. табл.9.

Табл. 9. Матрица расстояний dij, пример 4

узел А B C D E F
A            
B            
C            
D            
E            
F            

Чтобы выполнить шаг I, мы снача­ла выберем вершину маркированную на рисунке буквой А (мы могли бы, конечно, выбрать любую другую из вершин). Ребро eAF является ребром, инцидентным вершине А, и имеет самый маленький вес из числа ребер, инцидентных вершине А. Поэтому первый цикл будет: eAF, eFA (от вершины А до вершины F и назад к вершине А).

Рис. 13

Ребро с самым маленьким весом, инцидентное вершине А или вершине — F это ребро еАВ, поэтому вершина В — это первая вершина, которую следует вставить. Самый короткий путь, которым вершина В может быть вставлена в цепь будет: от вершины А до вершины В и назад через вершину F. Это порождает цепь еАВ, eBF, eFA, показанную на рис. 14.

Рис. 14

Вершина, которая является самой близкой к вершине этой цепи — это вершина С, поэтому мы должны найти лучший способ вставить ее. Цены I для трех ребер текущей цепи будут:

I (еAB) = dAC + dCB - dAB = 9 + 6 - 4 = 11,

I (eBF) = dBC + dCF - dBF = 6 + 12 - 6 = 12,

I (eFA) = dFC + dCA - dFA = 12 + 9 - 3 = 18.

Мы таким образом увеличиваем цепь путем удаления ребра еAB и вставляя на его место ребра еАС, еCB. Это дает цепь, показанную на рис. 15.

Рис. 15

Повторяя этот процесс дважды, мы увеличиваем цепь, включая сначала вершину D и затем вершину Е. Заключительная цепь, eAC, eCD, eDE, eEB, eBF, eFA, является тре­буемой цепью Гамильтона с полным весом 9 + 5 + 4+ 10+ 6 + 3 = 37.

Этот пример иллюстрирует тот факт, что алгоритм самой близкой вставки может не производить минимальную цепь Гамильтона. Граф действительно имеет единственную минимальную цепь Гамильтона - еАВ, еBC, eCD, eDE, eEF, eFA с полным весом 29.

ЛЕКЦИЯ 6. Сетевое планирование. Задача о кратчайшем сроке.





Дата публикования: 2014-11-02; Прочитано: 1046 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...