и сформировать фрагмент G’=<X’; r’`>, включив вторую концевую вершину в подмножество Х’;
шаг3: выбрать ребро минимального веса, смежное вершинам фрагмента и не являющееся петлей: а) если вторая концевая вершина не принадлежит фрагменту,
то включить ее в подмножество Х’, ребро включить в фрагмент остова G’=<X’; r’`>, б) если вторая концевая вершина принадлежит фрагменту, то исключить данное ребро из анализа;
шаг 4: если все вершины графа вошли во фрагмент остова, т.е. Х'=Х, то конец, иначе перейти к шагу 2.
Пример: Постоить для графа (рис. 29а)) остов по алгоритму Дейкстра, приняв начальной вершиной x0 (рис.29b).
Максимальный вес минимального остова графа по алгоритму Дейкстра равен
L=Slij = (10+24+12+12+15+5+8+5+10=101.
ш а г |
ребра, включаемые в остов |
вершины, включаемые в остов |
|||||||||||||||||
l01 |
l02 |
l23 |
l24 |
l35 |
l58 |
l57 |
l79 |
l67 |
x0 |
x1 |
x2 |
x3 |
x4 |
x5 |
x8 |
x7 |
x9 |
x6 |
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
3 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
4 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
5 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
7 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
8 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
9 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
lij |
10 |
24 |
12 |
12 |
15 |
5 |
8 |
5 |
10 |
L=10+24+12+12+15+5+8+5+10=101. |
По алгоритму Краскала:
шаг 1: установить частичный порядок по весу ребер графа;
шаг2: выбрать ребро минимального веса, не являющееся петлей, сформировать фрагмент остова G’=<X’; r’`>, а концевые вершины ребра включить в подмножество Х’ÍХ;
шаг3: выбрать ребро минимального веса, не являющееся петлей и не принадлежащее фрагменту: а) если фрагменту принадлежит одна вершина ребра, то вторую концевую вершину включить в подмножество Х’, ребро включить в фрагмент остова G’=<X’; r’`>, б) если ни одна концевая вершина ребра не принадлежит фрагменту остова, то сформировать фрагмент другого остова, в) если концевые вершины принадлежат различным остовам, то соединить фрагменты;
шаг 4: если все вершины графа вошли во фрагмент остова, то конец, иначе перейти к шагу 2.
Пример: Постоить для графа (рис. 29а)) остов по алгоритму Краскала (рис. 29b).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.