‫משוכלל‬ ‫מטרואיד‬ 1.1‫הגדרה‬ 1
‫בגרפים‬ ‫וזרימות‬ ‫מטרואידים‬
(‫באלגוריתמים‬ ‫הקורס‬ ‫)מתוך‬
I ‫חלק‬
‫מטרואידים‬
‫הגדרה‬ 1
‫התכונות‬ ‫מתקיימות‬ ‫אם‬ ‫מטרואיד‬ ‫יקרא‬ M = (S, I)
:‫הבאות‬
.‫ריקה‬ ‫לא‬ ‫סופית‬ ‫קבוצה‬ ‫היא‬ S .1
‫העומד‬ S ‫של‬ ‫תת־קבוצות‬ ‫של‬ ‫ריק‬ ‫לא‬ ‫אוסף‬ ‫היא‬ − I .2
:‫הבאות‬ ‫בדרישות‬
.A ∈ I ‫אזי‬ A ⊆ B‫ו־‬ B ∈ I ‫אם‬ (‫)א‬
,x ∈ D ‫קיים‬ ‫אז‬ |C| < |D|‫ו־‬ C, D ∈ I ‫אם‬ (‫)ב‬
.(c ∪ {x}) ∈ I‫ש־‬ ‫כך‬ x /∈ C
:‫קוראים‬ I‫ל־‬
."M ‫המטרואיד‬ ‫של‬ ‫תלויות‬ ‫הבלתי‬ ‫הקבוצות‬ ‫"אוסף‬
‫ש־‬ ‫כך‬ x /∈ A ,x ∈ S ‫קיים‬ ‫ולא‬ A ∈ I ‫אם‬ 1.1 ‫הגדרה‬
.‫מקסימלית‬ ‫תלויה‬ ‫בלתי‬ ‫קבוצה‬ :‫היא‬ A ‫אזי‬ (A ∪ {x}) ∈ I
‫המקסימליות‬ ‫הבלתי־תלויות‬ ‫הקבוצות‬ ‫כל‬ 1.2 ‫טענה‬
.‫גודל‬ ‫שוות‬ ‫הן‬ M = (S, I) ‫במטרואיד‬
‫נאמר‬ ‫אזי‬ (C ∪ {x}) ∈ I ‫ו־‬ x /∈ C ,C ∈ I ‫אם‬ 1.3 ‫הגדרה‬
.C ‫את‬ ‫מרחיב‬ x ‫ש־‬ ‫כי‬
‫אם‬ ,‫מקסימלית‬ ‫בלתי־תלויה‬ ‫קבוצה‬ ‫היא‬ C ∈ I 1.4 ‫הגדרה‬
.‫אותה‬ ‫שמרחיב‬ x ∈ S ‫קיים‬ ‫לא‬
‫בלתי‬ ‫קבוצה‬ ‫היא‬ 1
‫מרבי‬ ω (A) ‫עם‬ A ∈ I ‫קבוצה‬ 1.5 ‫טענה‬
.(‫אותה‬ ‫להרחיב‬ ‫ניתן‬ ‫)לא‬ ‫מקסימלית‬ ‫תלויה‬
‫אינו‬ x ∈ S ‫אם‬ .‫מטרואיד‬ M = (S, I) ‫יהא‬ 1.6 ‫טענה‬
.A ∈ I ‫לכל‬ ,A ‫את‬ ‫מרחיב‬ ‫אינו‬ x ‫אזי‬ ,∅ ‫את‬ ‫מרחיב‬
‫משוכלל‬ ‫מטרואיד‬ 1.1
‫משוכלל‬ ‫מטרואיד‬ ‫שהוא‬ ‫נאמר‬ M = (S, I) ‫מטרואיד‬ ‫בהינתן‬
:‫קיימת‬ ‫אם‬
ω : S → R+
:A ⊆ S ‫לכל‬ ‫גם‬ ‫מגדירים‬
ω (A) =
x∈A
ω (x)
(‫האופטימיזציה‬ ‫)בעית‬ ‫האלגוריתמית‬ ‫הבעיה‬ 1.1.1
,ω : S → R+ ‫עם‬ ‫משוכלל‬ ‫מטרואיד‬ M = (S, I) ‫בהינתן‬
.‫מרבי‬ ‫ממשקל‬ A ∈ I ‫לחשב‬ ‫ברצוננו‬
‫הבעיה‬ ‫לפתרון‬ ‫חמדני‬ ‫אלגוריתם‬ 1.2
∅ → A .1
.‫עולה‬ ‫לא‬ ‫מקלים‬ ‫סדר‬ ‫לפי‬ S ‫אברי‬ ‫את‬ ‫נמיין‬ .2
:‫הבאה‬ ‫הלולאה‬ ‫את‬ ‫נבצע‬ ‫שקיבלנו‬ ‫הסדר‬ ‫לפי‬ .3
:‫אז‬ (A ∪ {x}) ∈ I ‫אם‬ x ∈ S ‫לכל‬ (‫)א‬
.A ∪ {x} → A
.A :‫הפלט‬
.‫האופטימיזציה‬ ‫בעיית‬ ‫את‬ ‫פותר‬ ‫האלגוריתם‬ 1.7 ‫משפט‬
‫האם‬ ‫הבדיקה‬ ‫במחיר‬ ‫תלוי‬ ‫האלגוריתם‬ ‫של‬ ‫הריצה‬ ‫זמן‬ 1.8 ‫הערה‬
.A ∪ {x} ∈ I
‫משקל‬ ‫פונקצית‬ ‫עם‬ ‫מטרואיד‬ M = (S, I) ‫יהא‬ 1.9 ‫טענה‬
‫של‬ ‫יורד‬ ‫סדר‬ ‫)לפי‬ ‫הראשון‬ ‫האיבר‬ x ‫יהא‬ .ω : S → R+
A ⊆ S ‫אזי‬ .(‫כזה‬ x ‫קיים‬ ‫)אם‬ {x} ∈ I‫ש־‬ ‫כך‬ (‫משקלים‬
.x ∈ A ‫עם‬ ‫אופטימלי‬
.‫שונים‬ ‫דברים‬ ‫בשני‬ ‫מדובר‬ .‫למקסימליות‬ ‫קשר‬ ‫אין‬1
1
‫בקצרה‬ ‫ההגדרה‬ 1.3
.‫מטרואיד‬ ‫־‬ M = (S, I)
.‫סופית‬ ‫קבוצה‬ ‫והיא‬ S = ∅
:‫ש‬ ‫כך‬ S ‫של‬ (‫ריק‬ ‫)לא‬ ‫תת־קבוצות‬ ‫אוסף‬ ‫־‬ I
.A ∈ I ⇐ A ⊆ B ,B ∈ I .1
‫כך‬ x ∈ DC ‫קיים‬ ‫אזי‬ ,|C| < |D|‫ו־‬ ,C, D ∈ I .2
(C ∪ {x}) ∈ I‫ש־‬
.ω : S → R+ ‫פונקציה‬ ‫נתונה‬
.‫מרבי‬ ω (A) ‫עם‬ A ∈ I ‫חישוב‬ :‫המטרה‬
‫למטרואידים‬ ‫דוגמאות‬ 1.4
‫הוקטורי‬ ‫המטרואיד‬ 1.4.1
.A = 0 ,F ‫שדה‬ ‫מעל‬ ‫מטריצה‬ A ‫תהא‬
.A ‫המטריצה‬ ‫של‬ ‫של‬ ‫השורה‬ ‫וקטורי‬ ‫קבוצת‬ ‫־‬ S
.‫לינארית‬ ‫תלוים‬ ‫הלתי‬ ‫הם‬ ⇔ I ‫וקטורים‬ ‫קבוצת‬
‫הוקטורי‬ ‫המטרואיד‬ ‫זהו‬
‫הגרפי‬ ‫המטרואיד‬ 1.4.2
.S = E ‫נגדיר‬ .E = ∅ ‫עם‬ ‫מכוון‬ ‫לא‬ ‫גרף‬ G = (V, E) ‫יהא‬
.‫מעגלים‬ ‫אין‬ B‫ב־‬ ⇔ (B ⊆ E) B ∈ I ::‫הבא‬ ‫באופן‬ I ‫נגדיר‬
‫הגרפי‬ ‫המטרואיד‬ ‫זהו‬
‫קבוצה‬ ‫של‬ ‫תת־קבוצות‬ 1.4.3
.|A| = n > 0 ‫כאשר‬ A ‫קבוצה‬ ‫לנו‬ ‫ויש‬ ‫נניח‬
‫מגודל‬ A ‫של‬ ‫הקבוצות‬ ‫תתי‬ ‫כל‬ ‫־‬ n ≥ k > 0 ‫נבחר‬ ‫אם‬ ‫אזי‬
.‫מטרואיד‬ ‫הן‬ k
.(n, k ∈ N)
II ‫חלק‬
‫בגרפים‬ ‫זרימות‬
a
12 GG
10
!!
b
20
00
9
ÑÑ
s
16
cc
15
11
t
c
4
……
14
GG d
4
dd7
yy
s, t ‫מיוחדים‬ ‫קודקודים‬ ‫שני‬ ‫ובו‬ G = (V, E) ‫מכוון‬ ‫גרף‬ ‫נתון‬
. (s = t)
‫המוגדרת‬ ‫קיבלות‬ ‫פונקציית‬ ‫־‬ 2
c : E → R+ ‫נתונה‬ ‫כמו־כן‬
.‫הצלעות‬ ‫על‬
‫את‬ ‫המקיימת‬ f : V × V → R ‫פונקציה‬ ‫היא‬ ‫בגרף‬ ‫זרימה‬
:‫הבאות‬ ‫הדרישות‬
.u, v ∈ V ‫לכל‬ f (u, v) ≤ c (u, v) :‫קיבולי‬ ‫חסם‬ •
.u, v ∈ V ‫לכל‬ f (u, v) = −f (v, u) :‫אנטיסימטריה‬ •
‫לכל‬ u∈V f (u, v) = 0 :‫החומר‬ ‫שימור‬ •
u ∈ V  {s, t}
:‫הבא‬ ‫באופן‬ ‫מוגדר‬ f ‫הזרימה‬ ‫ערך‬
|f| =
v∈V
f (s, v)
.‫מרבי‬ |f| ‫עם‬ f ‫זרימה‬ ‫לחשב‬ :‫המטרה‬
.c : V × V → R+ ∪ {0} :‫הבא‬ ‫האופן‬c ‫את‬ ‫נרחיב‬2
.c (u, v) = 0 :‫מתקיים‬ (u, v) /∈ V ‫המקיים‬ u, v ∈ V ‫לכל‬ ‫כאשר‬
2
‫פורד־פלקרסון‬ ‫שיטת‬ 2
:‫למעלה‬ ‫שישנו‬ ‫הגרף‬ ‫על‬ ‫הבאה‬ ‫הזרימה‬ ‫על‬ ‫נסתכל‬ :‫למשל‬
a
12/12
GG
3/10
!!
b
12/20
00
0/9
ÑÑ
s
12/16
cc
11/15
11
t
c
3/4
……
11/14
GG d
4/4
dd0/7
yy
y‫ה־‬ ‫מתוך‬ x ‫מזרימים‬ ‫שאנחנו‬ ‫היא‬ x/y ‫של‬ ‫המשמעות‬ ‫כשאר‬
.x = 0‫ש־‬ ‫לכך‬ ‫שקול‬ ‫זה‬ ‫אזי‬ y ‫רק‬ ‫כתוב‬ ‫אם‬ ‫המותרים‬
‫כמה‬ ‫־‬ ‫קודקודים‬ ‫שני‬ ‫בין‬ ‫המאזן‬ ‫בעצם‬ ‫היא‬ f
.‫הרווחנו/הפסדנו‬
‫כי‬ ‫ונניח‬ ‫בסיסיות‬ ‫מדוגמאות‬ ‫נתחיל‬ ‫זה‬ ‫את‬ ‫להבין‬ ‫בשביל‬
:3
‫כלשהו‬ ‫נזל‬ ‫של‬ ‫ליטרים‬ ‫של‬ ‫זרימה‬ ‫כמות‬ ‫על‬ ‫מדובר‬
o
3/10
p
4/5
……
m
8/12
!!
n
2/3
……
‫שב־‬ ‫נראה‬ ‫הזרימה‬ ‫כמות‬ ‫על‬ ‫נסתכל‬ ‫אם‬ ‫כי‬ ‫־‬ f (m, n) = 6
,‫ליטרים‬ 6 ‫בסה"כ‬ ‫לנו‬ ‫זורמים‬ m n
‫ליטרים‬ 6 ‫של‬ ‫זרימה‬ ‫לנו‬ ‫יש‬ ‫אם‬ ‫כי‬ f (n, m) = −6 ‫ואילו‬
.‫ליטרים‬ −6 ‫של‬ ‫היא‬ ‫הזרימה‬ ‫השני‬ ‫בכיוון‬ ‫אזי‬ ‫אחד‬ ‫בכיוון‬
.f (o, p) = −1, f (p, o) = 1 :‫ולכן‬
a b ‫בין‬ ‫זורמים‬ ‫ליטרים‬ ‫כמה‬ ‫זה‬ ‫בפועל‬ ‫לנו‬ ‫שמשנה‬ ‫מה‬
.f (a, b) ‫את‬ ‫לחשב‬ ‫כדי‬
:‫שלמעלה‬ ‫לדוגמא‬ ‫נחזור‬ ‫כעת‬
.f (c, s) = −11 ,f (d, t) = 4 ,f (d, s) = 0 ,f (d, a) = 0
.f (b, d) = −7 ,f (d, c) = −11
.f (x, x) = 0 ‫מתקיים‬ x ∈ V ‫לכל‬ 1.10 ‫טענה‬
‫מכוניות‬ ‫כמות‬ ‫כמו‬ ‫להזרים‬ ‫שניתן‬ ‫אחר‬ ‫דבר‬ ‫כל‬ ‫להיות‬ ‫יכול‬ ‫שזה‬ ‫למרות‬3
...'‫וכו‬ ‫בכביש‬
:‫נגדיר‬ X, Y ⊆ V ‫לכל‬ :‫סימון‬
f (X, Y ) =
x∈X,y∈Y
f (x, y)
:‫טענות‬
.∀X ⊆ V ,f (X, X) = 0 .1
.f (X, Y ) = −f (Y, X) .2
‫אם‬ f (X ∪ Y, Z) = f (X, Z) + f (Y, Z) .3
.X ∩ Y = ∅‫ו־‬ X, Y, Z ⊆ V
= |f| ‫כלומר‬ ,t‫מ־‬ ‫שיצא‬ ‫מה‬ ‫סך‬ ‫)זהו‬ |f| = f (V, {t}) .4
.(t‫מ־‬ ‫שיוצא‬ ‫למה‬
‫פורד־פלקרסון‬ ‫שיטת‬ 2
:‫איטרטיבית‬ ‫בשיטה‬ ‫עובדים‬ :‫כזה‬ ‫הוא‬ ‫הרעיון‬
.(0 ‫זהותית‬ ‫)פונקציה‬ f ≡ 0‫מ־‬ ‫נתחיל‬
‫שבה‬ t‫ל־‬ s‫מ־‬ ‫מסילה‬ :"‫מרחיבה‬ ‫"מסילה‬ ‫מחשבים‬ ‫שלב‬ ‫בכל‬
.‫להזרים‬ ‫עוד‬ ‫ניתן‬
.‫מרחיבות‬ ‫מסילות‬ ‫יותר‬ ‫מוצאים‬ ‫שלא‬ ‫עד‬ ‫זאת‬ ‫עושים‬
‫השיורי‬ ‫בגרף‬ (‫שלב‬ ‫)בכל‬ ‫מחשבים‬ ‫המרחיבה‬ ‫המסילה‬ ‫את‬
:‫הבא‬ ‫באופן‬ ‫המוגדר‬ (‫שנשאר‬ ‫מה‬ ‫של‬ ‫)במובן‬
,G = (V, Ef )
Ef =



(u, v) ∈ V × V ; c (u, v) − f (u, v)
cf
> 0



.(u, v) ‫הצלע‬ ‫של‬ ‫השיורית‬ ‫הקיבולת‬ = cf (u, v)
3
:‫דוגמאות‬ 2.1 ‫פורד־פלקרסון‬ ‫שיטת‬ 2
:‫דוגמאות‬ 2.1
:‫הבא‬ ‫הגרף‬ ‫על‬ ‫נסתכל‬
s
1 GG
1
dd
a
1 GG
1
00
b
1 GG t
:‫הבאה‬ ‫הזרימה‬ ‫ועל‬
s
1/1
CQ
1
dd
a
1/1
CQ
1
00
b
1/1
CQ t
‫שהעברנו־‬ ‫ממה‬ ‫יותר‬ ‫להעביר‬ ‫ניתן‬ ‫לא‬ ‫־‬ ‫שזהו‬ ‫לראות‬ ‫ניתן‬
.1 ‫סה"כ‬
"‫"להתחרט‬ ‫הוא‬ ‫שיטה‬ ‫אותה‬ ‫ע"פ‬ ,‫לעשות‬ ‫שניתן‬ ‫מה‬ ,‫כעת‬
‫הופכים‬ ‫אנחנו‬ ‫לכן‬ ,‫חזרה‬ ‫שהעברנו‬ ‫מה‬ ‫את‬ ‫להחזיר‬ ‫ולאפשר‬
:‫שהעברנו‬ ‫הקיבולת‬ ‫אותה‬ ‫את‬ ‫ומחזירים‬ ‫הצינור‬ ‫כיוון‬ ‫את‬
‫אזי‬ a
7/10
GG b :‫כזה‬ ‫במצב‬ ‫היינו‬ ‫למשל‬ ‫אם‬ ,‫כלומר‬
,‫שהזרמנו‬ ‫מה‬ ‫את‬ "‫"להחזיר‬ ‫האפשרות‬ ‫לנו‬ ‫שתהיה‬ ‫נרצה‬ ‫כאשר‬
‫את‬ ‫לנו‬ ‫יש‬ ‫כעת‬ ‫־‬ a
3
BB
b
7
jj :‫כך‬ ‫יראה‬ ‫הדבר‬
‫לקנו‬ ‫קח‬ ‫ולשם‬ ,b‫ל־‬ a‫מ־‬ ‫שהזרמנו‬ ‫מה‬ ‫את‬ ‫להחזיר‬ ‫האפשרות‬
:cf ‫הוא‬ ‫שקיבלנו‬ ‫מה‬ ‫דיוק‬ ‫וליתר‬ ,c (a, b) ‫מהקיבולת‬
.(‫למעלה‬ ‫)כמתואר‬ cf (a, b) = c (a, b) − f (a, b)
‫מסילה‬ ‫נבחר‬ ‫אזי‬ ‫־‬ t‫ל־‬ s‫מ־‬ ‫זרימה‬ ‫שוב‬ ‫למצוא‬ ‫נצטרך‬ ‫כעת‬
( CQ ‫ב־‬ ‫תסומן‬ ‫)היא‬ ‫דרכה‬ ‫ונעבור‬ ‫כלשהי‬
s oo 0/1
1/1
`h
a ks 1/1
1/1
&4
b oo 1
t
‫האפשרות‬ ‫לגבי‬ ‫מקודם‬ ‫כמו‬ ‫הדבר‬ ‫אותו‬ ‫את‬ ‫נעשה‬ ‫פעם‬ ‫ושוב‬
:‫שהעברנו‬ ‫מה‬ ‫על‬ ‫להתחרט‬
s oo 1
””
1
a
1 GG
ÐÐ
1
b oo 1
t
s‫מ־‬ ‫מסילות‬ ‫להעביר‬ ‫אפשרות‬ ‫יותר‬ ‫אין‬ :‫הבא‬ ‫לדבר‬ ‫לב‬ ‫נשים‬
!‫שסיימנו‬ ‫הוא‬ ‫הדבר‬ ‫פירוש‬ ‫־‬ t‫ל־‬
‫איך‬ ‫־‬ ‫שעשינו‬ ‫מה‬ ‫כל‬ ‫את‬ ‫לסכם‬ ‫הוא‬ ‫לעשות‬ ‫שצריך‬ ‫מה‬ ,‫כעת‬
?‫זאת‬ ‫עושים‬
:‫הכמות‬ ‫מבחינת‬
.(‫)פעמיים‬ t‫ל־‬ s‫מ־‬ 1 ‫העברנו‬ ‫פעם‬ ‫כל‬
.‫היותר‬ ‫לכל‬ 2 ‫להעביר‬ ‫ניתן‬ ‫לכן‬
:‫כמות‬ ‫אותה‬ ‫את‬ ‫להזרים‬ ‫איך‬ ‫מבחינת‬
,‫בגרף‬ ‫קודקודים‬ ‫שני‬ ‫כל‬ ‫בין‬ ‫סה"כ‬ ‫העברנו‬ ‫כמה‬ ‫מחשבים‬
:‫למשל‬
‫לכן‬ ‫הפוך‬ ‫בכיוון‬ ‫פעם‬ ‫כל‬ 1 ‫העברנו‬ b‫ל־‬ a ‫בין‬ ‫כי‬ ‫לב‬ ‫נשים‬
.0 ‫שם‬ ‫העברנו‬ ‫בסך־הכל‬
‫ולכן‬ ,→ :‫בכיוון‬ ‫אחת‬ ‫פעם‬ ‫רק‬ 1 ‫העברנו‬ ‫למשל‬ t‫ל־‬ b ‫בין‬
.→ ‫בכיוון‬ 1 ‫רק‬ ‫יעבור‬ t‫ל־‬ b ‫בין‬ (‫)המרבית‬ ‫הסופית‬ ‫בזרימה‬
‫נוזל‬ ‫אותו‬ ‫את‬ ‫העברנו‬ ‫שדרכן‬ ‫הצלעות‬ ‫כל‬ ‫עבור‬ ‫הלאה‬ ‫וכך‬
.(‫)למשל‬
4
:‫דוגמאות‬ 2.1‫פורד־פלקרסון‬ ‫שיטת‬ 2
:‫הינה‬ ‫המרבית‬ ‫הזרימה‬ ,‫לכן‬
s
1/1
CQ
1/1
`h
a
0/1
GG
1/1
&4
b
1/1
CQ t
:‫מורכבת‬ ‫יותר‬ ‫טיפה‬ ‫דוגמא‬ ‫על‬ ‫נסתכל‬ ‫כעת‬
b
3
((
a
2
WW
4
33
1
BB
t
s
3
ff
5
BB c
7
——
2
ff
.‫הדבר‬ ‫אותו‬ ‫נשאר‬ ‫הגרף‬ ‫־‬ f ≡ 0‫מ־‬ ‫נתחיל‬
‫את‬ ‫דרכה‬ ‫להעביר‬ ‫וננסה‬ t‫ל־‬ s‫מ־‬ ‫כלשהי‬ ‫מסילה‬ ‫נבחר‬
:(2 ‫יהיה‬ ‫שלנו‬ ‫)שבמקרה‬ ‫המקסימום‬
b
3
((
a
2
WW
2/4
)7
1
BB
t
s
2/3
bp
5
BB c
7
——
2/2
bp
‫עם‬ ,‫דרכן‬ ‫שהזרמנו‬ ‫לאלה‬ ‫ההפוך‬ ‫בכיוון‬ ‫צלעות‬ ‫נעביר‬ ‫כעת‬
‫ולכן‬ c‫ל־‬ a ‫בין‬ ‫מעגל‬ ‫ישנו‬ ‫כי‬ ‫לב‬ ‫נשים‬ .‫שהזרמנו‬ ‫הכמות‬ ‫אותה‬
‫ערכי‬ ‫את‬ ‫לעדכן‬ ‫הוא‬ ‫שצריך‬ ‫מה‬ ‫אלא‬ ‫צלעות‬ ‫להוסיף‬ ‫איך‬ ‫אין‬
‫כמו‬ ,‫שהעברנו‬ ‫הכמות‬ ‫את‬ ‫לשניה‬ ‫מאחת‬ "‫)"להעביר‬ ‫הצלעות‬
:(‫הבאה‬ ‫בדיאגרמה‬ ‫שמופיע‬
b
3
((
a
2
WW
0/2
33
0/2

1
BB
t
s
0/1
ff
5
BB c
9
——
ÒÒ
2
5
:‫דוגמאות‬ 2.1 ‫פורד־פלקרסון‬ ‫שיטת‬ 2
s‫מ־‬ ‫מסילות‬ ‫ישנן‬ ‫ועדיין‬ ‫היות‬ ‫בגרף‬ ‫זרימה‬ ‫שוב‬ ‫נבצע‬ ‫וכעת‬
:t‫ל־‬
b
1/3
$2
a
1/2
Sa
2
33
2

1
BB
t
s
1/1
bp
5
BB c
9
——
ÒÒ
2
‫ההפוך‬ ‫בכיוון‬ ‫רק‬ ‫שהעברנו‬ ‫הקיבולת‬ ‫עם‬ ‫הצלעות‬ ‫את‬ ‫ונוסיף‬
:‫החדשה‬ ‫הזרימה‬ ‫את‬ ‫נוסיף‬ +
b
2
99
1
××
a
1
pp
2
33
3

1/1
8F
t
1
gg
s
1/5
8F c
1/9
“e
ÒÒ
2
‫חדשה‬ ‫זרימה‬ ‫ונוסיף‬ ‫המתאימות‬ ‫הצלעות‬ ‫את‬ ‫נוסיף‬ ‫כעת‬
:‫בהתאם‬
b
1/2
5C
1
××
a
1/1
ft
3
33
3

jj
1
t
1
gg
s
1/4
GU c
1/8
“e
ÒÒ
2
1
mm
‫־‬ ‫שקיבלנו‬ ‫למה‬ ‫לב‬ ‫ונשים‬
b
1
99
2
××
a
4
33
3

jj
1
t
2
gg
s
3
QQ c
7
——
ÒÒ
2
2
mm
!‫סיימנו‬ ‫אזי‬ ,t‫ל־‬ s‫מ־‬ ‫מסילות‬ ‫יותר‬ ‫אין‬ !‫זהו‬
:‫הסופית‬ ‫הזרימה‬ ‫את‬ ‫נחשב‬ ‫כעת‬
‫)עוד‬ ‫הפעמים‬ ‫בשאר‬ ‫ואז‬ 2 ‫הראשונה‬ ‫)בפעם‬ 5 ‫העברנו‬ ‫סהכ‬
‫בצלעותיו‬ ‫ונעביר‬ 4
‫המקורי‬ ‫הגרף‬ ‫את‬ ‫ניקח‬ ‫עכשיו‬ .(1 (‫שלוש‬
:‫צלע‬ ‫בכל‬ ‫שהעברנו‬ ‫כמה‬
‫שהעברנו‬ ‫ממה‬ ‫מתקזז‬ ‫זה‬ ‫אזי‬ ,‫ההפוך‬ ‫בכיוון‬ ‫חדשה‬ ‫בצלע‬ ‫העברנו‬ ‫אם‬ ‫גם‬4
.‫המקורית‬ ‫בצלע‬
6
‫והחתך‬ ‫השטף‬ ‫משפט‬ 3
b
2/3
((
a
2/2
WW
0/4
33
1/1
BB
t
s
3/3
ff
2/5
BB c
0/7
——
2/2
ff
.f ‫זרימה‬ ‫עם‬ ‫זרימה‬ ‫רשת‬ G = (V, E) ‫תהא‬ 2.1 ‫טענה‬
.‫השיורית‬ ‫הרשת‬ ‫־‬ Gf
:‫ומתקיים‬ G‫ב־‬ ‫זרימה‬ ‫היא‬ f + f ‫אזי‬ .Gf ‫ב־‬ ‫זרימה‬ ‫־‬ f
|f + f | = |f| + |f |
‫אינה‬ f ‫אזי‬ Gf ‫ב־‬ ‫מרחיבה‬ ‫מסילה‬ ‫קיימת‬ ‫אם‬ 2.2 ‫מסקנה‬
‫מסילות‬ ‫לנמצוא‬ ‫ניתן‬ ‫עדיין‬ ‫אם‬ ,‫)כלומר‬ .‫מקסימלית‬ ‫זרימה‬
.(‫מקסימלית‬ ‫זרימה‬ ‫אינה‬ f ‫אזי‬ ,‫מקודם‬ ‫שהראנו‬ ‫כמו‬ ,t‫ל־‬ s‫מ־‬
‫ההפוך‬ ‫בכיוון‬ ‫גם‬ ‫נכון‬ ‫זה‬ :‫כלומר‬ ,‫ומספיק‬ ‫הכרחי‬ ‫תנאי‬ ‫גם‬ ‫זהו‬
.‫מקסימלית‬ f ‫אזי‬ Gf ‫ב־‬ ‫מרחיבות‬ ‫מסילות‬ ‫אין‬ ‫אם‬ ‫־‬
‫קבוצת‬ ‫של‬ ‫חלוקה‬ ‫הוא‬ cut (S, T ) ‫חתך‬ 2.3 ‫הגדרה‬
:V ‫הקודקודים‬
.t ∈ T ,s ∈ S‫ש־‬ ‫כך‬ S
·
∪ T = V
.f (s, t) ‫הוא‬ cut (S, T) ‫דרך‬ ‫העובר‬ ‫השטף‬
:‫היא‬ cut (S, T) ‫החתך‬ ‫של‬ ‫הקיבולת‬
c (S, T) =
x∈S y∈T
c (x, y)
,‫כלומר‬ ‫־‬ f (S, T) = |f| :‫מתקיים‬ cut (S, T) ‫לכל‬ 2.4 ‫טענה‬
.s‫מ־‬ ‫יצא‬ ‫כמה‬ ‫למדוד‬ ‫נוכל‬ ‫תמיד‬ ‫נחתוך‬ ‫היכן‬ ‫משנה‬ ‫לא‬
:‫מתקיים‬ cut (S, T) ‫לכל‬ 2.5 ‫טענה‬
f (S, T ) ≤ c (S, T )
‫והחתך‬ ‫השטף‬ ‫משפט‬ 3
.t ‫ובור‬ s ‫מקור‬ ‫עם‬ G = (V, E) ‫ברשת‬ ‫זרימה‬ f ‫תהא‬
:‫שקולים‬ ‫הבאים‬ ‫התנאים‬
.G‫ב־‬ ‫מקסימלית‬ ‫זרימה‬ ‫היא‬ f .1
.‫מרחיבות‬ ‫מסילות‬ ‫אין‬ Gf ‫ב־‬ .2
.‫כלשהו‬ cut (S, T) ‫חתך‬ ‫עבור‬ |f| = cut (S, T) .3
7

סיכום על מטרואידים וזרימות בגרפים

  • 1.
    ‫משוכלל‬ ‫מטרואיד‬ 1.1‫הגדרה‬1 ‫בגרפים‬ ‫וזרימות‬ ‫מטרואידים‬ (‫באלגוריתמים‬ ‫הקורס‬ ‫)מתוך‬ I ‫חלק‬ ‫מטרואידים‬ ‫הגדרה‬ 1 ‫התכונות‬ ‫מתקיימות‬ ‫אם‬ ‫מטרואיד‬ ‫יקרא‬ M = (S, I) :‫הבאות‬ .‫ריקה‬ ‫לא‬ ‫סופית‬ ‫קבוצה‬ ‫היא‬ S .1 ‫העומד‬ S ‫של‬ ‫תת־קבוצות‬ ‫של‬ ‫ריק‬ ‫לא‬ ‫אוסף‬ ‫היא‬ − I .2 :‫הבאות‬ ‫בדרישות‬ .A ∈ I ‫אזי‬ A ⊆ B‫ו־‬ B ∈ I ‫אם‬ (‫)א‬ ,x ∈ D ‫קיים‬ ‫אז‬ |C| < |D|‫ו־‬ C, D ∈ I ‫אם‬ (‫)ב‬ .(c ∪ {x}) ∈ I‫ש־‬ ‫כך‬ x /∈ C :‫קוראים‬ I‫ל־‬ ."M ‫המטרואיד‬ ‫של‬ ‫תלויות‬ ‫הבלתי‬ ‫הקבוצות‬ ‫"אוסף‬ ‫ש־‬ ‫כך‬ x /∈ A ,x ∈ S ‫קיים‬ ‫ולא‬ A ∈ I ‫אם‬ 1.1 ‫הגדרה‬ .‫מקסימלית‬ ‫תלויה‬ ‫בלתי‬ ‫קבוצה‬ :‫היא‬ A ‫אזי‬ (A ∪ {x}) ∈ I ‫המקסימליות‬ ‫הבלתי־תלויות‬ ‫הקבוצות‬ ‫כל‬ 1.2 ‫טענה‬ .‫גודל‬ ‫שוות‬ ‫הן‬ M = (S, I) ‫במטרואיד‬ ‫נאמר‬ ‫אזי‬ (C ∪ {x}) ∈ I ‫ו־‬ x /∈ C ,C ∈ I ‫אם‬ 1.3 ‫הגדרה‬ .C ‫את‬ ‫מרחיב‬ x ‫ש־‬ ‫כי‬ ‫אם‬ ,‫מקסימלית‬ ‫בלתי־תלויה‬ ‫קבוצה‬ ‫היא‬ C ∈ I 1.4 ‫הגדרה‬ .‫אותה‬ ‫שמרחיב‬ x ∈ S ‫קיים‬ ‫לא‬ ‫בלתי‬ ‫קבוצה‬ ‫היא‬ 1 ‫מרבי‬ ω (A) ‫עם‬ A ∈ I ‫קבוצה‬ 1.5 ‫טענה‬ .(‫אותה‬ ‫להרחיב‬ ‫ניתן‬ ‫)לא‬ ‫מקסימלית‬ ‫תלויה‬ ‫אינו‬ x ∈ S ‫אם‬ .‫מטרואיד‬ M = (S, I) ‫יהא‬ 1.6 ‫טענה‬ .A ∈ I ‫לכל‬ ,A ‫את‬ ‫מרחיב‬ ‫אינו‬ x ‫אזי‬ ,∅ ‫את‬ ‫מרחיב‬ ‫משוכלל‬ ‫מטרואיד‬ 1.1 ‫משוכלל‬ ‫מטרואיד‬ ‫שהוא‬ ‫נאמר‬ M = (S, I) ‫מטרואיד‬ ‫בהינתן‬ :‫קיימת‬ ‫אם‬ ω : S → R+ :A ⊆ S ‫לכל‬ ‫גם‬ ‫מגדירים‬ ω (A) = x∈A ω (x) (‫האופטימיזציה‬ ‫)בעית‬ ‫האלגוריתמית‬ ‫הבעיה‬ 1.1.1 ,ω : S → R+ ‫עם‬ ‫משוכלל‬ ‫מטרואיד‬ M = (S, I) ‫בהינתן‬ .‫מרבי‬ ‫ממשקל‬ A ∈ I ‫לחשב‬ ‫ברצוננו‬ ‫הבעיה‬ ‫לפתרון‬ ‫חמדני‬ ‫אלגוריתם‬ 1.2 ∅ → A .1 .‫עולה‬ ‫לא‬ ‫מקלים‬ ‫סדר‬ ‫לפי‬ S ‫אברי‬ ‫את‬ ‫נמיין‬ .2 :‫הבאה‬ ‫הלולאה‬ ‫את‬ ‫נבצע‬ ‫שקיבלנו‬ ‫הסדר‬ ‫לפי‬ .3 :‫אז‬ (A ∪ {x}) ∈ I ‫אם‬ x ∈ S ‫לכל‬ (‫)א‬ .A ∪ {x} → A .A :‫הפלט‬ .‫האופטימיזציה‬ ‫בעיית‬ ‫את‬ ‫פותר‬ ‫האלגוריתם‬ 1.7 ‫משפט‬ ‫האם‬ ‫הבדיקה‬ ‫במחיר‬ ‫תלוי‬ ‫האלגוריתם‬ ‫של‬ ‫הריצה‬ ‫זמן‬ 1.8 ‫הערה‬ .A ∪ {x} ∈ I ‫משקל‬ ‫פונקצית‬ ‫עם‬ ‫מטרואיד‬ M = (S, I) ‫יהא‬ 1.9 ‫טענה‬ ‫של‬ ‫יורד‬ ‫סדר‬ ‫)לפי‬ ‫הראשון‬ ‫האיבר‬ x ‫יהא‬ .ω : S → R+ A ⊆ S ‫אזי‬ .(‫כזה‬ x ‫קיים‬ ‫)אם‬ {x} ∈ I‫ש־‬ ‫כך‬ (‫משקלים‬ .x ∈ A ‫עם‬ ‫אופטימלי‬ .‫שונים‬ ‫דברים‬ ‫בשני‬ ‫מדובר‬ .‫למקסימליות‬ ‫קשר‬ ‫אין‬1 1
  • 2.
    ‫בקצרה‬ ‫ההגדרה‬ 1.3 .‫מטרואיד‬‫־‬ M = (S, I) .‫סופית‬ ‫קבוצה‬ ‫והיא‬ S = ∅ :‫ש‬ ‫כך‬ S ‫של‬ (‫ריק‬ ‫)לא‬ ‫תת־קבוצות‬ ‫אוסף‬ ‫־‬ I .A ∈ I ⇐ A ⊆ B ,B ∈ I .1 ‫כך‬ x ∈ DC ‫קיים‬ ‫אזי‬ ,|C| < |D|‫ו־‬ ,C, D ∈ I .2 (C ∪ {x}) ∈ I‫ש־‬ .ω : S → R+ ‫פונקציה‬ ‫נתונה‬ .‫מרבי‬ ω (A) ‫עם‬ A ∈ I ‫חישוב‬ :‫המטרה‬ ‫למטרואידים‬ ‫דוגמאות‬ 1.4 ‫הוקטורי‬ ‫המטרואיד‬ 1.4.1 .A = 0 ,F ‫שדה‬ ‫מעל‬ ‫מטריצה‬ A ‫תהא‬ .A ‫המטריצה‬ ‫של‬ ‫של‬ ‫השורה‬ ‫וקטורי‬ ‫קבוצת‬ ‫־‬ S .‫לינארית‬ ‫תלוים‬ ‫הלתי‬ ‫הם‬ ⇔ I ‫וקטורים‬ ‫קבוצת‬ ‫הוקטורי‬ ‫המטרואיד‬ ‫זהו‬ ‫הגרפי‬ ‫המטרואיד‬ 1.4.2 .S = E ‫נגדיר‬ .E = ∅ ‫עם‬ ‫מכוון‬ ‫לא‬ ‫גרף‬ G = (V, E) ‫יהא‬ .‫מעגלים‬ ‫אין‬ B‫ב־‬ ⇔ (B ⊆ E) B ∈ I ::‫הבא‬ ‫באופן‬ I ‫נגדיר‬ ‫הגרפי‬ ‫המטרואיד‬ ‫זהו‬ ‫קבוצה‬ ‫של‬ ‫תת־קבוצות‬ 1.4.3 .|A| = n > 0 ‫כאשר‬ A ‫קבוצה‬ ‫לנו‬ ‫ויש‬ ‫נניח‬ ‫מגודל‬ A ‫של‬ ‫הקבוצות‬ ‫תתי‬ ‫כל‬ ‫־‬ n ≥ k > 0 ‫נבחר‬ ‫אם‬ ‫אזי‬ .‫מטרואיד‬ ‫הן‬ k .(n, k ∈ N) II ‫חלק‬ ‫בגרפים‬ ‫זרימות‬ a 12 GG 10 !! b 20 00 9 ÑÑ s 16 cc 15 11 t c 4 …… 14 GG d 4 dd7 yy s, t ‫מיוחדים‬ ‫קודקודים‬ ‫שני‬ ‫ובו‬ G = (V, E) ‫מכוון‬ ‫גרף‬ ‫נתון‬ . (s = t) ‫המוגדרת‬ ‫קיבלות‬ ‫פונקציית‬ ‫־‬ 2 c : E → R+ ‫נתונה‬ ‫כמו־כן‬ .‫הצלעות‬ ‫על‬ ‫את‬ ‫המקיימת‬ f : V × V → R ‫פונקציה‬ ‫היא‬ ‫בגרף‬ ‫זרימה‬ :‫הבאות‬ ‫הדרישות‬ .u, v ∈ V ‫לכל‬ f (u, v) ≤ c (u, v) :‫קיבולי‬ ‫חסם‬ • .u, v ∈ V ‫לכל‬ f (u, v) = −f (v, u) :‫אנטיסימטריה‬ • ‫לכל‬ u∈V f (u, v) = 0 :‫החומר‬ ‫שימור‬ • u ∈ V {s, t} :‫הבא‬ ‫באופן‬ ‫מוגדר‬ f ‫הזרימה‬ ‫ערך‬ |f| = v∈V f (s, v) .‫מרבי‬ |f| ‫עם‬ f ‫זרימה‬ ‫לחשב‬ :‫המטרה‬ .c : V × V → R+ ∪ {0} :‫הבא‬ ‫האופן‬c ‫את‬ ‫נרחיב‬2 .c (u, v) = 0 :‫מתקיים‬ (u, v) /∈ V ‫המקיים‬ u, v ∈ V ‫לכל‬ ‫כאשר‬ 2
  • 3.
    ‫פורד־פלקרסון‬ ‫שיטת‬ 2 :‫למעלה‬‫שישנו‬ ‫הגרף‬ ‫על‬ ‫הבאה‬ ‫הזרימה‬ ‫על‬ ‫נסתכל‬ :‫למשל‬ a 12/12 GG 3/10 !! b 12/20 00 0/9 ÑÑ s 12/16 cc 11/15 11 t c 3/4 …… 11/14 GG d 4/4 dd0/7 yy y‫ה־‬ ‫מתוך‬ x ‫מזרימים‬ ‫שאנחנו‬ ‫היא‬ x/y ‫של‬ ‫המשמעות‬ ‫כשאר‬ .x = 0‫ש־‬ ‫לכך‬ ‫שקול‬ ‫זה‬ ‫אזי‬ y ‫רק‬ ‫כתוב‬ ‫אם‬ ‫המותרים‬ ‫כמה‬ ‫־‬ ‫קודקודים‬ ‫שני‬ ‫בין‬ ‫המאזן‬ ‫בעצם‬ ‫היא‬ f .‫הרווחנו/הפסדנו‬ ‫כי‬ ‫ונניח‬ ‫בסיסיות‬ ‫מדוגמאות‬ ‫נתחיל‬ ‫זה‬ ‫את‬ ‫להבין‬ ‫בשביל‬ :3 ‫כלשהו‬ ‫נזל‬ ‫של‬ ‫ליטרים‬ ‫של‬ ‫זרימה‬ ‫כמות‬ ‫על‬ ‫מדובר‬ o 3/10 p 4/5 …… m 8/12 !! n 2/3 …… ‫שב־‬ ‫נראה‬ ‫הזרימה‬ ‫כמות‬ ‫על‬ ‫נסתכל‬ ‫אם‬ ‫כי‬ ‫־‬ f (m, n) = 6 ,‫ליטרים‬ 6 ‫בסה"כ‬ ‫לנו‬ ‫זורמים‬ m n ‫ליטרים‬ 6 ‫של‬ ‫זרימה‬ ‫לנו‬ ‫יש‬ ‫אם‬ ‫כי‬ f (n, m) = −6 ‫ואילו‬ .‫ליטרים‬ −6 ‫של‬ ‫היא‬ ‫הזרימה‬ ‫השני‬ ‫בכיוון‬ ‫אזי‬ ‫אחד‬ ‫בכיוון‬ .f (o, p) = −1, f (p, o) = 1 :‫ולכן‬ a b ‫בין‬ ‫זורמים‬ ‫ליטרים‬ ‫כמה‬ ‫זה‬ ‫בפועל‬ ‫לנו‬ ‫שמשנה‬ ‫מה‬ .f (a, b) ‫את‬ ‫לחשב‬ ‫כדי‬ :‫שלמעלה‬ ‫לדוגמא‬ ‫נחזור‬ ‫כעת‬ .f (c, s) = −11 ,f (d, t) = 4 ,f (d, s) = 0 ,f (d, a) = 0 .f (b, d) = −7 ,f (d, c) = −11 .f (x, x) = 0 ‫מתקיים‬ x ∈ V ‫לכל‬ 1.10 ‫טענה‬ ‫מכוניות‬ ‫כמות‬ ‫כמו‬ ‫להזרים‬ ‫שניתן‬ ‫אחר‬ ‫דבר‬ ‫כל‬ ‫להיות‬ ‫יכול‬ ‫שזה‬ ‫למרות‬3 ...'‫וכו‬ ‫בכביש‬ :‫נגדיר‬ X, Y ⊆ V ‫לכל‬ :‫סימון‬ f (X, Y ) = x∈X,y∈Y f (x, y) :‫טענות‬ .∀X ⊆ V ,f (X, X) = 0 .1 .f (X, Y ) = −f (Y, X) .2 ‫אם‬ f (X ∪ Y, Z) = f (X, Z) + f (Y, Z) .3 .X ∩ Y = ∅‫ו־‬ X, Y, Z ⊆ V = |f| ‫כלומר‬ ,t‫מ־‬ ‫שיצא‬ ‫מה‬ ‫סך‬ ‫)זהו‬ |f| = f (V, {t}) .4 .(t‫מ־‬ ‫שיוצא‬ ‫למה‬ ‫פורד־פלקרסון‬ ‫שיטת‬ 2 :‫איטרטיבית‬ ‫בשיטה‬ ‫עובדים‬ :‫כזה‬ ‫הוא‬ ‫הרעיון‬ .(0 ‫זהותית‬ ‫)פונקציה‬ f ≡ 0‫מ־‬ ‫נתחיל‬ ‫שבה‬ t‫ל־‬ s‫מ־‬ ‫מסילה‬ :"‫מרחיבה‬ ‫"מסילה‬ ‫מחשבים‬ ‫שלב‬ ‫בכל‬ .‫להזרים‬ ‫עוד‬ ‫ניתן‬ .‫מרחיבות‬ ‫מסילות‬ ‫יותר‬ ‫מוצאים‬ ‫שלא‬ ‫עד‬ ‫זאת‬ ‫עושים‬ ‫השיורי‬ ‫בגרף‬ (‫שלב‬ ‫)בכל‬ ‫מחשבים‬ ‫המרחיבה‬ ‫המסילה‬ ‫את‬ :‫הבא‬ ‫באופן‬ ‫המוגדר‬ (‫שנשאר‬ ‫מה‬ ‫של‬ ‫)במובן‬ ,G = (V, Ef ) Ef =    (u, v) ∈ V × V ; c (u, v) − f (u, v) cf > 0    .(u, v) ‫הצלע‬ ‫של‬ ‫השיורית‬ ‫הקיבולת‬ = cf (u, v) 3
  • 4.
    :‫דוגמאות‬ 2.1 ‫פורד־פלקרסון‬‫שיטת‬ 2 :‫דוגמאות‬ 2.1 :‫הבא‬ ‫הגרף‬ ‫על‬ ‫נסתכל‬ s 1 GG 1 dd a 1 GG 1 00 b 1 GG t :‫הבאה‬ ‫הזרימה‬ ‫ועל‬ s 1/1 CQ 1 dd a 1/1 CQ 1 00 b 1/1 CQ t ‫שהעברנו־‬ ‫ממה‬ ‫יותר‬ ‫להעביר‬ ‫ניתן‬ ‫לא‬ ‫־‬ ‫שזהו‬ ‫לראות‬ ‫ניתן‬ .1 ‫סה"כ‬ "‫"להתחרט‬ ‫הוא‬ ‫שיטה‬ ‫אותה‬ ‫ע"פ‬ ,‫לעשות‬ ‫שניתן‬ ‫מה‬ ,‫כעת‬ ‫הופכים‬ ‫אנחנו‬ ‫לכן‬ ,‫חזרה‬ ‫שהעברנו‬ ‫מה‬ ‫את‬ ‫להחזיר‬ ‫ולאפשר‬ :‫שהעברנו‬ ‫הקיבולת‬ ‫אותה‬ ‫את‬ ‫ומחזירים‬ ‫הצינור‬ ‫כיוון‬ ‫את‬ ‫אזי‬ a 7/10 GG b :‫כזה‬ ‫במצב‬ ‫היינו‬ ‫למשל‬ ‫אם‬ ,‫כלומר‬ ,‫שהזרמנו‬ ‫מה‬ ‫את‬ "‫"להחזיר‬ ‫האפשרות‬ ‫לנו‬ ‫שתהיה‬ ‫נרצה‬ ‫כאשר‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫כעת‬ ‫־‬ a 3 BB b 7 jj :‫כך‬ ‫יראה‬ ‫הדבר‬ ‫לקנו‬ ‫קח‬ ‫ולשם‬ ,b‫ל־‬ a‫מ־‬ ‫שהזרמנו‬ ‫מה‬ ‫את‬ ‫להחזיר‬ ‫האפשרות‬ :cf ‫הוא‬ ‫שקיבלנו‬ ‫מה‬ ‫דיוק‬ ‫וליתר‬ ,c (a, b) ‫מהקיבולת‬ .(‫למעלה‬ ‫)כמתואר‬ cf (a, b) = c (a, b) − f (a, b) ‫מסילה‬ ‫נבחר‬ ‫אזי‬ ‫־‬ t‫ל־‬ s‫מ־‬ ‫זרימה‬ ‫שוב‬ ‫למצוא‬ ‫נצטרך‬ ‫כעת‬ ( CQ ‫ב־‬ ‫תסומן‬ ‫)היא‬ ‫דרכה‬ ‫ונעבור‬ ‫כלשהי‬ s oo 0/1 1/1 `h a ks 1/1 1/1 &4 b oo 1 t ‫האפשרות‬ ‫לגבי‬ ‫מקודם‬ ‫כמו‬ ‫הדבר‬ ‫אותו‬ ‫את‬ ‫נעשה‬ ‫פעם‬ ‫ושוב‬ :‫שהעברנו‬ ‫מה‬ ‫על‬ ‫להתחרט‬ s oo 1 ”” 1 a 1 GG ÐÐ 1 b oo 1 t s‫מ־‬ ‫מסילות‬ ‫להעביר‬ ‫אפשרות‬ ‫יותר‬ ‫אין‬ :‫הבא‬ ‫לדבר‬ ‫לב‬ ‫נשים‬ !‫שסיימנו‬ ‫הוא‬ ‫הדבר‬ ‫פירוש‬ ‫־‬ t‫ל־‬ ‫איך‬ ‫־‬ ‫שעשינו‬ ‫מה‬ ‫כל‬ ‫את‬ ‫לסכם‬ ‫הוא‬ ‫לעשות‬ ‫שצריך‬ ‫מה‬ ,‫כעת‬ ?‫זאת‬ ‫עושים‬ :‫הכמות‬ ‫מבחינת‬ .(‫)פעמיים‬ t‫ל־‬ s‫מ־‬ 1 ‫העברנו‬ ‫פעם‬ ‫כל‬ .‫היותר‬ ‫לכל‬ 2 ‫להעביר‬ ‫ניתן‬ ‫לכן‬ :‫כמות‬ ‫אותה‬ ‫את‬ ‫להזרים‬ ‫איך‬ ‫מבחינת‬ ,‫בגרף‬ ‫קודקודים‬ ‫שני‬ ‫כל‬ ‫בין‬ ‫סה"כ‬ ‫העברנו‬ ‫כמה‬ ‫מחשבים‬ :‫למשל‬ ‫לכן‬ ‫הפוך‬ ‫בכיוון‬ ‫פעם‬ ‫כל‬ 1 ‫העברנו‬ b‫ל־‬ a ‫בין‬ ‫כי‬ ‫לב‬ ‫נשים‬ .0 ‫שם‬ ‫העברנו‬ ‫בסך־הכל‬ ‫ולכן‬ ,→ :‫בכיוון‬ ‫אחת‬ ‫פעם‬ ‫רק‬ 1 ‫העברנו‬ ‫למשל‬ t‫ל־‬ b ‫בין‬ .→ ‫בכיוון‬ 1 ‫רק‬ ‫יעבור‬ t‫ל־‬ b ‫בין‬ (‫)המרבית‬ ‫הסופית‬ ‫בזרימה‬ ‫נוזל‬ ‫אותו‬ ‫את‬ ‫העברנו‬ ‫שדרכן‬ ‫הצלעות‬ ‫כל‬ ‫עבור‬ ‫הלאה‬ ‫וכך‬ .(‫)למשל‬ 4
  • 5.
    :‫דוגמאות‬ 2.1‫פורד־פלקרסון‬ ‫שיטת‬2 :‫הינה‬ ‫המרבית‬ ‫הזרימה‬ ,‫לכן‬ s 1/1 CQ 1/1 `h a 0/1 GG 1/1 &4 b 1/1 CQ t :‫מורכבת‬ ‫יותר‬ ‫טיפה‬ ‫דוגמא‬ ‫על‬ ‫נסתכל‬ ‫כעת‬ b 3 (( a 2 WW 4 33 1 BB t s 3 ff 5 BB c 7 —— 2 ff .‫הדבר‬ ‫אותו‬ ‫נשאר‬ ‫הגרף‬ ‫־‬ f ≡ 0‫מ־‬ ‫נתחיל‬ ‫את‬ ‫דרכה‬ ‫להעביר‬ ‫וננסה‬ t‫ל־‬ s‫מ־‬ ‫כלשהי‬ ‫מסילה‬ ‫נבחר‬ :(2 ‫יהיה‬ ‫שלנו‬ ‫)שבמקרה‬ ‫המקסימום‬ b 3 (( a 2 WW 2/4 )7 1 BB t s 2/3 bp 5 BB c 7 —— 2/2 bp ‫עם‬ ,‫דרכן‬ ‫שהזרמנו‬ ‫לאלה‬ ‫ההפוך‬ ‫בכיוון‬ ‫צלעות‬ ‫נעביר‬ ‫כעת‬ ‫ולכן‬ c‫ל־‬ a ‫בין‬ ‫מעגל‬ ‫ישנו‬ ‫כי‬ ‫לב‬ ‫נשים‬ .‫שהזרמנו‬ ‫הכמות‬ ‫אותה‬ ‫ערכי‬ ‫את‬ ‫לעדכן‬ ‫הוא‬ ‫שצריך‬ ‫מה‬ ‫אלא‬ ‫צלעות‬ ‫להוסיף‬ ‫איך‬ ‫אין‬ ‫כמו‬ ,‫שהעברנו‬ ‫הכמות‬ ‫את‬ ‫לשניה‬ ‫מאחת‬ "‫)"להעביר‬ ‫הצלעות‬ :(‫הבאה‬ ‫בדיאגרמה‬ ‫שמופיע‬ b 3 (( a 2 WW 0/2 33 0/2 1 BB t s 0/1 ff 5 BB c 9 —— ÒÒ 2 5
  • 6.
    :‫דוגמאות‬ 2.1 ‫פורד־פלקרסון‬‫שיטת‬ 2 s‫מ־‬ ‫מסילות‬ ‫ישנן‬ ‫ועדיין‬ ‫היות‬ ‫בגרף‬ ‫זרימה‬ ‫שוב‬ ‫נבצע‬ ‫וכעת‬ :t‫ל־‬ b 1/3 $2 a 1/2 Sa 2 33 2 1 BB t s 1/1 bp 5 BB c 9 —— ÒÒ 2 ‫ההפוך‬ ‫בכיוון‬ ‫רק‬ ‫שהעברנו‬ ‫הקיבולת‬ ‫עם‬ ‫הצלעות‬ ‫את‬ ‫ונוסיף‬ :‫החדשה‬ ‫הזרימה‬ ‫את‬ ‫נוסיף‬ + b 2 99 1 ×× a 1 pp 2 33 3 1/1 8F t 1 gg s 1/5 8F c 1/9 “e ÒÒ 2 ‫חדשה‬ ‫זרימה‬ ‫ונוסיף‬ ‫המתאימות‬ ‫הצלעות‬ ‫את‬ ‫נוסיף‬ ‫כעת‬ :‫בהתאם‬ b 1/2 5C 1 ×× a 1/1 ft 3 33 3 jj 1 t 1 gg s 1/4 GU c 1/8 “e ÒÒ 2 1 mm ‫־‬ ‫שקיבלנו‬ ‫למה‬ ‫לב‬ ‫ונשים‬ b 1 99 2 ×× a 4 33 3 jj 1 t 2 gg s 3 QQ c 7 —— ÒÒ 2 2 mm !‫סיימנו‬ ‫אזי‬ ,t‫ל־‬ s‫מ־‬ ‫מסילות‬ ‫יותר‬ ‫אין‬ !‫זהו‬ :‫הסופית‬ ‫הזרימה‬ ‫את‬ ‫נחשב‬ ‫כעת‬ ‫)עוד‬ ‫הפעמים‬ ‫בשאר‬ ‫ואז‬ 2 ‫הראשונה‬ ‫)בפעם‬ 5 ‫העברנו‬ ‫סהכ‬ ‫בצלעותיו‬ ‫ונעביר‬ 4 ‫המקורי‬ ‫הגרף‬ ‫את‬ ‫ניקח‬ ‫עכשיו‬ .(1 (‫שלוש‬ :‫צלע‬ ‫בכל‬ ‫שהעברנו‬ ‫כמה‬ ‫שהעברנו‬ ‫ממה‬ ‫מתקזז‬ ‫זה‬ ‫אזי‬ ,‫ההפוך‬ ‫בכיוון‬ ‫חדשה‬ ‫בצלע‬ ‫העברנו‬ ‫אם‬ ‫גם‬4 .‫המקורית‬ ‫בצלע‬ 6
  • 7.
    ‫והחתך‬ ‫השטף‬ ‫משפט‬3 b 2/3 (( a 2/2 WW 0/4 33 1/1 BB t s 3/3 ff 2/5 BB c 0/7 —— 2/2 ff .f ‫זרימה‬ ‫עם‬ ‫זרימה‬ ‫רשת‬ G = (V, E) ‫תהא‬ 2.1 ‫טענה‬ .‫השיורית‬ ‫הרשת‬ ‫־‬ Gf :‫ומתקיים‬ G‫ב־‬ ‫זרימה‬ ‫היא‬ f + f ‫אזי‬ .Gf ‫ב־‬ ‫זרימה‬ ‫־‬ f |f + f | = |f| + |f | ‫אינה‬ f ‫אזי‬ Gf ‫ב־‬ ‫מרחיבה‬ ‫מסילה‬ ‫קיימת‬ ‫אם‬ 2.2 ‫מסקנה‬ ‫מסילות‬ ‫לנמצוא‬ ‫ניתן‬ ‫עדיין‬ ‫אם‬ ,‫)כלומר‬ .‫מקסימלית‬ ‫זרימה‬ .(‫מקסימלית‬ ‫זרימה‬ ‫אינה‬ f ‫אזי‬ ,‫מקודם‬ ‫שהראנו‬ ‫כמו‬ ,t‫ל־‬ s‫מ־‬ ‫ההפוך‬ ‫בכיוון‬ ‫גם‬ ‫נכון‬ ‫זה‬ :‫כלומר‬ ,‫ומספיק‬ ‫הכרחי‬ ‫תנאי‬ ‫גם‬ ‫זהו‬ .‫מקסימלית‬ f ‫אזי‬ Gf ‫ב־‬ ‫מרחיבות‬ ‫מסילות‬ ‫אין‬ ‫אם‬ ‫־‬ ‫קבוצת‬ ‫של‬ ‫חלוקה‬ ‫הוא‬ cut (S, T ) ‫חתך‬ 2.3 ‫הגדרה‬ :V ‫הקודקודים‬ .t ∈ T ,s ∈ S‫ש־‬ ‫כך‬ S · ∪ T = V .f (s, t) ‫הוא‬ cut (S, T) ‫דרך‬ ‫העובר‬ ‫השטף‬ :‫היא‬ cut (S, T) ‫החתך‬ ‫של‬ ‫הקיבולת‬ c (S, T) = x∈S y∈T c (x, y) ,‫כלומר‬ ‫־‬ f (S, T) = |f| :‫מתקיים‬ cut (S, T) ‫לכל‬ 2.4 ‫טענה‬ .s‫מ־‬ ‫יצא‬ ‫כמה‬ ‫למדוד‬ ‫נוכל‬ ‫תמיד‬ ‫נחתוך‬ ‫היכן‬ ‫משנה‬ ‫לא‬ :‫מתקיים‬ cut (S, T) ‫לכל‬ 2.5 ‫טענה‬ f (S, T ) ≤ c (S, T ) ‫והחתך‬ ‫השטף‬ ‫משפט‬ 3 .t ‫ובור‬ s ‫מקור‬ ‫עם‬ G = (V, E) ‫ברשת‬ ‫זרימה‬ f ‫תהא‬ :‫שקולים‬ ‫הבאים‬ ‫התנאים‬ .G‫ב־‬ ‫מקסימלית‬ ‫זרימה‬ ‫היא‬ f .1 .‫מרחיבות‬ ‫מסילות‬ ‫אין‬ Gf ‫ב־‬ .2 .‫כלשהו‬ cut (S, T) ‫חתך‬ ‫עבור‬ |f| = cut (S, T) .3 7