אלגוריתמים נבחרים בתורת הגרפים

25
תתתתתתתתתת תתתתתת תתתתת תתתתתת תתתתת תתתתתת

Upload: cwen

Post on 21-Jan-2016

92 views

Category:

Documents


0 download

DESCRIPTION

אלגוריתמים נבחרים בתורת הגרפים. זרימה ברשתות. זרימה ברשתות. רשת זרימה: גרף מכוון סופי G=(V, E) (לשם נוחות נניח ש- G ללא לולאות או קשתות מקבילות) . שני קודקודים s (מקור) ו- t (בור). פונקצית קיבול: C: E → Z + - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: אלגוריתמים נבחרים בתורת הגרפים

אלגוריתמים נבחרים בתורת הגרפים

זרימה ברשתות

Page 2: אלגוריתמים נבחרים בתורת הגרפים

זרימה ברשתות

:רשת זרימה

ללא G(לשם נוחות נניח ש- G=(V, E)גרף מכוון סופי •

.לולאות או קשתות מקבילות)

(בור).t (מקור) ו- s שני קודקודים•

+C: E → Z פונקצית קיבול:•

לכל קשת מותאם מספר שלם אי-שלילי המציין את קיבול הקשת – מהי •

. הזרימה המקסימלית שניתן להעביר דרך הקשת

Page 3: אלגוריתמים נבחרים בתורת הגרפים

זרימה ברשתות

המקיימת: +f : f: E → R פונקצית זרימהמציאת הבעיה:

1 .0≤f(e)≤c(e)

: הזרימה הנכנסת לצומת = הזרימה היוצאת t ו – s. לכל קודקוד מלבד 2

ממנה

v קבוצת הקשתות היוצאת מ- β(v) ו- v קבוצת הקשתות הנכנסות ל- α(v) אם

– הזרימה הכוללת:F. מיקסום 3

)( )(

0)()(:},{ve ve

efeftsVe

)( )(

)()(te te

efefF

Page 4: אלגוריתמים נבחרים בתורת הגרפים

Ford and Fulkerson האלגוריתם של

למציאת זרימה מקסימלית ברשת

תיאור אינטואיטיבי:

. מוצאים מסלול כלשהו ממקור ליעד אשר דרכו ניתן להעביר 1

זרימה. מסמנים את הצמתים המשתתפים במסלול.

. בוחרים במסלול זה קשת אשר קיבולה מינימלי ומעבירים 2

במסלול זה זרימה כגודל קיבול מינימלי זה.

*. אם בכל מסלול אפשרי מהמקור ליעד יש לפחות קשת רוויה3

.1אחת – הפסק, אחרת חזור ל-

קשת שעבורה פונקצית הזרימה שווה לקיבול הקשת.קשת רוויה - *

Page 5: אלגוריתמים נבחרים בתורת הגרפים

Ford and Fulkerson האלגוריתם של

למציאת זרימה מקסימלית ברשת

חקרו את פעולת האלגוריתם באמצעות האפלט הבא:http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.shtml

Page 6: אלגוריתמים נבחרים בתורת הגרפים

Ford and Fulkerson האלגוריתם של

למציאת זרימה מקסימלית ברשת

לכל קשת)x,y(:אתחל

f(x,y) = 0

f(y,x) = 0 מצא זרימה התחלתיתf כלשהי ממקור sלבור t .כל עוד קיים מסלול משפר p מהמקור sלבור t והשיפור

:C(p)שניתן להשיג הוא

: p במסלול המשפר)x,y(לכל קשת

f(x,y) = f(x,y) + C(p)

f(y,x) = f(y,x) - C(p)

Page 7: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו זרימה מקסימלית c(e), f(e) סימון על הקשתות:

A B12 ,0

ts

C D

7 ,0

10 ,0

3 ,0

10 ,0

4 ,0

15 ,0

5 ,0

e3

e7

e8

e1

e2

e4e5

e6

Page 8: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו זרימה מקסימלית c(e), f(e) סימון על הקשתות:

יחידות. 4, הגדלת הזרימה ב- s-C-D-A-B-t המסלול:

A B12 ,4

ts

C D

7 ,4

10 ,0

3 ,0

10 ,4

4 ,4

15 ,0

5 ,4

e3

e7

e8

e1

e2

e4e5

e6

Page 9: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו זרימה מקסימלית c(e), f(e) סימון על הקשתות:

יחידות. 3, הגדלת הזרימה ב- s-A-B-C-D-t המסלול:

A B12 ,7

ts

C D

7 ,4

10 ,3

3 ,3

10 ,7

4 ,4

15 ,3

5 ,4

e3

e7

e8

e1

e2

e4e5

e6

Page 10: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו זרימה מקסימלית c(e), f(e) סימון על הקשתות:

יחידות. 3, הגדלת הזרימה ב- s-A-B-t המסלול:

A B12 ,10

ts

C D

7 ,7

10 ,3

3 ,3

10 ,7

4 ,4

15 ,6

5 ,4

e3

e7

e8

e1

e2

e4e5

e6

Page 11: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו זרימה מקסימלית c(e), f(e) סימון על הקשתות:

יחידות. 4, הגדלת הזרימה ב- s-A-D-t המסלול: e4 .))שימו לב ל-

A B12 ,10

ts

C D

7 ,7

10 ,7

3 ,3

10 ,7

4 ,4

15 ,10

5 ,0

e3

e7

e8

e1

e2

e4e5

e6

Page 12: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו זרימה מקסימלית c(e), f(e) סימון על הקשתות:

לא ניתן למצוא מסלולים המגדילים את הזרימה. .14הזרימה =

A B12 ,10

ts

C D

7 ,7

10 ,7

3 ,3

10 ,7

4 ,4

15 ,10

5 ,0

e3

e7

e8

e1

e2

e4e5

e6

Page 13: אלגוריתמים נבחרים בתורת הגרפים

חתך

וראש S : קבוצת כל הצלעות בעלות זנב ב- חתך

ב- .

:t מ- sחתך המפריד את

:t מ- sקיבולת חתך המפריד את

bijקבולת קשת vi-vj כאשר vi -ב X -ו vj . -ב

_

S

),(_

XX

),(_

SS

ji

ij XXCb,

_

),(

_

X

Page 14: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – מצאו חתך מינימלי

A B12 ,0

ts

C D

7 ,0

10 ,0

3 ,0

10 ,0

4 ,0

15 ,0

5 ,0

e3

e7

e8

e1

e2

e4e5

e6

Page 15: אלגוריתמים נבחרים בתורת הגרפים

דוגמא – חתך מינימלי

A B12 ,0

ts

C D

7 ,0

10 ,0

3 ,0

10 ,0

4 ,0

15 ,0

5 ,0

e3

e7

e8

e1

e2

e4e5

e6

Page 16: אלגוריתמים נבחרים בתורת הגרפים

.זרימה מקסימליתדוגמא – בגרף הבא מופיעה המצוייר? החתך המינימלימהי קבולת

A B12 ,10

ts

C D

7 ,7

10 ,7

3 ,3

10 ,7

4 ,4

15 ,10

5 ,0

e3

e7

e8

e1

e2

e4e5

e6

Page 17: אלגוריתמים נבחרים בתורת הגרפים

משפט

בכל רשת:

שווה לקיבולת הזרימה המקסימלית ערך

. החתך המינימלי

Page 18: אלגוריתמים נבחרים בתורת הגרפים

מקורות נוספים

http://www.cs.princeton.edu/courses/archive

/spring03/cs226/lectures/flow.4up.pdf

http://engr.smu.edu/~olinick/emis8374/

lectures/maxflow/1

Page 19: אלגוריתמים נבחרים בתורת הגרפים

שימושים

•PERTתכנון מהלך עבודה –

תקשורת – העברת נתונים ברשת•

הקמת וועדות עם אילוצים שונים:•

הקמת וועדת נציגים שחבריה הם ראשי וועדות אחרות.•

לכל וועדה יש בדיוק נציג אחד בוועדת הנציגים;•

בוועדת הנציגים כל חבר/ה יכול/ה לייצג בדיוק וועדה אחת. •

Page 20: אלגוריתמים נבחרים בתורת הגרפים

שימושים

הקמת וועדת נציגים:

•V = {v1, v2, …, Vm} ; S = {S1, S2, …, Sn}

•V;קבוצת המשתתפים בוועדות –

• S קבוצה שאיבריה הם תת-קבוצות של – קבוצת הוועדות)

)V;

•SJ מורכבת מאיברי V .

Page 21: אלגוריתמים נבחרים בתורת הגרפים

הקמת וועדת נציגיםשימושים -

:1 דוגמא

V = {1, 2, 3, 4, 5}

וועדהחבריםיו"ר

22 ,4 ,5 S1

11 ,5S2

33, 4S3

41 ,4S4

Page 22: אלגוריתמים נבחרים בתורת הגרפים

הקמת וועדת נציגים שימושים -

:2דוגמא

V = {1, 2, 3, 4, 5}

האם ניתן לבנות וועדת

נציגים?

וועדהחבריםיו"ר

1 ,3 ,4S1

1 ,3S2

3, 4S3

1 ,4S4

Page 23: אלגוריתמים נבחרים בתורת הגרפים

?מתי ניתן לבנות וועדת נציגים

Page 24: אלגוריתמים נבחרים בתורת הגרפים

מתי ניתן לבנות וועדת נציגים?

S

1 ,4

3 ,4

1 ,5

2 ,4 ,5

5

3

2

1

4

t

Page 25: אלגוריתמים נבחרים בתורת הגרפים

מתי ניתן לבנות וועדת נציגים?

:בתיאור הנ"ל

. 1קיבול כל הקשתות הוא •

לכל הוועדות.sקשור •

. tקישור כל החברים ל- •

-אם קיימת זרימה מקסימלית מs -ל t השווה

למספר הוועדות, אז ניתן לבנות וועדת נציגים.

.הנציגים נבחרים על-פי הזרימה המקסימלית