Преобразование графа в остовное связанное дерево...

Post on 18-Mar-2016

108 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Преобразование графа в остовное связанное дерево минимального веса. Алгоритм Крускала. Задача. Даны города , часть которых соединен а между собой дорогами. Необходимо проложить маршрут минимальной длины , проходящий через все города. Формализованная модель. Граф G(V,R). 2. 1. 3. 5. 8. - PowerPoint PPT Presentation

TRANSCRIPT

Преобразование графа в остовное связанное дерево минимального

веса.

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

Задача.

Даны города, часть которых соединена между собой дорогами. Необходимо проложить маршрут минимальной длины, проходящий через все города.

Формализованная модель. Граф G(V,R)

1 2

3

45

6

7

8

Понятие цикломатического числа

,1 nm

.,

вершинколичествоnреберколичествоmгде

Цикломатическое число G(8,11)

41811 1 2

3

45

6

7

8

Примеры возможного остовного связанного дерева.

1 2

3

45

67

8

21

3

45

67

8

Исходные данные

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Матрица смежности1 2 3 4 5 6 7 8

1 0 23 12 10000 10000 10000 10000 10000

2 23 0 25 10000 22 10000 10000 35

3 12 25 0 18 10000 10000 10000 10000

4 10000 10000 18 0 10000 20 10000 10000

5 10000 22 10000 10000 0 23 14 10000

6 10000 10000 10000 20 23 0 24 10000

7 10000 10000 10000 10000 14 24 0 16

8 10000 35 10000 10000 10000 10000 16 0

Алгоритм Крускала. Шаг 1.

Раскрасить все вершины в разные цвета. Для этого создадим массив С(8).

С(1) С(2) С(3) С(4) С(5) С(6) С(7) С(8)1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 81 0 23 12 10000 10000 10000 10000 10000

2 23 0 25 10000 22 10000 10000 35

3 12 25 0 18 10000 10000 10000 10000

4 10000 10000 18 0 10000 20 10000 10000

5 10000 22 10000 10000 0 23 14 10000

6 10000 10000 10000 20 23 0 24 10000

7 10000 10000 10000 10000 23 24 0 16

8 10000 35 10000 10000 10000 10000 16 0

Алгоритм Крускала. Шаг 2.

В матрице смежности найти самое короткое неиспользованное ребро (минимального веса).

1 2 3 4 5 6 7 81 0 23 12 10000 10000 10000 10000 10000

2 23 0 25 10000 22 10000 10000 35

3 12 25 0 18 10000 10000 10000 10000

4 10000 10000 18 0 10000 20 10000 10000

5 10000 22 10000 10000 0 23 14 10000

6 10000 10000 10000 20 23 0 24 10000

7 10000 10000 10000 10000 23 24 0 16

8 10000 35 10000 10000 10000 10000 16 0

Алгоритм Крускала. Шаг 3.

Проверяем, можно ли использовать это ребро (вершины должны быть разного цвета).

Алгоритм Крускала. Шаг 4.

Добавляем вес найденного ребра к весу остового дерева и перекрашиваем вершины в один цвет (меньший по номеру).

Вернуться к шагу №2.

С(1) С(2) С(3) С(4) С(5) С(6) С(7) С(8)1 2 1 4 5 6 7 8

Алгоритм на графе. Шаг 1.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

minW=0

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

Шаг 3.

+

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 4.

minW=12

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

-

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 3.

+20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 4.

minW=28

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

-

-20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 3.

+

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 4.

minW=46

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

-

--

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 3.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

+

Шаг 4.

minW=66

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

-

--

-20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 3.

+

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 4.

minW=88

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

-

--

-

-

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

20

12

2325

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 3.+

20

12

2325

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 4.

minW=111

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

-

--

-

-

-

-20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 2.

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 3.

+20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Шаг 4.

minW=134

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

Задача решена.

minW=134

20

12

23

25

18

23

24

16

22

25

23

1 2

3

4

5

6

7

8

top related