אלגוריתמים נבחרים בתורת הגרפים
DESCRIPTION
אלגוריתמים נבחרים בתורת הגרפים. זרימה ברשתות. זרימה ברשתות. רשת זרימה: גרף מכוון סופי G=(V, E) (לשם נוחות נניח ש- G ללא לולאות או קשתות מקבילות) . שני קודקודים s (מקור) ו- t (בור). פונקצית קיבול: C: E → Z + - PowerPoint PPT PresentationTRANSCRIPT
אלגוריתמים נבחרים בתורת הגרפים
זרימה ברשתות
זרימה ברשתות
:רשת זרימה
ללא G(לשם נוחות נניח ש- G=(V, E)גרף מכוון סופי •
.לולאות או קשתות מקבילות)
(בור).t (מקור) ו- s שני קודקודים•
+C: E → Z פונקצית קיבול:•
לכל קשת מותאם מספר שלם אי-שלילי המציין את קיבול הקשת – מהי •
. הזרימה המקסימלית שניתן להעביר דרך הקשת
זרימה ברשתות
המקיימת: +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
Ford and Fulkerson האלגוריתם של
למציאת זרימה מקסימלית ברשת
תיאור אינטואיטיבי:
. מוצאים מסלול כלשהו ממקור ליעד אשר דרכו ניתן להעביר 1
זרימה. מסמנים את הצמתים המשתתפים במסלול.
. בוחרים במסלול זה קשת אשר קיבולה מינימלי ומעבירים 2
במסלול זה זרימה כגודל קיבול מינימלי זה.
*. אם בכל מסלול אפשרי מהמקור ליעד יש לפחות קשת רוויה3
.1אחת – הפסק, אחרת חזור ל-
קשת שעבורה פונקצית הזרימה שווה לקיבול הקשת.קשת רוויה - *
Ford and Fulkerson האלגוריתם של
למציאת זרימה מקסימלית ברשת
חקרו את פעולת האלגוריתם באמצעות האפלט הבא:http://www-b2.is.tokushima-u.ac.jp/~ikeda/suuri/maxflow/Maxflow.shtml
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)
דוגמא – מצאו זרימה מקסימלית 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
דוגמא – מצאו זרימה מקסימלית 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
דוגמא – מצאו זרימה מקסימלית 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
דוגמא – מצאו זרימה מקסימלית 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
דוגמא – מצאו זרימה מקסימלית 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
דוגמא – מצאו זרימה מקסימלית 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
חתך
וראש S : קבוצת כל הצלעות בעלות זנב ב- חתך
ב- .
:t מ- sחתך המפריד את
:t מ- sקיבולת חתך המפריד את
bijקבולת קשת vi-vj כאשר vi -ב X -ו vj . -ב
_
S
),(_
XX
),(_
SS
ji
ij XXCb,
_
),(
_
X
דוגמא – מצאו חתך מינימלי
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
דוגמא – חתך מינימלי
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
.זרימה מקסימליתדוגמא – בגרף הבא מופיעה המצוייר? החתך המינימלימהי קבולת
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
משפט
בכל רשת:
שווה לקיבולת הזרימה המקסימלית ערך
. החתך המינימלי
מקורות נוספים
http://www.cs.princeton.edu/courses/archive
/spring03/cs226/lectures/flow.4up.pdf
http://engr.smu.edu/~olinick/emis8374/
lectures/maxflow/1
שימושים
•PERTתכנון מהלך עבודה –
תקשורת – העברת נתונים ברשת•
הקמת וועדות עם אילוצים שונים:•
הקמת וועדת נציגים שחבריה הם ראשי וועדות אחרות.•
לכל וועדה יש בדיוק נציג אחד בוועדת הנציגים;•
בוועדת הנציגים כל חבר/ה יכול/ה לייצג בדיוק וועדה אחת. •
שימושים
הקמת וועדת נציגים:
•V = {v1, v2, …, Vm} ; S = {S1, S2, …, Sn}
•V;קבוצת המשתתפים בוועדות –
• S קבוצה שאיבריה הם תת-קבוצות של – קבוצת הוועדות)
)V;
•SJ מורכבת מאיברי V .
הקמת וועדת נציגיםשימושים -
:1 דוגמא
V = {1, 2, 3, 4, 5}
וועדהחבריםיו"ר
22 ,4 ,5 S1
11 ,5S2
33, 4S3
41 ,4S4
הקמת וועדת נציגים שימושים -
:2דוגמא
V = {1, 2, 3, 4, 5}
האם ניתן לבנות וועדת
נציגים?
וועדהחבריםיו"ר
1 ,3 ,4S1
1 ,3S2
3, 4S3
1 ,4S4
?מתי ניתן לבנות וועדת נציגים
מתי ניתן לבנות וועדת נציגים?
S
1 ,4
3 ,4
1 ,5
2 ,4 ,5
5
3
2
1
4
t
מתי ניתן לבנות וועדת נציגים?
:בתיאור הנ"ל
. 1קיבול כל הקשתות הוא •
לכל הוועדות.sקשור •
. tקישור כל החברים ל- •
-אם קיימת זרימה מקסימלית מs -ל t השווה
למספר הוועדות, אז ניתן לבנות וועדת נציגים.
.הנציגים נבחרים על-פי הזרימה המקסימלית