A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры;

b) построить кратчайшие маршруты при помощи алгоритма Флойда. При построении вести две матрицы – матрицу маршрутов и матрицу расстояний.

Построим кратчайшие маршруты от вершины 5 ко всем остальным с помощью алгоритма Дейкстры.

Матрица весов:

C
¥ ¥ ¥ ¥
¥ ¥
¥ ¥
¥ ¥
¥ ¥
¥ ¥
¥ ¥

1) l(5)=0; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (2)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=¥;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (6)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=¥; p=5.

2) l(5)=0;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1), l(5)+c(5,1))=min(¥, 0+¥)=¥;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (2)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (2), l(5)+c(5,2))=min(¥, 0+9)=9;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3), l(5)+c(5,3))=min(¥, 0+12)=12;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4), l(5)+c(5,4))=min(¥, 0+¥)=¥;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (6)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (6), l(5)+c(5,6))=min(¥, 0+2)=2;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7), l(5)+c(5,7))=min(¥, 0+20)=20;

p=6.

3) l(6)=2; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (2)=9; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=12;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=20;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1), l(6)+c(6,1))=min(¥, 2+¥)=¥;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (2)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (2), l(6)+c(6,2))=min(9, 2+¥)=9;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3), l(6)+c(6,3))=min(12, 2+14)=12;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4), l(6)+c(6,4))=min(¥, 2+9)=11;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7), l(6)+c(6,7))=min(20, 2+18)=20;

p=2.

4) l(2)=9; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=¥; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=12; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4)=11;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=20;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1), l(2)+c(2,1))=min(¥, 9+10)=19;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3), l(2)+c(2,3))=min(12, 9+21)=12;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (4), l(2)+c(2,4))=min(11, 9+16)=11;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7), l(2)+c(2,7))=min(20, 9+¥)=20;

p=4.

5) l(4)=11; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=19; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=12; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=20;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1), l(4)+c(4,1))=min(19, 11+26)=19;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (3), l(4)+c(4,3))=min(12, 11+¥)=12;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7), l(4)+c(4,7))=min(20, 11+27)=20;

p=3.

6) l(3)=12; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=19; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=20;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (1), l(3)+c(3,1))=min(19, 12+¥)=19;

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7), l(3)+c(3,7))=min(20, 12+32)=20;

p=1.

7) l(1)=19; A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7)=min( A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru (7), l(1)+c(1,7))=min(20, 19+¥)=20; p=7.

Итак, кратчайшие маршруты:

M5,1={5,2,1}=19;

M5,2={5,2}=9;

M5,3={5,3}=12;

M5,4={5,6,4}=11;

M5,6={5,6}=2;

M5,7={5,7}={5,6,7}=20.

Построим кратчайшие маршруты при помощи алгоритма Флойда.

k=0

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

k=1

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

k=2

k=3

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

k=4

5) k=5

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

6) k=6

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

7) k=7

Итак, кратчайшие маршруты между всеми парами вершин:

M1,2={1,2}; M1,3={1,2,3}; M1,4={1,4};

M1,5={1,2,5}; M1,6={1,2,5,6}; M1,7={1,2,5,7};

M2,3={2,3}; M2,4={2,4}; M2,5={2,5};

M2,6={2,5,6}; M2,7={2,5 ,7}; M3,4={3,6,4};

M3,5={3,5}; M3,6={3,6}; M3,7={3,7};

M4,5={4,6,5}; M4,6={4,6}; M4,7={4,7};

M5,6={5,6}; M5,7={5,7}; M6,7={6,7};

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

ЛАБОРАТОРНАЯ РАБОТА №3

Тема 1: «Деревья и остовы».

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

1. Используя алгоритм генерации варианта GV, построить неориентированный граф G1:GV(5,{2,3}) и граф G2: GV(13,{6,7}). Ребра графа G2 взвешены соответствующими элементами матрицы Y.

Построим граф G1, используя алгоритм генерации варианта GV(5,{2,3}).

S=<юфаеленаяковлевна>;

S=<ю,ф,а,е,л,н,я,к,о,в>;

n(Si)={32,22,1,6,13}.

Y1

Матрица смежности

A1

Так как вершина 2 доминирующая, то ребро (2,3) удалено.

Построим неориентированный граф G1, используя способ перечисления.

G1=(V1,E1): V1={1,2,3,4,5} – множество вершин графа;

E1={(1,2),(1,4),(2,4),(2,5),(3,5)} – множество ребер графа.

Построим графическое изображение графа G1.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Построим граф G2, используя алгоритм генерации варианта GV(13,{6,7}).

S=<юфаеленаяковлевна>;

S=<ю,ф,а,е,л,н,я,к,о,в>;

n(Si)={32,22,1,6,13,15,33,12,16,3,29,18,14}.

Y2

Матрица смежности

A2

Построим неориентированный граф G2, используя способ перечисления.

G2=(V2,E2):

V2={1,2,3,4,5,6,7,8,9,10,11,12,13} – множество вершин графа;

E2={(1,12),(1,13),(2,3),(2,6),(2,9),(2,11),(3,5),(3,6),(3,11),(4,5),

(4,8),(4,12),(6,7),(6,10),(6,11),(7,8),(7,10),(8,12)} – множество ребер графа.

Построим графическое изображение графа G2.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

2. Для графа G1 составить матрицу Кирхгофа и посчитать количество помеченных остовов.

Матрица Кирхгофа

M
-1 -1
-1 -1 -1
-1
-1 -1
-1 -1

Количество помеченных остовов k графа G равно алгебраическому дополнению любого элемента матрицы Кирхгофа.

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Итак, в графе G1 содержится 3 помеченных остова:

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

3. Для графа G2 построить дерево обхода вершин графа в ширину и в глубину.

Построим остов графа G2.

Обход в глубину:

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru 1)

Обход в ширину:

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

-1 ярус

-2 ярус

-3 ярус

-4 ярус

-5 ярус

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

Алгоритм Краскала

Ребра графа G упорядочиваются в порядке не убывания их весов. На каждом шаге к пустому графу Op добавляется ребро с минимальным весом из списка ребер. Добавляемое ребро не должно приводить к образованию цикла. Алгоритм заканчивает работу, если количество ребер в графе станет равным p-1.

Матрица весов

С2
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
Ребра Вес
(2,9)1, (4,8)2, (8,12)3
(2,6)4, (2,11)5, (4,5)6
(3,5)7, (4,12), (6,10)8
(1,12)9, (3,6)10, (6,11)
(1,13)11, (6,7)12
(2,3), (7,8)
(3,11)
(7,10)


A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru Хорды:

(4,12);

(6,11);

(2,3);

(7,8);

(3,11);

(7,10).

Алгоритм Прима

Алгоритм Прима отличается от алгоритма Краскала тем, что на каждом шаге строится не просто ацикличный граф, а дерево.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru


Ребра Вес
(2,9)1, (4,8)8, (8,12)9
(2,6)2, (2,11)3, (4,5)7
(3,5)6, (4,12), (6,10)4
(1,12)10, (3,6)5, (6,11)
(1,13)11, (6,7)12
(2,3), (7,8)
(3,11)
(7,10)

Хорды:

(4,12);

(6,11);

(2,3);

(7,8);

(3,11);

(7,10).

4. Сгенерировать все различные абстрактные не изоморфные друг другу деревья порядка 4 и 7.

Не изоморфные деревья 4-го порядка:

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Не изоморфные деревья 7-го порядка:

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Разделить множество деревьев на 2 подмножества: с одной и с двумя центральными вершинами.

1) Деревья с одной центральной вершиной:

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

2) Деревья с двумя центральными вершинами:

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

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

Тема 2: «Циклы и обходы».

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

1. Используя алгоритм генерации варианта GV, построить неориентированный граф G1:GV(5,{2,3}) и граф G2: GV(13,{6,7}).

Построим граф G1, используя алгоритм генерации варианта GV(5,{2,3}).

S=<юфаеленаяковлевна>;

S=<ю,ф,а,е,л,н,я,к,о,в>;

n(Si)={32,22,1,6,13}.

Y1

Матрица смежности

A1 deg(vi)

Построим неориентированный граф G1, используя способ перечисления.

G1=(V1,E1): V1={1,2,3,4,5} – множество вершин графа;

E1={(1,2),(1,4),(2,3),(2,4),(2,5),(3,5)} – множество ребер графа.

Построим графическое изображение графа G1.

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru G1,или

Построим граф G2, используя алгоритм генерации варианта GV(13,{6,7}).

S=<юфаеленаяковлевна>;

S=<ю,ф,а,е,л,н,я,к,о,в>;

n(Si)={32,22,1,6,13,15,33,12,16,3,29,18,14}.

Y2

Матрица смежности

A2 deg(vi)

Построим неориентированный граф G2, используя способ перечисления.

G2=(V2,E2):

V2={1,2,3,4,5,6,7,8,9,10,11,12,13} – множество вершин графа;

E2={(1,12),(1,13),(2,3),(2,6),(2,9),(2,11),(3,5),(3,6),(3,11),(4,5),

(4,8),(4,12),(6,7),(6,10),(6,11),(7,8),(7,10),(8,12)} – множество ребер графа.

Построим графическое изображение графа G2.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

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

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

| V | = p = 5, | E | = q = 6, k =1.

ν=q-p+k=6-5+1=2 – циклический ранг (хорды);

ν*=p-k=5-1=4 – коциклический ранг (ветви).

Выпишем все циклы в графе G1:

C1={1,2,4,1};

C2={2,5,3,2};

C3={2,1,4,2,5,3,2}.

Каждому циклу в графе G1 ставится в соответствие вектор длиной q.

Обозначим этот вектор: z=(z1,z2,z3,…,zq):

z1=(1,1,0,1,0,0);

z2=(0,0,1,0,1,1);

z3=(1,1,1,1,1,1).

В графе G1 все имеется только один непростой цикл C3.

Выразим цикл С3 через базисные циклы С1 и С2:

С3=С1ÅС2=(1,1,0,1,0,0)Å(0,0,1,0,1,1)=(1,1,1,1,1,1).

Матрица фундаментальных циклов:

Т (1,2) (1,4) (2,3) (2,4) (2,5) (3,5)
C1
C2
C3

3. Определить, являются ли графы G1 и G2 эйлеровыми, построить эйлеровы циклы по алгоритму Флёри, эйлеровы цепи. Если граф не эйлеров, добавить минимальное число ребер, делающих его эйлеровым.

1)Рассмотрим граф G1: в нем все вершины имеют четную степень, следовательно, граф G1 имеет эйлеров цикл, то есть является эйлеровым графом.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

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

V (1,2) (1,4) (2,3) (2,4) (2,5) (3,5)

Эйлеровы циклы:

С1={2,1,4,2,3,5,2};

C2={2,5,3,2,1,4,2}.

Построим в графе эйлеровы цепи. Для этого удалим ребро (2,3), тогда только две вершины – 2 и 3 – будут иметь нечетную степень, а это является необходимым и достаточным условием того, что граф G1 покрывается эйлеровой цепью.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Эйлеровы цепи:

P1={2,1,4,2,5,3};

P2={3,5,2,4,1,2}.

2) Рассмотрим граф G2: так как в нем вершины 4, 6, 7, 8, 10, 11, 12, 13 имеют нечетную степень, то граф G2 не имеет эйлерова цикла и, следовательно, не является эйлеровым графом.

Добавим ребра (6,9), (6,12),.(6,8), (4,7), (11,13). Получим граф, все вершины которого будут иметь четную степень. Это является достаточным условием для того, чтобы граф стал эйлеровым.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Построим в графе эйлеров цикл с помощью алгоритма Флери.

V (1,12) (1,13) (2,3) (2,6) (2,9) (2,11) (3,5) (3,6)
V (3,11) (4,5) (4,7) (4,8) (4,12) (6,7) (6,8) (6,9)
V (6,11) (6,12) (7,8) (7,10) (8,12) (11,13) (6,10)  
 

Эйлеров цикл:

С={2,9,6,11,2,3,11,13,1,12,4,5,3,6,12,8,4,7,6,10,7,8,6,2}.

Построим в графе эйлерову цепь. Добавим ребра (1,6), (3,2), тогда только две вершины – 7 и 13 – будут иметь нечетную степень, а это является необходимым и достаточным условием того, чтобы граф G2 покрывался эйлеровой цепью.

A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Эйлерова цепь:

P2={13,1,12,11,2,9,7,8,12,4,3,11,6,7,10,6,8,4,6,2,3,6}.

Определить, является ли граф G2 гамильтоновым, построить гамильтонов цикл, используя алгоритм Робертса-Флореса. Если граф не является гамильтоновым, добавить минимальное число ребер, делающих его гамильтоновым.

Граф G2 не является гамильтоновым, так как в графе есть 2 висячие вершины: 9, 13, следовательно, нельзя выделить гамильтонов цикл, то есть такой простой цикл, который содержит каждую вершину графа.

 
  A) построить кратчайшие маршруты от произвольной вершины ко всем остальным при помощи алгоритма Дейкстры; - student2.ru

Добавив ребро (9,13), можно выделить гамильтонов цикл:

Cg = {9,2,3,11,6,10,7,8,4,5,12,1,13,9}.

Следовательно, полученный граф - гамильтонов.

Наши рекомендации