ВАРИАНТ 6
.docМинистерство образования и науки Российской Федерации
ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (ОмГТУ)
Кафедра «Автоматизированные системы обработки информации и управления»
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА
по дисциплине «Дискретная математика»
ВАРИАНТ 6
Принял:
преподаватель М.В. Девятерикова
подпись, дата
Выполнила:
студентка гр. АС-123 В.Е. Кузнецова
подпись, дата
Омск 2004
Задание 1. Для неориентированного графа, заданного матрицей расстояний, найти:
а) все гамильтоновы контуры;
б) кратчайший гамильтонов контур.
- |
7 |
1 |
6 |
4 |
|
- |
5 |
1 |
3 |
|
|
- |
2 |
8 |
|
|
|
- |
1 |
|
|
|
|
- |
Таблица 1 – Матрица расстояний
Теория: Гамильтонов контур – такой контур, по которому можно обойти все вершины графа по одному разу и вернуться в исходную.
Решение:
Гамильтоновы контуры.
123451 (рисунок 1.1)
M = 7+5+2+1+4=19 – суммарный вес контура
123541 (рисунок 1.2)
M = 7+5+8+1+6=27
124351 (рисунок 1.3)
M = 7+1+2+8+4=22
124531 (рисунок 1.4)
M = 7+1+1+8+1=18
125341 (рисунок 1.5)
M = 7+3+8+2+6=26
125431 (рисунок 1.6)
M = 7+3+1+2+1=14
132451 (рисунок 1.7)
M = 1+5+1+1+4=12
132541 (рисунок 1.8)
M = 1+5+3+1+6=16
142351 (рисунок 1.9)
M = 6+1+5+8+4=24
142531 (рисунок 1.10)
M = 6+1+3+8+1=19
143251 (рисунок 1.11)
M = 6+2+5+3+4=20
152431 (рисунок 1.12)
M = 4+3+1+2+1=11
|
|
|
|
Рисунок 1. 1 Рисунок 1. 2 Рисунок 1. 3 Рисунок 1. 4
|
|
|
|
Рисунок 1. 5 Рисунок 1. 6 Рисунок 1.7 Рисунок 1.8
|
|
|
|
Рисунок 1..9 Рисунок 1.10 Рисунок 1.11 Рисунок 1.12
Кратчайший гамильтонов контур.
Из множества M={19,27,22,18,26,14,12,16,24,19,20,11}, содержащего суммарные веса контуров, выберем наименьшее.
min{19,27,22,18,26,14,12,16,24,19,20,11} = 11.
Это суммарный вес контура 152431 (рисунок 1.12)
Задание 2. Для неориентированного графа, заданного матрицей расстояний, найти:
1) дерево кратчайших путей;
2) остов минимальной длины;
3) максимальное независимое множество;
4) раскраску графа, используя алгоритмы 1 и 2 раскраски, алгоритм точной раскраски.
- |
1 |
- |
- |
1 |
- |
5 |
3 |
1 |
2 |
|
- |
4 |
- |
- |
7 |
6 |
- |
1 |
- |
|
|
- |
3 |
2 |
- |
5 |
- |
1 |
- |
|
|
|
- |
4 |
1 |
- |
- |
2 |
1 |
|
|
|
|
- |
- |
5 |
- |
1 |
1 |
|
|
|
|
|
- |
- |
- |
2 |
5 |
|
|
|
|
|
|
- |
4 |
2 |
- |
|
|
|
|
|
|
|
- |
7 |
- |
|
|
|
|
|
|
|
|
- |
1 |
|
|
|
|
|
|
|
|
|
- |
Таблица 2 – Матрица расстояний
Рисунок 2 – Исходный граф
1) Дерево кратчайших путей;
Теория: Дерево – связанный граф, не имеющий циклов.
Алгоритм Дейкстры:
W={S}, - массив расстояний до S, S – корень дерева.
Цикл по вершинам (по i)
V*: (V*) = min (Vi);
W: =W+ {V*};
Vj not in W: (Vj):=min {(Vj), (V*) +Sij}.
Решение:
Для нахождения дерева кратчайших путей используем алгоритм Дейкстры.
W = {1} – начальная вершина.
Найдем расстояния от начальной вершины до всех остальных.
(2) = 1, (3) = , (4) = , (5) = 1, (6) = , (7) = 5, (8) = 3, (9) = 1, (10) = 2.
(2)=(5)=(9)=min (V)
V*=2; W={1,2}
(3)=1+4=5, (6)=1+7=8.
(5)=(9)=min (V)
V*=5; W={1,2,5}
(4)=5.
(9)=min (V)
V*=9; W={1,2,5,9}
(3)=2, (4)=3, (7)=3.
(3)=(10)=min (V)
V*=3; W={1,2,5,9,3}
(10)=min (V)
V*=10; W={1,2,5,9,3,10}
(4)=(7)=(8)=min (V)
V*=4; W={1,2,5,9,3,10,4}
(6)=4.
(7)=(8)=min (V)
V*=7; W={1,2,5,9,3,10,4,7}
(8)=min (V)
V*=8; W={1,2,5,9,3,10,4,7,8}
(6)=min (V)
V*=6; W={1,2,5,9,3,10,4,7,8,6}
V-W=0.
Дерево кратчайших путей получено:
Рисунок 3 – Дерево кратчайших расстояний
2) Остов минимальной длины.
Теория: Задача о минимальном остовом дереве (МОД) заключается в нахождение остового дерева наименьшего суммарного веса.
Решение:
Используем алгоритм Прима. Начнем с первой вершины.
E={0}
min (E+V*)=12=15=19; E*=12; E=E+E*={12}
min (E+V*)=15=19=29; E*=15; E={12,15}
min (E+V*)=19=29=59=510; E*=19; E={12,15,19}
min (E+V*)=510=910; E*=510; E={12,15,19,510}
min (E+V*)=104=93; E*=104; E={12,15,19,510,104}
min (E+V*)=46=93; E*=46; E={12,15,19,510,104,46}
min (E+V*)=93; E*=93; E={12,15,19,510,104,46,93}
min (E+V*)=97; E*=97; E={12,15,19,510,104,46,93,97}
min (E+V*)=18; E*=18; E={12,15,19,510,104,46,93,97,18}
Все вершины включены в остов, следовательно остов минимальной длины получен. Его суммарный вес min=1+1+1+1+1+1+1+2+3=12.
Рисунок 4 – Остов минимальной длины
3) Максимальное независимое множество;
Множество вершин называется независимым, если никакие 2 вершины не смежные.
1) S = {1}, T = {3, 4, 6},
BT = ({1}, {3, 4, 6});
1.a) S = {1, 3}, T = {6},
BT = ({1, 3}, {6});
S1 = {1, 3, 6}.
m = 3.
1.b) S2 = {1, 4}.
m = 2.
2) S = {2}, T = {4, 5, 8, 10},
BT = ({2}, {4, 5, 8, 10});
2.a) S = {2, 4}, T = {8},
BT = ({2, 4}, {8});
S3 = {2, 4, 8}.
m = 3.
2.b) S = {2, 5}, T = {8},
BT = ({2, 5}, {8});
S4 = {2, 5, 8}.
m = 3.
2.d) S = {2, 10}, T = {8},
BT = ({2, 10}, {8});
S5 = {2, 10, 8}.
m = 3.
Решая дальше, получим следующие независимые множества:
S6 = {3, 8, 10}, m = 3;
S7 = {3, 6, 8}, m = 3;
S8 = {4, 7}, m = 2;
S9 = {5, 6, 8}, m = 3;
S10 = {6, 7}, m = 2;
S11 = {7, 10}, m = 2;
S12 = {8, 10}, m = 2;
S13 = {9}, m = 1.
Максимальным независимым множеством являются множества S1, S3, S4, S5, S6, S7, S9.
4) «Покраска» графа.
X(G) – хроматическое число – наименьшее число цветов, в которое можно раскрасить вершины графа так, чтобы любые смежные вершины имели разный цвет.
а) Алгоритм последовательного раскрашивания.
A={1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
C(1)=1, C(2)=2, C(3)=1, C(4)=2, C(5)=3, C(6)=1, C(7)=4, C(8)=2, C(9)=5, C(10)=4.
Рисунок 5 – Приблизительная раскраска графа по алгоритму последовательного раскрашивания
б) Улучшенный алгоритм последовательного раскрашивания.
Запишем степени каждой вершины:
∆(1)=6, ∆(2)=5, ∆(3)=5, ∆(4)=5, ∆(5)=6, ∆(6)=4, ∆(7)=6, ∆(8)=3, ∆(9)=9, ∆(10)=5.
Теперь упорядочим их по неубыванию: 9, 1, 5, 7, 2, 3, 4, 10, 6, 8 и пронумеруем заново (Рисунок 6).
Рисунок 6 – Нумерация вершин графа для улучшенного алгоритма раскрашивания
Теперь цикл пойдет по вершинам в соответствии с их новыми номерами:
C(9)=1;
C(1)=2, C(3)=2, C(6)=2;
C(5)=3, C(2)=3, C(8)=3;
C(7)=4, C(4)=4;
C(10)=5.
Граф раскрашен. Как и в предыдущем случае, раскраска приблизительная (Рисунок 7).
Рисунок 7 – Приблизительная раскраска графа по улучшенному алгоритму раскраски
в) Алгоритм точной раскраски.
Теория: Алгоритм основан на нахождении максимального независимого множества.
а) Находим максимальное независимое множество S графа G.
б) Красим S в цвет 1.
в) G: =G-S
Затем вновь идет шаг а и так до тех пор, пока в G есть хотя бы одна вершина.
Решение:
Шаг 1. Покрасим вершины, полученного в пункте 2.3 максимального независимого множества S1= {1, 3, 6}, в цвет 1 (рисунок 8).
Рисунок 8 – Раскраска графа, шаг 1
Шаг 2. Найдем максимальное независимое множество среди вершин, не вошедших в множество S1.
W = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} – множество всех вершин графа.
W1 = {2, 4, 5, 7, 8, 9, 10} - множество вершин графа, не вошедших в множество S1.
Решая аналогично пункту 2.3 получим следующие независимые множества:
S14 = {1, 4}, m = 2;
S15 = {2, 4, 8}, m = 3;
S16 = {2, 5, 8}, m = 3;
S17 = {2, 8, 10}, m = 3;
S18 = {4, 7}, m = 2;
S19 = {5, 8}, m = 2;
S20 = {7, 10}, m = 2;
S21 = {9}, m = 1.
Максимальные независимые множества: S15, S16, S17. Покрасим вершины множества S15 = {4, 2, 8} в цвет 2 (рисунок 9).
Рисунок 9 – Раскраска графа, шаг 2
Шаг 3. Найдем максимальное независимое множество среди вершин, не вошедших в множества S1 и S15.
W2 = {5, 7, 9, 10} - множество вершин графа, не вошедших в множества S1 и S2.
Решая аналогично пункту 2.3 получим следующие независимые множества:
S22 = {5}, m = 1;
S23 = {7, 10}, m = 2;
S24 = {9}, m = 1;
Выберем из множества W2 максимальное независимое множество S23 = {7, 10} и раскрасим его вершины в цвет 3. Из оставшегося множества вершин W3 = {9, 5} мы получим независимые множества {5}, {9} и раскрасим их соответственно в цвета 4 и 5. Данная раскраска (рисунок 10) является точной. X(G) = 5 – минимальное хроматическое число графа.
Рисунок 10 – Раскраска графа, результат