סיכום על מטרואידים וזרימות בגרפים
Transcript of סיכום על מטרואידים וזרימות בגרפים
משוכלל מטרואיד הגדרה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 666/∈ 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 6= ∅
ש: כך S של ריק) (לא תת־קבוצות אוסף ־ I
.A ∈ I ⇐ A ⊆ B ,B ∈ I .1
כך x ∈ D\C קיים אזי ,|C| < |D|ו־ ,C,D ∈ I .2(C ∪ {x}) ∈ Iש־
.ω : S → R+ פונקציה נתונה
מרבי. ω (A) עם A ∈ I חישוב המטרה:
למטרואידים דוגמאות 1.4
הוקטורי המטרואיד 1.4.1
.A 6= 0 ,F שדה מעל מטריצה A תהא
.A המטריצה של של השורה וקטורי קבוצת ־ S
לינארית. תלוים הלתי הם ⇔ I 3 וקטורים קבוצת
הוקטורי המטרואיד זהו
הגרפי המטרואיד 1.4.2
.S = E נגדיר .E 6= ∅ עם מכוון לא גרף 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 חלק
בגרפים זרימות
a12 //
10
��
b
20
��9
��
s
16
??
15
��
t
c
4
UU
14// d
4
@@7
OO
s, t מיוחדים קודקודים שני ובו G = (V,E) מכוון גרף נתון. (s 6= t)
המוגדרת קיבלות פונקציית ־ 2c : 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
למעלה: שישנו הגרף על הבאה הזרימה על נסתכל למשל:
a12/12 //
3/10
��
b
12/20
��0/9
��
s
12/16
??
11/15
��
t
c
3/4
UU
11/14// d
4/4
@@0/7
OO
yה־ מתוך x מזרימים שאנחנו היא x/y של המשמעות כשאר.x = ש־0 לכך שקול זה אזי y רק כתוב אם המותרים
כמה ־ קודקודים שני בין המאזן בעצם היא fהרווחנו/הפסדנו.
כי ונניח בסיסיות מדוגמאות נתחיל זה את להבין בשבילכלשהו3: נזל של ליטרים של זרימה כמות על מדובר
o
3/10
��p
4/5
UUm
8/12
��n
2/3
UU
שב־ נראה הזרימה כמות על נסתכל אם כי ־ f (m,n) = 6ליטרים, 6 בסה"כ לנו זורמים m 99K n
ליטרים 6 של זרימה לנו יש אם כי f (n,m) = −6 ואילוליטרים. −6 של היא הזרימה השני בכיוון אזי אחד בכיוון
.f (o, p) = −1, f (p, o) = 1 ולכן:a 99K 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∈Yf (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
הבא: הגרף על נסתכל
s1 //
1
@@a
1 //
1
��b
1 // t
הבאה: הזרימה ועל
s1/1 +3
1
@@a
1/1 +3
1
��b
1/1 +3 t
שהעברנו־ ממה יותר להעביר ניתן לא ־ שזהו לראות ניתן.1 סה"כ
"להתחרט" הוא שיטה אותה ע"פ לעשות, שניתן מה כעת,הופכים אנחנו לכן חזרה, שהעברנו מה את להחזיר ולאפשר
שהעברנו: הקיבולת אותה את ומחזירים הצינור כיוון את
אזי a7/10 // b כזה: במצב היינו למשל אם כלומר,
שהזרמנו, מה את "להחזיר" האפשרות לנו שתהיה נרצה כאשר
את לנו יש כעת ־ a3
**b
7
jj כך: יראה הדבר
לקנו קח ולשם ,bל־ aמ־ שהזרמנו מה את להחזיר האפשרות:cf הוא שקיבלנו מה דיוק וליתר ,c (a, b) מהקיבולת
למעלה). (כמתואר cf (a, b) = c (a, b)− f (a, b)
מסילה נבחר אזי ־ tל־ sמ־ זרימה שוב למצוא נצטרך כעת( +3 ב־ תסומן (היא דרכה ונעבור כלשהי
s oo0/1
1/1
<Da ks
1/1
1/1
�"b oo
1t
האפשרות לגבי מקודם כמו הדבר אותו את נעשה פעם ושובשהעברנו: מה על להתחרט
s oo 1
^^
1
a1 //
��
1
b oo1
t
sמ־ מסילות להעביר אפשרות יותר אין הבא: לדבר לב נשיםשסיימנו! הוא הדבר פירוש ־ tל־
איך ־ שעשינו מה כל את לסכם הוא לעשות שצריך מה כעת,זאת? עושים
הכמות: מבחינת(פעמיים). tל־ sמ־ 1 העברנו פעם כל
היותר. לכל 2 להעביר ניתן לכןכמות: אותה את להזרים איך מבחינת
בגרף, קודקודים שני כל בין סה"כ העברנו כמה מחשביםלמשל:
לכן הפוך בכיוון פעם כל 1 העברנו bל־ a בין כי לב נשים.0 שם העברנו בסך־הכל
ולכן ,→ בכיוון: אחת פעם רק 1 העברנו למשל tל־ b בין.→ בכיוון 1 רק יעבור tל־ b בין (המרבית) הסופית בזרימהנוזל אותו את העברנו שדרכן הצלעות כל עבור הלאה וכך
(למשל).
4
דוגמאות: פורד־פלקרסון2.1 שיטת 2
הינה: המרבית הזרימה לכן,
s1/1 +3
1/1
<Da
0/1 //
1/1
�"b
1/1 +3 t
מורכבת: יותר טיפה דוגמא על נסתכל כעת
b
3
��
a
299
4
!!
1
**t
s
3
BB
5** c
7
aa
2
BB
הדבר. אותו נשאר הגרף ־ f ≡ מ־0 נתחיל
את דרכה להעביר וננסה tל־ sמ־ כלשהי מסילה נבחר:(2 יהיה שלנו (שבמקרה המקסימום
b
3
��
a
299
2/4
�%
1
**t
s
2/3
>F
5** c
7
aa
2/2
>F
עם דרכן, שהזרמנו לאלה ההפוך בכיוון צלעות נעביר כעתולכן cל־ a בין מעגל ישנו כי לב נשים שהזרמנו. הכמות אותהערכי את לעדכן הוא שצריך מה אלא צלעות להוסיף איך איןכמו שהעברנו, הכמות את לשניה מאחת ("להעביר" הצלעות
הבאה): בדיאגרמה שמופיע
b
3
��
a
299
0/2
!!
0/2
��
1
**t
s
0/1
BB
5** c
9
aa
��
2
5
דוגמאות: 2.1 פורד־פלקרסון שיטת 2
sמ־ מסילות ישנן ועדיין היות בגרף זרימה שוב נבצע וכעת:tל־
b
1/3
�
a
1/25=
2
!!
2
��
1
**t
s
1/1
>F
5** c
9
aa
��
2
ההפוך בכיוון רק שהעברנו הקיבולת עם הצלעות את ונוסיףהחדשה: הזרימה את נוסיף +
b
2
''
1
��a
1
FF
2
!!
3
��
1/1
&.t
1
gg
s
1/5 &. c
1/9
]e
��
2
חדשה זרימה ונוסיף המתאימות הצלעות את נוסיף כעתבהתאם:
b
1/2
#+
1
��a
1/1
BJ
3
!!
3
��
jj1
t
1
gg
s
1/4/7 c
1/8
]e
��
2
1mm
־ שקיבלנו למה לב ונשים
b
1
''
2
��a
4
!!
3
��
jj1
t
2
gg
s
333 c
7
aa
��
2
2mm
סיימנו! אזי ,tל־ sמ־ מסילות יותר אין זהו!
הסופית: הזרימה את נחשב כעת
(עוד הפעמים בשאר ואז 2 הראשונה (בפעם 5 העברנו סה"כבצלעותיו ונעביר המקורי4 הגרף את ניקח עכשיו .(1 שלוש)
צלע: בכל שהעברנו כמה
שהעברנו ממה מתקזז זה אזי ההפוך, בכיוון חדשה בצלע העברנו אם 4גם
המקורית. בצלע
6
והחתך השטף משפט 3
b
2/3
��
a
2/299
0/4
!!
1/1
**t
s
3/3
BB
2/5 ** c
0/7
aa
2/2
BB
.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