Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник задач по дискретной математике. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
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
. Положим
jT
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
i1
= 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 1815 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
i1
, t 6∈ W
i1
, выбираем реб-
i1
i1
ро минимального веса (любое из ребер минимального веса) и полагаем
Wi= W вершин V и множеством ребер W
∪{t}, Ei= E
i1
∪{[w, t]}. Доказать, что граф с множеством
i1
является остовом минимального
n1
веса.
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).
Решение. Формулы а)–в) являются конъюнктами. Формулы г)–е) — дизъюнктами. Формулы ж) и з) (то есть литеры) являются как конъ-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]