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

7
מטרואיד משוכלל1.1 הגדרה1 בגרפים וזרימות מטרואידים(מתוך הקורס באלגוריתמים) חלק מטרואידים הגדרה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 xA ω (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

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

Page 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 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

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

בקצרה ההגדרה 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

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

פורד־פלקרסון שיטת 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

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

דוגמאות: 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

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

דוגמאות: פורד־פלקרסון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

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

דוגמאות: 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

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

והחתך השטף משפט 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