חישוב מבוזר אלי דיין 1 13 ביולי

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "חישוב מבוזר אלי דיין 1 13 ביולי"

Transcript

1 חישוב מבוזר אלי דיין 1 13 ביולי 2013 <eliyahud@post.tau.ac.il> 1

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

3 תוכן עניינים 3 שיעור העברת הודעת Passing Message הפצה של הודעה (Broadcast) הנחות לגבי המודל המימוש עץ פורש גילוי סיום ניתוח סיבוכיות Diusing Computation תיאור הבעיה הצעה לאלגוריתם הצעה טובה יותר שיפור להצעה כמה יוזמים Snapshots שיעור Snapshot רשת סינכרונית סינכרונייזר Synchronizer סינכרונייזר α סינכרונייזר β סינכרונייזר γ סיכום בניית Cluster ים שיעור בחירת מנהיג תיאור הבעיה אלגוריתם ראשוני אלגוריתם יעיל יותר (בפאזות) אלגוריתם לרשת סינכרונית גודל הרשת לא ידוע חסם תחתון למספר ההודעות

4 תוכן עניינים תוכן עניינים הקשר לעץ פורש עץ פורש מינימלי (MST). Minimum Spanning Tree שיעור עץ פורש מינימלי Maximal Independent Set שיעור הרדיוס של בעיה בעיית הצביעה במעגל (STP) Sequence Transmission Problem שיעור בעיית ההסכמה Consensus התמודדות עם. Fail-Stop Fault התמודדות עם. Byzantine Fault מודל זיכרון משותף Memory) (Shared שיעור בטחון באוגרים בזיכרון משותף Snapshot שיעור בעיית ההסכמה פעולות אטומיות על אוגרים שיעור מספר. Consensus בנייה אוניברסלית שיעור היסטוריות שיעור Splitter בעיית ה Renaming מניעה הדדית Exclusion) (Mutual שיעור Set Consensus שקילות המודלים שיעור יריבים שיעור אלגוריתמים רנדומיים להסכמה

5 פרק 1 שיעור 1 1 חישוב מבוזר מורכב מהרבה מעבדים שמחשביםאת אותה המשימה, כאשר כל מעבד יודע חלק מהקלט, והמטרה היא שכל מעבד ידע חלק מהפלט. דוגמה 1: כל המחשבים באינטרנט מחשבים את המסלולים הקצרים בין כל מחשב לכל מחשב. אין מחשב שיודע את כל המסלולים הקצרים בין כל זוג מחשבים, אבל כל מחשב יודע את המסלולים הקצרים ממנו לכל מחשב אחר. דוגמה 2 (חישוב עץ פורש): חישוב עץ פורש. על מעבד הוא צומת בגרף, והוא רואה רק את המעבדים הקרובים אליו. בסופו של דבר, כל צומת (מעבד) ידע אילו מהקשתות הסמוכות אליו הן חלק מהעץ הפורש. נדבר על חישוב מבוזר, שהוא חישוב א סינכרוני. זה לא חישוב מקבילי, שמדבר על הרבה מעבדים באותו המחשב (למשל). נטפל גם בחישוב סינכרוני, אבל גם שם יהיה קיים אלמנט אי הוודאות. נדבר על מודלים של העברת הודעות ומחשבים מרובי ליבות עםתקשורת לא מסודרת. בכולם יש אי ודאות. למשל, ברשת, חישוב מתקדם, אבל יש הרבה דברים שאינם ידועים (למשל חיבור בין שני מחשבים נעלם). המודלים שנדבר עליהם:.1 העברת הודעות Passing).(Message 2. זיכרון משותף: בהתחלה בצדדים התיאורטיים, ואז נעבור למבני נתונים מקביליים. טרמינולוגיה: מקבילי.Parallel מבוזר.Concurrent המוטיבציה העיקרית לחישוב מבוזר היא עמידות לתקלות Tolerance.Fault זאת הייתה המוטיבציה להקמת ה ARPA-Net, האבא של האינטרנט, בתקופת המלחמה הקרה. באמצעותה קיוו להשיג שרידות במקרה של התקפה סובייטית. זה גם נועד למנוע תקלות שנובעות ממחשבים זדוניים שמזייפים חישוב. 1 סיכום לשיעור שהועבר בתאריך

6 פרק 1. שיעור העברת הודעת Passing Message l 2 l 1 l 3 איור 1.1: מבנה של צומת ברשת במודל העברת הודעות 1.1 העברת הודעת Passing Message איך שולחים הודעות? Send(M on link l i ) איך מקבלים הודעות? המודל שלנו יהיה מונחה אירועים,(Event-Driven) וקבל הודעה היא אירוע: 1: Upon Receiving M on link l i 2:... 3: Send(M on link l j ) 4:... איך החישוב יתנהל במימוש אמיתי? לכל מחשב יהיה תור של הודעות שהתקבלו. התור יהיה,FIFO ולכן ההודעות יטופלו לפי סדר קבלתן. לא מטפלים בהודעה כל עוד הטיפול בהודעה הקודמת לא הושלם. 1.2 הפצה של הודעה (Broadcast) הנחות לגבי המודל לרשת יש טופולוגיה שהיא גרף קשיר כלשהו, והקשתות לא מכוונות. כל קודקוד רואה רק את השכנים שלו, ולא מכיר את שאר הקודקודים. לכל מעבד יש זיכרון ושם יחיד. הקשתות הן.FIFO הודעות לא נאבדות. מספר הקודקודים n אינו ידוע. 4

7 פרק 1. שיעור הפצה של הודעה (Broadcast) אלגוריתם 1.1 הפצה של הודעה 1: function Start(M) Start broadcast of M 2: Send(M to all neighbors) 3: end function 4: Upon Receiving M on link l On any node except initiator 5: if Received(M) = false then 6: Received(M) true 7: Send(M to all N (v) \ {l}) 8: end if אלגוריתם 2.1 הפצה של הודעה ופרישת עץ 1: function Start(M) Start broadcast of M 2: Send(M to all neighbors) 3: end function 4: Upon Receiving M on link l On any node except initiator 5: if parent = nil then 6: parent {l} 7: Send(M to all N (v) \ l) 8: end if המימוש קוד ראשוני למימוש נמצא באלגוריתם 1.1. הגדרה 3 (קבוצת שכנים): קבוצת השכנים של הצומת/מחשב v מסומנת ב ( v ) N. במימוש שלנו, Received(M) מאותחל להיות.false עץ פורש בעזרת קבלת ההודעה באלגוריתם, אפשר לפרוש עץ, כפי שניתן לראות באלגוריתם 2.1. למה 4: האלגוריתם מוצא עץ. הוכחה: נניח בשלילה שיש מעגל. נסתכל על הפעם האחרונה שמישהו ביצע את שורה 6 במעגל. נקרא לקודקוד v. j נאמר כי v j הוא האחרון לבצע את שורה 6. אבל היא כבר שלח את ההודעה ל 1+j v, בסתירה לקוד. לכן, אוסף הקשתות המסומנות parent הוא חסר מעגלים. כדי להראות שזה עץ, צריך להוכיח שיש בדיוק 1 n קשתות. ל Initiator אין,parent ולכל קודקוד אחר יש. נוכיח את זה: נניח בשלילה שיש קודקוד שלא קיבל את ההודעה. מכיוון שהגרף קשיר, קיים מסלול בינו לבין ה Initiator. 5

8 פרק 1. שיעור הפצה של הודעה (Broadcast) אלגוריתם 3.1 הפצה של הודעה עם גילוי סיום 1: function Start(M) Start broadcast of M 2: Send(M to all neighbors) 3: end function 4: Upon Receiving M on link l at any node except root 5: if parent = nil then 6: parent l 7: Send(M to all N (v) \ {l}) 8: if N (v) \ {l} = then 9: Send(Ack to l) 10: end if 11: else 12: Send(Ack to l) 13: end if 14: Upon Receiving M on link l at root 15: Send(Ack to l) 16: Upon Receiving Ack on link l at any node except root 17: Mark l as Ack'd 18: if All N (v) \ {parent} Ack'd then 19: Send(Ack to parent) 20: end if 21: Upon Receiving Ack on link l at root 22: Mark l as Ack'd This is the root node 23: if All nodes acked then 24: Signal(Terminated) 25: end if נסתכל על הקודקוד הראשון במסלול שלא קיבל את ההודעה. שכן שלו (על המסלול) כן קיבל אותה, ולכן היה אמור לשלוח אותה, בסתירה. עכשיו אנחנו יודעים שהאלגוריתם פורש עץ ברשת. אלגוריתם זה נקרא.Convest Broadcast גילוי סיום נרצה להפוך את האלגוריתם שלנו ל Echo,Broadcast כדי לקבל גילוי סיום Termination.Detection אלגוריתם 3.1 מתאר אלגוריתם הפצת הודעה עם גילוי סיום. נכונות האלגוריתם נובעת מהקוד ניתוח סיבוכיות ננתח את סיבוכיות אלגוריתם הפצת ההודעה, כולל גילוי הסיום. 6

9 פרק 1. שיעור 1 Diusing Computation.1.3 באופן כללי, כאשר מנתחים סיבוכיות של אלגוריתם, מסתכלים על מספר ההודעות שנשלחו, ועל זמן הריצה. במקרה הזה, מספר ההודעות שנשלחו: בכל קשת שאינה על העץ עוברות 4 הודעות (פעמיים M ופעמיים.(Ack על כל קשת בעץ עוברות 2 הודעות (M ו Ack ). בסך הכל:.4 ( E n + 1) + 2 (n 1) לצורך חישובי זמן, נכניס כמה הנחות: זמן החישוב בקודקוד הוא 0. הזמן שלוקח להודעות לעבור על הקשתות הוא כלשהו. רק לצורך חישוב הסיבוכיות, נגדיר את הזמן שלוקח להודעה לעבור על הקשת האיטית ביותר כיחידת זמן אחת. כשמדברים על סיבוכיות זמן, מדברים על המקרה הגרוע ביותר. במקרה שלנו, סיבוכיות הזמן היא (n) O. Diusing Computation תיאור הבעיה יש קודקוד אחד שמתחיל את האלגוריתם. הוא בוחר באופן אקראי חלק מהשכנים שלו, ושולח להם הודעה. כל שכן שמקבל את ההודעה, בוחר באופן אקראי חלק מהשכנים שלו ושולח להם את ההודעה. נקרא לקודקוד שמתחיל.Root נרצה שהוא יקבל Signal כשה Computation Diusing דעך (הסתיים), כלומר.Termination Detection of Diusing Computation הצעה לאלגוריתם לעשות פעמיים,Broadcast Echo ולוודא שפעמיים אין זבובים שהתקבלו. נכונות האלגוריתם נובעת מתכונת ה FIFO של הקשתות בגרף הצעה טובה יותר האלגוריתם יהיה דומה ל Echo :Broadcast כל מעבד שמקבל הודעה, בוחר תת קבוצה אקראית של קבוצת השכנים שלו, ושולח לו את ההודעה. ברגע שקיבל Ack מכל אחד מהשכנים שאליהם נשלחה ההודעה, הוא ישלח Ack לשכן ששלח לו את ההודעה במקור. כדי שהאלגוריתם יעבוד, כל שכן צריך ליצור עותק וירטואלי של עצמו (Fork) בכל פעם שהוא מקבל הודעה חדשה לעיבוד. בכל הודעה (M או,(Ack יהיה כתוב השם הורטואלי של המעבד, כדי שאפשר יהיה להבין לאיזה מהעותקים של הצומת ההודעה מיועדת שיפור להצעה במקום שהקודקודים יעשו,Fork אפשר להרים את העצים למעלה, ל v הראשון. כלומר, כל קודקוד ידע כמה Ack ים הוא צריך לקבל מכל אחד מהשכנים שלו. יהיה לו רק אבא אמיתי אחד, שאליו הוא ישלח Ack כשהחישוב ידעך בכל תת העץ שלו. אם הוא קיבל הודעה חדשה לעיבוד, לפני שתת העץ שלו סיים לבצע את החישובים שלו, הוא ישלח Ack מיידי. עדיין נשמר כאן מבנה של עת, והסיבוכיות השתפרה (לפחות סיבוכיות הזמן). 7

10 פרק 1. שיעור 1 Snapshots.1.4 v 1 v 2 v 3 v 4 איור 1.2: דוגמה ל Snapshot חוקי. אין הודעה שהתקבלה לפני ה Snapshot אבל נשלחה אחרי ה Snapshot כמה יוזמים אם רוצים שיהיו כמה יוזמים ל Computation :Diusing אפשר לפרוש עץ, ובאמצעות Broadcast Echo על העץ לבדוק אם כולם סיימו. זה נקרא.Static Termination Detection of Diusing Computation Snapshots 1.4 במודל שלנו, אין זמן כללי, אבל כל צומת יכול להגדיר שעון מקומי. השעון יגדל ב 1 עם כל הודעה שהתקבלה. אי אפשר לעשות Snapshot לכל החישוב בזמן כלשהו, כי אי אפשר לדבר עם כל הקודקודים בו זמנית. אפשר לקחת אוסף של נקודות זמן בכל קודקוד, כך שאפשר יהיה להמשיך את ריצת המערכת בצורה תקינה. הגדרה :(Snapshot) 5 Snapshot הוא אוסף של נקודות זמן במעבדים, כך שאין הודעות שהתקבלו לפני ה Snapshot ונשלחו אחרי ה Snapshot. ניתן למצוא דוגמה ל Snapshot חוקי באיור 1.2, ודוגמה ל Snapshot שאינו חוקי באיור 1.3. דרוש אלגוריתם שמוצא.Snapshot ניתן לעשות זאת בקלות בעזרת :Broadcast כל מעבד עושה את ה Snapshot שלו כשמגיעה הודעת ה Broadcast. נכונות ה Snapshot תתקיים מתכונת ה FIFO של הקשתות. את המשך הדיון על הבעיה נמשיך בשיעור הבא. 8

11 פרק 1. שיעור 1 Snapshots.1.4 v 1 v 2 v 3 v 4 איור 1.3: דוגמה ל Snapshot שאינו חוקי. המעבד v 1 ב Snapshot קיבל את ההודעה שנשלחה מ v, 4 אבל ב Snapshot v 4 עדיין לא שלח את ההודעה. 9

12 פרק 2 שיעור 1 2 ה Broadcast הוא מקרה פרטי של,Diusing Computation וה Echo הוא ה Termination.Detection Snapshot 2.1 לכל קודקוד n} i {1,..., יש מונה משלו i.t הודעה. זהו מונה א סינכרוני. המונה מתקדם בכל פעם ש i מקבל (מ i M ij אם אין הודעה Snapshot הוא ( t 1 1, t 2 1,..., t n 1 ) הגדרה :(Snapshot) 6 וקטור ל j ) כך ש ij M נשלחה ב t i M כך ש 1 ti M > ti והתקבלה ב tj M כך ש.t j M tj 1 אלגוריתם טריויאלי ל Snapshot הקודקוד שרוצה להתחיל חישוב של Snapshot מצלם את המצב המקומי של המעבד, ומייד שולח הודעה לשכנים שיבצעו.Snapshot ככה גם כל מי שמקבל את ההודעה מצלם את המצב, ושולח לשכנים. אם ההודעה כבר התקבלה, אפשר להתעלם ממנה. למעשה, זה סוג של,Diusing Computation ואפילו יש לנו אפשרות לקבל Termination.Echo בעזרת Detection הערה 7: כדאי לשים לב שב Snapshot חוקי, אין הודעה שנשלחה אחרי והגיעה לפני. אולם יכול להיות מצב שהודעה נשלחה לפני והגיעה אחרי. ניתן לראות דוגמה לכך באיור 2.1. כל קודקוד, ברגע שהוא מקבל הודעה על,Snapshot מבצע צילום ומתחיל להקליט את כל ההודעות על הקשתות האחרות. ברגע שמקבלים הודעת Snapshot משכן אחר, אפשר להפסיק להקליט הודעות שמגיעות ממנו. ככה אפשר לשמור בתוך ה Snapshot גם את ההודעות שאמורות להתקבל מהשכנים. ככה לא ייתכן שהודעות הולכות לאיבוד בגלל ה Snapshot. אחר כך, כשחוזרים מתוך,Snapshot כל צומת יכול לסמלץ את ההודעות שאמורות להגיע אליו לפני שהוא מעבד את ההודעות שהגיעו בפעול אחרי החזרה מה Snapshot. מה קורה אם כמה קודקודים מתחילים את ה Snapshot באופן ספונטני, ולא רק קודקוד אחד? זה בדיוק אותו הדבר. אפשר לחשוב שיש שורש וירטואלי, ששלח לכל אחד מהקודקודים שהתחילו את ה Snapshot הודעת,Snapshot ואז הכל אותו הדבר. 1 סיכום לשיעור שהועבר בתאריך

13 פרק 2. שיעור רשת סינכרונית v 1 v 2 v 3 Legal Illegal איור 2.1: דוגמה ל Snapshot עם הודעה חוקית ובלתי חוקית Round מחזור איור 2.2: מחזורים ברשת סינכרונית 2.2 רשת סינכרונית נסתכל על מודל חדש: רשת סינכרונית. ההנחות: 1. יש שעון (קוצב) שמייצג פולסים. כל פולס מגיע לכל הקודקודים ברשת בו זמנית. 2. כל ההודעות שקודקוד שלח בתחילת המחזור מגיעות לשכנים לפני הפולס הבא. 3. התנהלות החישוב: כל קודקוד מאותחל למצב התחלתי. בתחילת המחזור, הקודקוד שולח הודעות בהתאם למצב הנוכחי שלו. כשמגיע הפולס, כל ההודעות מהשכנים כבר התקבלו, וכל קודקוד מחשב מצב חדש בהתאם למצב הקודם, ובהתאם להודעות שהתקבלו. ניתן לראות הסבר גרפי למחזורים ברשת סינכרונית באיור

14 פרק 2. שיעור סינכרונייזר Synchronizer סיבוכיות הזמן של Broadcast & Echo במודל א סינכרוני היא (n) O, כאשר n הוא מספר הצמתים. במודל סינכרוני, הסיבוכיות היא (d) O, כאשר d הוא קוטר הגרף graph) (diameter של הרשת. העץ שנוצר ברשת סינכרונית על ידי Broadcast & Echo הוא עץ.BFS נרצה לייצר עץ BFS ברשת א סינכרונית. נסתכל על בעייה כללית יותר: נניח שנתון לנו אלגוריתם שתוכנן לעבוד ברשת סינכרונית. נרצה להריץ אותו ברשת א סינכרונית בצורה נכונה. 2.3 סינכרונייזר Synchronizer סינכרוניייזר יודע להריץ אלגוריתם סינכרוני ברשת א סינכרונית. יהיו לנו שלושה סוגים של סינכרונייזרים: β α, ו γ. הגדרה :(Safe) 8 נאמר כי קודקוד v הוא,Safe ונסמן (v),safe i אם כל ההודעות ש v שלח אחרי הפולס ה i הגיעו ליעדן. קודקוד יכול לסמלץ או לייצר לעצמו את הפולס ה 1 + i אם כל שכניו הם.Safe i איך נדע אם v הוא?Safe i על כל הודעה של האלגוריתם, נשלח.Ack ברגע שקודקוד מסויים קיבל Ack על כל ההודעות ששלח בפולס ה i, הוא.Safe i סינכרונייזר α כל קודקוד יודיע לכל השכנים שלו שהוא Safe i ברגע שהוא הופך ל.Safe i ברגע שקודקוד מסויים קיבל Safe i מכל שכניו, הוא יסמלץ את הפולס ה 1 + i. ננתח את הסיבוכיות של סינכרונייזר α: נסתכל על התקורה למחזור. על כל הודעה שהאלגוריתם שולח, שולחים גם.Ack זה מכפיל את התעבורה פי 2, ולכן נזניח. אולם ברגע שהופכים ל,Safe i מעבירים הודעה. לכן, בכל מחזור עוברות E 2 הודעות.Safe i סיבוכיות הזמן היא (1) O: תוך 3 פעמים של ההודעה האיטית ברשת נקבל מכל השכנים,Safe i ונעבור לפולס הבא. הערה 9 (סימונים): E E, או m מייצגים את מספר הקשתות ברשת, n מייצג את מספר הקודקודים ברשת, h מייצג את גובה העץ סינכרונייזר β נתון לנו עץ פורש ברשת (שנוצר בעזרת.(Broadcast & Echo כל עלה ישלח לאבא שלו שהוא Safe i כשהוא מקבל את כל ה Ack ים על ההודעות ששלח. כל צומת בעץ ישלח Safe i לאבא שלו רק כאשר הוא,Safe i וכך גם כל תת העץ שלו. כשהשורש יקבל שכל הילדים שלו הם,Safe i הוא ישלח Broadcast עם i+1.p ulse סיבוכיות סיבוכיות ההודעות היא n 2. זמן: h 2, אחד על,Broadcast והשני על.Echo סינכרונייזר γ נסתכל על המצב הבא: הרשת שלנו מחלוקת ל Cluster ים, שבכל אחד מהם עץ פורש, וקודקוד אחד שהוא ה Center.Cluster כמו כן, בין ה Cluster ים יש גשרים.(Bridges) קודקוד שיש עליו קשת שהיא גשר יודע שהקשת היא גשר. נסמן ב B את מספר הגשרים. איך נראה?Pulse 12

15 פרק 2. שיעור סינכרונייזר Synchronizer זמן הודעות O (1) 2 E α 2 h 2 n β O (h ) 4 n + 2 B γ טבלה 2.1: סיבוכיות הזמן וההודעות של הסינכרונייזרים השונים 1. כל שורש Center) (Cluster שולח הפצה (Broadcast) של P ulse i בעץ של ה.Cluster 2. בתוך ה Cluster, כל צומת שמקבל P, ulse i שולח P ulse i לכל ילדיו בעץ. 3. כל צומת מבצע את החישוב של ה Pulse ה i. 4. אחרי שמקבלים Ack על כל הודעה שנשלחה, הקודקוד הוא.Safe i 5. כאשר קיבלתי Safe i מכל ילדיי בעץ (של ה Cluster ), ואני,Safe i אשלח Safe i להורה בעץ. 6. כאשר שורש מקבל Safe i מכל ילדיו בעץ, הוא מודיע שהוא.ClusterSafe i 7. עושים Broadcast ב Cluster שאומר שה Cluster הוא.ClusterSafe i 8. כל קודקוד שמקבל ClusterSafe i מההורה בעץ שולח ClusterSafe i לכל ילדיו בעץ, ועל גשרים מ B הסמוכים אליו. 9. כל קודקוד, אם קיבל: (א) ClusterSafe i על כל הקשתות מ B הסמוכות אליו. (ב) Ack עבור ClusterSafe i מכל ילדיו בעץ (למעט אם הוא עלה). אם שני התנאים מתקיימים, אזי הוא ישלח Ack ל ClusterSafe i להורה שלו בעץ. 10. כאשר שורש מקבל Ack ל ClusterSafe i מכל ילדיו בעץ, ו ClusterSafe i מכל B שסמוך אליו, הוא עובר ל 1+i P. ulse סיבוכיות סיבוכיות ההודעות: בתוך העצים יש n 4 הודעות, ויש גם B 2 הודעות. בסך הכל, סיבוכיות ההודעות היא B) n + 2 B = O (n +.4 סיבוכיות הזמן: ) h) O גובה העץ הגבוה ביותר ביער סיכום טבלה 2.1 מפרטת את הסיבוכיות של הסינכרונייזרים השונים. סינכרונייזר α מספק סיבוכיות זמן טובה מאוד (זמן קבוע), אך סיבוכיות ההודעות גדולה מאוד. סינכרונייזר β מספק סיבוכיות הודעות טובה, אך סיבוכיות הזמן עשוייה להיות גדולה מאוד. סינכרונייזר γ נהנה משני העולמות: הן סיבוכיות הזמן שלו והן סיבוכיות ההודעות שלו טובות יותר (אך לא הכי טובות כשכל אחת מהן נמדדת בנפרד). 13

16 פרק 2. שיעור בניית Cluster ים הביצועים של סינכרונייזר γ תלויים מאוד בבחירת ה Cluster ים. לכן, אנחנו נחפש חלוקה ל Cluster ים שתיתן סיבוכיות הודעות כמו בסינכרונייזר β, וזמן כמו סינכרונייזר α. כלומר, Cluster ים בגובה קטן, עם מעט גשרים ביניהם. נראה אלגוריתם לבניית ה Cluster ים באופן הזה. 2.4 בניית Cluster ים להלן תיאור אלגוריתם לבניית Cluster ים: קודקוד אחד מתחיל. הוא ימצא עץ BFS באמצעות שליחת test 1 שעושה Broadcast.test 1+i שולחים לשכנים עד הרמה ה 1. לאחר סיום האיטרציה ה i, & Echo ברגע שצומת מקבל את הודעת ה test הראשונה, הוא ישלח.Ack לכל הודעת test נוספת, הוא ישלח.Reject ברגע שהשורש יקבל 1+i Ack מכל הילדים שלו, הוא ימשיך לאיטרציה ה 2 + i. עכשיו כל צומת זוכר מי האבא שלו ומי הבנים שלו. כל קודקוד ששולח test סופר כמה Ack ים הוא קיבל, כלומר כמה ילדים יש לו ב 1 + i. הוא סוכם אותם, ושולח את המספר לאבא שלו. ככה הסכום מתבצע עד השורש, והוא מקבל את מספר הצמתים שנוספו לו בשכבה ה 1 + i. כלומר, השורש יודע כמה צמתים נוספו לו בכל רמה, ובפרט הוא יודע כמה צמתים יש לו בעץ. ברגע שמספר הצמתים שנוספו לעץ לא מכפיל את גודל העץ פי 2 לפחות, השורש אומר שלא מרחיבים יותר את העץ. כלומר, מוסיפים שכבה רק אם היא לפחות מכפילה אתמספר הקודקודים בעץ. בתנאי הזה מבטיח ש n h. < log עכשיו נלך ב DFS, וכל עלה שנגיע אליו יהיה שורש של עץ (Cluster) חדש. ה DFS (שימשיך לתוך ה Cluster ים רקורסיבית), נכסה את כל הצמתים בגרף. בעזרת מובטח לנו שבכל עץ, h. < log n מה הגודל של B? נספור כל קשת ב B לפי הפעם הראשונה שעבר עליה test ו Ack. Cluster בגודל n i מוסיף לכל היותר n i גשרים. לכן: B i n i = n לכן, סיבוכיות ההודעות של סינכרונייזר γ תהיה (n) n + 2 B = O,4 וסיבוכיות הזמן היא n),o (h ) O (log כי גובה ה Cluster הגבוה ביותר חסום על ידי.log n 14

17 פרק 3 שיעור בחירת מנהיג תיאור הבעיה נתונה קבוצה של מעבדים, שרוצה לבחור מעבד שיהיה ה מנהיג, כלומר לעשות חישוב שבסופו כל המעבדים מקבלים את הביט 0, פרט למנהיג שמקבל 1. במצב בו כל המעבדים זהים לחלוטין, עד רמת ה id, לא ניתן לבחור מנהיג, שכן המעבדים הם לא.disting עובדה זו היא גם תוצאה של מבנה הרשת. לא ניתן לבחור מנהיג כאשר הרשת סימטרית, למשל מעגל, בניגוד למבנה כוכבי. לכן, נניח את ההנחות הבאות: לכל מעבד שם שונה (באורך (n O). (log הרשת היא בטופולוגיה של מעגל אלגוריתם ראשוני כאשר צומת מתעורר, הוא שולח לשני שכניו הודעה עם ה id שלו. כל צומת שמקבל הודעה מפיץ אותה אם היא גדולה מה id שלו. אחרת, הוא מפיץ חזרה את ה id שלו. סיבוכיות ההודעות של האלגוריתם היא (2 O. ( n אלגוריתם יעיל יותר (בפאזות) כשצומת מתעורר (בין אם בכוחות עצמו, ובין אם ע י הודעה משכן), הוא מועמד ושולח את שמו לשכניו. אם הוא גדול משני שכניו, אז הוא,local max ועובר לפאזה הבאה ושולח הודעה נוספת לשני הכיוונים. צומת שאינו local max הוא פרש (לא מנהיג), וככזה הוא פשוט עושה relay להודעות. האלגוריתם מסתיים כאשר צומת מקבל את השם שלו, ואז הוא מנהיג. לאלגוריתם יש log n פאזות, כי בכל פאזה חצי מהצמתים פורשים. בכל פאזה נשלחות n 2 הודעות. לכן, בסך הכל, n log n 2 הודעות נשלחות. 1 סיכום לשיעור שהתקיים בתאריך מבוסס על סיכום של עופרי זיו. 15

18 פרק 3. שיעור בחירת מנהיג אלגוריתם לרשת סינכרונית נניח כעת שהרשת מקיימת: הרשת היא מעגל סינכרוני. כולם מתחילים ביחד. כולם יודעים מראש את n. האלגוריתם כל צומת i סופר n 2/ i בכל שעון, וכאשר מגיע ל 0, מודיע לכולם שהוא המנהיג. במקרה הזה, המנהיג הוא בעל ה id הנמוך ביותר. סיבוכיות n הודעות. על מנת לוותר על ההנחה שכולם מתעוררים ביחד, נשנה את האלגוריתם כך שכשצומת מתעורר הוא שולח הודעת wake-up לכל כיוון, ונאמר שהודעה זו עוברת פעם אחת בכל קשת. נקבל שתוך לכל היותר 2/ n פאזות כולם התעוררו. לכן, כדי להבטיח את נכונות האלגוריתם, נאמר כי כעת כל צומת סופר id + n 2/ + n פאזות. זה נועד לפתור את המצב שבו + 1 i מתעורר 2/ n פאזות לפני i. min גודל הרשת לא ידוע אפשר גם לוותר על ההנחה שגודל הרשת ידוע, לפי האלגוריתם הבא: כל צומת סופר id 2 פולסים, ושולח הודעה לשני הכיוונים. כאשר צומת מקבל הודעה, הוא מעביר אותה הלאה אם היא קטנה מה id שלו, לאחר id 2 פולסים (מהרגע שקיבל את ההודעה). גם כאן הנחנו שיש צורך בהודעת התעוררות בתחילת האלגוריתם. בזמן שצומת 1 שולח הודעה, צומת 2 עובר לכל היותר מחצית מהצמתים ברשת. לכן, סיבוכיות ההודעות: n + n n חסם תחתון למספר ההודעות נרצה להוכיח שבמודל א סינכרוני, החסם התחתון של מספר ההודעות הוא פונקציה של n log n הודעות. בכדי לבחור מנהיג, חייבת להיות שרשרת הודעות מאחר לכולם. הגדרה 10 (שרשרת פתוחה): בשרשרת פתוחה נשלחו כל ההודעות על כל הקשתות, פרט לקשת אחת כלשהי. ראה דוגמה באיור 3.1. נאמר כי נשלחו (n) M הודעות על קשתות הרשת. M (2 n) 2 M (n) + n /2 למה 11: 16

19 פרק 3. שיעור בחירת מנהיג איור 3.1: שרשרת פתוחה. לא עברה הודעה בקשת החסרה (המקווקוות), כלומר הודעות שנשלחו על הקשת הזו לא הגיעו לצד השני. איור :3.2 מקרה הבסיס של האינדוקציה, כאשר = 2 :n.m (2) = 2 הוכחה: נוכיח באינדוקציה. בסיס: כל צומת חייב לקבל הודעה ולשלוח הודעה. למשל, = 2 (2) M, M (3) = 3 (ראה איורים 3.2 ו 3.3 ). צעד: ניתן לאלגוריתם לרוץ על מעגל R 1 של n קודקודים, ולאחר מכן על מעגל R 2 בגודל n כך שבשניהם תישאר קשת פתוחה ) 1 (v 1, w ב R 1 ו ( (v 2, w 2 ב.R 2 כעת, נחבר את v 1 עם,v 2 ואת w 1 עם.w 2 ראה דוגמה באיור.3.4 כעת, צד אחד צריך להעביר את ההודעה של המנהיג, כלומר ליצר שרשרת הודעות באורך לפחות 2/ n, כדי שהצד השני יכיר במנהיג. בפועל, אנחנו נחבר רק בין v 1 ל v 2 או רק בין w 1 ל w, 2 אבל לא את שניהם. כיצד נבחר איזו קשת ליצור? נשחרר את שתי הקשתות. נראה מי מהן מעבירה יותר הודעות (יותר מ 2 / ), n ועם הידע הזה, נחזיר את הריצה לאחור, ונוסיף רק את הקשת שהעבירה יותר הודעות. קיבלנו שרשרת פתוחה של n 2 צמתים, כך שעברו (n) M הודעות ב R 1 (לפי הנחת האינדוקציה), עוד (n) M הודעות ב R 2 (לפי הנחת האינדוקציה), ועוד 2/ n הודעות לאחר חיבור R 1 ל.R 2 כלומר: M (2 n) 2 M (n) + n /2 17

20 פרק 3. שיעור בחירת מנהיג איור :3.3 מקרה הבסיס של האינדוקציה, כאשר = 3 :n.m (3) = 3 v 1 v 2 w 1 w 2 איור 3.4: חיבור שני המעגלים R 1 ו R 2 18

21 .3.2 עץ פורש מינימלי (MST) Minimum Spanning Tree פרק.3 שיעור 3 ברשת סינכרונית, סיבוכיות ההודעות היא (n) O. סיבוכיות הזמן (מספר הסיבובים).2 idmin n מהלמה, אפשר להסיק את המשפט הבא: משפט 12: אם סיבוכיות הזמן חסומה על ידי T, אזי קיימים id ים בגודל (n M n,t) כך שהאלגוריתם ישלח לפחות n) Ω (n log הודעות. ברשת Full-Mesh א סינכרונית, סיבוכיות ההודעות נותרת (n O. n) log עבור גרף כלשהו, ניתן לקבל סיבוכיות הודעות של n).o ( E + n log הקשר לעץ פורש מציאת מנהיג שקולה למציאת עץ פורש: אם נתון עץ פורש, אז המנהיג הוא שורש העץ. אם נתון מנהיג, אפשר לפרוש עץ כשהמנהיג יוזם.Flooding גם אם העץ הפורש אינו מושרש, קיימת רדוקציה לינארית מכל אחד מהמקרים. אם נתון עץ פורש שאינו מושרש, אפשר לבחור את המנהיג באמצעות Collapsing ב ( n ) O הודעות (עד שנותרים שני קודקודים, והם מחליטים לפי ה id ). אם נתון מנהיג, קל למצוא עץ פורש מושרש (בעזרת,Flooding כמו קודם), שהוא בפרט עץ פורש, ב ( E ) O הודעות. 3.2 עץ פורש מינימלי (MST) Minimum Spanning Tree כדי לא לאפשר קיום של שני עצים פורשים מינימאליים, לא נאפשר קיום של שתי קשתות בעלות אותו המשקל. נשיג זאת באופן הבא: קשת בין id 1 ו,id 2 משקלה יהיה: min {id 1, id 2 } max {id 1, id 2 } כלומר, שרשור של ה id המינימלי עם ה id המקסימלי. כמו כן, נניח כי הגרף ינו מכוון, וכל קודקוד מכיר רק את הקשתות הסמוכות אליו. נראה אלגוריתמים לפתרון הבעיה בשיעור הבא. 19

22 פרק 4 שיעור עץ פורש מינימלי ההנחות שלנו: 1. אין שתי קשתות בעלות אותו המשקל. 2. ניתן לבצע השוואה לקסיקוגרפית של קשתות. האלגוריתם של בורורקה (Boururka) מתואר באלגוריתם 1.4. למה 13: אין מעגלים בבחירת הקשתות (באיטרציה הראשונה). הוכחה: נניח בשלילה שיש מעגלים. נסמן את הקשתות בו ב i j.e i ) e 1, e 2,..., e k.(e j אזי i+1,e i < e וכן e k < e 1 (לפי בחירת הקשתות), בסתירה. ההבדל בין Core ל Fragment : Core הוא זוג קודקודים. Fragment הוא עץ פורש. למה 14: אין מעגלים גם באיטרציות הבאות. 1 סיכום לשיעור שהתקיים בתאריך אלגוריתם 1.4 האלגוריתם של Boururka למציאת עץ פורש מינימלי 1: C 0 {V }, F 0 {V } vertices 2: k 0 3: while there is more than one fragment in F k do 4: for all F i F k do µ i minimum weight outgoing edge in F i 5: C k+1 {e j e j = µ x = µ y, x y} cores, collection of edges selected in both directions 6: F k+1 { c C k+1 the connected graph around c is in F k {µ}} 7: k k + 1 8: end while 20

23 פרק 4. שיעור עץ פורש מינימלי הוכחה: נסתכל על כל רכיב קשירות כקודקוד. עם אותו הטיעון כמו בלמה 13, נקבל שאין מעגלים. היינו רוצים לממש את האלגוריתם הזה בצורה מבוזרת, כלומר לממש אלגוריתם מבוזר שיחפש עץ פורש מינימלי. הצעה 15: כל צומת v ישלח (v Connect L) =,0 על הקשת המינימלית. כל זוג קודקודים ששלחו וקיבלו Connect האחד לשני יהפכו ל Core. אחר כך עושים (1 = L F ind (f-name, (כאשר f-name הוא השם של ה Fragment ) שבו כל קודקוד שולח בדיקה (הודעת f-name) T) est L) =,1 לקשת המינימלית שיוצאת ממנו. מתקבלת התשובה OK אם היעד לא ב f-name, או Reject אחרת. התהליך ממשיך עד שמוצאים קשת שיוצאת מה Fragment לכל קודקוד. כמו כן, כל קודקוד מעביר את F ind לכל אחד מהילדים שלו בעץ. ברגע שקודקוד מוצא קשת מינימלית שיוצאת ממנו אל מחוץ ל Fragment, וקיבל הודעת f-name) EchoM ininalw eightoutgoingedge,l) מכל אחד מהילדים שלו, הוא מעביר הלאה את המשקל המינימלי. כמו כן, כל קודקוד זוכר מאיזה שכן קיבל את המינימום. היוצאת מה Fragment, והמסלול למציאתה ידוע. וחוזרים חלילה. ככה, השורש יודע מה המשקל של הקשת הקטנה ביותר עליה שולחים f-name),connect (L, האלגוריתם הזה נכתב על ידי Humblet,Gallagher ו Spira. המאמר שמסביר את האלגוריתם לא כל כך מובן, אז עדיף להבין את מה שכתוב כאן. כדי שהאלגוריתם יעבוד על רשת א סינכרונית, נבצע שינוי יחיד: קודקוד לא עונה להודעה עד שהוא מגיע לרמה (Level) שלה. כלומר, קודקוד ברמה l לא עונה להודעות ברמה יותר גדולה מ l. עכשיו, לכל צומת יש את המצב שלו, שאינו בהכרח זהה למצב של צמתים אחרים. ניתוח סיבוכיות סיבוכיות הודעות באלגוריתם יש לנו הודעות Reject T, est ו OK. היו גם,Connect.EchoM inimalw ו eightoutgoingedge F ind הודעת T est נשלחת E פעמים (פעם אחת בכל קשת), והיא תמיד תקבל תשובה מסוג.OK או Reject עבור כל רמה, נשלחות n הודעות F. ind כנ ל לגבי.EchoMinimalW eightoutgoingedge לכן, בסך הכל נשלחות n log n הודעות.F ind גם Connect נשלחת n log n פעמים, כי בכל רמה נשלחים לכל היותר n הודעות Connect (כי n חוסם את מספר ה Fragment ים). כל קודקוד שולח T est חוזר לכל היותר פעם אחת בכל רמה. לכן, יש n log n הודעות T. חוזר. כנ ל לגבי התשובות ל est T est בסך הכל, האלגוריתם שולח E + 5 n log n 2 הודעות, שזה n) O ( E + n log הודעות. סיבוכיות זמן נסתכל על ה Fragment עם הרמה המינימלית בגרף. שום דבר לא מעכב אותו, כי הוא הרמה הנמוכה ביותר. הוא עושה Broadcast & Echo עם קצת הודעות T est (בכל צומת), בזמן של (n) O. מכיוון שיש log n רמות, הזמן הכולל חסום על ידי.O (n log n) 21

24 פרק 4. שיעור 4 Maximal Independent Set.4.2 L = 1 L = 1 L = 2 L = 1 L = 2 L = 3 L = 1 n/2 nodes איור 4.1: הוכחת הדיקות החסם לזמן הריצה של האלגוריתם של Humblet,Gallagher ו Spira נראה שזהו החסם העליון המינימלי: נסתכל על דוגמת ההרצה שבאיור 4.1. תמיד יש Fragment בגודל של יותר מ 2 / n צמתים, ולכן זמן הריצה שלו ייקח בכל רמה (n) O. בסך הכל, n).o (n log הערה 16: מכירים אלגוריתם (חדש יותר) שמוצא עץ פורש מינימלי ב ( n ) O זמן, וסיבוכיות ההודעות שלו נשארת (n O. E ) + n log האלגוריתם דואג שלא יהיה רכיב אחד מאוד גדול. זה נעשה בעזרת ההגבלה שברמה l, הגודל של כל Fragment יהיה חסום על ידי 2 l (כלומר (log Fragment l כאשר.n Maximal Independent Set 4.2 אנחנו רוצים לדעת מה הרדיוס k של השכנים של קודקוד ברשת שמשפיעים על הפתרון שלו. למשל, בצביעת גרפים, מה המרחק של הצומת הרחוק ביותר שמשפיע על הצבע של צומת מסויים? אפשר למצוא את k בעזרת המודל הסינכרוני, כל שכל הצמתים מתעוררים ביחד, וגודל ההודעות שנשלחות גדול כרצוננו. אם זמן הריצה של האלגוריתם חסום על ידי k, אזי ההודעה הרחוקה ביותר הצליחה לעבור k צמתים בלבד, ולכן k הוא הרדיוס המבוקש. 22

25 פרק 5 שיעור הרדיוס של בעיה אנחנו רוצים לחקור לוקאליתי (מקומיות) של בעיה. כלומר, מה הרדיוס של שכנים שקודקוד צריך לדעת את הקלטים שלהם כדי להוציא את הפלט (שלו) של כל החישוב. זה נקרא הרדיוס של הבעיה. למשל, אם רוצים לצבוע ב n צבעים (ויש n מעבדים), אז כל אחד לוקח את השם שלו בצור הצבע, והרדיוס הוא בעיית הצביעה במעגל המודל שלנו: סינכרוני. כל המעבדים מתעוררים ביחד. ההודעות גדולות כרצוננו. לכל מעבר יש id כך ש n id 1 (מיוצג ב ( n O (log ביטים). באופן כללי, אם אפשר לפתור בעיה ב r סיבובים (פולסים) במודל סינכרוני, אזי הרדיוס של הבעיה הוא r, כי כל מעבד יכול לשלוח בכל סיבוב לכל שכנוי את כל הידוע לו, ואחרי r סיבובים כל מעבד יסמלץ את החלק שלו מהאלגוריתם המבוזר. נגדיר את המזהה של הקודקוד i אחרי j סיבובים להיות.ID j i באלגוריתם שלנו, כל קודקוד משנה את ה ID שלו בכל סיבוב. מאתחלים:.IDi 0 = id i 1 j ID j i.id יהיה האינדקס של הביט הראשון כדי לחשב את,ID j i משווים את IDj 1 i ו 1 i שבו הם שונים. במילים אחרות: ( ) ID j i = LSB ID j 1 i ID j 1 i 1 1 סיכום לשיעור שהתקיים בתאריך

26 פרק 5. שיעור בעיית הצביעה במעגל j 1.ID למשל: לביטוי הזה נשרשר את ערך הביט הזה ב i } i = = ID j i i 1 = = }{{} ID j 1 ID j 1 אם בהתחלה, הגודל של IDi 0 הוא log n ביטים, בסיבוב השני הגודל יהיה.1+log log n בסיבוב שאחריו, 1+log log log n ביטים. זה ימשיך ככה, עד שנגיע לאורך קבוע 3 ביטים: b. 0, b 1, b 2 הם יהפכו ל 6 צבעים שונים (כי 11 לא יכול להופיע בשני הביטים הראשונים). לכן, מספר האיטרציות הוא.log n למה קיבלנו צביעה שהיא חוקית? הביט האחרון של כל שני מעבדים שכנים הוא בהכרח שונה, ולכן זוהי צביעה חוקית. זה גם מוכיח שה ID ים של כל שני צמתים שכנים יהיו שונים בכל שלב באלגוריתם. זה האלגוריתם של Richard Cale ו Vishkin.Uzi בהינתן צביעה של 6 צבעים, אפשר להפוך אותה ל Set :Maximal Independent כל מי שהצבע שלו הוא 6, מודיע לשכניו שהוא בפנים. בסיבוב הבא, כל מי שהצבע שלו הוא 5, ואין לו שכן שהודיע שהוא בפנים, מודיע לשכניו שהוא בפנים, וכך הלאה. כל מי ששומע מאחד השכנים שלו שהשכן בפנים, יודע שהוא בחוץ. התהליך דורש 4 5 סיבובים. טענה 17: אי אפשר לצבוע מעגל במספר קבוע של צבעים (למשל 6) בפחות מ n log סיבובים. כלומר, הרדיוס של בעיית הצביעה הוא.log n הוכחה: נניח שקיים אלגוריתם שצובע ב k סיבובים. אזי קיימת פונקציה f שמקבלת id x, id x+1,..., id x+k ומחזירה צבע, למשל ב { 6.{1, 2, 3, 4, 5, נגדיר גרף חדש ) Gk.G k = (V Gk, E קבוצת הקודקודים V Gk היא סדרות על id באורך k מונוטוניות עולות ממש. הקשתות מוגדרות באופן הבא:,v) (w E Gk אם ורק אם.y > id x+k כאשר,w = (id x+1, id x+2,..., id x+k, ו ( y v = (id x, id x+1,..., id x+k ) לא ייתכן שאם קיימת קשת בין v ל w אזי v ו w יקבלו את אותו הצבע על ידי f, כי אפשר לבנות מעגל מהצמתים הללו, ואז f תחזיר צבעים שונים לפי ההנחה. לכן, f היא צביעה חוקית של G. k הטענה שלנו היא שמספר הצביעה מקיים: χ (G n k) log log logn }{{} k times כאשר ה n ב k G n מייצג את ה id ים של הצמתים {n,...,2,1}. אם נראה את זה, נסיק שאחרי איטרציה אחת, יהיו log n צבעים. כדי להגיע למספר קבוע של צבעים, נצטרך ש n k, = log כאשר log n הוא מספר הפעמים שצריך לשרשר את log כדי שהפונקציה שהתקבלה תיתן מספר שהוא לכל היותר 1 עבור n. כלומר: log log log n 1 }{{} log n times נוכיח את זה באינדוקציה: נתחיל עם G 0 גרף מלא על n קודקודים..χ (G 0 ) = n נניח על G. k נוכיח על 1+k G. נראה ש 1+k G הוא ה Graph Line של G. k ב Line,Graph הקודקודים הם הקשתות של הגרף המקורי. הקשתות ב Graph Line מחברות בין שתי קשתות סמוכות (הגרף מכוון). 24

27 פרק 5. שיעור 5 (STP) Sequence Transmission Problem.5.3 למה 1+k G הוא ה Graph Line של G? k כל קודקוד ב 1+k G הוא השוואה בין השמות של שני קודקודים סמוכים, ועוד ביט אחד. נתונה צביעה של 1+k G. ניתן צביעה ל G. k הצבע של v V יהיה קבוצת הצבעים של הקשתות הנכנסות אליו (לפי הצביעה ב 1+k G). הקבוצה אינה מסודרת. האם זו צביעה חוקית? כן, כי צבע הקשת הנכנסת לא מופיע בצבע הקודקוד ממנו הקשת יצאה, כי הצביעה של k+1 G חוקית. לכן, k+1).χ (G k ) 2 χ(g נוציא :log χ (G k ) log χ (G k 1 ) log log χ (G k 2 ) log χ (G 0 ) = log n זאת ההוכחה של.Nati Linial הערה 18: טענה 17 מדברת על אלגוריתמים דטרמיניסטיים בלבד. בהינתן Maximal Independent Set של מעגל, אפשר להגיע לצביעה של 3 צבעים: מי שנמצא ב Set Maximal Independent ייצבע ב 0, ובין כל זוג צמתעם ב - In Maximal dependent Set יש לכל היותר 2 צמתים (אחרת ה Set Independent לא היה מקסימלי). אותם צובעים ב 1 ו 2 לפי הסדר. (STP) Sequence Transmission Problem 5.3 נתון לנו המודל כפי שמופיע באיור 5.1. יש לנו שני מעבדים: מעבד שולח S ומעבד מקבל R. לכל אחד מהם יש מערך. S קורא ערכים מתוך IN ושולח אותם ל R דרך התווך התקשורתי. R כותב את מה שהוא מקבל ל OUT. הדרישות שלנו: של IN בכל נקודה בזמן. (Pre(x יהיה רישא OUT תחת תנאי הוגנות על התווך התקשורתי, תוך זמן סופי (בכל נקודה בזמן), יתווסף עוד איבר ל OUT. אם התווך הוא No-Less,FIFO ו No-Duplication אזי הפתרון טריוויאלי. אם התווך הוא,Duplication הפתרון יותר קשה. אם מוסיפים גם אזי ו No-Duplication, Lossy,FIFO הפתרון עוד יותר קשה. הפתרון קשה עוד יותר אם לא מובטח לנו.FIFO נוסיף עוד דרישה: ה Head של כל הודעה צריך להיות בגודל קבוע. 25

28 פרק 5. שיעור 5 (STP) Sequence Transmission Problem.5.3 IN OUT d 1 S R d 1 d 2 Communication medium d 2.. d k d l איור 5.1: המודל ב STP 26

29 פרק 6 שיעור בעיית ההסכמה Consensus תיאור הבעיה: כל מעבד i מקבל ביט 1} {0, i x כקלט, ומחזיר ביט 1} {0, i y כפלט. כל המעבדים צריכים להחליט על ביט הפלט, תחת התנאים הבאים: הסכמה (Safety) כל המעבדים מסכימים על אותו הפלט. כלומר, בסיום האלגוריתם,. i, j.y i = y j תקינות (Validity) ערך ההסכמה היה קלט של אחד המעבדים, כלומר. j.y i = x j חוסר המתנה (Wait-Free) הריצה מסתיימת בזמן סופי. כל y i מאותחל להיות care).(don't בסוף האלגוריתם, אסור ש y i יהיה. פתרון טריויאלי: בוחרים מנהיג, וכולם מסכינים על מה שהוא אומר. כלומר, y, i = x j כאשר j הוא המנהיג. מה שמעניין אותנו הוא פתרון הבעיה תוך התמודדות עם נפילות. קיימים הרבה מודלים לנפילות. אנחנו נדבר על נפילות של מעבדים במודלים הבאים:.Fail-Stop faults.1 כל מעבד עובד בצורה תקינה, עד שפתאום נגמרת לו הסוללה, והוא שובת לנצח..Byzantine faults.2 המעבד עובד בצורה תקינה, עד שברגע מסויים הוא מפסיק לעבוד, משתגע ועושה מה שהוא רוצה. יכול להיות גם מצב של קואליציה של מעבדים שמשתפים פעולה כדי להרוס את ריצת האלגוריתם. בנפילות כאלה, רוצים ש,i j.y i = y j יתקיים בכל המעבדים התקינים. כל עוד לא נאמר אחרת, מעכשיו כל הרשתות הן קליקות, כלומר גרף מלא, שבו יש קשת בין כל זוג מעבדים. 1 סיכום לשיעור שהתקיים בתאריך

30 פרק 6. שיעור בעיית ההסכמה Consensus מודלי Byzantine Fail-Stop f < n 3 סינכרוני + 1 f סיבובים א סינכרוני אי אפשר אי אפשר טבלה 6.1: פתרונות לבעיית ההסכמה תחת נפילות מסוגים שונים של f מעבדים ברשת עם n מעבדים אלגוריתם 1.6 דוגמה לריצת המעבד P i באלגוריתם הכרעה סינכרוני שמאפשר Fail-Stop של לכל היותר f מעבדים 1: V i {x i } 2: for round r = 1, 2,..., f + 1 do 3: Send new items in V i to all neighbors 4: Receive S {new messages} 5: V i V i S 6: end for 7: y i max V i could also be y i min V i בטבלה 6.1, f הוא מספר המעבדים שנופלים ו n הוא מספר המעבדים הכולל ברשת. הטבלה מתארת פתרונות לבעיית ההסכמה בכל אחד מתנאי הנפילות. הטבלה מדברת על מודל של העברת הודעות Passing).(Message את ההוכחה שאין פתרון ל Fail-Stop ברשת א סינכרונית כתבו Lynch,Fischer ו.(FLP) Petterson לא נראה אותה, כי היא מסובכת. בגדול, היא עוברת למודל של זיכרון משותף התמודדות עם Fail-Stop Fault נראה אלגוריתם הסכמה סינכרוני שעובד עם,Fail-Stop כאשר לכל היותר f מעבדים נופלים. האלגוריתם פועל + 1 f סיבובים, ובכל סיבוב שולח את כל הידוע לו לכל שכניו. בסיבוב ה 1 + f, מחליטים על הערך המקסימלי שנצפה. דוגמה לריצת המעבד P i מופיעה באלגוריתם 1.6. טענה :19 אחרי + 1 f מחזורים, לכל i ו j,.v i = V j הוכחה: נניח שלא. אזי קיים v V i כך ש v. / V j אזי קיים 1+f P שנפל בסיבוב ה 1 + f, ששלח את v ל P, i אבל לא הספיק לשלוח את v ל P. j אם אף אחד לא נפל בסיבוב ה 1 + f, אזי מכיוון שהגרף מלא, כולם מכירים בסוף הסיבוב את כל הקלטים. לכן, 1+f P קיים. כמו כן, קיים מעבד P f שנפל בסיבוב ה f, משיקול דומה. אם קיים סיבוב שבו אף אחד לא נפל, לכל שני מעבדים P i ו V i = V j P, j בסוף הסיבוב, כלומר כל המעבדים מכירים את כל הקלטים. נמשיך כך: קיים 1 f P שנפל בסיבוב 1 f, קיים P k שנפל בסיבוב k, וכן קיים P 1 שנפל בסיבוב.1 לכן, f+1 P 1, P 2,..., P הם מעבדים שונים שנפלו במהלך הריצה. הם מעבדים שונים, בסתירה! f

31 פרק 6. שיעור בעיית ההסכמה Consensus איך יכול להיות שלא כולם קיבלו הודעה ממעבד שנפל, אלא רק חלק מהמעבדים קיבלו אותה? יש שם פעולה של לשלוח הודעה לכולם, אבל בעצם זה לא מבוצע בבת אחת, אלא לולאה ששולחת לכל אחד מהשכנים. יכול להיות שהמעבד נפל באמצע הלולאה. מסקנה :20 אחרי + 1 f מחזורים, לכל שני מעבדים P i ו P j שלא נפלו,.y i = y j התמודדות עם Byzantine Fault נפתור עכשיו את הבעיה במודל סינכרוני עם.Byzantine faults את מספר המעבדים הכולל מסמנים ב n, ואת מספר הרמאים מסמנים ב t. למשל, עבור = 3 n ו 1 = t: נניח שקיים אלגוריתם הסכמה שיודע להתמודד עם.Byzantine faults לכל מעבד יש שתי אפשויות לביט הקלט שלו. נחבר במשושה אותם כפי שמתואר באיור 6.1. במשושה, אף אחד מהמעבדים אינו רמאי. כאשר A ו B מקבלים שניהם את הקלטים = 0 A x ו 0 = B x, במשושה ובאיור 6.2 הם אמורים לשלוח אחד לשני בדיוק את אותן ההודעות. נניח ש C רמאי ברשת הזאת (של המשולש), והוא שולח הודעה ל A כאילו ש 0 = C x, ושולח הודעה ל B כאילו ש 1 = C x. מההנחה, האלגוריתם יודע להתמודד עם המצב הזה, ולכן y, A = 0 = y B וכך יהיה גם במשושה. כאשר A ו C מקבלים שניהם את הקלטים = 1 A x ו 1 = C x, במשושה ובאיור 6.3 הם אמורים לשלוח אחד לשני בדיוק את אותן ההודעות. נניח ש B רמאי ברשת הזאת (של המשולש), והוא שולח ל A הודעה כאילו ש 1 = B x, ושולח הודעה ל C כאילו ש 1 = B x. מההנחה, האלגוריתם יודע להתמודד עם המצב הזה, ולכן y, A = 1 = y C וכך יהיה גם במשושה. נסתכל על חלק אחר מהמשושה, כאשר B מקבל את הקלט = 0 B x ו C מקבל את הקלט = 1 C x, כפי שמתואר ברשת שבאיור 6.4. אזי הם אמורים לשלוח אחד לשני בדיוק את אותן ההודעות כפי שמתואר במשושה. אם A רמאי ברשת הזאת (של המשולש), והוא שולח ל B הודעה כאילו = 0 A x, אזי B יחליט = 0 B y (כפי שראינו באיור 6.2). כמו כן, אם A שולח ל C הודעה כאילו = 1 A,x אזי C יחליט = 1 C y (כפי שראינו באיור.(6.3 זאת סתירה להסכמה של האלגוריתם. זאת ההוכחה של Lynch,Fischer ו Merrit לכך שאלגוריתם כזה לא קיים. מה עם המקרה הכללי? נגיד ש 3 t n. = עושים את אותו הדבר בכפולות של 3. במקום על קודקודים, נסתכל על צבירים של t קודקודים, כך שגרף שלם של n קודקודים מורכב מחיבור של 3 צבירים כאלה. ניתן לראות הדגמה לכך באיור 6.5. למעשה, הוכחנו שאי אפשר לפתור את הבעיה אם יש שליש או יותר רמאיים. עכשיו צריך לראות אלגוריתם שפותר את הבעיה אם פחות משליש מהמעבדים רמאיים. אלגוריתם כזה הוא האלגוריתם של Berman ו Garay. האלגוריתם מתואר באלגוריתם 2.6. האלגוריתם מניח שלמעבדים יש שמות ב { n,... 2,,{1, וכן ש t.n > 3 משפט 21: אלגוריתם 2.6 הוא אלגוריתם הסכמה ב ( 1 + t) 3 סיבובים. הוכחה: נשים לב לעובדות הבאות: בסוף סבב ההחלפות הראשון (#1,(Exchange קיים {1,0} v כך שלכל המעבדים התקינים, הערך של V הוא v או 2. נניח בשלילה שבמעבד,C x (0) n t,x ובמעבד.C y (1) n t,y נשים לב שכל מעבד תקין שולח את אותה ההודעה לכל המעבדים האחרים, ויש פחות מ n/3 מעבדים שקרנים. לכן, יש פחות מ 3 / n הודעות שמתקבלות בצורה שונה אצל x ו y. 29

32 פרק 6. שיעור בעיית ההסכמה Consensus x C = 0 x B = 1 β C B γ x A = 0 y A = 0 A ζ σ A x A = 1 y A = 1 B δ x B = 0 y B = 0 α C x C = 1 y C = 1 איור 6.1: רשת מעגלית עם 6 מעבדים. כל מעבד חושב שהוא נמצא ברשת עם 3 מעבדים בלבד (כאילו הייתה גרף מלא של 3 מעבדים), ומתנהג בהתאם. ברשת הזאת אין מעבדים רמאים, אבל אנחנו מקליטים את ההודעות שכל אחד מהמעבדים שולח. x A = 0 y A = 0 A β B x B = 0 y B = 0 α C Cheater איור 6.2: רשת עם 3 מעבדים, כאשר C הוא רמאי, ומדמה שליחה של הודעות ממצבי קלט שונים ל A ו B. 30

33 פרק 6. שיעור בעיית ההסכמה Consensus x A = 1 y A = 1 γ A B δ Cheater C x C = 1 y C = 1 איור 6.3: רשת עם 3 מעבדים, כאשר B הוא רמאי, ומדמה שליחה של הודעות ממצבי קלט שונים ל A ו C. x A = 1 y A = 1 γ A B δ Cheater C x C = 1 y C = 1 איור 6.4: רשת עם 3 מעבדים, כאשר A הוא רמאי, ומדמה שליחה של הודעות ממצבי קלט שונים ל B ו C. נראה שעכשיו B ו C כבר לא מסכימים על אותו ביט הפלט. 31

34 פרק 6. שיעור בעיית ההסכמה Consensus איור 6.5: כל צומת בגרף הוא צביר של t קודקודים המחוברים ביניהם. כל קודקוד בצביר מחובר לשני הקודקודים המתאימים לו בצבירים האחרים. אלגוריתם 2.6 האלגוריתם של Berman ו Garay להסכמה עם Byzantine faults 1: V x i 2: for m = 1, 2,..., t + 1 do 3: send V 4: V 2 5: for k = 0, 1 do 6: C (k) the number of received k's 7: if C (k) n t then V k 8: end for 9: send V 10: for k = 2, 1, 0 do 11: D (k) the number of received k's 12: if D (k) > t then V k 13: end for 14: if m = i then send V 15: if V = 2 or D (V ) < n t then V min {1, received message} 16: end for 17: return V Exchange #1 Exchange #2 Exchange #3 32

35 פרק 6. שיעור מודל זיכרון משותף Memory) (Shared n 2 מעבדים ששלחו את אותו הערך ל x ול y. נשים לב: 3 לכן, קיימים יותר מ.n t > n n 3 = 2 n מכיוון ש t.c x (1) < n /3,C x (0) n מצד שני, 3 מעבדים ששלחו הודעה שונה ל x n לכן, קיימים יותר מ 3 /.C y (1) n t > 2 n 3 ול y, בסתירה. באופן דומה, בסוף סבב ההחלפות השני (#2,(Exchange עם אותו ה v מקודם, הערך של V אצל כל המעבדים התקינים הוא v או 2. אם בתחילת הסבב הערך של V הוא {1,0} v בכל המעבדים התקינים, אז הוא לא משתנה עד לסוף הסבב. במצב הזה, כל המעבדים התקינים יקבלו לפחות n t הודעות עם הערך v, ואז הערך של V תמיד יהיה v. יהי g המזהה הקטן ביותר של מעבד תקין. בסוף הסבב השלישי (#3 (Exchange של האיטרציה ה g בלולאה, מושגת הסכמה, כי אחד משני המצבים הבאים מתקיים: 1. כל המעבדים התקינים מקבלים את הערך של ה מלך של האיטרציה (שהוא g). 2. חלק מהמעבדים התקינים מתעלמים מההודעה של g כי אצלם D. V) ) n t אבל אז D V) ) > t אצל כל המעבדים התקינים, ולכן הערכים שלהם של V זהים בסוף הסבב השלישי, בין אם הם מקבלים את הערך של ה מלך ובין אם לאו. מכיוון ש 1 + t g, נקבל שכל המעבדים התקינים ידעו את ערך ההסכמה בסוף האיטרציה ה 1 + t. בכל איטרציה יש 3 סיבובים, ולכן תוך (1 + t) 3 סיבובים, ערך ההסכמה יוסכם בין כל המעבדים התקינים. 6.2 מודל זיכרון משותף Memory) (Shared במודל יש n מעבדים. לכל מעבד יש זיכרון פרטי מקומי שלו, ויש גם זיכרון המשותף לכולם. בפעולה אטומית, אפשר לקרוא (Load) או לכתוב (Store) לזיכרון המשותף. הזיכרון מחולק לתאים. נקרא לתאים האלה אוגרים, או Registers באנגלית. בגישה היא לתאים, ולא לזיכרון השלם. נרצה להראות קשר בין מודל העברת ההודעות (א סינכרונית) למודל הזיכרון המשותף. נרצה להראות שכל בעיה הניתנת לפתרון באמצעות העברת הודעות א סינכרונית, ניתנת לפתרון באמצעות זיכרון משותף, ולהיפך. ניתן להפעיל אלגוריתם העברת הודעות במודל זיכרון משותף אם לכל זוג מעבדים המחוברים בהעברת הודעות יש שני תורים בזיכרון המשותף, כאשר כל מעבד קורא מתור אחד וכותב לתור אחר. 2 מעבד כלשהו קורא כל הזמן ובודק אם יש הודעות נכנסות בכל אחד מהתורים הנכנסים אליו (לפי הסדר). מסקנה 22: אם יש אלגוריתם שפותר את בעיית ההסכמה במודל העברת הודעות, יש גם אלגוריתם שפותר אותה בזיכרון משותף. לכן, אם אין אלגוריתם שפותר את בעיית ההסכמה בזיכרון משותף, אזי אין אלגוריתם שפותר אותה בהעברת הודעות. 2 זה מזכיר קצת Pipe ים ב Linux. 33

36 פרק 7 שיעור בטחון באוגרים בזיכרון משותף בשונה מבחישוב סדרתי, כאשר החישוב מבוזר, אי אפשר להסתכל על פעולה כנקודה בזמן, אלא כקטע בזמן, עם התחלה וסוף. כך למשל, כתיבה לאוגר מתחילה בשלב כלשהו ומסתיימת בשלב כלשהו. יכול להיות שבאמצע מגיע תהליך אחר שרוצה לקרוא את ערך האוגר. מה הוא יקבל? זה תלוי בסוג האוגר. לרוב, ההבדל הוא במימוש בחומרה, אבל מבחינה לוגית תיאורטית אפשר להגדיר כמה אוגרים שונים, לפי רמות הבטחון שהם מספקים. את האוגרים ניתן לחלק ל 3 רמות ביטחון:.Safe בין כתיבות לאוגר, הערך של האוגר הוא הערך שנכתב בכתיבה האחרונה. במהלך פעולת (או פעולות) כתיבה, הערך שייקרא מהאוגר הוא ערך כלשהו. כלומר, גם אם כותבים 0 לאוגר שהערך הקודם שלו היה 0, יכול להיות שנקרא ממנו 1..Regular כמו,Safe אבל בזמן כתיבה לאוגר, קריאה מהאוגר תחזיר את הערך הישן של האוגר או את הערך החדש שלו. למשל, אם הערך באוגר הוא 0, ומתחילים לכתוב אליו 1, עד שפעולת הכתיבה לא תסתיים, הקריאות יכולות להחזיר 0 או 1. יכול להיות שתהיה פעולת קריאה שהחזירה 0, והתחילה ממש אחרי שפעולת קריאה אחרת הסתיימה והחזירה 1. התכונה הזאת נקראת,Linearizable ואוגר Regular לא מקיים אותה..Atomic כמו,Regular אבל גם.Linearizable כמו כן, אפשר להסתכל על האוגרים לפי כמות הכותבים והקוראים מהם. הסוגים האפשריים הם (MRSW) Multiple-Reader Single-Wrter,(SRSW) Single-Reader Single-Writer ו Multiple-Writer.(MRMW) Multiple-Reader בנוסף, כל אוגר יכול להיות בינארי (שהערכים בו הם 0 או 1), או רב ערכי.(Multi-Value) 1 סיכום לשיעור שהתקיים בתאריך

37 פרק 7. שיעור 7 Snapshot.7.2 אלגוריתם SnapScan 1.7 למציאת Snapshot עדכני ביותר 1: function Collect 2: return all snapshots from all registers as a local memory array 3: end function 4: function SnapScan 5: a Collect() 6: b Collect() 7: if a b then 8: existsk.a [k] b [k] 9: return the snapshot at b [k] 10: else 11: return any snapshot in b 12: end if 13: end function בסופו של דבר, אפשר לבנות אוגר Multiple- Atomic Multi-Values Multiple-Reader.Safe Binary Single-Reader Single-Writer מאוסף של הרבה אוגרים מסוג Writer כלומר, מבחינה תיאורטית, שני האוגרים שקולים ביכולות החישוביות שלהם, כי אפשר לבנות אחד מהשני. הבניה מאוד יפה, אבל לא נראה אותה פה. Snapshot 7.2 איך עושים Snapshot בעזרת אוגרי?Atomic Multi-Valued MRMW נניח שאנחנו כבר יודעים לעשות.Snapshot אז כל אוגר יכיל מקום לערך שלו ול שלם, וכל פעם שכותבים אליו, כותבים בנוסף לערך גם את ה Snapshot. Snapshot בכל פעם שאנחנו נרצה,Snapshot אפשר לקחת Snapshot מתוך אוגר כלשהו, אבל זה יהיה Snapshot ישן. איך מוצאים Snapshot חדש? ניתן למצוא אלגוריתם שעושה את זה באלגוריתם 1.7. הבעיה עם האלגוריתם הזה היא שהוא תמיד יחזיר לנו Snapshot ישן, אלא אם שום דבר לא השתנה בין שני ה Collect ים. תיקון לבעיה ניתן למצוא באלגוריתם 2.7. אם תפסנו את k זז בפעם השניה, אזי הוא הספיק לקחת Snapshot לפני ה Collect השני. לכן, זה Snapshot חדש. נשים לב שיש לנו לכל היותר n לולאות, כאשר n הוא מספר האוגרים ב Snapshot. 35

38 פרק 7. שיעור 7 Snapshot.7.2 אלגוריתם 2.7 תיקון למציאת Snapshot עדכני ביותר 1: function SnapScan 2: Moved 3: loop 4: a Collect() 5: b Collect() 6: if a = b then return any snapshot in b 7: else 8: k.a [k] b [k] 9: if k Moved then return the snapshot in b [k] 10: else Moved Moved {k} 11: end if 12: end loop 13: end function 36

39 פרק 8 שיעור בעיית ההסכמה נתונים לנו שני מעבדים, היכולים לקרוא ולכתוב. אנחנו מנסים לפתור את בעיית ההסכמה.Consensus הפתרון צריך לקיים את ה Safety וה Validity שראינו קודם. בנוסף, נדרוש שהפתרון יהיה.Wait-Free כל מעבד יכול להיות,Fail-Stop ויש לנו.Atomic Registers הגדרה 23 (מצב דו ערכי ומצב חד ערכי): נתבונן בעץ ההחלטות (והפעולות) באלגוריתם ההסכמה. מכיוון שהפעולות הן,Linearizable אפשר להסתכל על נקודה בזמן שבה כל פעולה קורית, וסדר ביצוע הפעולות הוא המשפיע על הההסכמה. לכן, יש לנו עץ, כאשר כל קשת היא פעולה של מעבד כלשהו מתוך המצב הנוכחי. מצב דו ערכי הוא מצב שממנו ניתן להגיע לשתי החלטות שונות. מצב חד ערכי הוא מצב שבלי תלות בריצה ובתזמונים של פעולות המעבדים, תמיד יוסכם על אותו הערך. נניח שיש מצב התחלתי דו ערכי. אזי קיים עץ, שנבנה מההתנהגות של כל אחד מהמעבדים וסדר ביצוע הפעולות של כל אחד מהמעבדים (אין אפשרות שבה שני המעבדים מבצעים פעולה בו זמנית, כי האוגרים הם.(Linearizable במילים אחרות, עץ הריצות נקבע לפי האלגוריתם והקלט. הצעדים בעץ (ההתקדמות בפועל) נקבעת לפי הריצה. במודל שלנו, אם מעבד רץ לבד (כי המעבד השני נפל, או פשוט לא תקשר עם העולם עדיין), והקלט שלו הוא 1 (למשל), אזי הוא חייב להגיע להסכמה על 1 תוך זמן סופי. מכיוון שהאלגוריתם הוא,Wait-Free המעבד יהיה חייב לקבל את הקלט שלו בתור הפלט. טענה 24: קיים מצב התחלתי דו ערכי. הוכחה: מכיוון שהאלגוריתם הוא,Wait-Free אם ניתן לכל אחד מהמעבדים לרוץ לבד, עוד לפני שהשני מתעורר, ולכל אחד מהמעבדים קלט שונה, תמיד הפלט יהיה הקלט של המעבד שרץ. טענה 25: קיים מצב דו ערכי, ששני המצבים היוצאים ממנו (הילדים שלו בעץ) הם חד ערכיים, עם ערכים שונים. 1 סיכום לשיעור שהתקיים בתאריך

40 פרק 8. שיעור בעיית ההסכמה Bivalent Univalent Univalent איור 8.1: מצב קריטי הוכחה: העלים (בהם התקבלה ההחלטה) הם חד ערכיים. מכיוון שהמצב ההתחלתי דו ערכי, נקבל את התוצאה מכך שהריצה מסתיימת בזמן סופי, כלומר בסדרת פעולות סופית. הגדרה 26 (מצב קריטי): בעץ ריצות של אלגוריתם הסכמה, מצב קריטי הוא מצב דו ערכי ששני בניו הם חד ערכיים. ניתן למעבדים שלנו את השמות P ו Q. נניח כי c הוא מצב קריטי. נניח שהצעד הבא של כל אחד מהצדדים הוא צעד פנימי מקומי. מחד, אם P יבצע את הצעד הראשון, וירוץ לבד, האלגוריתם יחליט על הפלט α. מאידך, אם Q יבצע את הצעד המקומי הראשון, ואז P ירוץ לבד, הוא לא ידע ש Q ביצע את הצעד, כי הוא מקומי ב Q, ולכן יחליט על α, בסתירה! גם אם אחד הצעדים הוא קריאה מהזיכרון המשותף (בה כ של Q), קיבלנו מצב דומה: אם P ירוץ לבד, הוא יחליט על α. אם Q יקרא, ואז P ירוץ לבד, P לא ידע ש Q קרא, ולכן יחליט בכל זאת על α, בסתירה לכך ש Q הוא מצב קריטי. אם הצעדים הבאים של P ו Q הם כתיבות לאוגרים שונים, אז גם נקבל סתירה, כי נשים לב שאין דרך להבדיל בין המצבים הבאים: 1. הפעולה הראשונה היא ש P כתב ל R, 1 והפעולה הבאה היא ש Q כתב ל R הפעולה הראשונה היא ש Q כתב ל R, 2 והפעולה הבאה היא ש P כתב ל R. 1 לא ניתן להבחין בין שני המצבים האלו (המצבים השחורים באיור 8.2), מכיוון שאי אפשר לדעת איזה מעבד ביצע את הכתיבה שלו קודם, בסתירה לכך ש c הוא מצב קריטי. לכן, שני המעבדים בהכרח כותבים לאותו אוגר. אם P ירוץ ראשון ולבד, הוא יחליט על α. אם Q רק יכתוב לאוגר, ואז P ירוץ לבד, אזי P לא יראה את הכתיבה של Q, ולכן יחליט על α, בסתירה לכך ש c הוא מצב קריטי. 38

41 פרק 8. שיעור בעיית ההסכמה c P writes to R 1 Q writes to R Q writes to R2 P writes to R1 0 1 איור 8.2: לא ניתן להבחין בין המצבים השחורים, בסתירה לכך ש c הוא מצב קריטי 39

42 פרק 8. שיעור בעיית ההסכמה Processor Q P Q P Decision 0?? 1 Visibility Q P, Q P, Q P איור 8.3: המצבים האפשריים. קווים מחברים בין זוגות מצבים שאפשר שיתקיימו באותה הריצה, ולכן ערך ההסכמה בהם צריך להיות זהה. ערכי ההסכמה כתובים במקום שהם קבועים ללא קשר לריצה. זה מוכיח שבמודל זיכרון משותף א סינכרוני אי אפשר לממש אלגוריתם הסכמה בעזרת אוגרים אטומיים בצורה שהיא.Wait-Free אפשר לומר עם נפילות במקום א סינכרוני. הערה 27: הדרישה ל Fail-Stop כאן לא הכרחית. נגדיר מה זה Wait-Free עם n מעבדים במערכת שתומכת ב 1 n נפילות. למה תומכים ב 1 n נפילות? כי אם מעבד יודע שלכל היותר מעבד אחד נופל מתוך 100, אזי אפשר לחכות ש 99 מעבדים יכתבו, כי זה יקרה בוודאות בזמן סופי. במודל שלנו, למעבד אסור להניח שאף אחד יכתוב שום דבר בזמן סופי. בהמשך נראה שאם יש = 2 n מעבדים, ו 1 נופל, אי אפשר לבצע החלטה (בדרך אחרת ממה שראינו קודם). אחר כך נראה שאם יש n מעבדים, ו 1 נופל, אי אפשר לפתור את בעיית ההסכמה. טענה 28: נניח שיש 2 מעבדים ו 1 יכול ליפול. אזי אי אפשר להחליט על הסכמה. הוכחה: לא ייתכן שמחליטים אחרי 0 צעדים, כי אז כל מעבד יחזיר את הקלט שלו, והפלטים עשויים להיות שונים. נניח שהצעדים של המעבדים הם הכי מסובכים שאפשר לחשוב עליהם Immediate.Snapshot אפשר לכתוב ולקרוא את כל מה שכתבו ביחד איתו. מבחינה חישובית, זה מודל יותר חזק מאוגר אטומי. מעכשיו הצעדים של P הם מהצורה W, P R P כי הם כוללים קריאה וכתיבה אטומית בזיכרון המשותף (ללא עיבוד באמצע). נניח שהמודל הוא.Single-Writer Multiple-Reader זה גם לא מגביל אותנו, כי ראינו בשיעור הקודם שזה שקול ל Multiple-Reader.Multiple-Writer אז אי אפשר לעשות את זה ב 0 צעדים. מה עם צעד 1? יכול להיות ש Q עשה W Q R Q ולא ראה את P. יכול להיות ש P עשה (או שניהם) רואים את השני. Q או P יכול להיות ש Q. ולא ראה את W P R P כפי שניתן לראות באיור 8.3, אם Q רץ לבד, הוא יחליט על הקלט של עצמו (נניח 0). באופן דומה, אם P רץ לבד, הוא יחליט על הקלט של עצמו (נניח 1). אבל מה יקרה עם P שירוץ אחרי Q? הוא יחליט 0. גם Q שרץ אחרי P יחליט 1. אבל אם P ו Q רצים ביחד, הם יראו בדיוק את אותו המצב כאילו שאחד היה רץ לפני השני. לכן, ההחלטות שלהם מנוגדות, בסתירה! מה קורה אם מחליטים תוך 2 צעדים? קודקודים, כפי שניתן לראות באיור 8.4. נחלק כל קשת בגרף שלנו ל 3 קשתות ו 2 40

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

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

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

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

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

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

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

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

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

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

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

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

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

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

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

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

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

. {e M: x e} מתקיים = 1 x X Y שימושי זרימה פרק 7.5-13 ב- Kleinberg/Tardos שידוך בגרף דו-צדדי עיבוד תמונות 1 בעיית השידוך באתר שידוכים רשומים m נשים ו- n גברים. תוכנת האתר מאתרת זוגות מתאימים. בהינתן האוסף של ההתאמות האפשריות, יש לשדך

Διαβάστε περισσότερα

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

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

logn) = nlog. log(2n

logn) = nlog. log(2n תכנוןוניתוחאלגוריתמים סיכוםהתרגולים n log O( g( n)) = Ω( g( n)) = θ ( g( n)) = תרגול.3.04 סיבוכיות { f ( n) c> 0, n0 > 0 n> n0 0 f ( n) c g( n) } { f ( n) c> 0, n0 > 0 n> n0 0 c g( n) f ( n) } { f ( n)

Διαβάστε περισσότερα

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

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

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

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ). מבוא לפרק: : עצים.(ree) עצים הם גרפים חסרי מעגלים. כך, כיוון פרק זה הוא מעין הפוך לשני הפרקים הקודמים. עץ יסומן לרב על ידי במשפטים 8.1-8.3 נפתח חלק מתכונותיו, ובהמשך נדון בהיבטים שונים של "עץ פורש" של

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

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

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

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

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t. תכנון אלגוריתמים 2016 עבודה 1 פתרון שאלה 1 נזכר כי בגרף (E G, =,V) עבור שני קודקודים d(u, (v,u, v הוא אורך מסלול קצר ביותר מ u ל v. אם אין מסלול מ u ל.d(u, v) =,v נתונות שתי בעיות. בעיה א' מופע: גרף מכוון

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

רשימת בעיות בסיבוכיות ב) ב) רשימת בעיות בסיבוכיות כל בעיה מופיעה במחלקה הגדולה ביותר שידוע בוודאות שהיא נמצאת בה, אלא אם כן מצוין אחרת. כמובן שבעיות ב- L נמצאות גם ב- וב- SACE למשל, אבל אם תכתבו את זה כתשובה במבחן לא תקבלו

Διαβάστε περισσότερα

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

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα

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

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה אלגוריתמים בתורת הגרפים פתרון תרגיל מס' 2 לשאלות והערות נא לפנות לאילן גרונאו (shrilan@cs.technion.ac.il) א) ב) ג) גרף דו-צדדי (bipartite) הינו גרף (E )G V, אשר קיימת חלוקה של צמתיו לשתי קבוצות U,W e =

Διαβάστε περισσότερα

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

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

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

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V ) הצגות של חבורות סופיות c ארזים 6 בינואר 017 1 משפט ברנסייד משפט 1.1 ברנסייד) יהיו p, q ראשוניים. תהי G חבורה מסדר.a, b 0,p a q b אזי G פתירה. הוכחה: באינדוקציה על G. אפשר להניח כי > 1 G. נבחר תת חבורה

Διαβάστε περισσότερα

אלגוריתמים / תרגיל #1

אלגוריתמים / תרגיל #1 1 אריאל סטולרמן אלגוריתמים / תרגיל #1 קבוצה 02 (1) טענה: אם בגרף לא מכוון וקשיר יש 2 צמתים מדרגה אי זוגית ושאר הצמתים מדרגה זוגית, זהו תנאי הכרחי ומספיק לקיום מסלול אויילר בגרף. הערות: הוכחה: התוספת כי

Διαβάστε περισσότερα

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

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

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

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

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

שאלה 1 V AB פתרון AB 30 R3 20 R תרגילים בתורת החשמל כתה יג שאלה א. חשב את המתח AB לפי משפט מילמן. חשב את הזרם בכל נגד לפי המתח שקיבלת בסעיף א. A 60 0 8 0 0.A B 8 60 0 0. AB 5. v 60 AB 0 0 ( 5.) 0.55A 60 א. פתרון 0 AB 0 ( 5.) 0 0.776A

Διαβάστε περισσότερα

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

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

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

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

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

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

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

אלגוריתמים בתורת הגרפים חלק שני גירסה 1.00 5.12.2002 אלגוריתמים בתורת הגרפים חלק שני מסמך זה הינו השני בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

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

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log

Διαβάστε περισσότερα

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

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

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

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx דפי נוסחאות I גבולות נאמר כי כך שלכל δ קיים > ε לכל > lim ( ) L המקיים ( ) מתקיים L < ε הגדרת הגבול : < < δ lim ( ) lim ורק ( ) משפט הכריך (סנדוויץ') : תהיינה ( ( ( )g ( )h פונקציות המוגדרות בסביבה נקובה

Διαβάστε περισσότερα

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

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

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

מודלים חישוביים תרגולמס 5 מודלים חישוביים תרגולמס 5 30 במרץ 2016 נושאי התרגול: דקדוקים חסרי הקשר. למת הניפוח לשפות חסרות הקשר. פעולות סגור לשפות חסרות הקשר. 1 דקדוקים חסרי הקשר נזכיר כי דקדוק חסר הקשר הוא רביעיה =(V,Σ,R,S) G, כך

Διαβάστε περισσότερα

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

תרגיל 7 פונקציות טריגונומטריות הערות תרגיל 7 פונקציות טריגונומטריות הערות. פתרו את המשוואות הבאות. לא מספיק למצוא פתרון אחד יש למצוא את כולם! sin ( π (א) = x sin (ב) = x cos (ג) = x tan (ד) = x) (ה) = tan x (ו) = 0 x sin (x) + sin (ז) 3 =

Διαβάστε περισσότερα

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

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A ) הסתברות למתמטיקאים c ארזים 3 במאי 2017 1 תוחלת מותנה הגדרה 1.1 לכל משתנה מקרי X אינטגרבילית ותת סיגמא אלגברה G F קיים משתנה מקרי G) Y := E (X המקיים: E (X1 A ) = E (Y 1 A ).G מדיד לפי Y.1.E Y

Διαβάστε περισσότερα

תורישק :תורישקה תייעבב בוש ןייענ?t- t ל s- s מ לולסמ שי םאה 2

תורישק :תורישקה תייעבב בוש ןייענ?t- t ל s- s מ לולסמ שי םאה 2 סריקה לעומק רכיבים אי-פריקים רכיבים קשירים היטב מיון טופולוגי פרק 3 ב- Kleinberg/Tardos פרק 3.3-5 ב- al Cormen et קשירות נעיין שוב בבעיית הקשירות: ל- t? האם יש מסלול מ- s קשירות נעיין שוב בבעיית הקשירות:

Διαβάστε περισσότερα

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

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם. 7.8.2017 מבחן מועד ב' תאריך הבחינה: שמות המרצים: מר בועז ארד פרופ' עמוס ביימל מר יהונתן כהן דר' עדן כלמטץ' גב' מיכל שמש אנא קיראו היטב את ההוראות שלהלן: שם הקורס: תכנון אלגוריתמים מספר הקורס: 202-1-2041

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

לוגיקה ותורת הקבוצות מבחן סופי אביב תשעב (2012) דפי עזר לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר תורת הקבוצות: סימונים.N + = N \ {0} קבוצת המספרים הטבעיים; N Z קבוצת המספרים השלמים. Q קבוצת המספרים הרציונליים. R קבוצת המספרים הממשיים. הרכבת

Διαβάστε περισσότερα

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

רשימת משפטים והגדרות רשימת משפטים והגדרות חשבון אינפיניטיסימאלי ב' מרצה : למברג דן 1 פונקציה קדומה ואינטגרל לא מסויים הגדרה 1.1. (פונקציה קדומה) יהי f :,] [b R פונקציה. פונקציה F נקראת פונקציה קדומה של f אם.[, b] גזירה ב F

Διαβάστε περισσότερα

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ! מיון ערימה (Heapsort) מבני נתונים חלק I מיון מבני נתונים ד"ר ערן לונדון. הגדרת ערימה ערימה (בינארית) הינה מערך אשר ניתן להציגו כמו עץ בינארי מלא או כמעט מלא כאשר כל קודקוד בעץ מתאים לתא במערך. העץ הינו

Διαβάστε περισσότερα

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

מבני נתונים ואלגוריתמים תרגול #8-9 מבני נתונים ואלגוריתמים תרגול #89 מציאת מסלולים קצרים הבעיה: נתון גרף ממשוקל רוצים למצוא את המסלול הקצר בין זוג קודקודים עיקרון הרלקסציה של קשת: בדיקה האם ניתן לשפר מסלול מ s ל v ע"י מעבר דרך קודקוד u:?

Διαβάστε περισσότερα

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

אלגברה ליניארית 1 א' פתרון 2 אלגברה ליניארית א' פתרון 3 4 3 3 7 9 3. נשתמש בכתיבה בעזרת מטריצה בכל הסעיפים. א. פתרון: 3 3 3 3 3 3 9 אז ישנו פתרון יחיד והוא = 3.x =, x =, x 3 3 הערה: אפשר גם לפתור בדרך קצת יותר ארוכה, אבל מבלי להתעסק

Διαβάστε περισσότερα

מבני נתונים עצים שיעור 7

מבני נתונים עצים שיעור 7 בס ד מבני נתונים עצים שיעור 7 שי גולן כ ח בניסן, תשע ו 6 במאי 2016 תקציר בתרגול זה נתחיל לדון בעצים. נגדיר עצים כלליים ועצים בינאריים, ונציג את ההגדרות הבסיסיות בתחום. נתרגל הוכחת תכונות של עצים באמצעות

Διαβάστε περισσότερα

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

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. 16 במאי 2010 נסמן את מחלקת הצמידות של איבר בחבורה G על ידי } g.[] { y : g G, y g כעת נניח כי [y] [] עבור שני איברים, y G ונוכיח כי [y].[] מאחר והחיתוך

Διαβάστε περισσότερα

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

מודלים חישוביים פתרון תרגיל 5 מודלים חישוביים פתרון תרגיל 5 כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,} א. *Σ. q, ב. q, ג. {ε}, q, q ד. } = 3 {w w mod, q, q,, ה. ''} {w w does not contin the sustring q 4 q 3 q q כתוב אוטומט דטרמיניסטי

Διαβάστε περισσότερα

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

s קמ קמש מ - A A מ - מ - 5 p vp v= את זמני הליכת הולכי הרגל עד הפגישות שלהם עם רוכב האופניים (שעות). בגרות ע מאי 0 מועד קיץ מבוטל שאלון 5006 מהירות - v קמ"ש t, א. () נסמן ב- p נכניס את הנתונים לטבלה מתאימה: רוכב אופניים עד הפגישה זמן -

Διαβάστε περισσότερα

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

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים ( תכנון ניסויים כאשר קיימת אישביעות רצון מהמצב הקיים (למשל כשלים חוזרים בבקרת תהליכים סטטיסטית) נחפש דרכים לשיפור/ייעול המערכת. ניתן לבצע ניסויים על גורם בודד, שני גורמים או יותר. ניסויים עם גורם בודד: נבצע

Διαβάστε περισσότερα

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r ל' ' פונקציות פרימיטיביות רקורסיביות חישוביות הרצאה 4 האם כל פונקציה מלאה היא פרימיטיבית רקורסיבית? לא נראה שתי הוכחות: פונקציות רקורסיביות (המשך) זיהוי שפות ע''י מכונות טיורינג הוכחה קיומית: קיימות פונקציות

Διαβάστε περισσότερα

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37 תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי................................................ 2 2 מיון בועות. Bubble Sort............................................ 2 3 מיון מיזוג. Merge Sort............................................

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז פתרון תרגיל בית 6 מבוא לתורת החבורות 88-211 סמסטר א תשע ז הוראות בהגשת הפתרון יש לרשום שם מלא, מספר ת ז ומספר קבוצת תרגול. תאריך הגשת התרגיל הוא בתרגול בשבוע המתחיל בתאריך ג טבת ה תשע ז, 1.1.2017. שאלות

Διαβάστε περισσότερα

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

מבני נתונים ואלגוריתמים תרגול #11 מבני נתונים ואלגוריתמים תרגול # התאמת מחרוזות סימונים והגדרות: P[,,m] כך Σ * טקסט T )מערך של תווים( באורך T[,,n] n ותבנית P באורך m ש.m n התווים של P ו T נלקחים מאלפבית סופי Σ. לדוגמא: {a,b,,z},{,}=σ.

Διαβάστε περισσότερα

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

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד סמסטר: א' מועד: א' תאריך: יום ה' 0100004 שעה: 04:00 משך הבחינה: שלוש שעות חומר עזר: אין בבחינה שני פרקים בפרק הראשון 8 שאלות אמריקאיות ולכל אחת מהן מוצעות

Διαβάστε περισσότερα

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

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015) מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015) מרצה: פרופ' בני שור מתרגלים: אורית מוסקוביץ' וגל רותם 28.1.2015 הנחיות: 1. מומלץ לקרוא את כל ההנחיות והשאלות בתחילת המבחן, לפני כתיבת התשובות. 2. משך

Διαβάστε περισσότερα

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 5 שנכתב על-ידי מאיר בכור. חקירת משוואה מהמעלה הראשונה עם נעלם אחד = הצורה הנורמלית של המשוואה, אליה יש להגיע, היא: b

Διαβάστε περισσότερα

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

אוטומט סופי דטרמיניסטי מוגדר עי החמישייה: 2 תרגול אוטומט סופי דטרמיניסטי אוטומטים ושפות פורמליות בר אילן תשעז 2017 עקיבא קליינרמן הגדרה אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה: (,, 0,, ) כאשר: א= "ב שפת הקלט = קבוצה סופית לא ריקה של מצבים מצב

Διαβάστε περισσότερα

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

מבני נתונים אדמיניסטרציה דר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: מבני נתונים בס"ד, ט' אדר א' תשע"א: שעור 1 אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: בחינת מגן 20%. תרגילים: 14 13, מורידים את האחד הכי גרוע. 10% מהציון. אתר: www.cs.huji.ac.il/~dast

Διαβάστε περισσότερα

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

גרפים אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 הגדרה: מגן דוגמאות: זוגות לא סדורים כיוון שבקבוצה סדר לא חשוב. אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 אתר הקורס.clickit3 מרצה : בני מוניץ הציון: מבחן סופי: 80% שיעורי בית 20% ואפשרות לבוחן אמצע 20% מגן גרפים הגדרה: תהי V קבוצה סופית לא ריקה. ותהי E קבוצה

Διαβάστε περισσότερα

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

אינפי - 1 תרגול בינואר 2012 אינפי - תרגול 4 3 בינואר 0 רציפות במידה שווה הגדרה. נאמר שפונקציה f : D R היא רציפה במידה שווה אם לכל > 0 ε קיים. f(x) f(y) < ε אז x y < δ אם,x, y D כך שלכל δ > 0 נביט במקרה בו D הוא קטע (חסום או לא חסום,

Διαβάστε περισσότερα

CHAIN MATRIX MULTIPLICATION וגיא בן-חורין

CHAIN MATRIX MULTIPLICATION וגיא בן-חורין CHAIN MATRIX MULTIPLICATION פנוש אורי וגיא בן-חורין CHAIN MATRIX MULTIPLICATION חזרה קצרה על הכפלת מטריצות הגדרת בעיית הכפלת שרשרת מטריצות פתרון רקורסיבי לבעיה ייעול הפתרון הרקורסיבי ע"י memoization הצגת

Διαβάστε περισσότερα

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

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב 2011 2010 פרופ' יעקב ורשבסקי אסף כץ 15//11 1 סמל לזנדר יהי מספר שלם קבוע, ו K שדה גלובלי המכיל את חבורת שורשי היחידה מסדר µ. תהי S קבוצת הראשוניים הארכימדיים

Διαβάστε περισσότερα

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

לוגיקה ותורת הקבוצות מבחן סופי אביב תשעד (2014) דפי עזר לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר תורת הקבוצות: סימונים.N + = N \ {0} קבוצת המספרים הטבעיים; N Z קבוצת המספרים השלמים. Q קבוצת המספרים הרציונליים. R קבוצת המספרים הממשיים. הרכבת

Διαβάστε περισσότερα

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME הנדסת המישור - תרגילים הכנה לבגרות תרגילים הנדסת המישור - תרגילים הכנה לבגרות באמצעות Q תרגיל 1 מעגל העובר דרך הקודקודים ו- של המקבילית ו- חותך את האלכסונים שלה בנקודות (ראה ציור) מונחות על,,, הוכח כי

Διαβάστε περισσότερα

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין, 009 מבני נתונים סיכום למבחן, יולי sashag@cs מאת : סשה גולדשטיין, 7:50,3.7.09 עדכון אחרון : בשעה הגבלת אחריות הסיכום להלן הוא האינטרפרטציה שלי של החומר, שממש לא חייבת להיות נכונה או מייצגת את זו של הסגל.

Διαβάστε περισσότερα

תרגול מס' 1 3 בנובמבר 2012

תרגול מס' 1 3 בנובמבר 2012 תרגול מס' 1 3 בנובמבר 2012 1 מערכת המספרים השלמים בשיעור הקרוב אנו נעסוק בקבוצת המספרים השלמים Z עם הפעולות (+) ו ( ), ויחס סדר (>) או ( ). כל התכונות הרגילות והידועות של השלמים מתקיימות: חוק הקיבוץ (אסוציאטיביות),

Διαβάστε περισσότερα

אופטימיזציה דיסקרטית 67855

אופטימיזציה דיסקרטית 67855 אופטימיזציה דיסקרטית 67855 14 בינואר 2013 מרצה: יובל רבני איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה או המתרגל קשורים לסיכום זה בשום דרך. הערות יתקבלו בברכה.noga.rotman@gmail.com אהבתם?

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m. פתרון למבחן במבני נתונים, מועד א', קיץ 2005 חלק א' שאלה 1 א. רכיב הקשירות החזק של קודקוד x בגרף מכוון הינו אוסף כל הקודקודים y שמקימים שיש מסלול מ- x ל- y וכן מסלול מy ל- x. טעויות נפוצות שכחו לכתוב שזה

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

אלגוריתמים 1, סמסטר אביב 2017 BFS, DFS, Topological Sort תרגיל בית 1 מוסכמות והנחות להלן רשימת הנחות ומוסכמות אשר תקפות לכל השאלות, אלא אם כן נכתב אחרת במפורש בגוף השאלה. עליכם להוכיח נכונות ולנתח סיבוכיות עבור כל אלגוריתם מוצע. במידה

Διαβάστε περισσότερα

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי ננסה להשתמש בכך שהפונקציה היא רקורסיבית על מנת לרשום גם עבור הסיבוכיות ביטוי רקורסיבי. factorial() 3 מתחילים מכתיבת ביטוי לא מפורש ל-( T( ביטוי רקורסיבי

Διαβάστε περισσότερα

Regular Expressions (RE)

Regular Expressions (RE) Regular Expressions (RE) ביטויים רגולריים עד כה דנו במספר מודלים חישוביים להצגת (או ליצור) שפות רגולריות וראינו שכל המודלים האלה הם שקולים מבחינת כוח החישובי שלהם. בסעיף זה נראה עוד דרך להצגת (או ליצור)

Διαβάστε περισσότερα

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשסו מס' סטודנט: TECHNION ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מבני נתונים 234218 1 מבחן מועד ב ' סמסטר אביב תשס"ו מרצה: אהוד ריבלין מתרגלים: איתן

Διαβάστε περισσότερα

אלגו מתקדם ביוני 2012 מרצה: יאיר בר טל בודק: אורן בקר. איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום דרך.

אלגו מתקדם ביוני 2012 מרצה: יאיר בר טל בודק: אורן בקר. איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום דרך. אלגו מתקדם 67824 11 ביוני 2012 מרצה: יאיר בר טל בודק: אורן בקר איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום דרך. הערות יתקבלו בברכה.noga.rotman@gmail.com אהבתם? יש

Διαβάστε περισσότερα