Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Сборник задач по дискретной математике. Учебное пособие
.pdf
5.6. Взвешенные графы 101
На следующем шаге получаем
(3)
d
=min(9, 10+12, 17+7, 13+∞, 6+3) = min(9, 22, 24, ∞, 9) =9;
1
(3)
d
=min(10, 9+12, 17+∞, 13+13, 6+4) = min(10, 21, ∞, 26, 10) =10;
3
(3)
d
=min(17, 9+7, 10+∞, 13+13, 6+11) = min(17, 16, ∞, 26, 17) =16;
4
(3)
d
=min(13, 9+∞, 10+13, 17+13, 6+7) = min(13, ∞, 23, 30, 13) =13;
5
(3)
d
=min(6, 9+3, 10+4, 17+11, 13+7) = min(6, 12, 14, 28, 20 =6.
6
Следовательно,
(3)
D
= (9, 10, 16, 13, 6).
Переходим к третьему шагу.
(4)
d
=min(9, 10+12, 16+7, 13+∞, 6+3) = min(9, 22, 23, ∞, 9) =9;
1
(4)
d
=min(10, 9+12, 16+∞, 13+13, 6+4) = min(10, 21, ∞, 26, 10) =10;
3
(4)
d
=min(16, 9+7, 10+∞, 13+13, 6+11) = min(16, 16, ∞, 26, 17) =16;
4
(4)
d
=min(13, 9+∞, 10+13, 16+13, 6+7) = min(13, ∞, 23, 29, 13) =13;
5
(4)
d
=min(6, 9+3, 10+4, 16+11, 13+7) = min(6, 12, 14, 27, 20 =6.
6
Отсюда
(4)
D
= (9, 10, 16, 13, 6).
Так как D
(3)
= D
(4)
, можно останавливать процесс, так как, очевидно, что дальнейшие шаги не принесут никаких изменений в строку
расстояний.
Таким образом, из D
(4)
получаем, что следующие веса кратчайших
путей (обозначим их ρ(v4, v)):
ρ(v2, v1) = 9; ρ(v2, v3) = 10;
ρ(v2, v4) = 16; ρ(v2, v5) = 13;
ρ(v2, v6) = 6.
Отметим, что если на каждом шаге элементы строки D
(k)
меняются,
то достаточно проделать n −1 шаг, где n — число вершин графа, так по
сути D
(k)
— это строка кратчайших расстояний, проходящих не более,
чем по k ребрам.
Пример 5.23. Взвешенный граф с вершинами v1, v2, v3, v4, v5, v6задан
матрицей расстояний W . С помощью алгоритма Дейкстры найти крат-

102 Глава 5. Теория графов
чайшие расстояния от вершины v4до остальных вершин этого графа.
0 15 13 ∞ 7 ∞
W =
15 0 4 ∞ 15 6
13 4 0 5 ∞ 11
∞ ∞ 5 0 10 18
7 15 ∞ 10 0 14
.
∞ 6 11 18 14 0
Решение. Как и при использовании алгоритма Форда — Беллмана, одновременно ищем расстояния от вершины v4до всех остальных вершин
и записывать результаты каждого шага в виде строки. Также имеем
(1)
D
= (w41, w42, w43, w45, w46), то есть
(1)
D
= (∞, ∞, 5, 10, 18).
Нам также понадобится множество T1= {1, 2, 3, 5, 6}.
(k)
(k)
(k)
(k)
В дальнейшем для D
i ∈ Tk, что d
T
= Tk\{i}, d
k+1
(k)
= min(d
i
(k)
(k)
)
j
(k+1)
j
= (d
1
. Положим
j∈T
k
(
min(d
=
d
, d
, d
(k)
j
3
, d
, d
(k)
i
2
(k)
, если j 6∈ T
j
(k)
, d
5
) будем искать такое
6
+ wij), если j ∈ T
k+1
k+1
.
Из D
(1)
получаем i = 3. Тогда T2= T1\{3}={1,2,5,6};
(2)
d
= min(∞, 5 + 13) = min(∞, 18) = 18;
1
(2)
d
= min(∞, 5 + 4) = min(∞, 9) = 9;
2
(2)
d
3
(2)
d
5
(2)
d
6
(1)
= d
3
= 5;
= min(10, 5 + ∞) = min(10, ∞) = 10;
= min(18, 5 + 11) = min(18, 16) = 16.
Следовательно,
D
(2)
= (18, 9, 5
, 10, 16).
Далее i = 2, T3= T2\{2} = {1, 5, 6}. Отсюда
(3)
d
= min(18, 9 + 15) = min(18, 24) = 18;
1
(3)
d
2
(3)
d
3
(3)
d
5
(3)
d
6
(2)
= d
= d
2
(2)
3
= 9;
= 5;
= min(10, 9 + 15) = min(10, 24) = 10;
= min(16, 9 + 6) = min(16, 15) = 15.

5.6. Взвешенные графы 103
Откуда получаем
(3)
D
= (18, 9, 5, 10, 15).
На следующем шаге получаем i = 5, T4= T3\{5} = {1, 6}. Тогда
(4)
d
= min(18, 10 + 7) = min(18, 17) = 17;
1
(4)
d
2
(4)
d
3
(4)
d
5
(4)
d
6
(3)
= d
= d
= d
2
(3)
3
(3)
5
= 9;
= 5;
= 10;
= min(15, 10 + 14) = min(15, 24) = 15.
Следовательно,
(4)
D
= (17, 9, 5, 10, 15).
Наконец, i = 6, T5= T4\{6} = {1}. Получаем
(5)
d
= min(17, 15 + ∞) = min(17, ∞) = 17;
1
(5)
d
2
(5)
d
3
(5)
d
5
(5)
d
6
= d
= d
= d
= d
(4)
2
(4)
3
(4)
5
(4)
6
= 9;
= 5;
= 10;
= 15.
Окончательно получаем
(5)
D
= (17, 9, 5, 10, 15).
Отсюда получаем следующие веса кратчайших путей:
ρ(v4, v1) = 17; ρ(v4, v2) = 9;
ρ(v4, v3) = 5; ρ(v4, v5) = 10;
ρ(v4, v6) = 15.
Следует отметить, что, в отличие от алгоритма Форда — Беллмана,
при использовании алгоритма Дейкстры в любом случае придется проделать все n −1 шагов (n — количество вершин в графе), так как даже
если D
i−1
= Di, то отсюда еще не следует, что Di= D
i+1
, так как на
каждом шаге рассматриваются только пути, идущие через конкретную
вершину.

104 Глава 5. Теория графов
5.6. Задачи
5.6.1. Найти остов минимального веса графа, заданного матрицей ве-
сов W :
0 11 ∞ 10 11 14 ∞ 8
11 0 14 15 ∞ ∞ ∞ ∞
∞ 14 0 ∞ 12 8 ∞ 16
10 15 ∞ 0 ∞ ∞ 14 7
а)
11 ∞ 12 ∞ 0 12 ∞ ∞
14 ∞ 8 ∞ 12 0 13 ∞
∞ ∞ ∞ 14 ∞ 13 0 13
; б)
0 12 9 11 18 ∞ 7 ∞
12 0 13 ∞ 16 18 17 ∞
9 13 0 ∞ ∞ ∞ 14 17
11 ∞ ∞ 0 18 15 11 15
18 16 ∞ 18 0 16 ∞ 19
∞ 18 ∞ 15 16 0 15 10
7 17 14 11 ∞ 15 0 18
;
8 ∞ 16 7 ∞ ∞ 13 0
0 11 9 17 14 ∞ 16 ∞
11 0 15 13 12 11 ∞ 15
9 15 0 ∞ 14 10 16 13
17 13 ∞ 0 ∞ ∞ ∞ ∞
в)
14 12 14 ∞ 0 13 ∞ ∞
∞ 11 10 ∞ 13 0 17 19
16 ∞ 16 ∞ ∞ 17 0 18
∞ 15 13 ∞ ∞ 19 18 0
0 ∞ ∞ 14 6 13 16 ∞
∞ 0 13 11 15 9 11 ∞
∞ 13 0 15 14 17 ∞ 13
14 11 15 0 ∞ 7 ∞ ∞
д)
6 15 14 ∞ 0 12 14 ∞
13 9 17 7 12 0 9 16
16 11 ∞ ∞ 14 9 0 ∞
; г)
; е)
∞ ∞ 17 15 19 10 18 0
0 13 11 ∞ ∞ 9 ∞ 12
13 0 ∞ 17 16 10 17 ∞
11 ∞ 0 14 ∞ 17 ∞ ∞
∞ 17 14 0 14 12 ∞ 12
∞ 16 ∞ 14 0 16 ∞ ∞
9 10 17 12 16 0 11 17
∞ 17 ∞ ∞ ∞ 11 0 15
12 ∞ ∞ 12 ∞ 17 15 0
0 17 ∞ 9 16 13 15 ∞
17 0 13 15 ∞ ∞ 18 14
∞ 13 0 16 18 18 16 11
9 15 16 0 9 ∞ 15 ∞
16 ∞ 18 9 0 13 11 ∞
13 ∞ 18 ∞ 13 0 ∞ 17
15 18 16 15 11 ∞ 0 15
;
.
∞ ∞ 13 ∞ ∞ 16 ∞ 0
∞ 14 11 ∞ ∞ 17 15 0
5.6.2. В связном взвешенном графе рассмотрим следующий алгоритм.
Выбираем в графе произвольный цикл и выкидываем из него ребро
максимального (в этом цикле) веса, если таких ребер несколько, выкидываем любое из них. Будем повторять эту процедуру для полученного
графа до тех пор, пока в графе есть циклы. Иными словами, применим
алгоритм для нахождения остова не взвешенного графа, убирая каждый раз самое тяжелое ребро. Доказать, что в результате получится
остов минимального веса.

5.6. Взвешенные графы 105
5.6.3. В связном взвешенном графе с n вершинами рассмотрим сле-
дующий алгоритм. Пусть V — множество вершин графа G. На первом шаге выберем ребро (u, v) минимального веса (если таких ребер
несколько, выберем любое из них), положим W1= {u, v}, E1= {[u, v]}.
Далее на i-ом шаге, i > 2, полагая, что уже построены множества W
и E
, из всех ребер [w, t] таких, что w ∈ W
i−1
, t 6∈ W
i−1
, выбираем реб-
i−1
i−1
ро минимального веса (любое из ребер минимального веса) и полагаем
Wi= W
вершин V и множеством ребер W
∪{t}, Ei= E
i−1
∪{[w, t]}. Доказать, что граф с множеством
i−1
является остовом минимального
n−1
веса.
5.6.4. С помощью алгоритма Форда — Беллмана найти кратчайшие
расстояния от вершины v взвешенного графа, заданного матрицей весов
W до остальных вершин.
а)
0 14 ∞ 16 ∞ 11
14 0 ∞ ∞ 20 5
∞ ∞ 0 18 10 17
16 ∞ 18 0 7 ∞
∞ 20 10 7 0 13
11 5 17 ∞ 13 0
, б)
0 13 28 ∞ ∞ 4
13 0 ∞ 16 14 ∞
28 ∞ 0 5 ∞ 19
∞ 16 5 0 5 12
∞ 14 ∞ 5 0 4
4 ∞ 19 12 4 0
,
v = v5; v = v3;
в)
0 23 13 7 13 ∞
23 0 7 11 ∞ 15
13 7 0 5 ∞ ∞
7 11 5 0 11 ∞
13 ∞ ∞ 11 0 12
, г)
0 10 ∞ 18 ∞ 4
10 0 18 6 ∞ 17
∞ 18 0 ∞ 14 15
18 6 ∞ 0 7 14
∞ ∞ 14 7 0 5
,
д)
∞ 15 ∞ ∞ 12 0
v = v1; v = v4;
0 12 8 4 17 ∞ 11 20
12 0 ∞ ∞ 14 ∞ 13 ∞
8 ∞ 0 17 ∞ 16 ∞ 10
4 ∞ 17 0 12 17 10 25
17 14 ∞ 12 0 11 ∞ 16
∞ ∞ 16 17 11 0 17 6
11 13 ∞ 10 ∞ 17 0 ∞
20 ∞ 10 25 16 6 ∞ 0
, е)
4 17 15 14 5 0
0 4 15 18 ∞ 6 ∞ 11
4 0 4 23 10 24 17 ∞
15 18 0 18 ∞ ∞ 26 3
18 23 18 0 27 5 4 21
∞ 10 ∞ 27 0 ∞ ∞ 30
6 24 ∞ 5 ∞ 0 ∞ 26
∞ 17 26 4 ∞ ∞ 0 29
11 ∞ 3 21 30 26 29 0
,
v = v8; v = v7.
5.6.5. С помощью алгоритма Дейкстры найти кратчайшие расстоя-

106 Глава 5. Теория графов
ния от вершины v взвешенного графа, заданного матрицей весов W до
остальных вершин.
а)
0 6 ∞ 17 9 ∞
6 0 7 4 17 19
∞ 7 0 11 16 11
17 4 11 0 15 ∞
9 17 16 15 0 ∞
, б)
0 10 23 6 12 7
10 0 ∞ 19 23 ∞
23 ∞ 0 ∞ 18 6
6 19 ∞ 0 5 ∞
12 23 18 5 0 10
,
в)
д)
∞ 19 11 ∞ ∞ 0
v = v2; v = v5;
0 ∞ 27 ∞ 18 4
∞ 0 14 6 22 5
27 14 0 5 7 20
∞ 6 5 0 ∞ 18
18 22 7 ∞ 0 10
4 5 20 18 10 0
v = v3; v = v6;
0 31 17 24 ∞ 11 13 ∞
31 0 ∞ 34 17 13 ∞ 5
17 ∞ 0 ∞ 13 ∞ 21 19
24 34 ∞ 0 21 9 8 27
∞ 17 13 21 0 21 ∞ 4
11 13 ∞ 9 21 0 31 24
13 ∞ 21 8 ∞ 31 0 ∞
, г)
, е)
7 ∞ 6 ∞ 10 0
0 ∞ 5 17 16 16
∞ 0 ∞ 9 29 ∞
5 ∞ 0 6 ∞ 24
17 9 6 0 7 ∞
10 ∞ 29 7 0 5
16 ∞ 24 ∞ 5 0
0 23 14 3 31 25 19 13
23 0 ∞ ∞ 13 18 ∞ 4
14 ∞ 0 18 ∞ 21 4 ∞
3 ∞ 18 0 6 ∞ 30 9
31 13 ∞ 6 0 4 ∞ 17
25 18 21 ∞ 4 0 18 21
19 ∞ 4 30 ∞ 18 0 33
,
,
∞ 5 19 27 4 24 ∞ 0
v = v4; v = v7.
13 4 ∞ 9 17 28 33 0

Глава 6
Алгебра логики
6.1 Формулы алгебры логики. Таблицы истинности. Эквива-
лентность
Пример 6.1. Какие из следующих предложений являются высказыва-
ниями? Что можно сказать об истинности тех утверждений, которые
являются высказываниями:
а) Вода кипит при температуре 100◦C при атмосферном давлении
760 мм.рт.ст.
б) Солнце — звезда.
в) Меркурий — самая удаленная от Солнца планета.
г) На улице идет дождь.
д) Кошки — самые любопытные животные?
Решение. Предложения а) и б) являются высказываниями, так как они
оба представляют собой истинные утверждения. Предложение в) также является высказыванием, только это высказывание ложно, так как
Меркурий — наоборот самая близкая к Солнцу планета. Предложение
г) также является высказыванием, однако истинность его зависит от
того, в какой момент и в какой географической точке Земли оно было высказано. Предложение д) высказыванием не является, так как
невозможно установить критерии, по которым можно было бы определить степень любопытства как одной кошки, так и всего вида, поэтому
невозможно утверждать, что данное утверждение истинно или, что оно
ложно.
Пример 6.2. Для каждого из сложных высказываний определить, в
каких случаях оно истинно.
а) “А за окном шел дождь и рота красноармейцев” (см. [1]).
б) Во время отпуска Вася поедет в Крым или в Египет.

108 Глава 6. Алгебра логики
в) “Если не будут брать [лотерейные билеты], отключим газ”.
1
Решение. Утверждение а), несмотря на несколько непривычную форму, является сложным высказыванием, полученным из двух: “За окном
шел дождь” и “За окном шла рота красноармейцев”. Конечно, более
правильно с математической точки зрения (да и с точки зрения русского языка тоже) было бы написать “За окном шел дождь и за окном
шла рота красноармейцев”, но тут было использовано сокращение, полученное путем выбрасывания повторяющихся слов, достаточно обычное в русском языке (правда не в такой ситуации: значение одинаковых
слов во обеих частях предложения должно совпадать). Отметим, что
утверждение а) истинно тогда и только тогда, когда истинны обе части сложного утверждения, то есть когда за окном действительно шел
дождь и одновременно с этим шла рота красноармейцев.
Утверждение б) истинно в том случае, когда истинно хотя бы одно из
составляющих его утверждений. Кстати, с математической точки зрения, такое утверждение будет истинным и если истинны обе части. Так,
никто не мешает Васе успеть за время отпуска побывать и в Крыму, и
в Египте, не нарушая истинности высказывания.
Утверждение в) истинно, если истинно второе утверждение (называемое заключением), а также если ложно первое утверждение (называемое посылкой). Тут также необходимо обратить внимание читателя,
что для истинности всего утверждения необязательно оба утверждения
должны быть истинны или ложны одновременно. Так, в нашем случае,
даже если билеты будут брать, а газ тем не менее будет отключен,
утверждение остается истинным.
Пример 6.3. Построить таблицу истинности формулы
ϕ = (x → y) ∨(z ∧ (x ⊕ y)).
Решение. x y z z x → y x ⊕ y z ∧ (x ⊕y) ϕ
0 0 0 1 1 0 0 1
0 0 1 0 1 0 0 1
0 1 0 1 1 1 1 1
0 1 1 0 1 1 0 1
1 0 0 1 0 1 1 1
1 0 1 0 0 1 0 0
1 1 0 1 1 0 0 1
1 1 1 0 1 0 0 1
1
Цитата взята из кинофильма “Бриллиантовая рука”.

6.1. Формулы алгебры логики. Таблицы истинности. Эквивалентность 109
Пример 6.4. Проверить при помощи алгебры логики, выполняется ли
тождество A\(B ⊕ C) = (A ∩ B) ∪ (A\C). В случае отрицательного
ответа, привести контрпример.
Решение. Пусть a, b и c высказывания, соответствующие множествам
A, B и C соответственно.
Рассмотрим левую часть равенства из условия. Множеству B ⊕ C
соответствует формула b ⊕ c, а множеству A\(B ⊕ C) — формула a ∧
¬(b ⊕c). Обозначим эту формулу ϕ.
Теперь рассмотрим правую часть. Множеству A ∩ B соответствует
формула a ∧ b, а множеству A\C — формула a ∧ ¬c. Окончательно,
для множества (A ∩ B) ∪ (A\C) получаем формулу (a ∧ b) ∨(a ∧ ¬c),
обозначим ее ψ.
Построим таблицы истинности полученных формул:
a b c b ⊕ c ¬(b ⊕ c) ϕ ¬c a ∧ ¬c a ∧b ψ
0 0 0 0 1 0 1 0 0 0
0 0 1 1 0 0 0 0 0 0
0 1 0 1 0 0 1 0 0 0
0 1 1 0 1 0 0 0 0 0
1 0 0 0 1 1 1 1 0 1
1 0 1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1 1 1
1 1 1 0 1 1 0 0 1 1
Так как таблицы истинности не совпадают, данное равенство не является тождеством. Чтобы построить контрпример, заметим, что таблицы
различаются только на наборе значений a = b = 1, c = 0. Следовательно, надо привести пример таких множеств A, B и C, чтобы множество
элементов, лежащих в A, B, но не лежащих в C (то есть множество
(A ∩B)\C), не было пустым. Пусть A = 2Z, B = 3Z, а C = N.
Рассмотрим элемент −6 (можно взять любой элемент из множества
(2Z ∩ 3Z)\N). Тогда −6 ∈ 3Z и −6 6∈ N, следовательно, −6 ∈ 3Z ⊕ N.
Получаем −6 6∈ 2Z\(3Z ⊕ N). С другой стороны, −6 ∈ 6Z = 2Z ∩ 3Z.
Следовательно, −6 ∈ (2Z∩3Z)∪(2Z\N), то есть рассмотренные множества представляют собой контрпример, показывающий, что равенство
из условия не является тождеством.

110 Глава 6. Алгебра логики
6.1. Задачи
6.1.1. Построить таблицу истинности:
а) x → (y ∨ ¬x); б) (x |(x ⊕ y)) ↓ ¬y;
в) x ∨ ((x ↓ y) ↔ (x ∧ y)); г) ((x ∨ y) ↔ (¬x ∧ z)) |(y ⊕ z);
д) (x ∧ ¬(¬y ↓ z)) |((x ⊕ y) → z);
е) ((x ∧ ¬y) ↓ z) → ¬(x ↔ ¬(z ∨ y)).
6.1.2. Проверить при помощи таблиц истинности, будут ли эквива-
лентны следующие формулы:
а) x → (y ∨ z) и (x → y) ∨(x → z);
б) (x ↓ y) ∨z и (x ∨ z) ↓ (y ∨ z);
в) (x ∨ y) ↓ z и x ↓ z ∨ y ↓ z;
г) (x ∧ y) ↔ z и (x ↔ z) ∧(y ↔ z);
д) ¬x|(y ↓ z) и (x ↓ y)|¬z;
е) (x|z) ↔ (y ∧ ¬z) и (x ∨ ¬z) ↔ (y ↓ z).
6.1.3. Проверить равенства из задачи 1.1.9 средствами алгебры логи-
ки.
6.1.4. Средствами алгебры логики выяснить, верны ли следующие
равенства. В случае отрицательного ответа построить контрпример:
а) A ∪ (B\C) = (A ∪ B)\(A ∪ C);
б) (A\B) ∩C = (A ∩ C)\B;
в) (A\B)\C = A\(B\C);
г) (A\B) ∩C = (A ∩ C)\(B ∪ C);
д) (A ∩ B)\C = A\(B ∪ C);
е) (A ∪ B)\C = (A\C) ∪(B\C).
6.2 Дизъюнктивные и конъюнктивные нормальные формы.
Совершенные дизъюнктивные и конъюнктивные
нормальные формы
Пример 6.5. Какие формулы из нижеперечисленных являются конъ-
юнктами, а какие — дизъюнктами?
a) xz, б) xy, в) xyz, г) x ∨y,
д) x ∨ z, е) x ∨ y ∨ z, ж) x, з) x,
к) xyz, л) x ∨y, м) (x ∨ y) ∧z, н) x ∨ (y ∧ z).
Решение. Формулы а)–в) являются конъюнктами. Формулы г)–е) —
дизъюнктами. Формулы ж) и з) (то есть литеры) являются как конъ-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
