Дискретная математика
.pdf
31
величини V називається задана на дугах графа невід’ємна функція f (e), яка задовольняє наступним умовам:
|
|
|
|
|
ìV ,v = |
1) å |
¢ |
å |
|
¢¢ |
ï |
f (v,v )- |
(v) |
f (v ,v) = í0,v ¹ |
|||
v′Г (v) |
|
v′′ Г −1 |
|
ï |
|
|
|
|
|
|
î-V ,v |
вершин суміжних з v через вихідні дуги, Г суміжних з v через вхідні дуги;
2) f (e)£ c(e) для всіх e E .
s
s,t , де Г(v) - множина
= t
−1(v) - множина вершин
Тобто потік починається у вершині s та закінчується у вершині t, а в усіх інших вершинах мережі кількість потоку, який входить у вершину дорівнює кількості потоку, який з неї виходить. Крім того, на кожній дузі потік не перевищує її пропускної спроможності.
Нехай X V , s X , t X , X = V \ X . Розрізом (X , X ), що відділяє вершини s і t, називається множина дуг, які йдуть з X в X . Пропускна спроможність розрізу (X , X ) визначається як
C(X , X )= åc(e).
e (X , X )
Розглянемо у якості прикладу мережу, зображену на рисунку, де числа біля дуг є їх пропускними спроможностями.
v1
1 |
|
|
3 |
s |
1 |
1 |
t |
3 |
|
|
1 |
v2 |
Рисунок 4.16
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
32 |
|
|
|
||
|
|
Нехай X = {s,v1}. Тоді |
(X , |
|
)= {(s,v2 ),(v1 ,v2 ),(v1 ,t)}, |
X |
|||||
c(X , |
|
)= 3 +1+ 3 = 7 . |
|
|
|
X |
|
|
|
||
Потік через розріз f (X , X ) визначається як різниця між
сумою потоків по дугам із X в X X
f (X , X )= å
e (X , X
|
|
|
|
|
|
|
|
и сумою потоків по дугам із X в |
|||||
|
f (e)− |
å f (e). |
||||
) |
|
e ( |
|
, X ) |
||
|
X |
|||||
Теорема. (Ford, Fulkerson). Для будь-якої мережі максимальна величина потоку із s в t дорівнює мінімальної пропускної спроможності розрізу, який розділяє s і t.
Алгоритм знаходження максимального потоку в мережі.
Виберемо в якості початкового припустимого потоку нульовий по всім дугам потік і будемо його послідовно нарощувати, збільшуючи величину потоку на кожному кроці на D ³ 1. За скінчену кількість кроків буде, таким чином, побудовано максимальний потік. Нарощування потоку буде здійснюватися наступним чином. Нехай маємо деякий припустимий потік. Покажемо, як можна його збільшити чи вказати розріз, пропускна спроможність якого дорівнює величині потоку. Будемо шукати такий шлях з s в t, у якому можна йти по дугам як у прямому, так і в зворотному напрямі, але дуги, які проходимо в прямому напрямі, повинні бути ненасиченими
( f (e)< c(e)), а дуги, які проходимо в зворотному напрямі, повинні бути навантаженими ( f (e) > 0). Якщо такий шлях знайдено, то шукаємо мінімум по всім дугам шляху з величин c(e)− f (e) для дуг, що проходилися в прямому напрямі і f (e)для дуг, що проходилися в
зворотному напрямі. Нехай цей мінімум дорівнює D ³ 1. Будуємо новий потік, збільшуючи потік по дугам в прямому напрямі на D и зменшуючи потік по дугам в зворотному напрямі на ту ж саму величину. (Потоки по дугам, що не належать шляху, залишаються без змін).
Новий потік буде припустимим і мати величину на D одиниць більше попередньої. Якщо ж вершина t недосяжна подобнім чином із
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
33
s, то це означає, що існує множина вершин X = V \ X , недосяжних із s, причому s X , t X . Тому що з множини X неможливо перейти
в множину X зазначеним вище чином, то всі дуги з X в X ненавантажені. Тому потік f (X , X ) через розріз (X , X ), дорівнює величині потоку в мережі, та дорівнює пропускної спроможності розрізу (X , X ). Таким чином буде побудовано максимальний потік.
Приклад. Перша цифра за дужками на кожній дузі визначає пропускну спроможність, друга в дужках – потік по дузі.
|
v2 |
4(4) |
v4 |
|
|
|
9(4) |
|
|
8(5) |
|
s |
|
|
|
|
t |
|
|
|
|
|
|
|
8(8) |
4(1) |
6(0) |
|
|
|
|
|
7(7) |
|
|
|
v1 |
|
v3 |
|
|
|
9(7) |
|
|
||
|
|
|
|
|
|
|
|
Рисунок 4.17 |
|
( s,v2 ,v3 ,v1 ,v4 ,t ), |
|
Зростаючим |
для |
потоку |
шляхом |
є |
|
= min{9 − 4,6 − 0,7,4 −1,8 − 5}= 3. |
|
|
|||
Новий потік прийме вид |
|
|
|
||
|
v2 |
4(4) |
v4 |
|
|
|
9(7) |
|
|
8(8) |
|
s |
|
|
|
|
t |
|
|
|
|
|
|
|
8(8) |
4(4) |
6(3) |
|
|
|
|
|
7(7) |
|
|
|
v1 |
|
v3 |
|
|
|
9(4) |
|
|
||
|
|
|
|
|
|
Рисунок 4.18
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
34
Спробуємо знову знайти зростаючий для потоку шлях. Із s
можна потрапити в v2 , із v2 - в v3 , із v3 |
- в v1 . Ніяких інших вершин |
||||
мережі з s досягнути не вдається. Тому |
X = {s,v1 ,v2 ,v3 }, |
|
= {t,v4 } |
||
X |
|||||
и (X , |
|
)= {(v1 ,v4 ),(v2 ,v4 ),(v3 ,t)} - |
розріз с пропускною |
||
X |
|||||
спроможністю 4+4+7=15, рівною величині потоку в мережі. Отже, знайдений потік є максимальним.
Приклад. Знайти максимальний потік для графа, зображеного на рисунку. Вважати дуги орієнтовними зліва направо.
|
2 |
3 |
5 |
|
3 |
8 |
|
|
|
|
|
|
|
|
|
||
3 |
2 |
3 |
|
|
|
|
6 |
|
|
|
2 |
1 |
|
|
|||
4 |
3 |
2 |
6 |
9 |
3 |
|
||
1 |
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
||
4 |
|
2 |
|
4 |
3 |
|
4 |
|
|
|
|
|
|
||||
|
|
2 |
|
|
2 |
|
|
|
|
4 |
|
7 |
|
|
10 |
|
|
Рисунок 4.19 Спочатку робимо перебір всіх варіантів шляхів, які
складаються лише з ненасичених дуг, побудований таким чином потік називається повним. Для цього обирають якомога верхні ненасичені дуги.
2 |
|
3(3) |
5 |
|
3(3) |
8 |
|
|
|
2 |
|
|
|
|
|
|
|
3(3) |
|
3 |
|
2 |
1 |
|
6(3) |
|
4 |
3 |
2 |
6 |
9 |
3 |
|
||
1 |
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
||
4 |
|
2 |
|
4 |
3 |
|
4 |
|
|
|
|
|
|
||||
|
|
2 |
|
|
2 |
|
|
|
|
4 |
|
7 |
|
|
10 |
|
|
|
|
Рисунок 4.20 |
|
|
|
|
||
1) (1, 2, 5, 6, 11), =3; |
|
2) |
(1, 3, 5, 9, 11), =1; |
|||||
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
35
3) |
(1, 3, 6, 8, 11), |
=2; |
4) (1, 4, 6, 10, 11), =2; |
|
5) |
(1, 4, 7, 9, 11), |
=2. |
|
|
|
|
2 |
5 |
8 |
|
|
3(3) |
|
|
3(3) |
|
|
|
|
3(3) |
2 |
3(1) |
|
|
|
|
6(3) |
|
|
|
|
2 |
1(1)9 |
|
|
|
|||
4(1) |
3 |
2 |
6 |
|
3(1) |
|
|
||
1 |
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|||
4 |
2 |
|
|
4 |
3 |
|
4 |
|
|
|
|
|
|
|
|
||||
|
|
2 |
|
|
2 |
|
|
|
|
|
4 |
|
7 |
|
10 |
|
|
||
|
Рисунок 4.21 |
|
|
|
|
|
|||
2 |
|
3(3) |
5 |
|
3(3) |
8 |
|
|
|
3(3) |
2 |
3(1) |
|
|
|
|
6(5) |
|
|
|
|
2(2) |
1(1)9 |
|
|||||
4(3) |
3 |
2(2) |
6 |
3(1) |
|
11 |
|||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
4 |
2 |
|
|
4 |
3 |
|
4 |
|
|
|
|
|
|
|
|
||||
|
|
2 |
|
|
2 |
|
|
|
|
|
4 |
|
7 |
|
|
10 |
|
|
|
|
Рисунок 4.22 |
|
|
|
|
|
|||
|
2 |
3(3) |
5 |
|
8 |
|
|
|
|
|
|
|
|
3(3) |
|
|
|
|
|
3(3) |
2 |
3(1) |
|
|
|
|
6(5) |
|
|
|
|
2(2) |
1(1)9 |
|
|
|
|||
4(3) |
3 |
2(2) |
6 |
|
3(1) |
|
|
||
1 |
|
|
|
|
|
|
|
11 |
|
|
|
|
|
|
|
|
|||
4(2) |
2(2) |
|
4 |
3(2) |
|
4(2) |
|
|
|
|
|
|
|
|
|||||
|
|
2 |
|
|
2 |
|
|
|
|
|
4 |
|
7 |
|
10 |
|
|
||
Рисунок 4.23
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
36
|
2 |
3(3) |
5 |
|
3(3) |
8 |
|
|
3(3) |
2 |
3(1) |
|
|
|
|
6(5) |
|
|
|
2(2) |
1(1)9 |
|
||||
4(3) |
3 |
2(2) |
6 |
3(3) |
11 |
|||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
4(4) |
|
2(2) |
|
4(2) |
3(2) |
|
4(2) |
|
|
|
|
|
|
||||
|
|
2(2) |
|
|
2 |
|
|
|
|
4 |
|
7 |
|
|
10 |
|
|
Рисунок 4.24 Значення повного потоку V = 10 .
Далі шукаємо корегуючий шлях з врахуванням руху у
зворотному напрямі - (1, 3, 5, 2, 7, 10, 11), |
=1. |
|
||||
2 |
|
3(2) |
5 |
3(3) |
8 |
|
|
2(1) |
|
|
|
|
|
3(3) |
|
3(2) |
62(2) |
|
1(1)9 |
6(5) |
4(4) |
3 |
2(2) |
|
3(3) |
||
1 |
|
|
|
|
|
11 |
4(4) |
|
2(2) |
4(2) |
3(2) |
4(3) |
|
|
|
|||||
|
|
2(2) |
|
2(1) |
|
|
|
4 |
|
7 |
|
10 |
|
Рисунок 4.25
Цей потік є максимальний, оскільки вже 2, 3, 4 вершини є недосяжними, мінімальний розріз складають дуги (1,2), (1,3), (1,4). Величина максимального потоку V=11.
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
37
ИНДИВІДУАЛЬНІ ЗАВДАННЯ
Завдання 1. Нехай А – множина літер абетки, що складають Ваше прізвище, В – множина літер Вашого імені, С – множина літер Вашого по-батькові. Записати множини А, В, С та виконати дії над ними:
1) A Ç (B È C) , A \ (B Ç C) , BD(A ÈC) ;
2) знайти потужності множин A , B , C , AÇ B , AÈ B ,
A Ç B Ç C , A È B È C ;
3) знайти булеан P(A Ç B Ç C) .
Завдання 2. Логічним методом довести тотожність:
1.A \ (B È C) = (A \ B) \ C
2.A \ (B È C) = (A \ B) Ç (A \ C)
3.AÇ (B \ C) = (A Ç B) \ C
4.A \ (B \ C) = (A \ B) È (A Ç C)
5.A Ç (BDC) = (A Ç B)D(A ÇC)
6.AD(ADB) = B
7.(A ÇC) \ B = (A \ B) Ç (C \ B)
8.A \ (B Ç C) = (A \ B) È (A \ C)
9.(A \ B) \ C = (A \ C) \ (B \ C)
10.AÈ B Ç A = Æ
11.A Ç B Ç A = A \ B
12.A Ç B Ç C Ç C = C \ (A Ç B)
13.A \ B Ç C = (C \ A) È (B Ç C)
14.(A È B \ C) È (A Ç C) = AÈ (B \ C)
15.(A È B) \ (A ÈC) = B \ A \ C
16.AD(A Ç B) = A \ B
17.(AD B) È (AÇ B) = A È B
18.(AÈ B) Ç A = A
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
38
19.(AÇ B) È A = A
20.(AÈ B)D(B È C) = (ADC) \ B
21.A \ C È C \ B = U
22.(A \ B) D A = A Ç B
23.(A È B) \ C = A È B ÈC È C
24.(A È B) Ç (B È A) = A
25.AÇ B È A = U
Завдання 3. Зобразити на діаграмі Ейлера-Венна множину:
1.(CD A Ç B È C) È (B \ A)
2.B Ç (AD(C \ B)) \ A
3.((C È A)DB) \ (A ÈC)
4.((A \ B) Ç (C \ B))DB
5.(AÈ BDC) \ (A ÈC)
6.(((A Ç B)DC) \ A)DB
7.(C \ A)D(B È (A \ C Ç B))
8.((B Ç C)DA) \ C)DB
9.((A È B) È (CDB)) \ (A \ B)
10.(B È C)DA \ (B Ç C)
11.(A \ B \ C) È (B Ç C)D A
12.(A ÇC È B)D(ADB)
13.(A Ç BDC) È (B \ (A \ C))
14.((B È A) \ C)D A Ç B
15.((B ÇC) \ A)D(B \ A)
16.((CDA) \ B) È (A Ç C)DB
17.(ADB) \ (A Ç C)DC
18.C È (AD(B \ C)) \ (B Ç C)
19.((A \ B)D(A \ C)) È (B Ç C)
20.(B È (CD(A \ B))) \ C
21.(((A È C)DB) \ A)DB
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
39
22.B \ (CDA) Ç (C \ A)
23.(B Ç (CDA)) \ (C Ç B)
24.((A Ç B È C)DB)DA
25.((A \ B) È (B \ C))DC
Завдання 4. Спростити вигляд множини, яка задана за допомогою операцій, застосовуючи закони алгебри множин (у відповідь множини можуть входити не більше одного разу):
1.((AD B ÈC) È A) ÇC
2.((AD B) \ C) Ç B È (A Ç B) È (A Ç C)
3.(AD B Ç C) È B
4.((A È B)DC) È (B Ç C) È (A ÇC)
5.(AÇ B) È (AÇ B Ç C) È A Ç C
6.A Ç B È (AÇ C) È C \ B
7.(A ÇC D B) \ A
8.(A È B) ÇC È (AÇ B Ç C) È (AÇ B Ç C)
9.(AD B Ç C ) È A
10.(A Ç B) D(A Ç B)
11.(AÇ B Ç C) È A È B
12.(A ÇC D B) \ B
13.(AD B) È C È B
14.AÈ B ÇC Ç B
15.(AD B) È (B \ A)
16.(B \ A) È C Ç A
17.(A È B) Ç (B È A Ç C)
18.(AÇ B Ç C) È (B Ç C) È C
19.(AÈ B È A È B) Ç C
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
40
20.(AD B) È (AÇ B Ç C) È A
21.(C \ (A Ç B)) È B
22.A È B È C È (A Ç B Ç C) È (A Ç B Ç C)
23.((A Ç B) DC) È A
24.((B ÈC) D A) È (A Ç B) È (A Ç C)
25.(A Ç B Ç X ) È (A Ç B Ç C Ç X ÇY ) È (A Ç X Ç X )
Завдання 5. Чи є вірною рівність? (У будь-якому випадку навести доведення.)
1.(A Ç B)´C = (A´C) Ç (B ´C)
2.(A´ B) Ç (C ´ D) = (A´ D) Ç (C ´ B)
3.(A´ B) Ç (C ´ D) = (A´C) Ç (B ´ D)
4.(A Ç B) ´(C Ç D) = (A´ D) Ç (B ´C)
5.(A È B)´C = (A´C) È (B ´C)
6.A´(B È C) = (A´ B) È (A´C)
7.(A È B)´ (C È D) = (A´C) È (B ´C) È (A´ D) È (B ´ D)
8.(A È B) ´(C È D) = (A´C) È (B ´ D)
9.(A È B) ´(A È C) = A´(B È C)
10.(A´ B) È (C ´ D) = (A È C)´ (B È D)
11.A´ (B Ç C È D) = (A´ B) Ç (A´C) È (A´ D)
12.(A´(B Ç C)) Ç ((A Ç B)´C) = (A´C) Ç (B ´ B)
13.A´(B \ C) = (A´C) \ (B ´C)
14.A´(B \ C) = (A´ B) \ (A´C)
15.(A \ B) ´C = (A´C) \ (B ´C)
16.(A´ B) \ (C ´ D) = ((A \ C)´ B) È ((A ÇC)´(B \ D))
17.((C ´ D) \ (A´ B)) = ((C \ A) ´ D) È (C ´(D \ B))
18.(A \ B) ´(C \ A) = A´(C \ B)
19.(A \ B) ´(C \ A) = (A´C) \ (B ´ A)
20.((A \ B) \ C)´ D = (A´ D) \ (B ´ D) \ (C ´ D)
21.(A \ B) ´(C Ç D) = (A´C) \ (B ´ D)
PDF создан испытательной версией pdfFactory Pro www.pdffactory.com
