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

גודל: px
התחל להופיע מהדף:

Download "2 תכנון אלגוריתמים סיכום קורס מפי רן טייג ומיכל שמש סמסטר ב', תשע"ה אוניברסיטת בן-גוריון בנגב מס' קורס סוכם ע"י: אסף של וש מקרא צבעים: כחול"

תמליל

1

2 2 תכנון אלגוריתמים סיכום קורס מפי רן טייג ומיכל שמש סמסטר ב', תשע"ה אוניברסיטת בן-גוריון בנגב מס' קורס סוכם ע"י: אסף של וש מקרא צבעים: כחול הגדרות ומונחים שמופיעים לראשונה; אדום משפט, למה, טענה; ירוק מסקנה, הערה, אבחנה השתדלתי להיות נאמן למקור, מדי פעם אני מוסיף הערות והארות משלי. אגודת הסטודנטים, בן-גוריון

3 3 תוכן עניינים הרצאה מס' חלק ראשון טכניקות אלגוריתמיות...4 מה זה לתכנן אלגוריתם?... 4 שיטת העבודה גרסת...4 Top-Down טכניקה מס' 1 רדוקציות... 5 הרצאה מס' הרצאה מס' טכניקה מס' 2 אלגוריתמים חמדניים מבנה כללי של אלגוריתם חמדן סכמת ההוכחה לאלגוריתם חמדן )טיעון ההחלפה( הרצאה מס' עצים פורשים מינימליים Trees...Minimum Spanning 14 הרצאה מס' שלד לאלגוריתם חמדן לבעיית...MST 15 אלגוריתם... Kruskal 15 הרצאה מס' אלגוריתם...Prim 18 טכניקה מס' 3 תכנון דינמי )Dynamic Programming( בעיית הפעילויות הממושקלות הרצאה מס' הרצאה מס' בעיית הגנב Problem( )Knapsack הרצאה מס' בעיית המסלול הקל ביותר ממקור יחיד, בגרף מכוון עם משקלים חיוביים הרצאה מס' חלק שני בעיות קלאסיות במדעי-המחשב פרק 1 מסלולים קלים בגרפים אינטואיציה לאלגוריתמיקה עבור בעיה זו בסיס טכני לאלגוריתמים בפרק זה טענה נשמרת לאלגוריתם מבוסס...Relax 32 אלגוריתם...Dijkstra 32 הרצאה מס' אלגוריתם גנרי )ממשק אבסטרקטי( לבעיית מסלול קל ביותר ממקור יחיד הוכחה נוספת לאלגוריתם Dijkstra המבוססת על האלגוריתם הגנרי הרצאה מס' הרצאה מס' אלגוריתם...Bellman-Ford 38 בעיית מסלול קל ביותר בין כל הזוגות הרצאה מס' אגודת הסטודנטים, בן גוריון

4 4 אלגוריתם סריקה לעומק Search... Depth First 41 שימושים מרכזיים של... DFS 42 הרצאה מס' פרק 2 אלגוריתמים אקראיים הרצאה מס' בעיית התאמות מחרוזות matching(...)string 46 הרצאה מס' זרימה ברשתות )זרימה בשלמים( בעיית זרימת מקסימום ברשת אלגוריתם )1960( Ford-Fulkerson הרצאה מס' הרצאה מס' אלגוריתם דיניץ הרצאה מס' הרצאה מס' חלק שלישי - מבוא לסיבוכיות המחלקות... P, NP 65 דוגמה לבעיה ב- NP, שחושבים שאינה ב- P הרצאה מס' רדוקציות פולינומיות, NP -שלמ ות תכונה של רדוקציות טרנזיטיביות הרצאה מס' בעיית הספיקות... SAT Boolean satisfactory problem 74 הרצאה מס' מבוא למשפט... Cook-Levin 79 הרצאה מס' הוכחת משפט...Cook-Levin 82 הרצאה מס' בעיית... Subset sum 86 בקריאת המסמך כקובץ PDF במחשב, הנושאים בתוכן העניינים אינטראקטיביים, ולחיצה עליהם תוביל ישירות לעמוד הרלוונטי בסיכום. הערה: בעיסוק בגרפים, השתמשתי לחילופין במושגים "קודקוד" ו"צומת", וגם ב"צלע" ו"קשת". זה לא משנה שום דבר, ובד"כ נובע ממה שהמרצה אמר/ה באותו רגע. 3 אגודת הסטודנטים, בן-גוריון

5 ב t 5 מרצה רן טייג, עד שמיכל שמש תחזור מחופשת לידה באמצע הסמסטר. שעות קבלה ימי ג' 12:15-14:00, בניין 37 חדר 207. מייל: taig@cs.bgu.ac.il אתר הקורס: מייל הקורס: algo152@cs.bgu.ac.il ציון הקורס: מבחן סופי כ- 65%, בוחן אמצע כ- 20%, עבודות הגשה 15%. יש נוסחה באתר שמשקללת את הבוחן והמבחן בהתאם לציונים. קיימת חומת מעבר של המבחן. יש 6 עבודות הגשה. הציון ניתן כממוצע על חמש העבודות הטובות, ולכן יש חובת הגשה של לפחות 5 עבודות. הרצאה מס' 1 8/3/2015 ניתן לחלק את הקורס לשלושה חלקים:.3 טכניקות אלגוריתמיות בעיות קלאסיות במדעי המחשב ואלגוריתמים לפתרונן מבוא לסיבוכיות: מהי בעיה קשה? מהי בעיה קלה? איך מוכיחים שבעיה היא קשה? חלק ראשון טכניקות אלגוריתמיות מה זה לתכנן אלגוריתם? מהי בעיה? זוהי שאלה מסוימת קבועה שנשאלת על קלט משתנה. את הקלט המשתנה נכנה מופע.)instance( אלגוריתם הינו סכימת פעולות, כאשר הפעולה הראשונה היא קבלת הקלט והפעולה האחרונה היא החזרת פתרון נכון לשאלה לגבי הקלט, או הודעה "אין פתרון". הדרך היחידה להבין אם אלגוריתם נכון היא להוכיח את נכונותו. בקורס הזה נתעניין בפיתוח אלגוריתמים יעילים. כאן עולה השאלה מה זה יעיל? הגדרה: )גסה( אלגוריתם יעיל הינו אלגוריתם שזמן ריצתו לא עולה על פולינום נמוך בגודל הקלט -.O(1), O(log n), O(n), O(n log n), O(n c ) הערה: מבחינת הקורס אם לא הוגדר אחרת, אלגוריתם שאינו עובד בזמן ריצה כנ"ל אינו אלגוריתם יעיל, ואפשר להתייחס אליו כאלגוריתם לא נכון. שיטת העבודה גרסת Top-Down בהינתן בעיה: נייצר אלגוריתם מופשט, כלומר ללא פרטי מימוש, לפתרון הבעיה נוכיח את האלגוריתם בצורה מופשטת: רשימת הטענות, טענות העזר והאבחנות הנדרשות, והוכחת הטענה העיקרית )נכונות האלגוריתם( לפני הוכחת טענות העזר הוכחת טענות העזר ניתוח זמן ריצה של האלגוריתם, כולל פרטי מימוש במידת הצורך.3.4 דוגמה: בעיית המסלול הקצר ביותר בגרף מכוון. מופע: גרף מכוון.G = V, E, s, t V השאלה: מהו המרחק הקצר ביותר בין s ל- -G. אלגוריתם לבעיה זו נדרש לחשב את המרחק הקצר ביותר, "אין מסלול". ולהחזירו. במידה ו- t לא נגיש מ- s נדרש להחזיר 4 אגודת הסטודנטים, בן גוריון

6 ב t ב t 6 טכניקה מס' 1 רדוקציות אינטואיציה נפתור את בעיה A באמצעות אלגוריתם )קופסה שחורה( לבעיה B. מתי? כאשר בהינתן בעיה A, ניתן לחשוב במהירות על בעיה B שמזכירה באופייה את בעיה A. מבנה כללי של אלגוריתם מבוסס רדוקציה לבעיה A באמצעות בעיה B: A x אלגוריתם לפתרון בעיה B: קלט הבעיה x g(b f(x) = A(x) פתרון נכון לבעיה B עבור המופע f(x) B B f(x) f ממיר קלט f(x) קלט חוקי ממיר פלט g קלט חוקי ל- תצורת הפלט B זמן ריצה פתרון נכון לבעיה A עבור המופע x A(x) הערות: ייתכן שלכל היותר אחד מהממירים יהיה פונקציית הזהות. תיתכן רדוקציה בה נפעיל את הקופסה השחורה יותר מפעם אחת. דוגמה לטכניקה: נניח שידוע לנו אלגוריתם B שיודע לפתור את בעיית המסלול הקצר ביותר עבור גרפים מכוונים. אנו מקבלים דרישה לפתח אלגוריתם לאותה הבעיה עבור גרפים לא-מכוונים. נרצה לפתור את הבעיה באמצעות אלגוריתם מבוסס רדוקציה לבעיה B. ממיר הקלט: הקלט גרף לא מכוון.G = V, E, s, t V מימוש לכל קשת,u) (v E נייצר שתי קשתות מכוונות (u,u).,(v,v) את קבוצת הקשתות החדשות נסמן.E אזי הגרף E G = V, הינו פלט הממיר. ממיר הפלט: יהיה,Id אין צורך בממיר פלט. הוכחת נכונות טענה עיקרית: האלגוריתם מחזיר את אורך המסלול הקצר ביותר מ- s ל- t ב- G או "אין מסלול" אם אין כזה..k באורך G - טענת עזר: קיים מסלול בין s ל- -G באורך k אם"ם קיים מסלול בין s ל- הוכחת הטענה העיקרית: יהא p מסלול קצר ביותר בין s ל- ב t -G שהינו באורך k. מטענת העזר קיים מסלול באורך זה בין s ל- t גם ב- G. נניח בשלילה שזהו אינו המסלול הקצר ביותר בין s ל- ב t - G, כלומר קיים מסלול p באורך k < k בין s ל- t ב- G, אך לפי טענת העזר קיים מסלול באורך k < k ב- G, בסתירה להנחה ש- k הוא אורכו של המסלול הקצר ביותר. מכאן שלפי נכונות הקופסה השחורה, היא תחזיר את האורך k, וכיוון שממיר הפלט לא משנה את תשובת הקופסה השחורה, גם האלגוריתם הנידון יחזיר k, כנדרש. נשים לב שאם אין מסלול 5 אגודת הסטודנטים, בן-גוריון

7 ב t 7 בין s ל- ב t -G, מטענת העזר אין מסלול בין s ל- ב- G, ומכאן שהאלגוריתם יחזיר "אין מסלול". הוכחת טענת העזר: בתרגול. - G, ולכן מנכונות הקופסה השחורה יוחזר "אין מסלול" ניתוח זמן ריצה ממיר הקלט שכפול של כל קשת ולכן.O( E ) קופסה שחורה זהו BFS ולכן ( E.O( V + בסה"כ זמן ריצה של ( E.O( V + דוגמה: בעיית תתי-המחרוזות. מופע: W n - מחרוזות באורך 3, בהנחה המקלה שהן שונות זו מזו. קלט: rio}.w = {uri, gur, ngu, ben, ion, eng, פלט: מחרוזת T באורך + 2 n אשר מכילה כל אחת מתתי-המחרוזות בקלט w בדיוק פעם אחת. עצה: התחילו לחשוב על אלגוריתם נאיבי לבעיה. במקרה שלנו, מעבר על כל הפרמוטציות של n המחרוזות ב- w. בהינתן פרמוטציה, בדוק אם כל 2 -סיפא של מחרוזת היא 2 -רישא של המחרוזת הבאה. אם נכון לכל המחרוזות, החזר מחרוזת באורך + 2 n הבנויה בסדר זה. זמן הריצה: ) n!n 2)O לפי קירוב סטירלינג. מידול הבעיה: נחשב איזה מזוגות המחרוזות הינם זוגות חוקיים, כלומר שיכולים להוות חלק מפתרון חוקי. נמדל את המידע בצורה גרפית באופן הבא: נבנה גרף E G. =,V כל מחרוזת w i W תיוצג ע"י קודקוד יחיד. נגדיר: {ה 2 סיפא של w i שווה ל 2 רישא של.E = { w i, w j : w j אנו מעוניינים להפעיל אלגוריתם על הגרף שיענה על השאלה: האם ניתן לייצר מחרוזת )מסלול( בה כל מחרוזת w i מופיעה בדיוק פעם אחת? השאלה הגרפית הזו נקראת "בעיית מסלול המילטון". אלגוריתם מבוסס רדוקציה לבדיקת בעיית תתי-המחרוזות באמצעות בעיית מסלול המילטון: קלט: W. בנה את הגרף G המתואר לעיל. הפעל אלגוריתם לבדיקה אם קיים מסלול המילטון ב- G. אם הוחזר "אין מסלול" החזר "אין מחרוזת", אחרת המר את המסלול למחרוזת T..3 6 אגודת הסטודנטים, בן גוריון

8 8 הרצאה מס' 2 10/3/2015 המשך הדוגמה מסוף ההרצאה הקודמת טענה עיקרית: האלגוריתם מחזיר "כן" אם"ם קיימת מחרוזת חוקית T עבור W. טענת עזר: קיימת מחרוזת חוקית T עבור W אם"ם קיים מסלול המילטון ב- G. הוכחת הטענה העיקרית: ( ) נניח כי האלגוריתם מחזיר "כן", ולכן ממבנה האלגוריתם ונכונות הקופסה השחורה קיים מסלול המילטון ב- G, ומטענת העזר קיימת מחרוזת חוקית T עבור W. ( ) נניח כי קיימת מחרוזת חוקית T עבור W, ולכן מטענת העזר קיים מסלול המילטון ב- G, ולכן האלגוריתם מחזיר "כן" מנכונות הקופסה השחורה ומבנה האלגוריתם. הוכחת טענת העזר: ( ) נניח כי קיימת מחרוזת חוקית T עבור W. נסמן ב- x 1 את שלושת התווים הראשונים של T, ב- x 2 את שלושת התווים שמתחילים בתו השני של T,..., ב- x n את שלושת התווים האחרונים של T )נזכור כי = T + 2.)n נטען כי n p = x 1,, x מסלול המילטון ב- G. נשים לב שכיוון ש- T חוקית עבור,W כל x i מייצג מחרוזת w i ב- W, ולכן מבניית G מהווה קודקוד ב- G. מחוקיות T, חייבת להיות חפיפה בין ה- 2 -סיפא של x i ל- 2 -רישא של 1+i x, ומכאן קיימת צלע בין כל שני קודקודים עוקבים, ולכן p מסלול ב- G. מחוקיות T כל מחרוזת ב- W מופיעה ב- T בדיוק פעם אחת, ולכן p עובר בכל קודקוד בדיוק פעם אחת. מההנחה על הקלט שכל המחרוזות ב- W שונות זו מזו, נובע שכל הקודקודים ב- p שונים זה מזה, ולכן p מסלול המילטון ב- G. ( ) נניח כי קיים מסלול המילטון n p = x 1,, x ב- G. מבניית G כל קודקוד מייצג מחרוזת ב- W, ולכן נוכל לסמן כי.x 1 = abc 1 x 2 = bc 1 c 2 ; x 3 = c 1 c 2 c 3 ; ; x i = c i 2 c i 1 c i ; ; x n = c n 2 x n 1 c n p מסלול, ולכן קיימת צלע בין כל שני קודקודים עוקבים, ומהגדרת G חייב להתקיים קשר בין המחרוזות המיוצגות ע"י הקודקודים הנ"ל. נבנה: T. = abc 1 c n מכיוון ש- p מסלול המילטון, כל קודקוד מופיע בו פעם אחת, ולכן כל תת-מחרוזת w i W מיוצגת ב- T בדיוק פעם אחת. מהגדרת המחרוזות הקשר ביניהן חוקי, ו- T מחרוזת באורך + 2 n, ומכך T מחרוזת חוקית עבור W. ניתוח זמן הריצה שלב הבדיקה - ) 2 O(n שלב המידול מעבר על W ועל תוצאות שלב הבדיקה ובניית G בהתאם - ) 2 O(n זמן ריצת הקופסה השחורה בעיית קיום מסלול המילטון היא בעיה NP -קשה! מסקנה: בעיית מציאת מסלול המילטון בעיית תתי-המחרוזות. תזכורת: בעיית מסלול אוילר, בהתייחס לדוגמה של בעיית תתי-המחרוזות. קלט: גרף מכוון G. פלט: האם קיים מסלול ב- G שעובר בכל קשת בגרף בדיוק פעם אחת. נמדל גרפית את המידע: נבנה גרף מכוון E G = V, כך ש- {לכל 2 רישא ו 2 סיפא של מחרוזת ב w ללא חזרות {v: V = {קיימת ב w מחרוזת שה 2 רישא שלה שווה ל u וה 2 סיפא שווה ל v E = {(u, v): דוגמה ממשית: hea}.w = {ate, eat, tea, eam, the, 7 אגודת הסטודנטים, בן-גוריון

9 9 eat ate tea at te ea eam the am th ea hea משפט: )אוילר( עבור גרף מכוון G, אם מתקיים: א. ב. ג. קיים קודקוד s עם דרגת יציאה גדולה ב- 1 מדרגת הכניסה קיים קודקוד t עם דרגת כניסה גדולה ב- 1 מדרגת היציאה לכל {t v V\{s, דרגת הכניסה שלו שווה לדרגת היציאה אזי יש מסלול אוילר ב- G. הערה: קיים אלגוריתם שמבוסס על המשפט לבדיקת קיום מסלול אוילר בסיבוכיות.O( E ) בסה"כ.T = theateam אלגוריתם מבוסס רדוקציה לבדיקת בעיית תתי-המחרוזות באמצעות בעיית מסלול אוילר: קלט: W. בנה את הגרף G המתואר לעיל. הפעל אלגוריתם לבדיקה אם קיים מסלול אוילר ב- G. אם הוחזר "אין מסלול" החזר "אין מחרוזת", אחרת המר את המסלול למחרוזת T..3 טענה עיקרית: האלגוריתם מחזיר "כן" אם"ם קיימת מחרוזת חוקית T עבור W. טענת עזר: קיימת מחרוזת חוקית T עבור W אם"ם קיים מסלול אוילר ב- G. הוכחת הטענה העיקרית: ( ) נניח כי האלגוריתם מחזיר "כן", ולכן ממבנה האלגוריתם ונכונות הקופסה השחורה קיים מסלול המילטון ב- G, ומטענת העזר קיימת מחרוזת חוקית T עבור W. ( ) נניח כי קיימת מחרוזת חוקית T עבור W, ולכן מטענת העזר קיים מסלול המילטון ב- G, ולכן האלגוריתם מחזיר "כן" מנכונות הקופסה השחורה ומבנה האלגוריתם. הוכחת טענת העזר: ( ) נניח כי קיימת מחרוזת חוקית T עבור W. נסמן ב- v 1 את שני התווים הראשונים ב- T ;...; נסמן ב-.G הוא מסלול אוילר ב- p = v 1,, v n נטען ש-.T של n + את שני התווים שמתחילים באות ה- 1 v n+1 מחוקיות T עבור W, כל v i הינו 2 -רישא או 2 -סיפא של מחרוזת מ- w, ולכן מהגדרת G קיים קודקוד מתאים לו ב- V. כמו כן, כל 1+i v i, v עוקבים ב- T מהווים מהגדרת מחרוזת חוקית 2 -רישא ו- 2 -סיפא של מחרוזת מ- W, ולכן קיימת קשת ב- G בין הקודקודים המתאימים, ולכן p מסלול. מחוקיות T עבור W, כל מחרוזת מ- W מופיעה בה בדיוק פעם אחת, ומכאן שכל צלע )המייצגת מחרוזת( מופיעה בה פעם אחת, 8 אגודת הסטודנטים, בן גוריון

10 10 ומכיוון שהמחרוזות בקלט שונות זו מזו גם הקשתות ב- p שונות זו מזו, ולכן p מסלול בעל n צלעות ולכן + 1 n קודקודים, כלומר p מכיל כל קשת ב- E ולכן הוא מסלול אוילר. ( ) בדומה לרדוקציה למסלול המילטון. ניתוח זמן הריצה G בניית - נשתמש ב- table hash כדי לבדוק אם 2 -רישא או 2 -סיפא נוספה כבר ל- V. יש O(n) O(2n) = רישאות וסיפאות, ולכן תהליך בנייה זה ייקח O(n) כי עבודה מול hash table היא (1)O בממוצע. ישנן n מחרוזות, ומעבר יחיד עליהן ישלים את הקשתות ב- G. זמן ריצת הקופסה השחורה הוא O(n).O( E ( = 9 אגודת הסטודנטים, בן-גוריון

11 11 הרצאה מס' 3 15/3/2015 טכניקה מס' 2 אלגוריתמים חמדניים יתרון יעילות זמן ומקום. חסרון כנראה לא תקף בבעיות מורכבות מספיק. דוגמה: בעיית הפעילויות. קלט: רשימת פעילויות } n,a = {a 1,, a כאשר לכל פעילות נתונים שני מספרים שלמים: s i התחלה; f i זמן סיום. זמן פתרון חוקי: G A כך שלכל שתי פעילויות ב- G לא מתנגשות זו בזו, מלבד אולי ברגע ההתחלה והסיום. פתרון אופטימלי: פתרון חוקי מקסימלי בגודלו. דוגמה לקלט חוקי a i s i f i פתרונות חוקיים לדוגמה: } 2.{a 1 }, {a 1, a 2 }, (a 7, a 3, a 4 }, {a 7, a 6, a מבנה כללי של אלגוריתם חמדן כל האפשרויות/החלטות S G כל עוד S.3 קבל החלטה/בחר בחירה לפי כלל חמדני כלשהו i 3. S S בפתרון} i בחירה שלא אפשרות בהינתן ש,וכל i}.3 G G {i}.3.3 החזר את G 4. אפשרויות לכלל בחירה חמדני: פעילות קצרה ביותר 10 אגודת הסטודנטים, בן גוריון

12 12 פעילות שמתחילה הכי מוקדם פעילות שתסתיים הכי מוקדם התנגשות עם כמה שפחות פעילויות אחרות ברור שהאפשרות הראשונה לא טובה כי היא יכולה לבטל שתי פעילויות צמודות ארוכות יותר. האפשרות השנייה לא טובה כי היא יכולה לבטל פעילויות אחרות רבות. גם האפשרות הרביעית לא טובה. מסתבר שהאפשרות השלישית היא כלל הבחירה החמדני הרצוי. ניקח את המבנה הכללי של אלגוריתם חמדני וניצור אלגוריתם לפתרון בעיית הפעילויות: Activity(A) 1. S A 2. G 3. while (S ) פעילות בעלת זמן סיום מוקדם ביותר ב -S.3 a i 3. S S collide(a i ) 3.3. G G {a i } 4. return G הערה: ) i collide(a תחזיר את קבוצת הפעילויות המתנגשות עם a. i הוכחת נכונות גישה א' להוכיח שכל פעילות בפתרון G לא מאוחרת מהפעילות המקבילה לה בכל פתרון אופטימלי )ההוכחה בתרגול(. גישה ב' )שגויה( האלגוריתם מבצע בחירה אופטימלית בכל שלב, אז מקבלים בסופו של דבר פתרון אופטימלי. המשפט לא מוגדר היטב. גישה ג' )שגויה( יהא פתרון אופטימלי O, אזי G. = O סכמת ההוכחה לאלגוריתם חמדן )טיעון ההחלפה( טענה עיקרית: G פתרון חוקי ואופטימלי. טענת עזר: יהא.G k O G k הפתרון שהאלגוריתם בנה עד האיטרציה ה- k. אזי קיים פתרון אופטימלי כך ש- O הוכחת הטענה העיקרית: מטענת העזר, קיים בפרט לאחר האיטרציה האחרונה פתרון אופטימלי O כך ש-.a ו- G a O נניח בשלילה שקיימת פעילות.S = האלגוריתם סיים ולכן ממקרה העצירה.G O O חוקי ומכיל את G, ולכן בהכרח a לא מתנגשת בכל הפעילויות ב- G, אבל אז a S בשלב זה, בסתירה לכך שהאלגוריתם סיים. מכך O G = ולכן G פתרון אופטימלי. הוכחת טענת העזר: באינדוקציה על k מספר האיטרציות. ישנם חמישה שחקנים באינדוקציה: א. ב. ג. ד. ה. k הפתרון שהאלגוריתם בנה עד האיטרציה ה- 1 G 1 k G הפתרון האופטימלי שלפי ה"א מכיל את 1 k O הפתרון שהאלגוריתם בנה עד האיטרציה ה- k G k O - הפתרון האופטימלי )ייתכן ונצטרך להגדיר אותו( שמכיל את האיבר שנבחר בשלב ה- k k G k בסיס עבור = 0 k מתקיים.G 0 =, O 11 אגודת הסטודנטים, בן-גוריון

13 13 הנחה וצעד נניח נכונות עד האיטרציה ה- 1 k: G. 1 k O נוכיח כי קיים פתרון אופטימלי O שמכיל את } k.g k = G k 1 {a מקרה ראשון - O a k ולכן G k O וסיימנו. מקרה שני - O a. k צריך לבנות פתרון אופטימלי שמכיל את G k a. k פתרון חוקי, ו- O אופטימלי, כלומר מקסימלי בגודלו, ולכן O. G k ידוע כי a k G k, a k O ומכאן פתרון O.O G k 1 הפעילות בעלת זמן הסיום המוקדם ביותר מבין הפעילויות ב- a j תהא.O G k 1 טענה: } k = O {a j } {a פתרון חוקי, מקסימלי בגודלו ומכיל את.G O k {a G O k = G k 1 {a k } O j } פתרון חוקי: O. O מקסימלי, ולכן O O 1 +1 = =. בנוסף O O a j a k G 1 k O ו- O חוקי - מתחילה אחרי שהפעילות האחרונה ב- 1 k G מסתיימת. כל הפעילויות ב- } j (O G k 1 ) {a מתחילות אחרי.f j מהעובדה ש- a j לא מתנגשת עם k 1 G עולה כי a j עומדת לבחירת האלגוריתם לפני האיטרציה ה- k, אך בפועל האלגוריתם בוחר ב- a, k ומכלל הבחירה החמדנית עולה כי O פתרון חוקי. בסה"כ O ולכן a, j מלבד לא מתנגשת עם אף פעילות ב- O a k מכאן שהפעילות f. k f j פתרון חוקי, מכיל את ואופטימלי, ולכן הטענה נכונה. a j G k ניתוח זמן ריצה ננתח את זמן הריצה של מימוש יעיל של :Activity(A) מיין את A לפי זמני סיום בסדר עולה. = 0 g F זמן סיום של פעילות בעלת זמן סיום מאוחר ביותר שנבחרה..G לכל i n 1 בצע: i I הפעילות הבאה במיון. אם F g S Ii אזי } i G {I ו-.F g f Ii החזר את G..3 צעד מס' - 1 n).o(n log צעד מס' - 2.O(n) סה"כ - n).o(n log 12 אגודת הסטודנטים, בן גוריון

14 14 הרצאה מס' 4 22/3/2015 דוגמה נוספת לאלגוריתם חמדני: בעיית החדרים. קלט: } n A = {a 1,, a רשימת פעילויות, כך שכל } i a i = {s i, f )זמן התחלה וזמן סיום(. פתרון חוקי: חלוקה של A לקבוצות, כאשר בכל קבוצה אין פעילויות שמתנגשות אחת בשנייה. פתרון אופטימלי: חלוקה למינימום קבוצות. ניתן לראות שאם נשתמש בכלל הבחירה החמדני מהדוגמה הקודמת, לא נקבל תוצאות אופטימליות. אינטואיציה לכלל חמדן חדש: בחירות פעילות בעלת הזמן ההתחלה המוקדם ביותר. Room(A) 1. d 1, G d = 2. while (A ) פעילות בעלת זמן התחלה מוקדם ביותר a i 2. If there exists a group G j so that a i doesn't collide with every activity in it: 2.G j G j {a i } 2.3. else 2.3.G d+1 = {a i } 2.3.d d return G = {G 1, G 2,, G d } הוכחת נכונות נגדיר את עומק הקלט d: מס' הפעילויות המירבי המתקיימות בו-זמנית. אבחנה 1: לא ניתן למצוא פתרון חוקי שמשתמש בפחות מ- d חדרים. טענה ראשית: האלגוריתם מחזיר פתרון חוקי במינימום חדרים. אבחנה 2: ע"פ סעיף 2 באלגוריתם מובטח כי לא תוחזר קבוצה המכילה שתי פעילויות מתנגשות ומכאן הפתרון חוקי. טענת עזר: אם עומק הקלט A הוא d אזי האלגוריתם יחזיר פתרון המשתמש ב- d חדרים. הוכחת הטענה הראשית: האלגוריתם מחזיר פתרון חוקי. מטענת העזר הפתרון המוחזר משתמש ב- d חדרים. מאבחנה מס' 1 לא ניתן להחזיר פתרון עם פחות חדרים, ולכן הפתרון שיוחזר אופטימלי. הוכחת טענת העזר: נניח בשלילה שהאלגוריתם משתמש ביותר מ- d חדרים, כלומר האלגוריתם פותח בשלב מסוים חדר + 1 d עבור פעילות a i כלשהי. מכאן שקיימת פעילות a j בכל חדר j d,g j,1 שמתנגשת עם a. i מהכלל החמדני a i מתחיל אחרי כל הפעילויות איתן היא מתנגשת, כלומר לכל a j מתקיים f. j > s i מכך נובע כי בזמן s i מתקיימות + 1 d פעילויות בו-זמנית, וזו סתירה להנחה ש- d הוא עומק הקלט. ניתוח זמן ריצה מימוש יעיל של האלגוריתם :Room(A) d 1, G d =, F d 0 ערימת מינימום של זוגות Q G j, F j מיין את A לפי זמני התחלה מהמוקדם למאוחר.3 13 אגודת הסטודנטים, בן-גוריון

15 15 עבור i n :1 4. הפעילות הבאה במיון a i G j, F j ExtractMin(Q) אם :F j S ai G j G j {a i }.4.3 מ- Q ל- Q.4.3 הוצא את G j, F j G j, F j הכנס את :F j F ai אחרת: d d G d {a i }.4.4 F d F ai הכנס את ) d (G d, F ל- Q החזר את } d G = {G 1, G 2,, G ,4.3.3,4.3 סעיף 3 לוקח logn).o(n סעיפים,4.O(n logn) לוקחים (n.o(log בסה"כ זמן ריצה של עצים פורשים מינימליים Trees Minimum Spanning כל הגרפים בפרק זה ממושקלים, לא-מכוונים, קשירים ופשוטים. גרף ניתן לייצוג עם רשימת שכנויות ומטריצת שכנויות. נעדיף להשתמש ברשימת שכנויות כי זה ייצוג יותר יעיל שלוקח ( E O( V + זיכרון, לעומת המטריצה שלוקחת ) 2 O( V זיכרון. נחזור על קצת הגדרות מתורת הגרפים: עץ הוא גרף קשיר וחסר מעגלים. תת-גרף פורש הוא תת-גרף קשיר המכיל את כל קודקודי הגרף. עץ פורש הוא תת-גרף פורש שהינו עץ, ובאופן שקול תת-גרף פורש וחסר מעגלים., w(t) = e E T כלומר סכום כל המשקלים של הצלעות w(e) הוא T = V, E T E יער הוא גרף חסר מעגלים. משקל של תת-גרף בתת-הגרף. עבור בעיית עץ פורש מינימלי )עפ"מ(: קלט: גרף E.G = V, פלט: עץ פורש T T =,V E של G, במשקל מינימלי מבין כל העצים הפורשים של G. 14 אגודת הסטודנטים, בן גוריון

16 16 הרצאה מס' 5 24/3/2015 משפט 1: )ללא הוכחה( עבור עץ פורש T T =,V E התנאים הבאים שקולים: T קשיר וחסר מעגלים.. E T = V קשיר ו- 1 T. E T = V חסר מעגלים ו- 1 T קיים מסלול פשוט יחיד בין כל שני קודקודים ב- T..3.4 משפט 2: )טיעון ההחלפה לעצים פורשים( יהא E G =,V גרף ו- T =,V E T העץ הפורש שלו. כמו-כן נתונה קשת.e E E T אזי בגרף {e} H = V, E T קיים מעגל,C ולכל קשת e C מתקיים כי.G הינו גם-כן עץ פורש של T = V, (E T {e}) {e } T עץ פורס. מהנתון E. T מתקיים עץ פורש, ולכן 1 V T = E T = E T +1 e 1 = V 1 e הוכחה: צ"ל כי נראה כי T קשיר: יהיו T,u. v V עץ פורש אזי קיים מסלול p בין u ל- v ב- T. אם e p אזי p קיים גם ב-.E T אם,e = (x, y) p אז מתנאי המשפט,e C הקשתות של } {e C ב-,T ומהוות מסלול מ- ל x - ב y,t - שמהווה תחליף לקשת.(x, y) p שלד לאלגוריתם חמדן לבעיית MST F E, P כל עוד F 2. קשת הנבחרת ע"י כלל חמדני e F F {e} P P {e}.3 החזר P T = V,.3 נראה שני אלגוריתמים ל- MST : אלגוריתם Kruskal שמגדל יער שמתאחד לאיטו לעץ פורש. אלגוריתם Prim מגדל עץ שגדל לאיטו לעץ פורש. אלגוריתם Kruskal F E, P כל עוד 1 V P < 2. קשת במשקל מינימום ב- F e F F {e} 2.3. אם {e} P לא מכיל מעגל P P {e}.3 החזר P T = V,.3 15 אגודת הסטודנטים, בן-גוריון

17 17 אבחנה: לכל גרף קשיר קיים עפ"מ. זאת משום שמקשירות הגרף קיים לפחות עץ פורש אחד, וקבוצת העצים הפורשים של גרף היא סופית ולכן קיים מינימום בקבוצה. הוכחת נכונות לאלגוריתם Kruskal טענה ראשית: האלגוריתם מחזיר עפ"מ של G. טענת עזר: נסמן ב- P k את הקשתות שהאלגוריתם בחר עד השלב ה- k, אזי קיים עפ"מ T T =,V E כך ש-.P k E T הוכחת הטענה הראשית: מעצם קיומו של עפ"מ בגרף קשיר, ומהעובדה שהאלגוריתם עובר על כל הקשתות, בהכרח יימצאו 1 V קשתות שלא סוגרות מעגל זו עם זו, ולכן הלולאה תסתיים. מטענת העזר, לאחר כל צעד, ובפרט לאחר הצעד האחרון, מתקיים P E t עבור עפ"מ T T =,V E של G. האלגוריתם עצר ולכן T, P = V 1 = E ומכאן,P = E T ולכן P,T = V, E T = V, כלומר הוחזר עפ"מ. הוכחת טענת העזר: באינדוקציה על מס' האיטרציות k. בסיס עבור = 0 k מתקיים.P 0 = E T הנחה קיים עפ"מ T T = V, E כך ש-.P k 1 E T צעד נוכיח כי קיים עפ"מ T T = V, E כך ש-.P k E T תהא (v e =,u) הקשת שהאלגוריתם בוחר באיטרציה ה- k. מקרה ראשון e סוגרת מעגל עם מקרה שני e לא סוגרת מעגל עם.T = T ולכן,P k = P k 1 E T ואז מה"א והאלגוריתם P k 1.P k = P k 1 {e} נסמן.P k 1 תת-מקרה א' - T e E ואז מה"א,P k 1 E T ובסה"כ P k E T ושוב T.T = תת-מקרה ב' - T.e E נביט ב- { e }.H = V, E T ממשפט 2 קיים מעגל C ב- H. מדוע קיימת הינן ב- 1 k e? נניח בשלילה שכל הקשתות ב-{ e } P, C אך אז כאשר נצרף את e C P k 1 נקבל מעגל ב- P, k בניגוד לעבודה שהאלגוריתם מונע היווצרות כזו של מעגל כאשר הוא בוחר את.e אז ממשפט } 2 {e T = V, (E T {e}) הינו עץ פורש. :T.e T מהגדרת,e P :T ובסה"כ.P נותר k E T k 1 ראינו ש-.P k 1 E T מהגדרת האלגוריתם בוחר ב- e.e P וגם )e )מהגדרת e P עפ"מ: נשים לב כי T k 1 k 1 להוכיח ש- ולכן בודאות היא לא סוגרת מעגל עם 1 k P. כמו כן ידוע ש- P 1 k e} } E T ולכן אין מעגל גם כאן. מכאן, שבשלב ה- k האלגוריתם יכל לבחור גם ב- e וגם ב- e, אך הוא בחר ב- e. מכלל הבחירה החמדני בהכרח מתקיים ) w(e,w(e) ולכן w(t).w(t ) = w(t) + w(e) w(e ) T עץ פורש מינימלי שמכיל את P, כנדרש. k בסה"כ ניתוח זמן ריצה סעיף - 2 נשים לב כי log V ), E log E = E log V 2 = E 2 log V = O( E מתוך מיון כל הצלעות במיון מבוסס השוואות. מימוש נאיבי של בדיקת המעגלים הרצת DFS O( E V ) E, O( V ) = משום שיש E בדיקות של סגירת מעגל. על גרף שמס' הקשתות בו לכל היותר V. בסה"כ אבחנה: (v,u) סוגרת מעגל ב- p אם"ם גם u וגם v שייכות לאותו עץ ב- p. מימוש יעיל של האלגוריתם עם מבנה :union-find 16 union-find-kruskal(g) אגודת הסטודנטים, בן גוריון

18 18 מיון של E לפי משקלים בסדר עולה F B לכל v V make-set(v).3 כל עוד 1 V B <.4 הקשת הבאה במיון v) e = (u, F F {e} אם find-set(v) find-set(u) B B {e}.4.3 union(u, v).4.3 החזר B T = V, n union, find-set, make-set משפט מקורס מבני נתונים: ביצוע m make-set לוקח logn) O(m זמן. פעולות שמתוכן לפחות פעולות במקרה של המימוש הנ"ל נדרשות V פעולות E 2,make-set פעולות find-set ו- V פעולות.union בסה"כ זמן ריצה של האלגוריתם הוא log V ).O ( V + E ) log V = O( E 17 אגודת הסטודנטים, בן-גוריון

19 19 הרצאה מס' 6 12/4/2015 נתבונן באלגוריתם.Prim בניגוד לאלגוריתם קרוסקל, האלגוריתם הזה מגדל עץ יחיד שגדל לכדי עץ פורש. אלגוריתם Prim בחר v V שרירותית S {v}, B כל עוד 1 V S <.3 קשת במשקל מינימום המקיימת e = (v, w) v S, w S.3 B B {e}, S S {w}.3 החזר B T = V,.4 הגדרה: חתך של גרף הוא חלוקה של V לשתי קבוצות זרות. הגדרה: קשת חוצה חתך היא קשת שמחברת בין קודקודים בשתי הקבוצות של החתך. הערה: אלגוריתם פרים למעשה מבצע חתך של הגרף בכל איטרציה ובוחר את הקשת החוצה המינימלית. הוכחת נכונות לאלגוריתם Prim טענה ראשית: T המוחזר הינו עפ"מ של G. טענת עזר: אם.B k E T B k הינו אוסף הקשתות שנבחרו עד השלב ה- k, אזי קיים עפ"מ T T =,V E המקיים הוכחת הטענה הראשית: האלגוריתם עוצר כיוון שבכל איטרציה קיימת קשת חוצה חתך. נניח בשלילה שלא הגענו לתנאי העצירה, כלומר S לא מכילה את כל הקודקודים, אך אין קשת חוצה חתך, כלומר קיימים שני רכיבי קשירות זרים, בניגוד להנחה שהגרף קשיר. מטענת העזר, בפרט לאחר האיטרציה האחרונה מתקיים T.B E לפי תנאי העצירה 1 V E T. B = הינו קשתות של עפ"מ ולכן 1 V, E T = ומכאן.T = T ולכן B = E T הוכחת טענת העזר: באינדוקציה על מספר האיטרציות k. בסיס עבור = 0 k מתקיים T.B 0 = E הנחה קיים עפ"מ T T = V, E כך ש-.B k 1 E T T T k E המקיים.B תהא w) e = (v, הקשת שנבחרה ע"י צעד נוכיח כי קיים עפ"מ T V, E = האלגוריתם באיטרציה ה- k, ולכן {e}.b k = B k 1 מקרה ראשון - T e E ולכן T B k = B k 1 E ונסמן T T = וסיימנו. מקרה שני - T.e E נתבונן ב- { e }.H = V, E T ממשפט 2 קיים ב- H המעגל.C לא ייתכן כי {e} C, B 1 k כי אז e לא הייתה חוצה חתך, והאלגוריתם לא היה בוחר בה. נתבונן ב-{ e } - C זהו מסלול בין v ל- w. רגע לפני בחירת e מתקיים ש- S v.,s w תהא e הקשת הראשונה על המסלול שחוצה את החתך (S,S). V היא קיימת כי יש מסלול בין v S ל- S w. V נטען ש-.B עפ"מ שמכיל את T = V, (E T {e}) {e k } T עץ פורש ישירות ממשפט 2. e e B 1 k, e כי כל הקשתות שכבר נבחרו אינן חוצות חתך, ומכאן T B. k E האלגוריתם בחר ב- e ולכן היא קשת חוצה חתך באיטרציה זו, אבל גם את e בחרנו כקשת חוצה חתך, ומכאן שתי הקשתות יכלו להיבחר באיטרציה ה- k אך האלגוריתם בחר ב- e. לכן מכלל הבחירה 18 אגודת הסטודנטים, בן גוריון

20 20 החמדני ) w(e,w(e) ומכאן ) w(t.w(t ) = w(t ) + w(e) w(e ) מכיוון ש- T עפ"מ נובע T w(t ) = w(t k E ולכן T עפ"מ של G המקיים,B כנדרש. כי ) ניתוח זמן ריצה במימוש נאיבי, בצעד 3 מעבר על כל הקשתות ובדיקה האם הקשת חוצה חתך ומינימלית לוקח.O( E ) יש O( V ) איטרציות ולכן סה"כ זמן ריצה של.O( E V ) מימוש יעיל: בחר קודקוד שרירותית v B, S, {v} הכנס את כל הקשתות (w,u) לערימת מינימום Q ע"פ המשקלים כל עוד 1 V B < e Extract-min(Q).4 S S {w}, B B {e} לכל קשת e שמחוברת ל- w 4.3. אם הקצה השני ב- S אז הוצא את e מ- Q 4.3. אם הקצה שני לא ב- S אזי הכנס את e ל- Q החזר B T = V, הרעיון הוא ש- Q מכילה בכל רגע אך ורק את כל השקתות חוצות החתך בשלב זה. אבחנה: E. Q כמה פעמים קשת מסוימת נכנסת ויוצאת מ- Q? כניסה אחת ויציאה אחת. כל פעולה על הערימה לוקחת O(log E ) זמן. לכל היותר יתבצעו שתי פעולות insert, delete על קשת מסוימת, ולכן פעולות אלו ייקחו log E ) O( E זמן. יש לכל היותר 1 V פעולות Extract-min ולכן סה"כ זמן ריצה של האלגוריתם log E ). O( E log E + V ראינו כי log E ) V log E = O( E ולכן זמן הריצה של האלגוריתם הוא log E ).O( E בנוסף ראינו כי log V ) E log E = O( E ולכן סה"כ זמן הריצה הוא log V ),O( E כמו אלגוריתם קרוסקל. הערה: קיים מימוש יעיל יותר עם ערימת פיבונצ'י, שזמן הריצה שלו הוא log V ).O( V טכניקה מס' 3 תכנון דינמי Programming( )Dynamic הרעיון חלוקת הבעיה לתתי-בעיות קטנות יותר, ושילוב של פתרונות אופטימליים לתתי-הבעיות לכדי פתרון אופטימלי לבעיה המקורית. ישנם שני אתגרים בנושא: איך לחלק לתתי-בעיות? איך לשלב את הפתרונות לתתי-הבעיות לפתרון הבעיה המקורית )נוסחת מבנה(? מתי נזהה שבעיה פתירה באמצעות תכנון דינמי? כאשר ניתן לפרק פתרון אופטימלי לפתרונות אופטימליים עבור תתי-בעיות קטנות. האם זה תמיד נכון? לא! אבל כמעט תמיד... בעיית הפעילויות הממושקלות קלט: } n A = {a 1,, a קבוצה של פעילויות, כך שכל פעילות a i A מיוצגת ע"י שלשה ) i (s i, f i, w כמו בבעיה המקורית, כאשר w i משקל הבעיה. פתרון חוקי: B A כך שכל שתי פעילויות ב- B לא מתנגשות. פתרון אופטימלי: פתרון חוקי שסך המשקלים של הפעילויות שבו מקסימלי ביחס לפתרונות החוקיים האחרים. 19 אגודת הסטודנטים, בן-גוריון

21 21 דוגמות למוטיבציה: w i = f i s i רווח מפעילות = i w הוצאה על פעילות = i w ואז מחפשים מינימיזציה האם ניתן להפעיל כאן אסטרטגיה חמדנית? מתחשבים במשקלים ולא פתרנו את הבעיה. אם נפעיל אסטרטגיה כמו בבעיה המקורית, בעצם לא נשים לב שאם = 1 i a i : w אז אנו כן חוזרים לבעיית הפעילויות המקורית, כלומר כל האסטרטגיות החמדניות שנכשלו בבעיה המקורית נכשלות גם כאן. 20 אגודת הסטודנטים, בן גוריון

22 22 הרצאה מס' 7 14/4/2015 בטכניקת התכנון הדינמי אלו הם שלבי הפתרון: חלוקה לבעיות ושילובן בנוסחה 1. חלוקה והגדרת תתי-בעיות )OPT( 1. הגדרת נוסחת מבנה 1.3. הוכחת הנוסחה )תבנית נפרדת(. פיתוח אלגוריתם רקורסיבי/איטרטיבי המבוסס על נוסחת המבנה. הוכחת נכונות האלגוריתם וניתוח זמן ריצה זהו שלב יחסית קצר..3 נשתמש בבעיית הפעילויות הממושקלות, שהוצגה בסוף ההרצאה הקודמת, כדי להציג פתרון באמצעות תכנון דינמי. שלב 1 מה נדרש? לוודא שאחת מתתי-הבעיות היא למעשה הבעיה המקורית. לוודא שלפחות אחת מתתי-הבעיות טריוויאלית לפתרון )מקרה בסיס(. לוודא שמספר תתי-הבעיות שנגדיר קטן יחסית )פולינומי(. הערה: הדבר הראשון שחייבים לעשות הוא לסדר את הקלט בצורה נוחה שהגיוני לעבוד עליו. במקרה זה נסדר לפי זמני סיום בסדר לא-יורד. נקבל: A = a 1,, a n, f 1 f 2 f n הערה: הסימון = A מסמן מערך ממוין של איברים, בניגוד לסימון הקודם { } = A שהגדיר קבוצת קלט. יהא O פתרון אופטימלי. אפשרות א':.a n O מכך } n 1.O {a 1,, a נטען ש- O אופטימלי עבור קלט זה, אחרת קיים } n 1 O {a 1,, a כך ש-( w(o,w(o ) > אבל בפרט O הינו פתרון חוקי שמוכל ב-.O וזה עומד בסתירה לאופטימליות של {a 1,, a n } אפשרות ב':.a n O a 1 a 2 a 3 a 4 a 5 a 6 עבור פעילות a i כלשהי, נגדיר: אינדקס הפעילות שמסתיימת מאוחר ביותר, מבין הפעילויות שמסתיימות לא אחרי p(i) = s i אם אין פעילות כזו, נגדיר = 0.p(i) בדוגמה הנ"ל: = 0 p(1).p(6) = 3, p(4) = 2, נביט ב-{.O = O {a n מחוקיות O מתקיים } p(n).o {a 1,, a נטען ש- O פתרון אופטימלי עבור קלט זה, כי אחרת קיים O, פתרון חוקי לקלט זה, המקיים ) w(o.w(o ) > נגדיר זהו פתרון חוקי כי מהגדרת O כל הפעילויות ב- O בהכרח זרות ל- a. O = O n אזי {a n }.O בסתירה לאופטימליות,w(O ) = w(o ) + w n > w(o ) + w n = w(o) 21 אגודת הסטודנטים, בן-גוריון

23 23 שלב 1 הגדרה: ערך פתרון מקסימלי עבור הבעיה עם הקלט } i i n: OPT(i) = {a 1,, a. 1 OPT(i) = { 0, i = 0 max{opt p(i) + w i, OPT(i 1)}, i > 0 אבחנה:.p(i) < i שלב 1.3 )תבנית כללית( מה עושים? חלוקת מרחב הפתרונות לקבוצות של פתרונות אפשריים. הוכחת כיסוי: כל פתרון שייך לאחת הקבוצות שהוגדרו. מסקנה מיידית: {(n קבוצות) OPT,,(קבוצה אחת) max\min{opt.opt(i) = הוכחת שוויון עבור כל i שהינו חלק מהנוסחה. סיכום נמחיש זאת על הדוגמה שאנו פותרים: 1. בצורה גרפית: sol 1 מרחב הפתרונות ש- a i לא שייך אליהם sol 2 מרחב הפתרונות ש- a i שייך אליהם הגדרה: sol הוא מרחב כל הפתרונות החוקיים לבעיה } i.{a 1,, a כיסוי - יהא P פתרון. אם a i P אזי P sol 2 אחרת.P sol 1 מסקנה מיידית: )} 2,OPT(i) = max{o (sol 1 ), O (sol כאשר ( ) O הוא ערך הפתרונות המקסימליים בכל קבוצה. טענת עזר :1 1) OPT(i O (sol 1 ) = טענת עזר :2 i O (sol 2 ) = OPT p(i) + w הוכחת טענת עזר :1 נוכיח כי 1) OPT(i :O (sol 1 ) יהא O פתרון אופטימלי עבור } i 1.{a 1,, a מההגדרה 1) OPT(i.w(O) = בפרט, O מהווה פתרון חוקי שמוכל גם ב- O (sol 1 ) ולכן מהגדרת,O ומכאן sol 1,a i פתרון חוקי לקלט שלא מכיל את O כלומר,{a 1, a i } מתקיים 1) OPT(i.O (sol 1 ) w(o) = נוכיח כי 1) OPT(i O sol 1 (sol 1 ) פתרון שמקיים ) 1 :O יהא.w(O) = O (sol מהגדרת OPT ולכן מהווה פתרון חוקי גם לקבוצה זו, ולכן מהגדרת O {a 1,, a i 1 } מתקיים sol 1 מתקיים ) 1.OPT(i 1) w(o) = O (sol אגודת הסטודנטים, בן גוריון

24 24 הוכחת טענת עזר :2 נוכיח כי (sol 2 ) OPT p(i) + w i פפתרון עבור } p(i) :O 1,, a יהא {a O שמקיים p(i).w(o) = OPT נגדיר } i O = O {a זהו פתרון חוקי כי ב- O אין פעילויות O,a ולכן שמתנגשות עם a i מהגדרת.p(i) מכאן פתרון חוקי לקבוצה } i {a 1,, a שמכיל את i.o (sol מתקיים O ומהגדרת,O 2 ) w(o ) = w(o) + w i = OPT p(i) + w i sol 2 נוכיח כי (sol 2 ) OPT p(i) + w i יהא O פתרון מקסימלי בקבוצה 2 :O,sol לכן = w(o) O מתקיים O מחוקיות.O = O {a נגדיר:.a מהגדרת.O i } i O מתקיים sol 2 (sol 2 ) O (sol 2 ) = w(o) = w(o ) + w i בסה"כ.w(O ) OPT p(i) ומכאן {a 1,, a p(i) } RWA(A) 1. if (n=0) 1. return 0 2. else 2. return max{raw(n 1),RAW p(n) + w n },OPT p(i) + w i כנדרש. 5. מטענות העזר ומהמסקנה בסעיף 3 נובעת נכונות נוסחת המבנה. שלב 2 נניח לשם נוחות שהאלגוריתם מקבל אינדקס ויש לו גישה ל- A. אלגוריתם רקורסיבי: נראה את עץ הרקורסיה עבור הדוגמה הבאה: a 1 2 a 2 4 a 4 a a 5 a OPT(6) OPT(5) OPT(3) OPT(4) OPT(3) OPT(2) OPT(1) OPT(3) OPT(0) OPT(1) OPT(0) OPT(0) OPT(0) 23 אגודת הסטודנטים, בן-גוריון

25 25 הרצאה מס' 8 19/4/2015 המשך ההוכחה מההרצאה הקודמת: הערה: תכנון דינמי מספק דרך לעבור באופן לא מפורש על מספר אקספוננציאלי של פתרונות חוקיים בזמן )ומקום( פולינומי. ראינו כי השיטה הרקורסיבית הטריוויאלית לא יעילה. נראה גרסה רקורסיבית תוך מימוש memoization )קישור(: Initialization: 1. 1 i n: M i = 1 RWA(i) 1. if (i = 0) 1. M 0 = 0 2. if (M i = 1) 2. return M i 3. else 3. return M i max{rwa(i 1), RWA p(i) + w i } שלב 3 ניתוח זמן ריצה לאחר שינוי האלגוריתם: אתחול:.O(n) מיון לפי זמני סיום: (n.o(n log חישוב p(i) לכל i: נשתמש בעץ חיפוש על זמני הסיום f. i נחפש בזמן f(j) שקרוב ביותר ל- s i כך ש-,f j s i ונגדירו כ-( p(i. סה"כ n).o(n log קריאות רקורסיביות: מקרה בסיס או קריאה שכבר נפתרה - (1)O. לכל היותר יש n קריאות רקורסיבית ל"חישוב אמיתי", ולכן בסה"כ (n.o(n log למעשה, אנו רואים שעיקר העבודה הוא בשלב העיבוד המוקדם של המידע ואתחול מבני הנתונים. לצורך הוכחת נכונות האלגוריתם, ננסח טענה: טענה: OPT(i) i n: RWA(i) =. 1 הוכחה: באינדוקציה על i. בסיס עבור = 0 i האלגוריתם מחזיר,0 ואכן = 0 OPT(0) מההגדרה. הנחה נניח כי הטענה נכונה לכל k. < n צעד נוכיח עבור n: RWA(n) = max{rwa(n 1),RWA p(n) + w n } הנחת האינדוקציה = max{opt(n 1), OPT p(n) + w n } = OPT(n) p(i)<i,i-1<i נכונות נוסחת המבנה נראה אלגוריתם איטרטיבי לבעיה: 24 אגודת הסטודנטים, בן גוריון

26 26 Iter-weighted-activiy(n) 1. for (1 i n) 1. M i = 1 2. M 0 = 0 3. for (i 1 to i = n) 3. M i max{m i 1, M p(i) + w i } 4. return M n זמן הריצה הוא עדיין (n.o(n log בהוכחת אלגוריתם איטרטיבי צריך להראות שכל תתי-הבעיות הנדרשות לפתרון הבעיה באיטרציה נוכחית כבר נפתרו, וזאת בנוסף לשוויון בדומה לאלגוריתם הרקורסיבי. נראה כי אפשר לשחזר את הפעילויות מתוך הפתרון. נניח וזה מערך הפתרונות אחרי המימוש הנ"ל: OPT(0) OPT(n) אבחנה: נניח וכבר חישבנו את הערך OPT(i) לכל i n 1. האם a n שייך לפתרון האופטימלי? a n שייך לפתרון האופטימלי אם"ם.OPT(n) = OPT p(n) + w n נשים לב כי נכונות הטענה נובעת ישירות מנוסחת המבנה! למעשה, אם השוויון הנ"ל מתקיים, אז אפשר לקפוץ לבדיקה של p(n).opt פרוצדורה לשחזור פתרון אופטימלי מתוך ערכי OPT מבוסס הטענה: 1. j n, sol 2. while (j > 0) 2. if OPT(j) = w j + OPT(M p(j) ) 2.sol sol {a j } 2.j p(j) 2. else 2.j j 1 3. return sol זמן הריצה של הפרוצדורה לאחר הרצת האלגוריתם הקודם הוא,O(n) כי יש לכל היותר n איטרציות, וכל הפעולות באיטרציה לוקחות (1)O. 25 בעיית הגנב Problem( )Knapsack זוהי דוגמה נוספת לתכנון דינמי: גנב שעל גבו תרמיל במשקל W נכנס לחדר ובו n פריטים. לכל פריט יש משקל ומחיר. המטרה היא לעזור לגנב להחליט אילו פריטים להכניס לתרמיל. ננסח את הבעיה באופן פורמלי: קלט - } n.a = {a 1,, a לכל פריט a i נתונים w i משקל הפריט; p i מחיר הפריט.. w(b) = w(a i ) W a i B פתרון חוקי - A B המקיימת פתרון אופטימלי פתרון חוקי במחיר מקסימלי. אגודת הסטודנטים, בן-גוריון

27 ל) 27 האם ניתן לבחור באסטרטגיה חמדנית? כנראה שלא, כי לא ידוע על פתרון חמדני לבעיה זו... נראה פתרון שמבוסס על תכנון דינמי. יהא O פתרון אופטימלי, ונניח שהקלט הוא } n a}. 1,, a שלב 1 אם,a n O אזי } n 1,O {a 1,, a כלומר זהו פתרון אופטימלי גם עבור תת-הקלט הנ"ל-.OPT(n 1) אם a, n O אזי לאחר בחירת a n נותר בתרמיל W w n מקום. אם ננסה לעבוד כמו מקודם, כלומר OPT(i) הוא הפתרון האופטימלי עבור } i {a 1,, a ומשקל,W w n זה לא עוזר לנו המטרה שלנו היא למצוא את הפתרון האופטימלי עבור הקלט } n 1 {a 1,, a ומשקל W w n שים לב להבדל באינדקס של האיבר האחרון!(. אם כך, נאלץ להגדיר אוסף עשיר יותר של תתי-בעיות: עבור i n 1 ועבור 1 T W נגדיר: הפתרון האופטימלי עבור הקלט } i {a 1,, a ואילוץ המשקל OPT(i, T) = T מכך נקבל כי אנו מחפשים את הפתרון האופטימלי.OPT(n,1 W w n ) + p n נגדיר את נוסחת המבנה: 0, i = 0 OPT(i 1, T), w i > T OPT(i, T) = max {OPT(i 1, T) לא לוקח את { a i, OPT(i 1, T w i ) + p i }, else לוקח את a i הוכחת הנוסחה נחלק למקרים: = 0 i, אין איברים לבחירה והערך האופטימלי הוא 0.,w i > T אז צריך להוכיח כי T).OPT(i, T) = OPT(i 1, הסבר: אם w i > T אזי a i בהכרח לא שייך לפתרון, כי אז אילוץ המשקל מופר. לכן בהכרח הפתרון מוכל ב- 1 i האיברים הראשונים עם אותו אילוץ משקל. מכאן קבוצת הפתרונות החוקיים עבור } i a} 1,, a עם אילוץ משקל T שווה לקבוצת הפתרונות החוקיים עבור } 1 i a} 1,, a עם אילוץ המשקל T, ולכן.OPT(i, T) = OPT(i 1, T) המקרה המרכזי. נוכיח את המקרה המרכזי ע"פ התבנית: חלוקה למקרים של הפתרונות החוקיים )מרחב הפתרונות(: sol 1 פתרונות חוקיים שלא מכילים את.a i פתרונות חוקיים שמכילים את sol 2 ;a i כיסוי: יהא P פתרון חוקי: אם a i P אזי P sol 2 מההגדרה, אחרת.P sol 1.OPT(i, T) = max{o (sol 1 ), O (sol 2 )} טענת עזר :1 T) O (sol 1 ) = OPT(i 1, טענת עזר :2 i.o (sol 2 ) = OPT(i 1, T w i ) + p הוכחת טענת עזר :2 נוכיח כי.O (sol 2 ) OPT(i 1, T w i ) + p i יהא O פתרון עבור } i 1 {a 1,, a עם אילוץ משקל T w i כך ש-(.p(O) = OPT(i 1, T w i נבנה פתרון.3.4 } i,w(o ) = w(o) + w.o i T w i + w i = T = O {a כלומר פתרון חוקי עבור } i {a 1,.., a עם אילוץ המשקל T שמכיל את,a i ומכאן.O sol 2 בנוסף, p(o ) = p(o) + p i = OPT(i 1, T w i ) O (sol 2 ) נראה כי.O 2 (sol 2 ) OPT(i 1, T w i ) + p i יהא O sol פתרון המקיים } i.p(o) = O מהגדרת.a :sol נביט בפתרון.O = O {a זהו פתרון המוכל ב- i O 2 (sol 2 ) O T w ומכאן i עומד באילוץ משקל,T היה O כיוון שאילוץ המשקל על,{a 1,, a i 1 } O 26 אגודת הסטודנטים, בן גוריון

28 28 ) i.p(o ) OPT(i 1, T w לכן:.O (sol 2 ) = p(o) = p i + p(o ) p i + OPT(i 1, T w i ) הוכחת טענת עזר 1: דומה כמעט לחלוטין להוכחת מקרה ב'. השלימו את הפרטים כתרגיל בית. 5. סיכום: ממסקנת שלב 3, ומטענות עזר 2, 1, עולה כי } i OPT(i, T) = max{opt(i 1, T), OPT(i 1, T w i ) + p במקרה ג'. יחד עם הוכחות מקרי הבסיס נקבל את נכונות הנוסחה. Iter-knapsack(n, T) שלב 2 נראה אלגוריתם איטרטיבי לפתרון הבעיה שמשתמש במערך דו-מימדי i n, 0 T W 1. M i, T = T W 2. M 0, T = 0 3. for (i 1 to n) 3. for (T 1 to W) 3.M i, T max{m i 1, T, M i 1, T w i + p i } 4. return M n, W שלב 3 סקיצה להוכחת הנכונות: יש להוכיח כי OPT(n, (W = M,n W )באינדוקציה על,n(. W עושים זאת מנכונות נוסחת המבנה והנחת האינדוקציה. בשלב ה- i, T כבר חושבו הערכים M i 1, T, M i 1, T w i זה נובע ישירות מהגדרת סדר המעבר של הלולאה בשלב 3 של האלגוריתם. זמן ריצה: אתחול - W).O(n יש לכל היותר (W O(n איטרציות בשלב 3, כשכל איטרציה בזמן (1)O. בסה"כ - W).O(n שחזור פתרון: מסתמך על הטענה הבאה OPT(n, W) = M n 1, W w n + p n שייך לפתרון אופטימלי אם"ם a n פרוצדורה לשחזור פתרון מבוסס הטענה: 27 אגודת הסטודנטים, בן-גוריון

29 29 1. j n, sol, T W 2. while (j > 0) 2. if w j T AND M j, T = M j 1, T w j + p j 2.sol sol {a j } 2.T T w j 2. else 2.j j 1 3. return sol האם n W באמת זמן ריצה טוב? ניזכר שזמן ריצה הינו פונקציה של גודל ייצוג הקלט! גודל הייצוג האמיתי הוא n, + log W כנגד ייצוג בינארי של W )בניגוד לייצוג אונרי( ומערך של פריטים. אם נניח ש- W מיוצג באופן סביר ע"י 64 ביט, אז זמן הריצה הוא 2 64 n n. W = אם במקרה n, > W אזי זמן הריצה פשוט n ואז זמן הריצה פולינומי. 28 אגודת הסטודנטים, בן גוריון

30 ל s ל s ל s 30 הרצאה מס' 9 21/4/2015 כדוגמה נוספת לתכנון דינמי נדון בבעיית הבאה: בעיית המסלול הקל ביותר ממקור יחיד, בגרף מכוון עם משקלים חיוביים קלט: גרף מכוון E,G = V, קודקוד.s V פלט: לכל v V משקל מסלול קל ביותר מ- -v. יהא P מסלול קל ביותר מ- s לקודקוד מסוים v. אבחנה: תת-מסלול של מסלול קל ביותר הוא מסלול קל ביותר. מסקנה: מסלול קל ביותר מ- לקשת v).(u i, שלב 1 )בקצרה( -v מורכב בהכרח ממסלול קל ביותר מ- s לאחד משכניו של u, i v, ומשורשר.OPT(s) = 0 מקרה הבסיס: -v. הוא משקל המסלול הקל ביותר מ- OPT(v) בעיה מקורית: לכל v V הפתרון נתון ב-( OPT(v. לכן הגדרנו V, תתי-בעיות, כלומר פירוק ליניארי של הבעיה. OPT(v) = { 0, v = s min{opt(u i ) + w(u i, v)} : u i adj(v), v s נוסחת מבנה: נגדיר: sol i הוא אוסף המסלולים מ- ל s -v שמסתיימים בקשת (v u). i, כיסוי: יהא P מסלול מ- ל s -v. תהא (v u) i, הקשת האחרונה ב- P, לכן P. sol i OPT(v) = min{o (sol i )} : u i adj(v) טענת עזר: לכל i k 1 מתקיים v).o (sol i ) = OPT(u i ) + w(u i, ל s u i - שערכו ) i.o יהא P מסלול מ-.OPT(u הוכחה: נוכיח כי v) (sol i ) OPT(u i ) + w(u i, ל s v- שמסתיים בקשת v) (u i, ומכאן.P i אזי P מסלול מ-.P sol לכן: נגדיר v) = P (u i, w(p ) = w(p) + w(u i, v) = OPT(u i ) + w(u i, v) O (sol i ).3.4 נוכיח כי v) (sol i ) OPT(u i ) + w(u i, יהא P מסלול ב- sol.o i שמשקלו = w(p),u מהגדרת.O i ל- מ- s P נביט בתת-המסלול של.(u i, v) היא הקשת האחרונה ב- P sol i (sol i ) נסמנו.P לכן: v).o (sol i ) = w(p) = w(p ) + w(u i, v) OPT(u i ) + w(u i, 5. סיכום... שלב 2 נבנה אלגוריתם איטרטיבי לבעיה המבוסס על הנוסחה הנ"ל. Iter-light-path(G, s) 1. 1 i V 1. M i = 1 1. M s 0 2. for (i 1 to n) 2. for (T 1 to V ) 2.M i min{m u i + w(u i, v) v V, u i adj(v)} 3. return v V: M v 29 אגודת הסטודנטים, בן-גוריון

31 31 שלב 3 מה צריך להוכיח? לכל.M v = OPT(v) v V הוכחה באינדוקציה. כאשר האלגוריתם מגיע לפתור בעיה מסוימת, כל התאים הרלוונטיים לפתרון כבר חושבו. האם האלגוריתם עובד? אז זהו, שלא... הוא נופל על הסדר השרירותי שבו מבצעים את הבדיקה. מספיק שיש מעגל אחד בגרף, והאלגוריתם נכשל תחת ההנחה של סעיף 2 מי הצלע הראשונה שיש לחשב במסלול? באופן פורמלי: לא ניתן להוכיח את טענה 2 כיוון שבגרף כללי לא קיים בהכרח סידור של הקודקודים, שמבטיח פתרון של השכנים לפני הקודקוד הנוכחי. הערה: כאשר בגרף אין מעגלים ניתן למיין את הגרף טופולוגית. במיון טופולוגי מבטיח שאם,u) (v E אזי u מופיע לפני v בכל מיון טופולוגי. ניתוח זמן ריצה למקרה הפרטי של גרף חסר מעגלים: מיון טופולוגי עם.O( V + E ) - DFS מס' השאילתות לאורך כל הלולאה של שלב 2 הינו O( E ) )תחת ניתוח פחת(, כמס' הקודקודים השכנים בגרף. בסה"כ זמן ריצה - V ).O( E + 30 אגודת הסטודנטים, בן גוריון

32 32 הרצאה מס' 10 26/4/2015 חלק שני בעיות קלאסיות במדעי-המחשב פרק 1 מסלולים קלים בגרפים בפרק זה נדון בבעיית המסלול הקל ביותר ממקור יחיד בגרף מכוון. קלט: גרף מכוון E,G = V, קודקוד.s V צריך למצוא: v). v V δ(s, הערה: כל הגרפים בפרק זה מכוונים, ממושקלים ופשוטים. הגדרה: δ: V V R δ(s, v) = {, s אינו נגיש מ v אחרת,משקל מסלול קל ביותר בין s ל v הערות ואבחנות: לעיתים, כאשר מתייחסים למקור יחיד s נסמן: (v.δ(v) def = δ(s, אם = 1 w(e) e :E אז המסלול הקל ביותר הוא המסלול הקצר ביותר, ואז הבעיה נפתרת בזמן.BFS ע"י O( V + E ) בהנחה שכל המשקלים בגרף חיוביים, אזי כל מסלול קל ביותר הינו מסלול פשוט )חסר מעגלים(. הסבר: נניח בשלילה כי p מסלול קל ביותר מ- s ל- v המכיל מעגל C. כיוון שהמשקלים חיוביים אזי > w(c) 0, ולכן > 0 (C w(p מסלול מ- ל s -v שמשקלו קטן ממש ממשקל p, בסתירה. 3. בהנחה שכל המשקלים אי-שליליים, כלומר ייתכנו צלעות במשקל 0, אזי לכל קודקוד v שנגיש מ- s קיים מסלול קל ביותר שהינו פשוט. יהא k p = v 1,, v מסלול קל ביותר מ- v 1 ל-,v k אזי כל תת-מסלול j,p = v i, v i+1,, v לכל i < j k 1, הינו מסלול קל ביותר בין v i ל- v. j הסבר: נניח בשלילה שלא, יהא p מסלול קל יותר הינו מסלול קל יותר מ- v 1 ל-,v p = v 1,, v i p k מ- v i ל-,v j אזי המסלול k v j,, v בסתירה למינימליות p. מסקנה: כל רישא של מסלול קל ביותר מהווה מסלול קל ביותר..δ הסבר: נובע מהגדרת. (u, v) E: δ(s, v) δ(s, u) + w(u, v) אינטואיציה לאלגוריתמיקה עבור בעיה זו כיוון שכל מסלול מ- s ל- v מסתיים בקשת (v,u), ומאבחנה מס' 4, מספיק להשוות בין משקלי המסלולים הקלים ביותר לשכנים של v ועוד משקל קשת (v,u). בסיס טכני לאלגוריתמים בפרק זה לכל v V נתחזק שדה.d(v) כל העדכונים של שדה זה, למעט האתחול, יבוצעו ע"י הפרוצדורה הבאה: Relax(u, v, w) 1. If d(v) > d(u) + w(u, v) 1. d(v) d(u) + w(u, v) עבור :(u, v) E 31 אגודת הסטודנטים, בן-גוריון

33 33 הגדרה: אלגוריתם מבוסס :Relax זהו אלגוריתם שמאתחל את השדות d(v) באופן הבא: d(s) = 0 v V {s}: d(v) = טענה נשמרת לאלגוריתם מבוסס Relax באלגוריתם מבוסס,Relax לאורך כל הריצה אם < d(v) אזי d(v) מכיל משקל של מסלול כלשהו מ- s ל- v, ובנוסף מתקיים (v.d(v) δ(s, ההוכחה בהמשך הפרק. Dijkstra(G, w, s) 1. v V {s}: d(v) 2. d(s) 0; S ; Q V 3. while (S V) 3. u Extract-min(Q) 3. S S {u} 3.3. (u, v) E, v S: 3.3.Relax(u, v, w) 4. Return v V: d(v) אלגוריתם Dijkstra הערות: S היא קבוצת קודקודים, s הוא קודקוד המקור. לא להתבלבל! S היא קבוצת קודקודים שעבורם הפתרון "מוכן". Q היא ערימת מינימום..3 הוכחת האלגוריתם טענה ראשית: בסיום הריצה v). v V: d(v) = δ(s, אבחנה: לאחר שליפת קודקוד v מ- Q לא מתרחשים שינויים נוספים בערכי.d(v) טענת עזר: בעת שליפת קודקוד u מ- Q מתקיים (u.d(u) = δ(s, הוכחת הטענה הראשית: לפי טענת העזר, בעת שליפת קודקוד מ- Q מתקיים עבורו הנדרש. לפי האבחנה אין שינוי בערך השדה d של הקודקוד לאחר-מכן, ולכן הנכונות נשמרת לכל הקודקודים )כל קודקוד נשלף באחת האיטרציות, והאלגוריתם עוצר רק לאחר שליפת כולם( עד סיום הריצה. הוכחת טענת העזר: באינדוקציה על סדר כניסת הקודקודים ל- S. בסיס עבור = 1 k, ע"פ האתחול s הוא הקודקוד הראשון שנכנס ל- S בעת הכניסה, = 0 d(s) ואכן.δ(s, s) = 0 הנחה נניח שעבור כל קודקוד x שנכנס ל- S לפני האיטרציה ה- k מתקיים (x.d(x) = δ(s, צעד יהא u הקודקוד שנשלף מ- Q ונכנס ל- S באיטרציה ה- k. המשך ההוכחה בהרצאה הבאה כי כמעט תם זמן ההרצאה. 32 אגודת הסטודנטים, בן גוריון

34 34 ניתוח זמן ריצה אתחול: מערך בגודל V.O( V ) - Relax על כל קשת מתבצעת פעולת,u) (v מתבצעת אך ורק על קשת Relax פעולת Q. V יחידה רק בשלב שבו נשלף u, ולכן יש O( E ) פעולות Relax לאורך ריצת האלגוריתם. פעולת Relax לוקחת (1)O, אך יכולה לגרור פעולת Decrease-key בערימת מינימום, שלוקחת.O( E log V ) בסה"כ הלולאה דורשת.O(log Q ) = O(log V ) בסה"כ זמן ריצה של האלגוריתם log V ).O( V + E הערת מחבר: אחרי מחשבה נוספת, הניתוח הזה שגוי. ישנן V שליפות מ- Q, כשכל אחת בזמן.O(log V ) לכן זמן הריצה הכולל הוא log V O V ) + ( E עבור מימוש עם ערימה בינארית. זה גם תואם לניתוח זמן הריצה כפי שמופיע בערך של אלגוריתם דייקסטרה בויקיפדיה. 33 אגודת הסטודנטים, בן-גוריון

35 35 הרצאה מס' 11 28/4/2015 המשך הרצאה קודמת הוכחת צעד האינדוקציה: נתבונן בקודקוד u רגע לפני שליפתו מ- Q והכנסתו ל- S. ברור כי u s כי s S ממקרה הבסיס. אנחנו רוצים לאתר את המסלול הקל ביותר מ- ל s -u. הנחה: u נגיש מ- s. יהא p מסלול קל ביותר מ- ל s -u. אזי קיימת קשת,x) (y p כך ש- S x.,s y אם קיימות כמה כאלו, ניקח את הראשונה. נתבונן בתת-המסלול מ- s ל- x נסמנו p, 1 ונתבונן בתת-המסלול מ- ל y -u נסמנו p. 2 נשים לב: =δ(s,u) w(p) = w(p 1 ) + w(x, y) + w(p 2 ) (*) = δ(s, x) + w(x, y) + w(p 2 ) = (**) ה"א = d(x) + w(x, y) + w(p2 ) d(x) + w(x, y) (***) d(y) (****) d(u) )*( מאבחנה מההרצאה קודמת p 1 תת-מסלול של מסלול קל ביותר, ולכן הוא בעצמו מסלול קל ביותר. )**( - 0 ) 2 w(p כי משקלי הצלעות חיוביים. בנוסף לא ידוע אם u y ולכן. 0 )***( לאחר ביצוע (y Relax(x, לא יכול להיות שערך (y d(x) + w(x, קטן ממש מ-( d(y..u והאלגוריתם בוחר לשלוף את y, u Q - )****( כלומר קיבלנו d(u).δ(s, (u נזכור כי דייקסטרה הוא אלגוריתם מבוסס,Relax כלומר d(u) הוא חסם עליון ל-( u δ(s, )הוכחה בהמשך(. מכך נקבל כי d(u),δ(s, (u = ובכך מסתיימת האינדוקציה. אלגוריתם גנרי )ממשק אבסטרקטי( לבעיית מסלול קל ביותר ממקור יחיד קלט: G, w, s אתחול: = 0 d(s) v V {s}: d(v) ; מהלך: 1. while (u, v) E: d(v) > d(u) + w(u, v) 1. Relax(u, v, w) 2. return v V: d(v) הערה: האלגוריתם לא מבצע הנחות על משקלי הצלעות, בניגוד לאלגוריתם דייקסטרה. טענה: אם האלגוריתם הגנרי עוצר אז v). v V: d(v) = δ(s, הוכחה: ניזכר בטענה הנשמרת שהוגדרה בהרצאה הקודמת. נניח בשלילה שהאלגוריתם הגנרי עצר אבל קיים קודקוד v V עבורו v).d(v) δ(s, מהטענה הנשמרת v).d(v) > δ(s, נביט במסלול קל ביותר y. = נשים לב כי ייתכן ש- v.d(y) δ(s, (y הקודקוד הראשון במסלול עבור y יהא ל- v. מ- s p האלגוריתם עצר ולכן מתקיים: (*) d(x) + w(x, y) d(y) d(y) δ(s, x) + w(x, y) (**) = δ(s, y) )*( מהנחת הטענה עבור x ומכך שהאלגוריתם עצר. 34 אגודת הסטודנטים, בן גוריון

36 ל s 36 )**( p הוא המסלול הקל ביותר ומטענת תת-המסלול. קיבלנו כי (y,d(y) δ(s, אבל (y d(y) δ(s, מההנחה בשלילה, ומהטענה הנשמרת יכול להתקיים רק y),d(y) > δ(s, בסתירה. הוכחת נכונות הטענה הנשמרת: באינדוקציה על מס' פעולות ה- Relax. בסיס לאחר 0 פעולות Relax מתקיים s) d(s) = 0 = δ(s, ולכל שאר הקודקודים d(v) = δ(s, v) הנחה נניח שהטענה מתקיימת עבור k פעולות ה- Relax הראשונות. צעד נוכיח את נכונות הטענה עבור פעולת ה- Relax ה- 1 + k. תהא (v,u) הקשת עליה מתבצעת פעולת ה- Relax ה- 1 + k. הערך היחיד שעלול להשתנות באיטרציה זו הוא ערכו של v: אם לא היה עדכון ב- Relax כל הערכים נותרו דומים ומההנחה נכונים. אם ערכו של v השתנה, אז בהכרח מהגדרת Relax מתקיים :u מה"א עבור.d(v) = d(u) + w(u, v) אם < d(u) אז d(u) הוא משקל של מסלול מ- -u..d(u) δ(s, u) הוכחה עבור v: ה"א יהא p המסלול עבורו d(u) w(p) = )קיים מההנחה(. אזי (v p,u) הינו מסלול מ- s ל- v המקיים d(v).w(p) + w(u, v) = d(u) + w(u, v) = נכון לכל קשת v) d(v) = d(u) + w(u, v) δ(s, u) + w(u, v) = δ(s, ובכך הסתיימה האינדוקציה. הוכחה נוספת לאלגוריתם Dijkstra המבוססת על האלגוריתם הגנרי טענה: דייקסטרה הוא מימוש של האלגוריתם הגנרי. כלומר, כאשר דייקסטרה עוצר מתקיים v). (u, v) E: d(v) d(u) + w(u, טענת עזר: יהא u i הקודקוד שנכנס ל- S בשלב ה- i. יהא d i ערך ) i d(u ברגע כניסתו ל- S. אזי: d 1 d 2 d V הוכחת הטענה: נביט בקשת (v,u) כלשהי בסיום אלגוריתם דייקסטרה. נחלק למקרים: מקרה א': u נכנס ל- S לפני v. לפי האלגוריתם בוצע (v Relax(u, ולכן (v,d(v) d(u) + w(u, והערך d(u) לא ישתנה יותר ממבנה האלגוריתם, אך d(v) יכול רק לקטון. מקרה ב': אם v נכנס ל- S לפני u, אזי d(u) d(v) ברגע הכניסה מכלל הבחירה של דייקסטרה. מכיוון שהמשקלים חיוביים אזי 0 v) w(u, ולכן ( ) v).d(v) d(u) + w(u, מטענת העזר נקבל כי d(u) לא יכול לקטון מעבר לערכו הסופי של,d(v) ולכן אי-השוויון )*( נשמר. 35 אגודת הסטודנטים, בן-גוריון

37 37 הרצאה מס' 12 3/5/2015 המשך ההרצאה הקודמת הוכחת טענת העזר: נביט בשני קודקודים שערכיהם בסדרה סמוכים: 1+i u. i, u צ"ל כי 1+i d. i d מהעובדה ש- u i נכנס ל- S לפני i+1 u ידוע שבזמן האיטרציה ה- i מתקיים ) i+1.d i = d(u i ) d(u נחלק למקרים: מקרה א': אם u) i, u 1+i ) E אז אין ל- 1+i u אפשרות להשתנות באיטרציה ה- 1 + i, ואז השוויון נשמר. מקרה ב': אם u) i, u 1+i ) E אבל לא היה עדכון ב- Relax, המקרה דומה. מקרה ג': אם (u i, u i+1 ) E והיה עדכון ב- Relax, אזי. d i+1 = d(u i+1 ) = d(u i ) + w(u i, u i+1 ) d(u i ) def = d i 0 סיכום ההוכחה: הראינו שאלגוריתם דייקסטרה הינו מימוש של האלגוריתם הגנרי. לכן, מהידע שאלגוריתם דייקסטרה עוצר, ומטענת הנכונות של האלגוריתם הגנרי, נובעת נכונותו של אלגוריתם דייקסטרה. הגדרה: עץ מכוון מושרש בקודקוד s הינו גרף מכוון וחסר מעגלים שבו קיים מסלול יחיד מ- s לכל קודקוד אחר בעץ. הגדרה: עץ מסלולים זולים ביותר T מקודקוד s של הגרף E G, =,V הינו תת-גרף של G שהינו עץ מכוון מושרש ב- s, ולכל v V מובטח ש- P, sv כלומר המסלול היחיד בין s ל- ב v -T, הינו מסלול קל ביותר בין s ל- ב v -G. נשים לב כי ייתכנו כמה מסלולים קלים ביותר ב- G. ישנה מוטיבציה למצוא לא רק את משקל המסלול הקל ביותר, אלא גם לשחזר אותו. לצורך כך נבצע כמה התאמות קלות לאלגוריתם דייקסטרה: האלגוריתם יתחזק מערך בשם π. בסוף הריצה, המערך הזה יכיל לכל v V את ה"אבא" שלו במסלול. באתחול, נכניס nil לכל התאים במערך π, כולל.π(s) נשנה את :Relax.3 Relax(u, v, w) 1. If d(v) > d(u) + w(u, v) 1. d(v) d(u) + w(u, v) 1. π(v) u טענה: בסיום האלגוריתם הגנרי הגרף {s}} T = V, E = {(π(v), v): v V הינו עץ מסלולים זולים ביותר. טענת עזר: יהא v קודקוד שקיבל את ערכו הסופי (v d(v) = δ(s, בפעולת Relax עם הקודקוד u, אזי בהכרח u).d(u) = δ(s, הוכחת טענת העזר: 36 אגודת הסטודנטים, בן גוריון

38 38 (*) δ(s, u) + w(u, v) δ(s, v) = d(v) (**) (***) = d(u) + w(u, v) δ(s, u) + w(u, v) d(u) = δ(s, u) )*( טענה בסיסית. )**( קיבל את ערכו בביצוע Relax עם u. )***( טענת חסם עליון. הוכחת הטענה: נגדיר: } V.V = {v: d(v) = δ(s, v)}, E = {(π(v), v ): v נוכיח שבכל שלב E T = V, הינו עץ מסלול זולים ביותר על V. למה זה מוכיח את הטענה? כי ידוע שבסיום האלגוריתם הגנרי, (v v. :V d(v) = δ(s, ההוכחה באינדוקציה על סדר קבלת הערך הסופי של הקודקודים. בסיס הקודקוד הראשון שמקבל את ערכו )כבר באתחול( הינו s. בשלב זה,π(s) = nil אזי,{s} T = הינו עץ מסלולים זולים על s באופן ריק. הנחה נניח שכל k הקודקודים הראשונים שקיבלו את ערכם הסופי מקיימים את הטענה. צעד יהא v הקודקוד שמקבל את ערכו הסופי באיטרציה ה- 1 + k. אזי באיטרציה הזו v קיבל את ערכו ע"י ביצוע Relax עם π(v).u = מטענת העזר u) d(u) = δ(s, ולכן V,u ומתקיימת לגביו הנחת האינדוקציה )קיים לו עץ מסלולים זולים ביותר(. למעשה הוספנו את הקשת (v,u) לעץ הקודם, הקשת מחברת קודקוד חדש ולכן לא סוגרת מעגל, כל מסלול מ- s ל- v בעץ חייב לעבור דרך (v,u), מהנחת האינדוקציה קיים מסלול יחיד מ- ל s -u ולכן קיים כעת מסלול יחיד מ- ל s -v. יהא P sv המסלול היחיד מ- s v).t sv ) = d(u) + w(u, v) = δ(s, u) + w(u, v) (*) = d(v) = δ(s, מתקיים.w(P לכן ל- v ב- בהכרח P sv מסלול קל ביותר. )*( ידוע ש- u נתן את ערכו ל- v. כיוון שבסיום הריצה ידוע שלכל קודקוד מתקיים השוויון, אז T הוא עץ מסלולים זולים ביותר על כל V. מה קורה באלגוריתם דייקסטרה כאשר מזניחים את ההנחה שכל המשקלים חיוביים? האלגוריתם נכשל... זה נובע מכך שהליבה הרעיונית של דייקסטרה נכשלת העובדה שכל קודקוד מדבר עם שכניו פעם אחת. טענה: קיים מסלול זול ביותר מ- s ל- v אם"ם לא קיימים מעגלים במשקל שלילי הנגישים מ- s על מסלול כלשהו. הוכחה: ( ) יהי P מסלול זול ביותר מ- s ל- v במשקל w. אם יש מעגל שלילי, הנגיש מ- s, אזי כל מסלול שכולל אותו ניתן להרחיב ככל שנרצה ע"י סיבוב חוזר במעגל, עד שערכו של המסלול המתקבל יהיה קטן ממש מ- w, בסתירה. ( ) נניח כי קיים מעגל שלילי נגיש, אזי כל סיבוב במעגל יקטין את ערך המסלול, ולכן לא קיים מסלול קל ביותר. אבחנה: גם תחת ההנחה שייתכנו משקלים שליליים, קיים מסלול קל ביותר שהינו פשוט. כל אלגוריתם שטוען שהוא פותר את בעיית מסלול קל ביותר באופן כללי חייב לספק מנגנון לזיהוי מעגלים שליליים, בנוסף למנגנון חישוב המסלולים. 37 אגודת הסטודנטים, בן-גוריון

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

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra תרגול מס' 10 תכנון ליניארי תכנון לינארי הינו כלי שימושי במדעי המחשב. בקורס ראינו כיצד ניתן להציג בעיות שונות במסגרת תכנון לינארי. בנוסף, ראינו שימושים לדואליות של תוכניות לינאריות, אשר מקשרת בין בעיות

קרא עוד

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

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

קרא עוד

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc הטכניון מכון טכנולוגי לישראל אלגוריתמים (3447) סמסטר חורף 006/007 הפקולטה למדעי המחשב תכנון דינאמי תרגיל תת מחרוזת משותפת ארוכה ביותר תת-מחרוזת z k שקיימת סדרה עולה ממש,... z = z של מחרוזת נתונה x m,...,,

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Algorithms Tirgul 1

Algorithms Tirgul 1 - מעגלי אוילר ומסלולי אוילר תרגול 1 חידה: האם אפשר לצייר את הציורים הבאים בלי להרים את העיפרון מהנייר? 1 קצת אדמיניסטרציה אופיר פרידלר ophir.friedler@gmail.com אילן כהן - ilanrcohen@gmail.com שעות קבלה

קרא עוד

Microsoft Word - ExamA_Final_Solution.docx

Microsoft Word - ExamA_Final_Solution.docx סמסטר חורף תשע"א 18 בפבואר 011 הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצה: מתרגלים: רן אל-יניב נועה אלגרבלי, גיא חפץ, נטליה זילברשטיין, דודו ינאי (אחראי) סמסטר חורף תשע" מבחן סופי פתרון (מועד

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (6..(CLR ראשית נראה דוגמא: דוגמא: תהינה ארבע מטריצות:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים כאשר, p 5 5 p היא בגודל A {,,,5,}, P כלומר

קרא עוד

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

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה 2-7012610-3 תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד ב' שם המרצה: ערן עמרי, ענת פסקין-צ'רניאבסקי חומר עזר:

קרא עוד

שיעור 1

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

קרא עוד

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

מבוא לתכנות ב- JAVA  תרגול 7 מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה

קרא עוד

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

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

קרא עוד

Microsoft Word - SDAROT 806 PITRONOT.doc

Microsoft Word - SDAROT 806 PITRONOT.doc 5 יח"ל - תרגילים הכנה לבגרות תרגיל 8 נסמן ב- את האיבר הראשון ונסמן ב- את מנת הסדרה. על פי הנתון מתקיים: 6 ( S6 89 89 0 5 0 5 S0 S5 ( 0 5 0 t t 0 6 (. לפיכך, 89 5 נסמן t ונקבל: 5 t או או או 5 t נפסול את

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

מקביליות

מקביליות תכונות שמורה Invariant Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 בדיקות מודל Checking( )Model מערכת דרישות מידול פירמול בדיקות מודל )Model Checking( מודל של המערכת תכונות פורמליות סימולציה

קרא עוד

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

תאריך הבחינה   30 אוניברסיטת בן-גוריון בנגב מדור בחינות 9//8 תאריך הבחינה : ד"ר ס. סמית, דר' דבורה שמות המורים : פרץ, פרופ' גריגורי דרפל מבחן ב: חדו"א ג' --9 מס' הקורס: מיועד לתלמידי: ביולוגיה, כימיה וגאולוגיה ב מועד: א

קרא עוד

Untitled

Untitled 2 אגודת הסטודנטים, בן-גוריון 3 פתרון מבחן מועד ב', חדו"א 2 להנדסת חשמל, סמסטר ב', תשע"ו שאלה : א הטור המגדיר את fx הוא טור טלסקופי. הסכומים החלקיים של טור זה הם S n x n k kxe kx k xe k x nxe nx x fx lim

קרא עוד

מקביליות

מקביליות תכונות בטיחות Safety Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 תזכורת: תכונות זמן ליניארי Linear Time Properties תכונות זמן-ליניארי מתארות קבוצת עקבות שהמערכת צריכה לייצר מכוונים ללוגיקה

קרא עוד

Microsoft Word - Questions Booklet Spring 2009

Microsoft Word - Questions Booklet Spring 2009 אלגוריתמים 1 חוברת תרגילים נא לשלוח כל הערה לגיל כהן במייל cohen@cs.technion.ac.il מפתח שאלות לפי נושאים 1, 45, 54, 55, 56, 76 5, 63 :BFS :DFS מיון טופולוגי: 17, 31, 32, 57, 67, 68 2, 25, 26, 28, 50 21,

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

אנליזה מתקדמת א) א) ג) -- אוניברסיטת בן- מדור בחינות מס' גוריון בנגב תאריך הבחינה: 7/0/00 שם המרצים: פונף, בסר, טקצ'נקו, ליידרמן חדו"א א בחינה ב: 0--00 מס' הקורס: מתמטיקה,מדעי המחשב, הנדסת תכנה מיועד לתלמידי: א' מועד:

קרא עוד

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

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

קרא עוד

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

עב 001 ינואר 12 מועד חורף פתרונות עפר ק( נסמן ב- את מהירות המשאית שיצאה מעיר A (קמ"ש, קבועה) בגרות עב ינואר מועד חורף שאלון 35 נסמן ב- y את מהירות המכונית שיצאה מעיר B (קמ"ש, קבועה) B A נסמן ב- s את המרחק מעיר לעיר "מ) s v עד מפגש ראשון משאית

קרא עוד

שעור 6

שעור 6 שעור 6 Open addressing אין רשימות מקושרות. (נניח שהאלמנטים מאוחסנים בטבלה עצמה, לחילופין קיים מצביע בהכנסה המתאימה לאלמנט אם אין שרשור). ב- addressing open הטבלה עלולה להימלא ב- factor α load תמיד. במקום

קרא עוד

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

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

קרא עוד

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

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc עבודת פסח במתמטיקה לכיתה י' (5 יחידות) תרגילים שבעבודה על החומר שנלמד בכיתה ומיועדים לחזרה יש לעשות לא פחות מ- תרגילים מכל פרק אלגברה פתור את מערכת המשוואות הבאות: y x 1 y y 1 x y m x 1 x עבור אילו ערכים

קרא עוד

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

פתרונות לדף מס' 5 X הוכיחו כי קבוצה X סגורה אמ"מ פתוחה P נקודה כלשהי עלינו למצוא כך ש- X P X פתרון: תהא X קבוצה סגורה ניקח נניח בשלילה כי לא קיים כזה, ז"א לכל קיימת כך ש- X מכיוון ש- P P נסיק כי d P, P סגורה מתקיים P B

קרא עוד

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

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשעז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', 31.1.2017 מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבוני, דולב שרון הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה

קרא עוד

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3>

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3> האקדמית תל אביב-יפו מבוא ללוגיקה ותורת הקבוצות מועד א' סמסטר ב' תשע"ד הפתרון לא נכתב על ידי גורם רשמי ובהחלט יכול להיות שנפלו טעויות פה ושם עשיתי כמיטב יכולתי אבל תשימו לב ותפעילו שיקול דעת אשמח לשמוע

קרא עוד

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

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

קרא עוד

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

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק ב - מבוא לקריפטוגרפיה שיעור 5 (offset מונחים בסיסיים צופן קיסר (היסט,.1.2 1 Today

קרא עוד

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

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

קרא עוד

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63> < 0 a b b a > 0 נתון: מכאן ניתן לומר בוודאות כי -. a < b ab < 0 a 0 b > לא ניתן לקבוע בוודאות.. ( 0)?. לא ניתן לדעת. + ( + ) ( ) + + נתון: כמה ערכי שונים מקיימים את המשוואה?. אינסוף 0 +. תשובות ו נכונות

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:

קרא עוד

PRESENTATION NAME

PRESENTATION  NAME נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו

קרא עוד

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

תוכן העניינים הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com

קרא עוד

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

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

קרא עוד

Tutorial 11

Tutorial 11 מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י

קרא עוד

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

תוכן העניינים הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527

קרא עוד

Slide 1

Slide 1 Introduction to Programming in C תרגול 8 1 1 רקורסיה תזכורת הגדרה: המונח רקורסיה (recursion) מתאר מצב שבו פונקציה קוראת לעצמה באופן ישיר או באופן עקיף. שימוש: נוח להשתמש בפונקציות רקורסיביות על מנת לפתור

קרא עוד

הגנה - שקפי תרגול

הגנה - שקפי תרגול תרגול 9 סיסמאות חד פעמיות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ז 1 תזכורת בקרת כניסה אימות זהות המשתמש למניעת התחזות קבלת שירות שהתוקף אינו זכאי לו קבלת גישה למידע פרטי ולביצוע פעולות בד"כ נעשה

קרא עוד

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ pdf יחיד בלבד. הנכם נדרשים לנסח תשובות ברורות עליכם

קרא עוד

Microsoft Word - Sol_Moedb10-1-2,4

Microsoft Word - Sol_Moedb10-1-2,4 הפקולטה למתמטיקה - הטכניון חיפה מד''ח - 48 חורף תשע''א - בחינה סופית מועד ב' שאלה : תהי נתונה המד"ח הבאה: u + uu = y א. מצא את העקומים האופייניים של משוואה זו בצורה פרמטרית. ב. פתור את המד"ח הנתונה לעיל

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

ע 003 מרץ 10 מועד מיוחד פתרונות עפר בגרות ע מרץ 0 מועד מיוחד שאלון 5005. x א. () יש למצוא את הערך של m שעבורו גרף + ) mx f ( x) mm ( 6) x + ( כאשר נציב m או 6 m נקבל 0 0 ונקבל פונקציה עולה ובהתאם הישר לא מקביל לציר ה - הוא ישר המקביל לציר

קרא עוד

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

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

קרא עוד

Microsoft Word B

Microsoft Word B מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

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

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך

קרא עוד

Microsoft Word - hedva 806-pitronot-2011.doc

Microsoft Word - hedva 806-pitronot-2011.doc ו- ( ( השייכים לתחום ההגדרה שאלה פתרון: א. לפי ההגדרה, f היא פונקציה זוגית, אם לכל ( ) שלה, מתקיים. f f נציב את במקום בפונקציה הנתונה ונקבל: ( ) ( ) ( ) + + + + ( ) f f f כלומר, הפונקציה היא זוגית. על

קרא עוד

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

מבוא ללוגיקה ולתורת הקבוצות תורת הקבוצות מושגים בסיסיים מבוא ללוגיקה ולתורת הקבוצות חוברת תרגילים כתוב באופן מפורש את הקבוצות הבאות: 5 2x + 3< היא קבוצת המספרים השלמים המקיימים : 7 B היא קבוצת האותיות הקודמות לאות f באלף-בית הלטיני.

קרא עוד

Microsoft Word - c_SimA_MoedB2005.doc

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

קרא עוד

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

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

קרא עוד

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפורים נוספים... 11 1 Moodle חדש במערכת ה- מערכת מודל

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Microsoft Word - solutions.doc

Microsoft Word - solutions.doc תחרות גיליס 009-00 הרי פוטר הגיע לחנות הדובשנרייה בהוגסמיד. הוא מגלה, שהכסף שלו מספיק בדיוק ל- סוכריות קוסמים ול- 5 קרפדות שוקולד, או בדיוק ל- 0 קרפדות שוקולד ול- 0 נשיקות מנטה, או בדיוק ל- 45 נשיקות מנטה

קרא עוד

Microsoft Word - vaidya.doc

Microsoft Word - vaidya.doc Preconditioners של וואידיה ברצוננו לפתור Axb כאשר המטריצה A היא מטריצה סימטרית חיובית (כל הערכים העצמיים שלה חיוביים) ודלילה (רוב הערכים בה הם אפס). דרך אחת לפתור מערכת לינארית כזאת היא הדרך הישירה: מציאת

קרא עוד

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

מבוא לתכנות ב- JAVA  תרגול 11 מבוא לתכנות ב- JAVA תרגול 11 רשימה מקושרת אוסף סדור של איברים מאותו טיפוס. קודקוד ברשימה )Node( מכיל את המידע + הצבעה לקודקוד הבא ברשימה data next first רשימה :)List( מיוצגת ע"י מצביע לאיבר הראשון ברשימה

קרא עוד

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

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63> מתקף ותנע מבוא תרשים 1 כשמפעילים מתקף על גוף כלשהו, התנע שלו משתנה. שינוי התנע שווה למתקף, שהוא השטח מתחת לגרף הכוח כתלות בזמן: Δp = F dt 51 m v m v1 = dt 2 F כאשר F הוא הכוח המופעל על הגוף, p הוא השינוי

קרא עוד

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

áñéñ åîéîã (ñéåí) מתו% 5 בסיס ומימד סיום) במסגרת הוכחת משפט של בסיסי לכל שני בסיסי של אותו מ"ו יש אותו מספר איברי ), הוכחנו בעצ יותר: משפט: א V מ"ו נוצר סופית, A V קבוצה בת"ל, B V קבוצה פורשת אז. A B הערה: מרחב וקטורי הוא

קרא עוד

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

מהוא לתכנות ב- JAVA מעבדה 3 מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100

קרא עוד

הגשה תוך שבוע בשעת התרגול

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

קרא עוד

Slide 1

Slide 1 מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות

קרא עוד

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

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

קרא עוד

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63> משוואות דיפרנציאליות מושגי ייסוד: משוואה המקשרת את גורם הפונקציה עם הפונקציה והנגזרות שלה או הדיפרנציאלים שלה, נקראת "משוואה דיפרנציאלית רגילה" לפתור משוואה דיפרנציאלית פירושו, למצוא את הפונקציה המקיימת

קרא עוד

מקומות גיאומטריים השתלמות קיץ הקדמה: נושא המקומות הגיאומטריים הינו מרכזי בתכנית הלימוד ל- 5 יח"ל. פרק זה מאגד בתוכו את כל המרכיבים של הגיאומטרי

מקומות גיאומטריים השתלמות קיץ הקדמה: נושא המקומות הגיאומטריים הינו מרכזי בתכנית הלימוד ל- 5 יחל. פרק זה מאגד בתוכו את כל המרכיבים של הגיאומטרי מקומות גיאומטריים השתלמות קיץ - 015 הקדמה: נושא המקומות הגיאומטריים הינו מרכזי בתכנית הלימוד ל- 5 יח"ל פרק זה מאגד בתוכו את כל המרכיבים של הגיאומטריה האנליטית: ישר, מעגל, אליפסה ופרבולה בראיה מוכללת נושא

קרא עוד

פייתון

פייתון שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה

קרא עוד

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה הרעיון: דפדוף paging וזכרון וירטואלי.1.2.3 לחלק את מרחב הכתובות לדפים בגודל קבוע )למשל )4KB את הדפים ממפים לזכרון פיסי a. לא רציף b. לא כולם העברה מזכרון לדיסק לפי הצורך מספר הדף: page = addr 4K המיקום

קרא עוד

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל

קרא עוד

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

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

קרא עוד

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

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

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

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: st.negishut@weizmann.ac.il תוכן העניינים מטרות התיק... 3 זמני עבודה משוערים... 3 החומרים והעזרים הדרושים... 4 רקע... 5 הצעה למהלך העבודה...

קרא עוד

תרגיל בית מספר 1#

תרגיל בית מספר 1# תרגיל בית מספר - 3 להגשה עד 15 באפריל בשעה 23:55 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הגשה: תשובותיכם יוגשו בקובץ

קרא עוד

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

Microsoft PowerPoint - T-10.ppt [Compatibility Mode] מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 12 מחסנית )Stack( memoization ראינו בהרצאה מחסנית Infix/Postfix Notations בתרגול היום מחסנית בדיקת איזון סוגריים בביטוי אריתמטי מימוש תור באמצעות מחסנית memoization דוגמאות

קרא עוד

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום תוכן העניינים: פרק 2 3 צמצומים ומימושים של פונקציות בוליאניות 2 צמצומים של פונקציות באמצעות מפת קרנו: 2 שאלות: 2 תשובות סופיות: 4 צמצום באמצעות שיטת 6:QM שאלות: 6 תשובות סופיות: 7 מימושים בעזרת פונקציות

קרא עוד

HaredimZ2.indb

HaredimZ2.indb יחידה :31חופפים משולשים נחפוף משולשים ונוכיח תכונות של אלכסוני משולשים שווה שוקיים ואלכסוני המלבן. שיעור.1חופפים במשולש שווה שוקיים נחקור ונוכיח תכונות של משולש שווה שוקיים נתון משולש שווה שוקיים שבו.

קרא עוד

Microsoft Word - בעיות הסתברות 1.doc

Microsoft Word - בעיות הסתברות 1.doc תרגול בעיות הסתברות. גולן מטיל פעמים קובייה הוגנת, מה ההסתברות שבכל אחת מהפעמים יקבל תוצאה שונה? () () () הילה קוראת ספר לפני השינה פעמים בשבוע, יוני סופר כבשים לפני השינה פעמים בשבוע, מה הסיכוי שהיום

קרא עוד

הגשה תוך שבוע בשעת התרגול

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

קרא עוד

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

מספר מחברת: עמוד 1 מתוך 11 תז: תשעא מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה עמוד 1 מתוך 11 תשע"א מועד ב סמסטר א' 14.2.2011 תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי המחשב יש לענות על כל 5 השאלות. בכל השאלות במבחן יש לכתוב פונקציות יעילות

קרא עוד

סט נובמבר 08 מועד מיוחד - פתרונות עפר.doc

סט נובמבר 08 מועד מיוחד - פתרונות עפר.doc נפתור את מערכת המשוואות y+ 3 = 5 5 7 3 2y + = 8 3 נארגן את המשוואה הראשונה 1/ 5/ y+ 3 5 = 5 1 y+ 3= 5(5 ) y+ 3= 25 5 8+ y= 25 /5 נארגן את המשוואה השנייה 3 1 3 / / / 2y 7 3 8 + = 1 3 1 6y+ 7 3= 24 7+ 6y

קרא עוד

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

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק א - השיטה הבינארית שיעור 5 ו- 1? ספירה בבסיס 2 ואיך אומרים "hello" עם 0 1 ממעגלים

קרא עוד

Slide 1

Slide 1 מבוא למחשב בשפת C : מערכים חד ודו-ממדיים מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י איתן אביאור.

קרא עוד

תרגיל בית מספר 1#

תרגיל בית מספר 1# ב 4 תרגיל בית מספר - 1 להגשה עד 72 באוקטובר בשעה ::725 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הנחיות והערות ספציפיות

קרא עוד

מצגת של PowerPoint

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

קרא עוד

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

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

קרא עוד

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים עליו כרגע )A מצביע עליו(. יש שני סוגי פקודות, פקודת

קרא עוד

סדנת תכנות ב C/C++

סדנת תכנות ב   C/C++ פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:

קרא עוד

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63> 1 תרגול פעולות מומצאות ( ( $ מה מהתשובות לא יכולה להיות תוצאה של הפעולה ) ( $ 1 הוגדרה פעולה חדשה $ + 1 1 + 10 + () () מה תוצאת הפעולה ) ( @ @ 10 = הוגדרה הפעולה החדשה 10 1 () 10 () 10 $ 19 $ 17 a) ( $

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,

קרא עוד