II תרגול 8 זרימה לתרגול שלושה )וחצי( חלקים: הגדרות חלק א'- אלגוריתם פורד פולקרסון חלק ב'- משפט הול חלק ג'- אלגוריתם דיניץ ((, ),,, ), N = V E c s t כא

מסמכים קשורים
תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

Algorithms Tirgul 1

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

מקביליות

מקביליות

Microsoft Word - ExamA_Final_Solution.docx

Microsoft Word - Questions Booklet Spring 2009

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3>

חשבון אינפיניטסימלי מתקדם 1

áñéñ åîéîã (ñéåí)

מבוא לאנליזה נומרית na191 Assignment 2 solution - Finding Roots of Nonlinear Equations y cos(x) שאלה 1 היכן נחתכים הגרפים של? y x 3 1 ושל ממש פתרונות

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

Microsoft Word - solutions.doc

פתרונות לדף מס' 5

אנליזה מתקדמת

מהוא לתכנות ב- JAVA מעבדה 3

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

א. נציג את השרטוט המתאים ונסביר בהמשך: שטח המשולש גדול פי משטח המשולש בגרות סט יולי 09 מועד קיץ ב שאלון CAE, CEB כאשר לשני המשולשים גובה משותף

Microsoft Word - Sol_Moedb10-1-2,4

עב 001 ינואר 12 מועד חורף פתרונות עפר

מבוא לתכנות ב- JAVA תרגול 7

מבוא למדעי המחשב

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

Microsoft Word - hedva 806-pitronot-2011.doc

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

שיעור 1

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

Microsoft Word - 38

יחידה 8: שיקוף, הרחבה וכיווץ של פרבולות שיעור 1. שיקוף בציר x תלמידים התבקשו לשרטט פרבולה שכל הערכים שלה שליליים. y יואב ש רטט כך: y תומר אמר: אי-אפשר

תרגול 1

HaredimZ2.indb

אוניברסיטת בן-גוריון המחלקה למדעי המחשב בוחן במבנים בדידים וקומבינטוריקה פרופ' מתיא כ"ץ, ד"ר עופר נימן, ד"ר סטוארט סמית, ד"ר נתן רובין, גב'

Microsoft Word - SDAROT 806 PITRONOT.doc

טיפים להצלחה במהלך הבחינה 1. בתחילת הבחינה קראו היטב את כל השאלות וסמנו לעצמכם את השאלות המועדפות על ידכם. קראו כל שאלה לפחות פעמיים, כדי שלא תחמיצו נ

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

Microsoft Word - vaidya.doc

משוואות דיפרנציאליות מסדר ראשון

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

Microsoft Word - 01 difernziali razionalit

שעור 6

Limit

Microsoft Word ACDC à'.doc

מבוא ללוגיקה ולתורת הקבוצות

1 בגרות עח יולי 18 מועד קיץ ב שאלון x b 2 2 y x 6x שיעור ה- א x לכן, של קדקוד הפרבולה, ו-, מתקבל על ידי הנוסחה a. C(3, 9) ובהתאם, y. (3, 9) 2 C

ע 003 מרץ 10 מועד מיוחד פתרונות עפר

Microsoft Word - dvar hamaarehet_4.8.docx

תוכן העניינים

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

PowerPoint Presentation

Microsoft Word - c_SimA_MoedB2005.doc

מבוא למדעי המחשב - חובלים

תוכן העניינים

ex1-bash

מבוא למדעי המחשב

שיטות הסתברותיות ואלגוריתמים חוברת התרגילים 25 באוקטובר 2015 חוברת זו מכילה תרגילים נבחרים מהיסטוריית הקורס ופתרונם. בשעות האימון יוצג מבחר מהתרגילים

תכנות מונחה עצמים א' – תש"ע

לדרך... מה נלמד? תרגילים חיבור מספרים מכוונים נלמד את כללי החיבור של מספרים מכוונים. )תשובות לתרגילים בפרק זה-בעמ' (.Ⅰ

rizufim answers

Microsoft Word - אלגברה מעורב 2.doc

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

מתמטיקה לכיתה ט פונקציה ריבועית

Microsoft Word - ניספח_8.doc

פתרונות מלאים לשלב א' אולימפיאדה ארצית במתמטיקה חטיבה כיתות ז' 1. נתונה המשוואה השגויה הבאה: הזיזו גפרור אחד בלבד כדי שהמשוואה תהיה נכונה. פתרון לחידו

מבוא לתכנות ב- JAVA תרגול 11

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

שאלון להערכה עצמית במתמטיקה לקראת לימודי שנה א מדוע להתכונן לשנה א מסלולי לימוד רבים באוניברסיטה (מדעי המחשב, הנדסה, פיזיקה וכמובן מתמטיקה) דורשים לימ

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

Slide 1

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

מצגת של PowerPoint

תאריך הבחינה 30

Microsoft Word - 28

67865 כלים מתמטיים 7 בינואר 2014 מרצה: מיכאל בן אור מתרגל: צור לוריא איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום

מקביליות

Microsoft Word - ex04ans.docx

שאלה 2. תכנות ב - CShell

MathType Commands 6 for Word

Untitled

תרגול 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

Tutorial 11

מבחן חוזר במכניקה 55 א יא יח""ללח פתור 3 מהשאלות 1-5 לכל שאלה 33%. חומר עזר מותר מחשבון ונוסחאון של בגרות. v m sec משך הבחינה 105 דקות. שאלה מספר 1 4

תמליל:

II תרגול 8 זרימה לתרגול שלושה )וחצי( חלקים: הגדרות חלק א'- אלגוריתם פורד פולקרסון חלק ב'- משפט הול חלק ג'- אלגוריתם דיניץ ((, ),,, ), N = V E c t כאשר: הגדרות רשת זרימה היא רביעייה = G הוא גרף מכוון הוא קודקוד המקור הוא קודקוד הבור ( V, E) V tv e E לכל c(e) > 0 היא פונקצית הקיבולת, אשר מקיימת: c: E R בנוסף מניחים ש : 0 = v) c(u, לכל (u, v) E ((, ),,, ) זרימה ברשת אילוצי קיבול: N = V E c t היא פונקציה, : V V R המקיימת את שלוש התכונות הבאות: u) ( v, u) c( v, יש לשים לב, שהזרימה על קשת יכולה להיות, v, לכל u V ( v, u) = ( u, v) ( u, v ) = 0 vv שלילית אבל הקיבולת לא v, אנטי סימטריה: לכל u V שימור זרימה: לכל מתקיים t} u V \{, מתקיים )סכום הזרימה על הצלעות הנכנסות ל- u שווה לסכום הזרימה על הצלעות היוצאות מ- u ( ), כלומר v) = (, vv גודל של זרימה הוא סך הזרימה היוצאת מ- )הגדרה סימטרית סך הזרימה הנכנסת ל-,t כלומר t) = ( v, vv קיבולת של מסלול: בהינתן מסלול, הקיבולת של המסלול היא הקיבולת המינימאלית מבין כל הצלעות שעל המסלול )צוואר הבקבוק( N בעלת גודל מקסימאלי ((, ),,, ) N = V E c t צריך למצוא: זרימה בעיית הזרימה: מופע: רשת זרימה ברשת Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve

רשת שיורית netwrk) :(reidual ((, ),,, ) בהינתן רשת זרימה, N = V E c t וזרימה ברשת, הרשת השיורית היא t), N = (G = (V, E ), c,, כאשר: c ( u, v) = c( u, v) ( u, v) u, vv c הקיבולות השיורית מוגדרת לכל כ-, E = u v c u v קבוצת הצלעות השיורית (, ) : (, ) 0 כאשר,G = (V, E ) G הגרף השיורי שימו לב שזה לא הקשתות החברות ב - )שימו לב כי רשת שיורית הינה רשת זרימה( שימו לב שבעוד ש- N היא רשת זרימה )אחרי שהזרמנו את (, הוא גרף זכרו זאת להמשך (Frd-Fulkern) חלק א' אלגוריתם פורד פולקרסון לצורך פתרון הבעיה נשתמש באיטרציות-שיפור כאשר בכל שלב נחזיק: פונקצית זרימה נוכחית והזרימה הנוכחית N, רשת זרימה הנגזרת מהרשת המקורית N רשת שיורית N האלגוריתם ימצא בכל שלב מסלול שיפור כלשהו ברשת השיורית, ישנה את הזרימה ואת הרשת השיורית בהתאם למסלול השיפור האלגוריתם יסיים כאשר לא ימצא מסלול שיפור ברשת השיורית אלגוריתם פורד פולקרסון: ( u, v) 0 : u, אתחול: לכל vv N בנה רשת שיורית t ל - N כל עוד קיים ברשת השיורית מסלול מ- בצע: P,t N מצא מסלול פשוט )כלשהו( P ל- מ- ב- ותהי (p) c הקיבולת של חשב תוספת זרימה:, עדכן:( p ), (u, v) = c ( u, v) - לכל קשת P ו- (p) (v, u) = c (u, v) = 0 : ( u, v) - לכל קשת P N עדכן את הזרימה + ובנה רשת שיורית החזר את Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 2

ניתוח זמן ריצה: אם הקיבולים בשלמים אזי אלגוריתם Frd-Fulkern רץ ב-( O( E כאשר הוא הגודל הזרימה המקסימלית בכל איטרציה מחושב מסלול שיפור בזמן ( V O( E + )ע"י BFS או (, DFS וגודל הזרימה הנוכחית גדל ב- )כיוון שיש צלע היוצאת מ- על מסלול השיפור אשר הזרימה עליה גדלה בלפחות יחידה( לכן לאחר לכל היותר איטרציות, לא ניתן יהיה להגדיל את הזרימה דוגמה לגרף בו תתכן ריצה לא יעילה: 0000 0000 0000 0000 דוגמת ריצה של האלגוריתם )מימין - הרשת המקורית והזרימה הנוכחית ברשת, משמאל - הרשת השיורית(: Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 3

ב' חלק משפט Hall לפני הצגת המשפט נזכר בהגדרות הבאות ובמשפט : Min-Cut Max-Flw ו- tt S כאשר,) T = V \ S חתך ברשת זרימה: חתך ), ST ( )עם קיבולת של חתך: עבור חתך S קיבולת החתך הוא סך הקיבולות על הצלעות היוצאות מ-, ( ST, ) ונכנסות ל - T, c(s, T) = c(u, v) כלומר u S,v T משפט Max-Flw) :(Min-Cut גודל הזרימה המקסימאלית ברשת שווה לקיבול החתך המינימלי ברשת כעת נציג את משפט Hall תזכורת: גרף (E G = (,V יקרא דו-חלקי אם הוא מקיים: R L= ולא vr)} E {( u, v) :( u R vl) ( u L )קיימות קשתות בגרף רק בין הקבוצות בתוכן( של גרף דו-חלקי E) G = ( R L, יקרא שידוך מושלם אם M R = L = הגדרה: שידוך חוקי L ו- R M E V = RL, כאשר A) N( A ( ) N A מתקיים A L אמ"מ לכל R = L בו G משפט :Hall קיים שידוך מושלם בגרף דו חלקי קבוצת השכנים של הקודקודים מהקבוצה )ניתן להגדיר סימטרית לגבי היא ) R A ( ) A N A טריוויאלי A L הוכחה: אם קיים שידוך מושלם אזי לכל ( ) אם לכל A L מתקיים A N A, אז קיים שידוך מושלם 2 הוכחת 2: נעזר ברשת הזרימה שמתקבלת מהבניה שהוצגה בשבוע שעבר, ופתרון בעיית הזרימה המקסימאלית בשלמים בניית הגרף: נוסיף קודקודים, t נחבר את לכל קודקודי L, עם קיבולת נחבר את כל קודקודי R ל- t, עם קיבולת לכל קשת בגרף המקורי בין קודקוד r R לקודקוד l, L נשים קשת (l,r) ברשת הזרימה בעלת קיבולת אינסוף נוכיח שהזרימה המקסימאלית היא בגודל L n = נעזר בטענה מהתרגול הקודם להסיק כי השידוך המקסימלי גם הוא מגודל L n = ונסיים * טענת עזר: בגרף הנתון, גודל שידוך מקסימאלי M שווה לגודל הזרימה המקסימאלית ( ST, ) n ואכן: הוכחה: לפי משפט,Min-Cut Max-Flw די להראות שחתך ), ST ( ראשית, קיים חתך ), ST ( עם קיבולת n )זה החתך שבו S = אחר הוא לפחות n מינימאלי בגרף הוא עם קיבולת ) ולכן נותר להראות שהקיבול של כל חתך Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 4

ואכן- נסתכל על חתך ), ST ( כלשהו אם יש צלע חוצה חתך עם קיבולת הרי החתך בוודאי עם קיבולת גדולה מ- n אחרת, כל הצלעות שחוצות את החתך הן בעלות קיבול סופי בלבד נניח בה"כ כי: S L = { x, x2,, x k } T L = { x,, x } k+ n S R = { y,, y j } T R = { y,, y } j+ n S L = { x, x2,, x k נשים לב לכך שכל השכנים של } צלע עם קיבולת אינסופית החוצה את החתך ), ST ( צלעות מ- n k הצלעות החותכות את החתך הן: )( חייבים להיות בקבוצהSR, כי אחרת נקבל את קיומה של k t ל- צלעות מ- SR j אלTL )2( j כלומר, k = S L N( S L) S R = j A מכיוון שלכל L וקיבולת החתך היא מתקיים A) A N(, הרי שבפרט משל n כלומר לפחות, C( S, T) = n k + j n x S xk T t xn n-k L R j>=k S T t L R בדוגמא שלמעלה ניתן לראות חתך שלא קיימת בו אף קשת בקיבול אשר חוצה אותו )מקבוצה S לקבוצה T( יחד עם זאת, ברור כי לא קיים בגרף זה שידוך מושלם, שכן מספר הקודקודים בקבוצות L ו- R אינו שווה ) L N( L) ( Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 5

ג' חלק אלגוריתם דיניץ, V הגדרה: רשת שכבות : תהי N רשת שיורית אשר קיים בה מסלול קצר ביותר מ- אל t באורך k = u V d ( u) i שכבה i של רשת השכבות עבור i = V i + E i ( V, E ב - ) 0 i k מכילה את הקודקודים L הוא המרחק המינימאלי בצלעות מ- ל- u =, v V ( u, v) E u V i L,V j i d כאשר (u) אלו כל הצלעות בין שכבה i לשכבה i, ( ) = V0 V Vk, E גרף השכבות השיורי יהיה Ek L רשת השכבות תסומן ):,,t ( L,c = תיאור סכמטי של האלגוריתם : א אתחול: זרימה, ורשת שיורית N המושרית מ- ב כל עוד יש מסלול מ- ל- t ברשת השיורית בצע: a בנה רשת שכבות L עבור L N b 0 מצא זרימה חוסמת עדכן לרשת השכבות, ועדכן את N + b תיאור בניית רשת השכבות, באמצעות BFS מורחב: הערה: השכבה מכילה את הקדקודים שמרחקם מ- הוא i V i i 0,V 0 V i b c א ב הכנס את ל - כל עוד V i אינו ריק ו- t לא שייך ל - עבור כל קדקוד u ב - בצע: בצע: עבור כל שכן v של u, אם v לא נמצא באף,j i הוסף את v ל- E V i )אם הוא עדיין לא שם( והוסף (u,v) ל- a i i+ b אם t לא שייך ל V, i אין מסלול בין ל- t ) : הפלט הוא רשת השכבות אחרת ( t שייך ל V i ג תיאור אלטרנטיבי לבניית רשת שכבות: הרץ BFS מקודקוד, ולכל קודקוד v, יהי (v d(, המרחק מ - ל- v כפי שנמצא ע"י הרצת ה- BFS א אם = (t :d(, אין מסלול בין ל- t ב אחרת: ג לכל (u, v) E בצע: a L ל- (u, v) הוסף את d(, u) + = d(, v) d(, t) אם i L החזר את b E i Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 6

: L תיאור מציאת זרימה חוסמת לרשת שכבות "נשכפל" את רשת השכבות L ונבצע עידכונים על העותק ה"משוכפל", M אתחל זרימה חוסמת b 0 א כל עוד דרגת הכניסה של t ב- M גדולה מ- 0 )שקול: קיים מסלול P מ- ל- t ב- M ( בצע: ב הליכה אחורה מ- t ע"י ל- t מ- P מצא מסלול a הוספת קשתות חרטה נגדיות ב- M ( ללא ל- FF )בדומה P לפי מסלול b,m עדכן את b P שהתאפסה בעקבות שינוי הזרימה במסלול (u,v) עבור כל קשת c M מ- (u,v) מחק את i )v,m( בצע ניקוי-קדימה v t היא אפס וגם v אם דרגת הכניסה של ii החזר b ג x t תיאור ניקוי-קדימה :(v,(v,e )) )קשת היוצאת מ- v ( בצע: מ- E b אם דרגת הכניסה של הקודקוד x היא 0 וגם בצע: ניקוי-קדימה)( x,(v,e ( לכל קשת ), vx ( ( vx, ) את a מחק הערות חשובות על אלגוריתם דיניץ: ההערות מתייחסות לאלגוריתם המלא המצורף כנספח המושג "שלב" באלגוריתם יציין איטרציה בודדת של הלולאה באלגוריתם )עדכון זרימה על סמך זרימה חוסמת ברשת השכבות( שורה 4 באלגוריתם 3: מציאת מסלול ברשת השכבות מתבצעת על ידי סריקה אחורה מ- t עד ל- כיוון שדואגים לנקות את הרשת בכל שלב,)CleanFrward( מובטח כי סדרת הצעדים בהכרח לא תעצור לפני הגעה ל -, כאשר כל קשת היא בין שכבות עוקבות כלומר P יהיה מסלול קצר ביותר מ- ל- t הזמן הדרוש למציאת מסלול P ברשת השכבות הוא לינארי במספר השכבות, O( P ) המושג "זרימה חוסמת" ברשת השכבות: שימו לב כי זרימה זו אינה בהכרח זרימה מקסימאלית ברשת השכבות בשלב זה לא מעדכנים את קיבולי הקשתות ההפוכות לקשתות בהן עברה זרימה על ידי קשתות חרטה )אלו הן קשתות משכבה +i לשכבה i, ולכן הן לא חלק מרשת השכבות( בדוגמא הבאה ניתן לראות זרימה חוסמת )בירוק( ברשת השכבות שאיננה מקסימאלית בה: נשים לב: באלגוריתם Frd-Fulkern לא שומרים שום מידע מתהליך מציאת מסלול שיפור למציאת המסלול הבא בו "נעביר" זרימה בניגוד לזה, האלגוריתם של דיניץ מנצל את מבנה הנתונים "רשת השכבות" )הנבנה ע"י סריקה אחת ב - G( למציאת מספר מסלולים קצרים ביותר, מבחינת מספר קשתות Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 7

דוגמא לבניית רשת שכבות: נתון הגרף הבא : b c t a d e g קודקוד המקור הוא, קודקוד הבור הוא t שלבי בניית רשת השכבות יהיו כדלקמן : בשלב הראשון, שכבה בודדת אחת: V0 בשלב השני, שתי שכבות: b c d V0 V בשלב השלישי, שלוש שכבות: b c d t e V0 V V2 כעת t מצוי בשכבה האחרונה, כלומר קיים מסלול מ- ל- t ברשת השיורית, ואין לנו צורך בשכבות נוספות לעת עתה Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 8

ניתוח זמן ריצה עבור שלב אחד: אתחול בניית הרשת השיורית: ( E )O בניית רשת שכבות: )על ידי BFS מורחב מ- עד )O E ( t(: 2 נגדיר את זמן מציאת זרמה חוסמת לרשת השכבות ע"י ( V )t E, 3 עדכון הזרימה: ) E O( 4 סה"כ זמן ריצה עבור שלב: )) V O( E + t( E, ננסה כעת לספק חסם עבור מציאת הזרימה החוסמת ( V )t E, ניתוח זמן ריצה עבור מציאת זרימה חוסמת לרשת שכבות ( V )t: E, הערה: בכל הקשור לרשתות זרימה, O( E ) O( V + ( E = הסיבה לכך נעוצה בהנחה שגרף התשתית של רשת הזרימה קשיר ולכן E V )במידה והוא אינו קשיר, ניתן למחוק רכיבי קשירות שאינם מכילים את הקדקודים, t בשלב העיבוד המוקדם( בניה: יצירת רשת השכבות והעתקתה ל -M מתבצעת באמצעות הפעלת BFS מורחב, ולכן עלותה הינה O( V + E ) = O( E ) 2 עדכון זרימה: מציאת מסלול שיפור P ברשת השכבות עולה O( V ) : O( P ) = כיוון שאנו מבצעים "ניקוי", לכל קודקוד שאינו ישנה דרגת כניסה גדולה מ- 0 ; לכן, לכל קודקוד שמגיעים אליו בסריקה הפוכה מ - P הקיבולת של P, לאחר מציאת המסלול בנוסף, ישנה צלע נכנסת, ולכן סריקה זו לא תעצור לפני הגעה ל- t מתווספת לזרימה בכל אחת מצלעותיו ויורדת מהקיבולת השיורית שלה; עלות - O( V ) O( P ) = גם כן איטרציות מסלולים כאלה ברשת השכבות מתבצעות לכל היותר O( E ) פעמים, כיוון שבכל פעם נמחקת קשת אחת, לפחות, מרשת השכבות סה"כ הזמן הדרוש לעבודה כנ"ל עם כל המסלולים אם כן הוא ( V )O E 3 מחיקת צלעות: כדי לחשב את הזמן הכללי של ניקוי רשת השכבות, נשתמש בשיטת פיזור החיוביים )ניתוח פחת(: a כל קשת וקדקוד יכולים להימחק לכל היותר פעם אחת O( V + ( E = O( E ) עבור כל הקשתות והקדקודים b בדיקת דרגת הכניסה עבור קודקוד מתבצעת בכל פעם שאנו מוחקים קשת )ניתן לבדוק דרגת קודקוד בזמן קבוע ע"י שמירת מוני דרגה( )O ( E עבור כל בדיקות הקודקודים כלומר, סך עלות כל העדכונים של M הינה O( E ) )כמו עלות בניית M( החסם המתקבל עבור מציאת זרימה חוסמת: t( E, V ) = O( V E ) + O( E ) = O( V E ) אם כן, זמן ריצה עבור שלב אחד באלגוריתם: ( E O( E ) + t( E, ( V = O( V ישנם לכל היותר V שלבים )בשיעור ראיתם כי בכל שלב מספר השכבות ברשת השכבות גדל, כאשר הוא חסום ע"י O V 2 ( E ) לכן זמן הריצה לאלגוריתם כולו הוא,) V ניתוח זמן הריצה עבור אלגוריתם דיניץ המפורט לעיל נכון עבור גרף כללי עם משקולות כלשהן אך ישנן רשתות זרימה עבורן ניתן למצוא חסמים טובים יותר האלגוריתם עצמו לא ישתנה, אך הניתוח יהיה עדין יותר ויתבסס על תכונות הרשת Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 9

בחלק הבא נראה כי ביצוע שלב של אלגוריתם דיניץ, כלומר מציאת זרימה חוסמת והוספתה לזרימה הנוכחית, גורם למרחק בין ל- t ברשת השיורית לגדול נסמן ב - את הזרימה ברשת בתחילת השלב, וב - את הזרימה המעודכנת בסיום השלב בנוסף, נסמן ב -k את המרחק של t מ- ברשת השיורית N יהי P מסלול מ- ל- t ברשת השיורית N אחד מהבאים בהכרח מתקיים: P הגיע כולו מתוך הרשת השיורית N זרימה חוסמת גורמת לכך שמכל מסלול קצר ביותר בין ל- t ברשת השיורית N נמחקת לפחות קשת אחת ב- N לכן, P בהכרח אינו מסלול קצר ביותר מ - ל- t ברשת N, ופרט אורכו לפחות + k 2 לפחות קשת אחת של P לא מופיעה ברשת N מאחר וזו קשת חדשה, בהכרח הזרמנו בקשת ההפוכה לה בשלב זה, כלומר הקשת ההפוכה לה הופיעה ברשת השכבות L של שלב זה )מאחר ואלו הקשתות היחידות שמזרימים בהם( נטען כי במקרה זה אורכו של P הוא לפחות + 2 k )למעשה, נוכיח את הטענה הבאה שהינה חזקה יותר( טענה יהי P מסלול מ- ל- t ברשת השיורית N אשר עובר בקשת (y,x) כך שהקשת ההפוכה (x,y) הופיעה ברשת השכבות L אזי אורך P הינו לפחות + 2 k הוכחה סימון: לכל קודקוד v נסמן ב-( L(v את מספר השכבה שלו ב - L מבניית רשת השכבות נובע כי L(v) הינו מרחקו של מ- v שימו לב: גרף השכבות לא משתנה במהלך השלב, ולכן גם L(v) לא משתנה במהלך השלב הנוכחי נביט תחילה ברשת :N למה: לכל קשת v) (u, ב- N מתקיים + L(u) L(v) הוכחת הלמה: ברשת השיורית N ישנן שני סוגים של קשתות: קשתות ישנות שהיו גם ב- N וקשתות חדשות שהתווספו במהלך השלב הנוכחי אם v) (u, קשת ישנה: אז מתקיים כי + L(u) :L(v) מקרה א': אם הקודקוד v נמצא בשכבה הבאה אחרי השכבה של u, אז + L(u) L(v) = )בפרט קיים מסלול קצר ביותר מ - ל- v העובר דרך u וקשת זו השתייכה ל- L( )אחרת( מקרה ב': v נמצא בשכבה של u או בשכבה קודמת לה אז + L(u) L(v) < בצורה לא פורמלית: קשת כנ"ל לא יכולה לקדם אותנו קדימה ביותר מצעד אחד )ביותר משכבה אחת( אם (v,u) קשת חדשה: אז הקשת ההפוכה (u,v) שייכת למסלול בו שיפרנו את הזרימה בשלב הנוכחי, ולכן L(v) = L(u) לכן מתקיים עבורה כי L השתייכה לרשת השכבות (v, u) קיבלנו כי לכל קשת (v,u) )ישנה או חדשה( ב- N מתקיים + L(u) L(v) )סוף הוכחת הלמה( נשים לב: בהוכחת הלמה, ניתן להכליל את המקרה של (v,u) קשת חדשה למקרה כללי יותר בו הקשת ההפוכה (u,v) השתייכה לרשת השכבות L אותו הטיעון מראה כי גם במקרה זה מתקיים L(u) L(v) = נחזור להוכחת הטענה : נביט כעת במסלול כלשהו t P = = v 0, v, v 2,, v l = מ- ל- t ברשת l באורך N Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 0

טענה: אם ב- P קיימת קשת (y,x) כך שהקשת ההפוכה (x,y) הופיעה ברשת השכבות L אזי אורכו הינו לפחות k + 2 הוכחה: נסמן את המסלול P ב- N כך: P = = v 0, v, v 2,, x, y,, t נסמן את מספרי השכבה המתאימים לקודקודים על פי סדר הופעתם במסלול לפי הגדרתם הם מתחילים ב -0 ומסתיימים ב- k בנוסף, נסמן ב -i את מס' השכבה L(y) אזי, לפי הלמה מתקיים + i L(x) = L(y) + = סה"כ נקבל את הסדרה הבאה: L() = 0, L(v ), L(v 2 ),, L(x) = i +, L(y) = i,, L(t) = k לפי הלמה, כל קשת ברישא מ - עד x לא יכולה להגדיל את L ביותר מ- לכן אורך הרישא הנ"ל הינו לפחות + i הקשת (y,x) מוסיפה לחישוב אורך המסלול נשים לב כי הקשת (y,x) מקטינה את L ב- ) L(x) )L(y) = ולכן מספר השכבה של y הינו i כל קשת בסיפא מ -y ל- t לא יכולה להגדיל את L ביותר מ- לכן אורך הסיפא מ- y ל- t הינו לפחות k i בסך הכל אורכו של P לא יורד מ- + 2 k (i + ) + () + (k i) = Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve

Algrithm Dinitz (G, c,, t) 0 ; cntruct the reidual netwrk N ( G,c,,t ) נספח האלגוריתם במלואו באנגלית לנוחיותכם = ; 2 while there i a path rm t t in G d 3 invariant aertin: i a lw in N ; L L,c,,t ; 4 cntruct the layered netwrk ( ) 5 ind a blcking lw b r L ; aertin : d+b(t) > d(t) ; 6 + b ; 7 cntruct the reidual netwrk N ; 8 Pt-cnditin while lp: i a maximum lw in N ; = Algrithm 2 Layered_Netwrk_Cntructin (N ) V ; ; 2 while ( V ) and ( ) 0 i i 0 t d 3 V ; E ; i+ i+ V i 4 r each u Vi d 5 r each V 6 i ( V ) v uch that ( u, v ) and ( v V j j i) v then i+ 7 add v t Vi+ ; 8 add u, v t Ei ; 9 i i + ; V = then 0 i ( i ) return = (,c,,t ) 2 L ( V Vi, E Ei ) 3 return L ( L,c,,t ) ; E, d L ; aertin: there i n path rm t t in N 0 ; = Pt-cnditin: i t i reachable rm in N, then L i the layered netwrk r N Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 2

Algrithm 3 Blcking_Flw (L ) Uing a greedy algrithm b 0 ; M = ( VM, EM ) L ; c c ; 2 repeat 3 aertin : i the nly vertex in with zer in-degree ; 4 ind a path p rm t t in ; let it bttleneck capacity be c(p) ; 5 r each edge u, v p d 6 b( u, v) b( u, v) + cm( p) ; b ( v, u) b( u, v) 7 c ( u, v) c ( u, v) c ( p) ; 8 i c(u,v) = 0 then 9 remve M M u,v M rm ; 0 cleanup ; i indegree (v) = 0 then 2 CleanFrward (v, ) ; 3 until indegree (t) = 0 ; ; Algrithm 4 CleanFrward (u, ) Pre-cnditin: indegree (u) = 0 r each v uch that < u, v > M d 2 remve u, v rm ; 3 i indegree (v) = 0 then 4 CleanFrward (v, ); Cmment: Ntice that the path rm t t are nt aected, and all them remain in M Cure material i updated peridically, pleae be ure t read the latet update n the cure webite Practical ein and clae may include additinal material nt lited abve 3