Download - אלגוריתמים נבחרים בתורת הגרפים
![Page 1: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/1.jpg)
אלגוריתמים נבחרים בתורת הגרפים
זרימה ברשתות
![Page 2: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/2.jpg)
זרימה ברשתות
:רשת זרימה
ללא G(לשם נוחות נניח ש- G=(V, E)גרף מכוון סופי •
.לולאות או קשתות מקבילות)
(בור).t (מקור) ו- s שני קודקודים•
+C: E → Z פונקצית קיבול:•
לכל קשת מותאם מספר שלם אי-שלילי המציין את קיבול הקשת – מהי •
. הזרימה המקסימלית שניתן להעביר דרך הקשת
![Page 3: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/3.jpg)
זרימה ברשתות
המקיימת: +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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/4.jpg)
Ford and Fulkerson האלגוריתם של
למציאת זרימה מקסימלית ברשת
תיאור אינטואיטיבי:
. מוצאים מסלול כלשהו ממקור ליעד אשר דרכו ניתן להעביר 1
זרימה. מסמנים את הצמתים המשתתפים במסלול.
. בוחרים במסלול זה קשת אשר קיבולה מינימלי ומעבירים 2
במסלול זה זרימה כגודל קיבול מינימלי זה.
*. אם בכל מסלול אפשרי מהמקור ליעד יש לפחות קשת רוויה3
.1אחת – הפסק, אחרת חזור ל-
קשת שעבורה פונקצית הזרימה שווה לקיבול הקשת.קשת רוויה - *
![Page 5: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/5.jpg)
Ford and Fulkerson האלגוריתם של
למציאת זרימה מקסימלית ברשת
חקרו את פעולת האלגוריתם באמצעות האפלט הבא:http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.shtml
![Page 6: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/6.jpg)
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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/7.jpg)
דוגמא – מצאו זרימה מקסימלית 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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/8.jpg)
דוגמא – מצאו זרימה מקסימלית 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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/9.jpg)
דוגמא – מצאו זרימה מקסימלית 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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/10.jpg)
דוגמא – מצאו זרימה מקסימלית 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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/11.jpg)
דוגמא – מצאו זרימה מקסימלית 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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/12.jpg)
דוגמא – מצאו זרימה מקסימלית 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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/13.jpg)
חתך
וראש S : קבוצת כל הצלעות בעלות זנב ב- חתך
ב- .
:t מ- sחתך המפריד את
:t מ- sקיבולת חתך המפריד את
bijקבולת קשת vi-vj כאשר vi -ב X -ו vj . -ב
_
S
),(_
XX
),(_
SS
ji
ij XXCb,
_
),(
_
X
![Page 14: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/14.jpg)
דוגמא – מצאו חתך מינימלי
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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/15.jpg)
דוגמא – חתך מינימלי
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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/16.jpg)
.זרימה מקסימליתדוגמא – בגרף הבא מופיעה המצוייר? החתך המינימלימהי קבולת
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: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/17.jpg)
משפט
בכל רשת:
שווה לקיבולת הזרימה המקסימלית ערך
. החתך המינימלי
![Page 18: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/18.jpg)
מקורות נוספים
http://www.cs.princeton.edu/courses/archive
/spring03/cs226/lectures/flow.4up.pdf
http://engr.smu.edu/~olinick/emis8374/
lectures/maxflow/1
![Page 19: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/19.jpg)
שימושים
•PERTתכנון מהלך עבודה –
תקשורת – העברת נתונים ברשת•
הקמת וועדות עם אילוצים שונים:•
הקמת וועדת נציגים שחבריה הם ראשי וועדות אחרות.•
לכל וועדה יש בדיוק נציג אחד בוועדת הנציגים;•
בוועדת הנציגים כל חבר/ה יכול/ה לייצג בדיוק וועדה אחת. •
![Page 20: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/20.jpg)
שימושים
הקמת וועדת נציגים:
•V = {v1, v2, …, Vm} ; S = {S1, S2, …, Sn}
•V;קבוצת המשתתפים בוועדות –
• S קבוצה שאיבריה הם תת-קבוצות של – קבוצת הוועדות)
)V;
•SJ מורכבת מאיברי V .
![Page 21: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/21.jpg)
הקמת וועדת נציגיםשימושים -
:1 דוגמא
V = {1, 2, 3, 4, 5}
וועדהחבריםיו"ר
22 ,4 ,5 S1
11 ,5S2
33, 4S3
41 ,4S4
![Page 22: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/22.jpg)
הקמת וועדת נציגים שימושים -
:2דוגמא
V = {1, 2, 3, 4, 5}
האם ניתן לבנות וועדת
נציגים?
וועדהחבריםיו"ר
1 ,3 ,4S1
1 ,3S2
3, 4S3
1 ,4S4
![Page 23: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/23.jpg)
?מתי ניתן לבנות וועדת נציגים
![Page 24: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/24.jpg)
מתי ניתן לבנות וועדת נציגים?
S
1 ,4
3 ,4
1 ,5
2 ,4 ,5
5
3
2
1
4
t
![Page 25: אלגוריתמים נבחרים בתורת הגרפים](https://reader033.vdocuments.net/reader033/viewer/2022061511/568150cc550346895dbeee42/html5/thumbnails/25.jpg)
מתי ניתן לבנות וועדת נציגים?
:בתיאור הנ"ל
. 1קיבול כל הקשתות הוא •
לכל הוועדות.sקשור •
. tקישור כל החברים ל- •
-אם קיימת זרימה מקסימלית מs -ל t השווה
למספר הוועדות, אז ניתן לבנות וועדת נציגים.
.הנציגים נבחרים על-פי הזרימה המקסימלית