אלגוריתמים בתורת הגרפים חלק ראשון

Σχετικά έγγραφα
אלגוריתמים / תרגיל #1

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

תורת הגרפים - סימונים

חורף תש''ע פתרון בחינה סופית מועד א'

ל הזכויות שמורות לדפנה וסטרייך

. {e M: x e} מתקיים = 1 x X Y

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

מתמטיקה בדידה תרגול מס' 13

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

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

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

תרגיל 13 משפטי רול ולגראנז הערות

Logic and Set Theory for Comp. Sci.

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

שאלה 1 V AB פתרון AB 30 R3 20 R

gcd 24,15 = 3 3 =

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

{ : Halts on every input}

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

גרפים אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 הגדרה: מגן דוגמאות: זוגות לא סדורים כיוון שבקבוצה סדר לא חשוב.

co ארזים 3 במרץ 2016

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

אלגוריתמים 1, סמסטר אביב 2017

אינפי - 1 תרגול בינואר 2012

מבני נתונים ואלגוריתמים תרגול #8-9

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

logn) = nlog. log(2n

תרגול מס' 6 פתרון מערכת משוואות ליניארית

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

אלגברה מודרנית פתרון שיעורי בית 6

3-9 - a < x < a, a < x < a

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

אלגברה ליניארית (1) - תרגיל 6

מודלים חישוביים פתרון תרגיל 5

התפלגות χ: Analyze. Non parametric test

מתמטיקה בדידה תרגול מס' 5

רשימת בעיות בסיבוכיות

גבול ורציפות של פונקציה סקלרית שאלות נוספות

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

סיכום- בעיות מינימוםמקסימום - שאלון 806

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

מבני נתונים ואלגוריתמים תרגול #11

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

אלגברה ליניארית 1 א' פתרון 7

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

רשימת משפטים והגדרות

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

תורת הקבוצות תרגיל בית 2 פתרונות

תרגול פעולות מומצאות 3

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

הגדרה: מצבים k -בני-הפרדה

x a x n D f (iii) x n a ,Cauchy

אלגברה ליניארית 1 א' פתרון 2

מתמטיקה בדידה תרגול מס' 12

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

סדרות - תרגילים הכנה לבגרות 5 יח"ל

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

תרגיל 7 פונקציות טריגונומטריות הערות

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

תורת הקבוצות ניר אדר ניר אדר.

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

c ארזים 15 במרץ 2017

מבני נתונים (234218) 1

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

אלגברה לינארית 2 משפטים וטענות

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

קיום ויחידות פתרונות למשוואות דיפרנציאליות

אלגברה לינארית (1) - פתרון תרגיל 11

אלגברה לינארית 1. המערכת הלא הומוגנית גם כן. יתרה מזאת כל פתרון של (A b) הוא מהצורה c + v כאשר v פתרון כלשהו של המערכת ההומוגנית

מודלים חישוביים תרגולמס 5

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

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

מושגים: קשיר. o בעל 1 קשתות בדיוק.

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

אלגברה לינארית מטריצות מטריצות הפיכות

אוטומטים- תרגול 8 שפות חסרות הקשר

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

1 סכום ישר של תת מרחבים

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

חדוו"א 2 סיכום טענות ומשפטים

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

Transcript:

גירסה 1. 11.11.22 אלגוריתמים בתורת הגרפים חלק ראשון מסמך זה הינו הראשון בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת לפרופסור שמעון אבן ז"ל, על העזרה העצומה שעזר לי בהבנת החומר ובשאלות רבות עליהן ענה לי כאשר למדתי את הנושא. שמעון אבן היה מרצה שהערכתי מאוד ותרומתו למסמך זה היתה משמעותית. מקורות: המסמך מבוסס במידה רבה על הרצאותיו של פרופסור שמעון אבן משנת 22 וכן על שאלות רבות עליהן שמעון אבן ענה לי. ספרו של שמעון אבן מ- 1979, Graph Algorithms פרקים מספרו החדש של שמעון אבן, שפורסמו בשנת 22 חלקים מהרצאות וידאו של פרופסור ראובן בר יהודה בנושא אלגוריתמים בתורת הגרפים. המסמכים כוללים נקודות רבות ממקורות אלו, ובנוסף תובנות רבות, דוגמאות ורעיונות שאספתי במהלך לימוד הקורס. עמוד 1

מושגי יסוד,... 1 2 v V = { v, וקבוצת קשתות גרף (E )G V, הוא מבנה המכיל קבוצת צמתים }..., 1 2 e. E = { e, לכל קשת יש שתי נקודות קצה, שאינן בהכרח שונות, וכן שם. אלא אם } נציין אחרת, E,V הן קבוצות סופיות. במקרה זה נאמר גם כי הגרף G הוא סופי. שתי קשתות שיש להן את אותם הקצוות יקראו קשתות מקבילות. קשת שיש לה שני קצוות, שהם למעשה אותו קצה, תיקרא חוג עצמי. הדרגה של צומת v, שתסומן d(v), תוגדר בתור מספר הקשתות הפוגעות בצומת v. אם דרגת צומת היא, נאמר כי הצומת מבודדת. סימון e יהיו,u v קשתות ו- e צומת. נסמן: u v במקרה זה נאמר כי e מחבר בין u ל- v. אם יש צומת שקצוותיה הן,u. v,... v { v, וקשתות,...} e { e,, כך ש- P מתחילה בצומת 1 2 1 מסלול P הוא סידרה של צמתים }, v 1 וכך, e 1 שמחברת אותה אל, v שאחריה מופיעה קשת, שתסומן כלשהו, נניח e1 e2 הלאה, המקיימת מספר תכונות. נסמן: v2.... P : v v 1 תכונות המסלול: 1+i e יש צומת משותפת. e i ול- 1. ל- e i איננה חוג עצמי, ואיננה בקצה המסלול, אז אחד מקצוותיה נמצא 2. אם הקשת גם בקשת שלפניה והקצה השני שלה נמצא גם בקשת שאחריה. עמוד 2

יהי מסלול סופי P. נגדיר את אורך המסלול להיות מספר הקשתות במסלול. מסלול ריק הוא מסלול בעל צומת אחד וללא קשתות. מעגל הוא מסלול שמתחיל ומסתיים באותו הצומת. הערות ניתן להבין מה כי אין מעגלים אינסופיים. מסלול ריק איננו מעגל. מעגל פשוט יוגדר בצורה הבאה: 1. הליכת "הלוך וחזור" על קשת כלשהי איננה מעגל פשוט. 2. כל מעגל באורך 3 או יותר שאין בו חזרה על אף צומת פרט לקצוות הינו מעגל פשוט. 3. חוג עצמי הינו מעגל פשוט. מסלול פשוט הוא מסלול שאף צומת אינה מופיעה בו פעמיים. גרף פשוט הוא גרף בלי חוגים עצמיים ובלי קשתות מקבילות. גרף קשיר הוא גרף בו קיים מסלול בין כל שני צמתים.. E V 2 טענה בגרף פשוט מתקיים: עמוד 3

+ טענה יהי G גרף פשוט. אם בין כל זוג צמתים קיימת קשת, נקרא ל- G גרף מלא. V. E = במקרה זה, מתקיים כי 2,... 1 2 v V = { v, וקבוצת קשתות גרף מכוון (E )G V, הוא מבנה המכיל קבוצת צמתים },... 1 2 e. E = { e, בגרף מכוון קשת הינה זוג סדור. } נגדיר דרגות בגרף מכוון: d in הינה מספר הקשתות הנכנסות אל הצומת. d out הינה מספר הקשתות היוצאות מן הצומת. סימון u v e יהיו,u v קשתות ו- e צומת. נסמן: אם יש צומת שקצוותיה הן,u. v במקרה זה נאמר כי e מחבר בין u ל- v. u נקראת צומת ההתחלה ואילו v נקראת צומת הסיום. טענה. v V = d in ( v) d dout ( v) = v V בגרף מכוון וסופי, מתקיים כי E טענה (חשובה). v V d( v) = 2 בגרף לא מכוון וסופי, מתקיים כי E למה 1 בגרף לא מכוון וסופי יש מספר זוגי של צמתים שדרגתם אי זוגית. הוכחה: נשתמש בטענה, הטוענת כי מספר הקשתות בגרף לא מכוון הינו זוגי. הזוגיות של מספר הקשתות נקבעת אך ורק על ידי הצמתים מהם יוצא מספר אי זוגי של קשתות. מכיוון שכך, ומכיוון שמספר הקשתות הינו זוגי, הלמה הוכחה. עמוד 4

ייצוג גרפים במחשב על מנת שנוכל לנתח את סיבוכיות הזמן והמקום של אלגוריתמים בתורת הגרפים, נראה כיצד אנו מייצגים גרפים בזיכרון מחשב. מטריצת שכנויות כאשר נרצה לייצג גרפים פשוטים (מכוונים או לא מכוונים) במחשב, נוכל לייצגם,i ( במטריצה יופיע 1 אם יש קשת בין הצמתים בעזרת מטריצת שכנויות. במקום ה- (j ה- i וה- j, אחרת יהיה במקום זה. כאשר נייצג גרף לא מכוון, המטריצה תהיה מטריצה סימטרית.. E V. גרף יקרא דליל אם logv E << V 2 גרף יקרא דליל אם מטריצת שכנויות איננה ייצוג יעיל לגרפים, כאשר אנו עובדים עם גרפים דלילים. ייצוג גרפים על ידי רשימות פגיעה כאשר אנו משתמשים ברשימות פגיעה, אנו איננו מגבילים את עצמנו לגרפים פשוטים. כמו כן, סיבוכיות המקום הינה ליניארית בהתאם למספר הקשתות והצמתים, ואינה ריבועית כמו בייצוג בעזרת מטריצת שכנויות. תיאור מבנה הנתונים: אנו משתמשים במערך צמתים. לכל צומת v ישנו תא במערך. בכל תא ישנה רשימה של קשתות, שהן הקשתות הפוגעות בה. בסוף הרשימה ישנו.NIL עבור כל אחת מהרשימות, קיים מצביע N(v) המצביע אל האיבר הנוכחי ברשימה. בתחילה N(v) מצביע אל האיבר הראשון ברשימה או אל NIL אם הרשימה ריקה. כמו כן, נשתמש במערך קשתות, שיכיל עבור כל צומת את שני הקצוות שלה (או את קצה ההתחלה וקצה הסיום, במקרה של גרף מכוון), וכן דגל שאומר האם הקשת בשימוש בגרף או לא. בתחילה כל הקשתות אינן משומשות. מסלול P יקרא מסלול מקסימלי, אם לא ניתן להרחיב אותו,כלומר אין קשתות יוצאות מצומת הסיום, בהן לא ביקרנו. מסלול P יקרא מסלול מקסימום, אם לא ניתן למצוא מסלול ארוך ממנו בגרף הנתון. עמוד 5

דוגמא נניח כי בידינו גרף הנראה כך: A B D-C-E במקרה זה, D-C-Eהינו המסלול המקסימלי, מכיוון שאיננו מסוגלים להפוך אותו למסלול גדול יותר (לצמתים Dו- E, הקצוות, אין שכנים מלבד C). ישנם שני מסלולי מקסימום: A-B-C-Eו- A-B-C-D. הם מקסימום מכיוון שאי מסלולים אחרים בגרף שארוכים מהם. TRACE נרצה כעת אלגוריתם (P,TRACE(s, כך שבהינתן גרף סופי (E )G V, וצומת התחלה, s V תאתר מסלול מקסימלי המתחיל ב- s ואינו עובר על צומת יותר מפעם אחת. התוצאה תוחזר לתוך הרשימה או המערך P, שבתחילה הינו ריק. סיבוכיות הזמן המבוקשת של TRACE הינה O. E ( ) מימוש אפשרי: Procedure TRACE(s, P) v s while N(v) points to an edge (and not to NIL) do if N(v) points to a used edge do change N(v) to point to the next item in the list else do e N(v) change the flag of e to used add e to the end of P use the edge table to find the second endpoint of e, say it is u v u עמוד 6

גרף אויילר משפט אויילר גרף בלתי מכוון, סופי וקשיר הוא גרף אויילרי אם ורק אם מתקיים אחד מהתנאים הבאים: 1. יש בדיוק שני צמתים שדרגתם אי זוגית. 2. כל הצמתים בעלי דרגה זוגית. במקרה 1, כל מסלול אויילר הוא מסלול פתוח. במקרה 2, כל מסלול אויילר הוא מעגל. מסלול יקרא מסלול אויילרי אם זהו מסלול בו אנו עוברים על כל קשת פעם אחת. מסלול יקרא מסלול המילטוני אם זהו מסלול בו אנו עוברים בכל צומת פעם אחת. אלגוריתם למציאת מסלול אויילרי בין צומת a לצומת b יהי G גרף סופי, בו יש בדיוק שני צמתים שדרגתם אי זוגית, שנסמנם,a. b נרצה למצוא מסלול אויילרי בין צמתים אלו. ראשית, נמצא מסלול מקסימלי בעזרת TRACE בין a ל- b. מכיוון שהגרף הוא סופי, האלגוריתם ייעצר בסופו של דבר, ויחזיר לנו מסלול. לאחר שמצאנו מסלול זה, והשתמשנו באחת מהקשתות שמחברת את a, דרגתו של a זוגית כעת. מכיוון שכך, a איננו יכול להיות סיום המסלול יותר. לפי אותו הגיון, מכיוון שכל דרגות הצמתים זוגיות מלבד b, המסלול אינו יכול להסתיים באף אחד מהצמתים בדרך, ולכן בהכרח, P מסתיים בצומת b. אם P כולל את כל הצמתים ב- G, סיימנו, אחרת, מתקיימים ההיסקים הבאים: 1. הדרגה של כל צומת היא זוגית. 2. ישנן כמה קשתות הצמודות לצמתים, שלא נעשה בהן שימוש, הצמודות אל P. כעת, נבצע את התהליך הבא: נמצא צומת כזו, ונבנה ממנה מסלול מקסימלי P, הכולל את הצמתים והקשתות השונים בהם איננו משתמשים ב- P, שמתחיל בצומת v. מכיוון שדרגות כל הצמתים זוגיות, אזי זהו מעגל, ו- v הינה גם צומת הסיום. נאחד את המעגל עם P וניצור מסלול גדול יותר. ככה נמשיך עד שלא ישארו יותר קשתות אותן לא ביקרנו. עמוד 7

סדרות דה ברואין דוגמא נרצה לרשום מעגל של אפסים ואחדות, כל שכל המילים הבינריות באורך n יופיעו בו כרצף. 1 1 1 1 עבור 3=n: ניתן לפרוש את המעגל לאיברים השונים: 1 11 111 11 11 1 1 1 1 עבור 2=n: עבור 1=n: 1 L, יסומן Σ מעל n אותיות. מספר המילים באורך σ אלף בית של =Σ {,1,... יהי 1} σ n 1 L a a1... a מעל,Σ כך שעבור כל =L. סדרת דה ברואין היא רצף (מעגלי) וערכו: σ a j a j+ 1... a j+ n 1 מילה w בעלת n אותיות מעל Σ, קיים j<σ כך שמתקיים: = w (חישובי האינדקסים נעשים מודולו L). עמוד 8

+ יהיו. nσ, N G σ, n מוגדר כך: גרף מכוון דה ברואין (E ( V, n 1 Σ. מעל המילים באורך 1 n σ 1 V, = Σ כלומר קבוצת כל n.1 n. E = Σ.2 1 n b1 b2... b ומסתיימת בצומת b מתחילה בצומת 1b2... b n הקשת המכוונת 3.. b b... 2 3 b n בקשתות נמצאות המילים השונות של השפה, בעוד שבצמתים נמצאת "התוצאה" אחרי shift של התו האחרון של המילה, שבעזרתה נוכל להרכיב את המילים הבאות בשפה. איך נמצא בגרף כזה סדרת דה ברואין? נמצא מסלול אויילרי על כל הקשתות. טענה, nσ, N מתקיים: + לכל G σ, n קשיר היטב. א. E) ( V,. din ( v) = d out ( v) ב. = σ, v V G σ, n הינו גרף אוליירי מעגלי. ג. E) ( V, הוכחת ג': גרף התשתית קשיר (לפי א'), ודרגות הכניסה והיציאה שוות (לפי ב'), ולכן הגרף אויילרי מעגלי. מסקנה n σ. יש סדרת דה ברואין באורך, nσ, N + לכל עמוד 9

אלגוריתם למציאת המסלול הקצר ביותר בגרפים הקדמה ישנן מספר סוגי בעיות כאשר אנו נדרשים למצוא את המסלול הקצר ביותר בין גרפים. נברר את הפרטים הבאים, לפני שנחליט על האלגוריתם בו נשתמש: האם הגרף הוא גרף מכוון או גרף לא מכוון? אורכי הקשתות שוות באורכן או שונות? האם מותרות קשתות "באורך" שלילי? מי המקור והיעד? האם נרצה את המסלול הקצר ביותר מצומת s t מצומת s אל כל שאר הצמתים? מכל צומת אל כל צומת? האם נרצה למצוא מסלול אחד? את כל המסלולים האפשריים? BFS אלגוריתם המוצא מסלול קצר ביותר בגרף לא מכוון (E G(V, מצומת, s t כאשר אורכי כל הקשתות שווים ל- 1. האלגוריתם: סמן את s ב-. i חזור : כל צומת לא מסומנת השכנה לצומת שמסומנת ב- i, תסומן ב- i+1. הגדל את i ב- 1. כל עוד t לא סומן (או כל עוד יש צומת לא מסומנת, אם נתעניין במרחקים בין s לכל שאר הצמתים). סימונים נסמן ב- λ(v) את הסימון של צומת v. נסמן ב- (v) δ את המרחק המינימום בין.{ v λ( v) נסמן ב- את הקבוצה: {i =.v אל s A i עמוד 1

A A1 A2 A3 תכונות λ(v) אין קשתות המחברות קבוצות A i מרוחקות.. A i 1, A i עובר דרך כל מסלול מ- s אל אם לצומת v סימון,λ(v) אזי קיים מסלול באורך אליו. משפט v V, λ ( v) = δ ( v) הערות האלגוריתם תקף גם עבור גרפים מכוונים. ניתן לממש את האלגוריתם גם באמצעות תור. אם נחפש את המרחקים בין s אל כל הצמתים, נדרוש שהגרף יהיה סופי. אם נחפש רק את המרחק בין s אל t, מספיק לדרוש רק כי דרגות היציאה מכל הצמתים הינן סופיות. טענה זו תורחב מייד. סיבוכיות האלגוריתם: אם מחפשים מסלול בין s אל t, או בין s אל כל שאר הצמתים, סיבוכיות האלגוריתם הינה (E )O. אחרת, אם מחפשים את המרחקים הכי קצרים בין כל צומת אל כל צומת אחרת, סיבוכיות האלגוריתם ) ( הינה.O E V עמוד 11

בעיה אחת ההערות שהרגע הצגנו, היא כי כדי למצוא מסלול מ- s אל t, מספיק לדרוש כי דרגות היציאה יהיו סופיות. דרישה זו איננה נכונה במלואה. נביט בדוגמא הבאה: s 5 t 1 1 2 1 4 מסלול אחד באורך סופי והוא 5, ומסלול שני באורך אינסופי, אך מתכנס לפחות מ- 5. אם זאת, האלגוריתם לא יהיה מסוגל לאתר את המסלול השני., ε כאשר לפיכך, נתקן את הערה ונדרוש גם כי עבור כל קשת e, יתקיים כי > ε )l (e > קבוע. עמוד 12

Diskjstra s Algorithm האלגוריתם שנראה כעת מטפל אף הוא בגרפים מכוונים. יהי גרף (E,G(V, ותהי צומת התחלה s. נדרוש כי לכל קשת e השייכת לגרף, אורך (e )l. המשימה שלנו היא למצוא את (v) δ עבור כל צומת בגרף. אם ידוע שכל אורכי הקשתות הוא שלמים חיוביים, ניתן להחליף כל קשת e על ידי מסלול שעובר דרך (e )l צמתים באורך 1, ולהשתמש באלגוריתם הישן. אם זאת, פתרון מעין זה הופך את האלגוריתם לבלתי סביר מבחינת סיבוכיות. האלגוריתם שנראה כעת הוא מעין שכלול של,BFS והוא מאפשר לעשות את החיפוש בזמן ליניארי. Procedure DIJKSTRA(G, s, λ) λ( s) T { s} P φ whilet φ do choose a vertax v T for which λ( v) is minimum { } { } T T \ v P P v e for every v u do if u T then do { } { λ λ } λ( u) min ( u), ( v) + l( e) else, if u P then do λ( u) λ(v)+l(e) T T u T זוהי קבוצה זמנית של צמתים מסומנים, כלומר, צמתים עבור λ נקבע, אולם הערך עוד יכול להשתנות. P היא קבוצה של צמתים מסומנים באופן קבוע. צמתים יכולים להיות ב- P ב, -T או עדיין לא מסומנים. עמוד 13

טענה כאשר מפעילים אלגוריתם זה על כל גרף סופי, הוא נעצר בסופו של דבר. הוכחה: כל צומת נכנס ל- T לכל היותר פעם אחת, וכל צומת שנבחרת בשורה 5 באלגוריתם עוזבת את T, ולכן הביצוע של שורה 5 לוקח לכל היותר אחרי ביצוע שורה 5 טענה.O( V ) V פעמים לכל היותר, T חייבת להיות ריקה, והאלגוריתם עוצר. במהלך ביצוע האלגוריתם, כל צומת שניתן להגיע אליה מ- s מסומנת. טענה עבור כל צומת v שמסומנת במהלך האלגוריתם ב- (v )λ, קיים מסלול באורך (v )λ מהצומת s אל הצומת v. מסקנה. λ( v) δ בכל זמן במהלך ריצת האלגוריתם, (v ( משפט כאשר האלגוריתם עוצר, עבור כל צומת v שניתן להגיע אליה מהצומת s, מתקיים כי. λ( v) = δ ( v) הערות האלגוריתם עובד על גרפים מכוונים וגם על גרפים לא מכוונים. אם נחפש את המרחקים בין s אל כל הצמתים, נדרוש שהגרף יהיה סופי. אם נחפש רק את המרחק בין s אל t, מספיק לדרוש רק כי דרגות היציאה מכל הצמתים הינן סופיות. האלגוריתם עובד עבור אורכי מסלול כלשהם (L) ולא רק עבור <L. הגרף יכול להיות פשוט או לא פשוט. 2 סיבוכיות האלגוריתם: O V + E ( ) עמוד 14

The Ford Algorithm l( e) אלגוריתם זה מטפל בגרפים מכוונים. יהי גרף סופי (E,G(V, ותהי צומת התחלה s. לכל קשת e השייכת לגרף, אורך כלשהו. המשימה שלנו היא למצוא את (v) δ עבור כל צומת בגרף. מעגל ייקרא מעגל שלילי אם סכום ארכי הקשתות עליו הוא שלילי. הערה נשים לב שאם קיים מסלול בין צומת s בגרף אל מעגל שלילי C, הרי שהמרחק מ- s אל המעגל אינו מוגדר. עבור כל אורך מסלול אפשרי אל C, נוכל לעשות סיבוב נוסף על המעגל, ולקבל מסלול באורך קצר יותר. האלגוריתם Procedure gen-ford(g, s, l, λ) for every v V do λ( v) λ( s) e while there is an edge u v such that λ( u) is finite and λ( v) > λ( u) + l( e) do λ( v) λ( u) + l( e) הערה באלגוריתם זה אף צומת איננה מקבלת קביעות עד לסיום האלגוריתם. עמוד 15

טענה במהלך ריצת האלגוריתם של,Ford אם קיימת צומת v, עבורה מתקיים כי (v )λ הינו סופי, אזי בהכרח קיים מסלול ישיר בין s אל v, שאורכו (v )λ. הוכחה: e x הקשת האחרונה ששופרה, כך שאחריה תהא y e). λ( y) λ( x) + l( על פי ההנחה, יש מסלול באורך נגיע אל y, ולכן יש מסלול באורך (v )λ אל y. טענה שונתה - אל x. אם נחבר אליו את e, λ( y) λ( x) אם לגרף אין מעגלים שליליים נגישים מ- s, ואם במהלך ריצת האלגוריתם של,Ford קיימת צומת v, עבורה מתקיים כי (v )λ הינו סופי, אזי קיים מסלול מכוון פשוט, בין s אל,v שאורכו v).λ( טענה אם לגרף אין מעגלים שליליים נגישים מ- s, אזי בסוף ריצת האלגוריתם של,Ford מתקיים עבור כל צומת כי v). λ( v) = δ ( הערה סיבוכיות אלגוריתם זה ידועה. כיוון שאנו יודעים את הסיבוכיות של אלגוריתם זה, נוכל לכתוב אלגוריתם לאיתור מעגלים שליליים. ניתן לאלגוריתם זמן לרוץ בהתאם לסיבוכיות שלו. אם האלגוריתם עוצר בסוף זמן זה, הרי שאין מעגלים שליליים בגרף, אחרת ישנם מעגלים שליליים בגרף. מימוש וסיבוכיות מימוש אפשרי לאלגוריתם: {,,..., 1 2 } E= e e e E for v times for i = 1 to E update any node that need update עמוד 16

( ) סיבוכיות האלגוריתם הינה. O V E נשים לב כי זהו אלגוריתם סופי, אפילו אם בגרף מצויים מעגלים שליליים. אם נחפש את המסלולים הכי קצרים מכל צומת אל כל צומת, הרי שהסיבוכיות תהיה 2. O V E ( ) Floyd Algorithm אלגוריתם זה מטפל בגרפים מכוונים. יהי גרף סופי (E,G(V, ותהי צומת התחלה s. לכל קשת e השייכת לגרף, אורך (e )l כלשהו. המשימה שלנו היא למצוא את (v δ (,u עבור כל צומת בגרף, כלומר למצוא את המרחק בין הצומת u אל הצומת v, עבור כל זוג סדור של צמתים בגרף. כמו כן, אנו מניחים כי אין מעגלים שליליים בגרף, שאין בו חוגים עצמיים, וכן שאין בו קשתות מקבילות. אם בין שתי צמתים יש יותר מקשת אחת, הרי שאנו מסוגלים להתעלם מכל הצמתים, מלבד מהקצרה ביותר, ולהפעיל את האלגוריתם עליה. האלגוריתם של Floyd מבצע את המשימה של מציאת המרחקים בין כל צומת אל כל צומת אחרת, בסיבוכיות של 3.O( V ) מבנה הנתונים והנחות:. V = { 1, 2,..., n} נניח כי אוסף הצמתים V נתון והוא : k δ k ( i, j) מתקיים כי k n ונניח כי עבור כל δ, בשם n נגדיר מטריצה בגודל n היא למעשה המסלול הקצר ביותר בין צומת i אל צומת j, אשר לא עובר בין הצמתים. k+ 1, k+ 2,..., n דוגמא e l( e) i j exists λ ( i, j) = else ( ) ( i, j) = min ( i, j), ( i,1) + (1, ) 1 λ λ λ λ λ ( ) ( i, j) = min ( i, j), ( i, 2) + (2, ) 2 1 1 1 λ λ λ λ λ עמוד 17

הכללת הדוגמא e l( e) i j exists λ ( i, j) = else 1 1 1 ( ) k k k k λ ( i, j) = min λ ( i, j), λ ( i, k) + λ ( k, λ) האלגוריתם n Procedure FLOYD(G(V,E), l, δ ) for every 1 i n do e if there is a self loop i i and l( e) < then do δ ( i, i) l( e) else ( i, i) δ for every 1 i, j n such that i j do e if there is an edge i j then do δ ( i, j) l( e) else δ ( i, j) for every k, starting with k = 1 and ending with k = n do for every 1 i, j n do 1 1 1 { } δ k ( i, j) min δ k ( i, j), δ k ( i, k) + δ k ( k, j) - גודל המטריצה. 2 O( V ) 3.O( V ) סיבוכיות זיכרון של האלגוריתם: סיבוכיות הזמן של האלגוריתם: עמוד 18

נסכם את האלגוריתמים השונים: any l Floyd all all 3 O( V ) Ford any l s all or all all ( E) O V or 2 ( E) O V Diskjstra l>= s t or s all 2 ( + E) O V or 3 ( ) O V l= 1 s t or s all O( E ) BFS שם האלגוריתם אורך כל קשת מה אנחנו מוצאים סיבוכיות זמן סגור טרנזיטיבי של גרפים T = ( V, E T כך ש: סגור טרנזיטיבי של גרף מכוון G=(V,E) הוא גרף מכוון ) -G. ל- אם ורק אם יש מסלול מכוון לא ריק מ- u =e u v E T בv כלומר, סגור טרנזיטיבי הוא גרף בו קיימת קשת המחברת בין כל שתי צמתים בהם קיים מסלול בגרף המקורי. עמוד 19

דוגמא נניח כי נתון הגרף הבא: הסגור הטרנזיטיבי של הגרף הנ"ל הינו: האלגוריתם של Warshall לחישוב סגור טרנזיטיבי נניח כי הצמתים ממוספרים מ 1 ועד n, כלומר: {n V. = {,...,1,2 להלן האלגוריתם של Warshall לחישוב סגור טרנזיטיבי של גרף מכוון: (1) for every 1 i, j n, do: (2) if e= i j E, then T ( i, j) 1 (3) else, T ( i, j) (4) for every k, starting with k=1 and ending with k=n, do: (5) for every 1 i, j n, do: (6) T ( i, j) max{ T ( i, j), T ( i, k) T ( k, j)} עמוד 2

T ( i, j) = טענה בסיום האיטרציה ה- k של הלולאה שבשורות (6)-(4) מתקיים כי 1 אם יש מסלול מכוון ב- מG - לi -j שצמתי הביניים בו הם מהקבוצה אם ורק.{ 1,2,..., k} משפט האלגוריתם של Warshall מחשב את הסגור הטרנזיטיבי של G, כלומר בסיום האלגוריתם מתקיים לכל תא במטריצה T: 1 T ( i, j) = there is a nonempty directed otherwise path in G from i to j קשר לאלגוריתם של :Floyd (j δ (,i אם ורק אם לא =, i לפי נכונות האלגוריתם של Floyd מתקיים כי לכל j קיים מסלול מכוון ב- מG - לi -j. לפי המשפט לגבי האלגוריתם של,Warshall אנו.T ( i, j ) סופי אם ורק אם = 1 δ ( i, j) : i נקבל כי לכל j 2 O( V ) סיבוכיות: 2 שורות (1)-(3) לוקחות ) V O( זמן. הלולאה שבשורות (6)-(4) מתבצעת V פעמים, כאשר כל איטרציה לוקחת זמן. 3 לכן הסיבוכיות הכוללת של האלגוריתם היא ) V )O. EOF עמוד 21