מבנה נתונים סיכומי הרצאות

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

Download "מבנה נתונים סיכומי הרצאות"

Transcript

1 מבנה נתונים סיכומי הרצאות 22 ביוני 2010 הערה לקראת המבחנים מרצה: דורית אהרונוב סוכם ע י: אור שריר פניות לתיקונים והערות: כרגע חסרים מספר דברים בסיכום, כמו פונקציות גיבוב, וכמובן שתמיד יתכנו טעויות נוספות שלא שמתי לב אליהן. במהלך תקופת המבחנים אני אשתדל לעדכן את הסיכומים מדי פעם, כאשר יתפנה לי זמן לתקן ולהוסיף להם חומר, ולכן מי שמוצא טעויות אני אשמח אם יודיע לי על כך במייל. גם אם הסיכומים לא יעתדכנו מיד בבנק האקדמי, הקישור הבא תמיד ישאר לגרסה הכי עדכנית (כאשר תאריך העדכון מופיע בדף הראשי): בהצלחה לכולם! תוכן עניינים 4 הרצאות I הקדמה 1 4 נהלי הקורס מבני נתונים כלים בהם נשתמש דוגמא לבעיות שנתקל בהן בקורס סיבוכיות 2 6 מיון בועות אלגוריתם סיבוכיות האלגוריתם סימונים אסימפטוטים שיטות טיפול באלגוריתמים רקורסיבים השיטה האיטרטיבית ניחוש והוכחה באינדוקציה מיון מיזוג Sort. Merge

2 אלגוריתמי הפרד ומשול ומשפט האב מיון ומודל ההשוואות טיפוס נתונים מופשט ADT Abstract Data Type 3 14 חזרה על עצים וגרפים תור קדימויות עצי חיפוש בינאריים חיפוש בעץ בינארי מינימום ומקסימום עוקב של קודקוד הכנסת איבר לעץ מחיקת איבר עצי חיפוש בינאריים מסוג AVL מימוש העץ רקע בהסתברות משתנה מקרי דחיסת מידע קידודים מידע טקסטואלי קוד הופמן Code) (Huffman (1952) מימוש יעילות קוד הופמן אקראיות וסיבוכיות אקראית מיון מהיר אקראי טבלאות גיבוב Table Hash כיוונים למימוש הפתרון שלב ראשון: גיבוב רנדומלי שלב שני: פונקציית גיבוב משפחה אוניברסלית של פונקציות גיבוב גרפים ייצוג של גרפים אלגוריתמים לסריקת גרפים חיפוש לרוחב Search. BFS Breadth First אלגוריתם Dijkstra ( דייקסטרה ) חיפוש לעומק DFS Depth First Search מיון טופולוגי אלגוריתם למיון טופולוגי של. DAG אלגוריתם. SCC עצים פורשים מינימליים Trees) (Minimum Spanning אלגוריתם קרוסקל ל MST אלגוריתם. Union-Find על המבחן הסופי החומר למבחן מבנה המבחן

3 45 תרגולים II תרגול סימונים אסימפטוטים כללים לשימוש בסימונים האסימפטוטים תרגול אלגורתמי מיון מיון ספירה Sort Counting מיון Radix Sort מיון Bucket Sort תרגול

4 חלק I הרצאות 1 הקדמה הנושאים המכוסים בקורס הזה הם מאוד רחבים ומהווים הקדמה לאלגוריתמים, תכנות מונחה עצמים וכו וכו. כמעט בכל תחום קיים אספקט חישובי בהקשרים של איכסון ועיבוד מידע נהלי הקורס שעת קבלה שעתיים בשבוע בימי רביעי מ 15:00 עד 17:00. תרגילים התרגילים מהווים %10 מהציון הסופי בקורס. יהיו 14 תרגילים ויש להגיש אותם אלקטרונית, כאשר כל שבוע ביום ראשון בלילה יפורסם התרגיל ויש להגישו להגיש עד ליום ראשון בשבוע לאחר מכן ב 12 בצהריים. בנוסף לבדיקת התרגילים יבוצעו ראיונות על תוכן התרגילים, כאשר בכל חודש ראיון אחד בו ישאלו שאלות על התרגילים שהוגשו עד הראיון לא מספיק להציג פתרון נכון אם בתרגיל הכתוב הפתרון לא מספק. בכל ראיון יהיו נוכחים 4 סטודנטים, ובדומה לחובת הגשת התרגילים, קיימת חובה לגשת ל 3 ראיונות במהלך הסמסטר, אחרת לא ניתן לגשת למבחן. אתר הקורס כתובת האתר: כל העדכונים בפורומים באתר הם מחייבים ויש לעקוב אחריהם. מבחן אמצע במאצע הקורס יתקיים מבחן אשר יהווה כ %20 מהציון הסופי כציון מגן. בונוסים ינתנו בונוסים בשיעורים ובתרגילים על שאלות מעניינות וכו. 1.2 מבני נתונים מבני נתונים שכבר ראינו: רשימה מקושרת מחסנית תור עץ חיפוש בינארי 4

5 וכו מבני נתונים נוספים: גרפים עצי חיפוש מאוזנים פונקציות גיבוב 1.3 כלים בהם נשתמש אינדוקציה רקורסיה משוואות הסתברות אנליזה סיבוכית הוכחות 1.4 דוגמא לבעיות שנתקל בהן בקורס על לוח משבצות 3 3 עם שני פרשים כחולים ושני פרשים כתומים הנמצאים בפינות הלוח (ראה איור). מהו מספר הצעדים המינימלי הנדרש להחלפת המיקום של הפרשים השחורים עם הלבנים רק באמצעות צעדים תקניים של פרשים. איור 1: בעיית פתיחה חילוף פרשים על לוח משבצות הבעיה הזו מקבילה לבעיה הבאה: על עיגול קיימות 8 נקודות כאשר על 4 מהנקודות האלו נמצאים הפרשים הנ ל במרווחים של נקודה בין כל שני פרשים, היכולים לנוע בקפיצות של 3 ונשאלת אותה השאלה להחלפת המיקומים של הפרשים הכתומים והכחולים. הפעם התשובה ברור 16 צעדים. 5

6 איור 2: בעיה מקבילה: חילוף פרשים הנמצאים על מעגל 2 סיבוכיות 2.1 מיון בועות אלגוריתם הגדרה 2.1 פסאודו קוד היא צורה לכתיבת אלגוריתמים שהיא בין שפה כתובה לשפת תכנות. נכתוב את האלגוריתם למיון בועות באמצעות פסאודו קוד: אלגוריתם 1 מיון בועות for i = 1 to n - 1 do for j = 1 to n - i do if a(j) > a(j+1) then swap a(j) and a(j+1) סיבוכיות האלגוריתם כאשר נמיין מערך בגודל N, נגדיר את זמן הריצת האלגוריתם עבור מערך זה כ ( n ) T. ניתן לראות כי ניתן הנוסחה המפורשת לפונקציה היא: T (n) = n 1 n i n 1 n 1 2 = 2 (n i) = 2 (n i) i=1 j=1 n 1 = 2 k = 2 k=1 i=1 n(n 1) 2 i=1 = n(n 1) = n 2 n 6

7 T (n) = באופן יותר מדוייק, נספור גם את קידום המשתנים כפעולות: n 1 n i n 1 n 1 n = (1 + 5(n i)) = i i=1 j=1 = (n 1) + 5 i=1 n(n 1) 2 = 5 2 n2 3 2 n 1 כביכול קיבלנו שתי תוצאות שונות, מכיוון שהסתכלנו על הבעיה ברמת פירוט שונה, אך בכל מקרה הפרמטר N יהיה בריבוע ללא קשר לרמת הפירוט בה נבחר. i=1 i= סימונים אסימפטוטים הגדרה 2.2 O גדול נגדיר ש ( f(nהיא (( O(g(nאם קיימים קבועים <,n C 0 כך ש. n > n 0 ( f(nלכל C g(n) דוגמאות:.n 0 = 1, C הוא נכון עבור = 1 n 2 n = O(n 2 ).n 0 = 1, C 5 הוא נכון עבור = n2 3 2 n 1 = O(n2 ) ) O(n2 5 2 n n + 1 = אף הוא נכון! הגדרה 2.3 Ω נגדיר ש ( f(n היא Ω(g(n)) אם קיימים קבועים <,C n 0 0 כך ש.n לכל n 0 f(n) C g(n) הגדרה 2.4 Θ אם f(n) היא גם O(g(n)) וגם Ω(g(n)) אז נגדיר שהיא.Θ(g(n)) o נגדיר ש ( f(n היא o(g(n)) (זניחה ביחס ל ( g(n ), 2.5 הגדרה. lim f(n) אם = 0 n g(n) 2.2 שיטות טיפול באלגוריתמים רקורסיבים נמצא אלגוריתם רקורסיבי למיון בועות: Bubble Sort A[1,..., n] : Bubble A[1,..., n] Bubble Sort A[1,..., n 1] Bubble A[1,..., n] : אלגוריתם 2 מיון בועות רקורסיבי בעבע את האיבר הגדול ביותר במערך שמאלה... ועכשיו ננסה למצוא את פונקציית זמן הריצה של האלגוריתם: T (n) = T (n 1) + Θ(n) T (1) = Θ(1) 7

8 2.2.1 השיטה האיטרטיבית T (n 1) + c n T (n) T (n 1) + c n T (n 2) + c(n 1) + c n T (n 3) + c(n 2) + c(n 1) + c n. T (1) + c 2 + c c(n 1) + c n n [ ] n(n + 1) d + c j = d + c 1 2 j=2 = d + c 2 n2 + c 2 n c = O(n2 ) T (n) d + c 2 n2 + c 2 n c = Ω(n 2 ) באופן דומה עבור האגף השמאלי: ומשילוב שתי התוצאות נקבל כי הסיבוכויות של האלגוריתם היא ) 2.Θ(n ניחוש והוכחה באינדוקציה ננחש ש ( O(n T (n) = הוכחה: (לא נכונה באינדוקציה) בסיס האינדוקציה הוא: = (1) T O(1) נניח כי הטענה נכונה עד nונוכיח עבור n: T (n) = T (n 1) + O(n) Assumption {}}{ = O(n 1) + O(n) = O(n) + O(n) = O(n) וקיבלנו כי אכן O(n) T (n) = בסתירה לסיבוכיות שמצאנו מקודם איפה הטעות? הקבועים המסתתרים תחת הסימון של O משתנים והנחת האינדוקציה לא צויינה באופן מפורש נתקן את המעברים: T (n + 1) From the recursion eq. {}}{ T (n) + d (n + 1) Assumption {}}{ c n + d(n + 1)? c (n + 1) ידוע: T (n) T (n 1) + d n נניח באינדוקציה: T (n) c n נוכיח עבור + 1 :n 8

9 הבעיה: לא ניתן לבצע את המעבר האחרון (עם סימן השאלה). הוכחה: (נכונה) נוכיח באינדוקציה ש ( T. (n) = O(n 2 ידוע: T (n) T (n 1) + d n ו d.t (1) ננסה להוכיח באינדוקציה: T (n) d n d.t (1) d = בסיס האינדוקציה: צעד האינדוקציה: נניח ש T (n) d n 2 ונוכיח ש 1) 2 + d(n T (n + 1) שכן T (n + 1) T (n) + d(n + 1) d n 2 + d(n + 1) d(n 2 + n + 1) d(n 2 + 2n + 1) = d(n + 1) מיון מיזוג Sort Merge אלגוריתם 3 מיון מיזוג Mergesort A[1,..., n]: Mergesort A[1,..., n 2 ] Mergesort A[ n 2 + 1,..., n] Merge (A[1,..., n 2 ], A[ n 2 + 1,..., n]) <- Θ(n) T (n) = 2T ( n 2 ) + Θ(n) נמצא את הסיבוכיות של האלגוריתם: נצייר את עץ הרקורסיה של האלגוריתם על מערך לדוגמא: ובאופן דומה, נצייר את עץ לפי זמני ריצה: 9

10 איור 3: עץ רקורסיה לפי זמני ריצה קיימות (n) log 2 רמות בעץ וכל שורה שווה ל c n ולכן בסה כ = (n) T (n) = c n log c.θ(n log(n)) 2.3 אלגוריתמי הפרד ומשול ומשפט האב a, b כאשר n b נתונה בעיה בגודל n, וקיימת דרך לחלק את הבעיה ל a בעיות קטנות בגודל הם שלמים חיוביים. נגיד שעלות החיבור של a הפתרונות היא ) k Θ(n עבור k שלם חיובי. זמן הריצה של האלגוריתם שכזה הוא: ( n ) T (n) = a T + Θ(n k ) b T (1) = Θ(1) ננסה למצוא את זמן הריצה של משוואה כללית זו: ולפי עץ רקורסיה: T (n) = a T ( n b ) + c nk T (1) = c 10

11 איור 4: עץ רקורסיה לאלגוריתם הפרד ומשול c a l ( n ומספר השורות בעץ הוא (n) log b בנוסף בשורה b l ) k הסכום של כל שורה הוא האחרונה יש b(n).c a log נסכום את כל השורות: l = 0 cn k = cn k l = 1 c a ( ) ( n k b = cn k a ) b k l = 2. m = log b n c a 2 ( n b 2 ) k. =. c a m ( n b m ) k. T (n) = c n k m ( a ) l l=0 b = c nk k = cn k ( a b k ) 2 = cn k ( a b k ) m :q = a b ( k 1 q m+1 1 q קיימים שלושה מקרים עבור ) = Θ(n k ) ואז q < 1.1. T (n) = c n k m l=0 1 = c nk log b (n) = Θ(n k log(n)) ואז q = 1.2 m ( a ) [( l a ) m+1 ] T (n) = c n k = c n k b 1 ( k b k a ) l=0 b 1 [ k ( ab ) ]) m+1 = Θ (n k n k 1 k [ ( = Θ n k a ) m ] ] ] b k = Θ [n k am b km = Θ [n k am n k = Θ (a m ) = Θ ( a log n) b = Θ ( n log a) b > 1.3 q ואז 11

12 משפט 2.6 משפט האב הפתרונות הנ ל עבור (n) T לפי אלגוריתם הפרד ומשול. אם ) ( T, T (n) = a ונגדיר q = a אז n b k b + Θ(n k ).1 אם < 1 q מתקיים ) k T (n) = Θ(n.2 אם = 1 q מתקיים ) n T (n) = Θ ( n k log.3 אם > 1 q מתקיים a).t (n) = Θ ( n log b דוגמא: מיון מיזוג 1 = k a = b = 2, ואז = 1 q ולכן n).t (n) = Θ(n log 2 דוגמא: מיון בועות Θ(n) T (n) = T n) (1 + הוא לא אלגוריתם הפרד ומשול וכל ולא ניתן לפתור אותו כך! דוגמא: מיון מהיר (Quicksort) תזכורת: בוחרים איבר כלשהו במערכת, ומסדרים את המערך כך שכל האיברים הגדולים מהאיבר הנבחר נמצאים מעליו, וכל האיברים הקטנים ממנו נמצאים מתחתיו, וחוזרים על התהליך עבור כל תת מערך. Quicksort Quicksort A[left, right] :- if left < right then q partition[a] Quicksort [left, q-1] Quicksort [q+1, right] אלגוריתם 4 הסיבוכיות של החלוקה היא Θ(n) ולכן בסה כ: T (n) = T (q 1) + T (n q) + Θ(n) T (1) = Θ(1) T (n) = 2T ( n 2 המקרה הכי טוב: Θ(n) + ) המקרה הכי גרוע: Θ(n) T (n) = T (n 1) + ולכן ) 2.Ω(n log n) = T (n) = O(n = 1 10 c כך שבכל פעם בו נבחר איבר הוא יחלק את נניח כי קיים קבוע c, למשל, n 10, 9n ולכן המערך ל 10 T (n) = T ( n 10 ) + T ( 9 10 n) + Θ(n) < 2T ( 9 n) + Θ(n) 10 log 10 2 = b,k = 1, הפתרון הוא ) 9,O(n אבל מכיוון 10 9 וממשפט האב, כאשר = 2 a, ש 2 > 2,log 10/9 נתון זה לא משפר את הדיוק שלנו. אם נצייר את עץ הרקורסיה של האלגוריתם, ניראה כי העץ אינו מאוזן (כלומר חלק מהמסלולים מהשורש לעלים קצרים מגובה העץ). גובה העץ הינו,log 10/9 n ולכן ניתן לכתוב כי = (n O(n log 10/9.O(n log n) 12

13 2.4 מיון ומודל ההשוואות הגדרה 2.7 אלגוריתם מיון המשתמש בקלט אך ורק לשם השוואת שני ערכים, ומחליט על הפעולות הבאות רק על סמך תוצאת ההשוואה, ניקרא מיון במודל ההשוואות. משפט 2.8 הסיבוכיות של כל מיון במודל ההשוואות היא (n Ω(n log (כלומר, גם המיון הטוב והיעיל ביותר, לא יכול להיות בעל סיבוכיות הקטנה מ ( n.(θ(n log הוכחה: בשביל להוכיח את המשפט, ננסה למצוא מודל כללי המתאר את האלגוריתמים הללו. נעזר בעץ הכרעה Tree) :(Decision איור 5: עץ החלטה סיבוכיות של מיון השוואות היא לפחות אורך המסלול הכי ארוך ארוך מהקודקוד לעלה בעץ (גובה העץ h). נשים לב שבעץ יש לפחות!n עלים ומכיוון שהעץ הוא עץ בינארי אז קיימים בו לכל היותר 2 h עלים, ולכן 2 h #Leaf n! 2 h n! h log n! = log n + log(n 1) + log(n 2) log 1 n 2 log n 2 = n 2 log n n = Ω(n log n) 2 3 טיפוס נתונים מופשט ADT Abstract Data Type דוגמאות: 1. מחסנית סדר האיברים הוא LIFO עם הפעולות push(element) pop(), וכו. 2. תור סדר האיברים האו F IF O עם הפעולות enqueue() dequeue(), וכו. 13

14 3.1 חזרה על עצים וגרפים הגדרה 3.1 נגדיר גרף G כקבוצה של קודקודים ושל צלעות המחברות בין בין שתי קודקודים בגרף. הגדרה 3.2 גרף מכוון הוא גרף בו קבוצת הצלעות מורכבות מזוגות סדורים של קודקודים (כלומר יש משמעות לסדר a) ((a, b) (b, הגדרה 3.3 גרף לא מכוון הוא גרף בו כל צלע היא פשוט זוג קודקודים ללא חשיבות לסדר. הגדרה 3.4 מסלול בגרף זו סדרת קודקודים v 1,..., v n כך שלכל i מ 1 עד 1 n קיים.(v i, v i+1 ) E הגדרה 3.5 עץ מכוון הוא גרף מכוון כך שאחד הקוקדקדים מסומן כשורש, וקיים מסלול אחד ויחיד מהשורש לכל קודקוד בגרף. הגדרה 3.6 דרגת יציאה של קודקוד היא מספר הבנים של קודקוד. הגדרה 3.7 עומק של קודקוד הוא אורך המסלול מהשורש אל הקודקוד. הגדרה 3.8 עלה הוא קודקוד שלא יוצאות ממנו צלעות. הגדרה 3.9 הורה של קודקוד הוא הקודקוד האחרון w במסלול מהקודקוד לשורש. הגדרה 3.10 גובה העץ הוא אורך המסלול הארוך ביותר משורש העץ לעלה כלשהו בעץ. הגדרה 3.11 עץ בינארי הוא עץ מכוון שדרגת קודקודיו היא לכל היותר 2. הגדרה 3.12 עץ מלא הוא עץ שבו לכל קודקוד דרגת היציאה היא 2 או 0. הגדרה 3.13 עץ מלאה הוא עץ שבו לכל העלים אותו עומק. הגדרה 3.14 עץ כמעט שלם הוא עץ שבו כל הרמות מלאות, מלבד הרמה האחרונה המלאה משמאל עד מקום מסויים (כמובן שעץ שלם הוא גם עץ כמעט שלם). טענה 3.15 גובהו של עץ כמעט שלם עם n קודקודים הוא n D. = log תור קדימויות נרצה מבנה נתונים שישמור על איברים בעלי עדיפות כלשהי, כך שנוכל לעדכן את קדימות איברי התור, ותמיד כשנוציא איבר זה יהיה האיבר בעל הקדימות הגבוהה ביותר. נגדיר על כן את הפעולות הבאות: Max(A) מחזירה את האיבר הגדול ביותר בתור מבלי להוציא אותו. Extract_max(A) מחזירה את האיבר הגודל ביותר בתור ומוחקת אותו מהתור. (A Insert(k, הכנסת איבר חדש k לתוך התור. 14

15 x. לקדימות החדשה k מגדילה את הקדימות של האיבר Increase_key(x,,k (A על מנת לממש את התורה בצורה יעילה, נשתמש במבנה נתונים אחר הנקרא ערימה. הגדרה 3.16 ערימה (Heap) היא עץ בינארי כמעט שלם המקיימת את תכונת הערמה. איור 6: דוגמא לערימה הגדרה 3.17 תכונת הערמה היא A(i),i A(parent(i)), כלומר הקדימות של הורה של כל קודקוד גדולה מקדימות בניו. הגדרה 3.18 מספר האיברים בערימה הוא heapsize(a). n = ניתן לממש ערמה באמצעות מערך בגודל n (מספר האיברים בערימה) בשימוש בנוסחאות: נגדיר עתה את הפעולות הדרושות לנו: lef t(i) := 2i right(i) := 2i + 1 i parent(i) := 2 15

16 אלגוריתם 5 תור קימויות וערימה heap_max(a) := return A[1] extract_max(a) := max A(1) A(1) A(heapsize(A)) heapsize(a) heapsize(a)-1 max_heapify(a, 1) insert(a,k) := heapsize(a) heapsize(a)+1 A(heapsize(A)) increase_key(heapsize(a), k, A) increase_key(i, k, A) := if k < A(i) then error A(i) k while i>1 and A(parent(i)) > A(i) swap(a, i, parent(i)) i parent(i) (כאשר max_heapify מפעפע את האיבר ה i כלפי מטה, ובאופן דומה, increase_key מפעפע את האיבר כלפי מלא עד מיקומו לפי הערך החדש של המפתח) מספר אבחנות: 1. אבחנה א : כל קודקוד בעץ בינארי כמעט שלם הנו שורש של עץ בינארי כמעט שלם. 2. אבחנה ב : כל קודקוד בערימת מקסימום הנו שורש של ערימת מקסימום. 3. אבחנה ג : (נכונות של (max_heapify אם שני ילדיו של i שורשי ערימת מקסימום ו i שורש על עץ בינארי כמעט שלם, אז אחרי הפעלת (i i,max_heapify(a, הוא שורש של ערימת מקסימום נניח כי נתון לנו מערך קיים ונרצה ליצור ממנו ערמה. כיצד ניתן לעשות זאת? להכניס כל איבר במערך לתוך ערמה חדשה, ולכן הסיבכויות של דרך זו היא.Θ(n log n) ניתן למיין את המערך, וגם פעולה זו היא לכל הפחות (n.θ(n log מכיוון שאין צורך כי הערמה תהיה ממש ממוינת, ניתן להשתמש ב max_heapify בשביל לסדר את הערמה באופן הבא: 16

17 build_max_heap(a) := heapsize(a) length(a) for i n to 1 max_heapify(a, i) אלגוריתם 6 בניית ערמה ממערך מדוע אלגוריתם זה נכון? נוכיח באמצעות שמורת לולאה invariant).(loop הוכחה: שמורת הלולאה: אחרי הקריאה ה i ללואה, באלגוריתם הקודקודים,i..., n הם שורשי ערימות מקסימום. נוכיח ששמורשת הלולאה נכונה לכ i מ n עד 1. אתחול: i = n ברור שהקודקוד n הוא שורש של ערימת מקסימום (באופן ריק). שימור: נניח עבור i ונוכיח עבור 1 i. משמורת הלולאה עד, i ידוע ש ( A(n,(1)A..., הם שורשי ערימות מקסימום לפי הקריאה (i.max_heapif y(a, אחרי הקריאה, כל הקודקדוים שמחוץ לתת העץ ששורשו 1 i לא קרה להם כלום, ולכן הם עדין שורשי ערימות מקסימום עבור הקודקודים בתת העף ששורשו 1 i (לפי אבחנה א, 1 i שורש של עץ כמעט שלם, ובכל שמורת הלולאה עד i, ושני בניו שורשי ערימת מקסימום, ולכןן ניתן להפעיל את אבחנה ג ) ולכן 1 i הוא שורש של ערימת מקסימום. טענה 3.19 הסיבוכיות של בניית הערימה בצורה זו היא.Θ(n) הוכחה: עבור קודקוד בעומק d(i) הסיבוכיות של הקריאה ל y max_heapif היא.O(D d(i) + 1) כמה קודקודים בעומק d? הוא d 2 ולכן הסיבוכיות היא: T (n) C k=d d+1 {}}{ = C D 2 d (D d + 1) d=0 D 2 D k+1 k k=1 = C2 D+1 D k=1 k 2 k? C 2 n 17

18 D+1 1 :x = 1 2 בשביל לפתור את הבעיה, נעריך את הסכום, כאשר D+1 kx k = x k=1 D+1 = x = x k=1 kx k 1 (x k ) ( 1 ) 1 x 0<x<1 {}}{ x = (x k ) k=1 x (1 x) 2 = 2 ( ) {}}{ = x( x k ) k=1 D הראינו k=0 k 1 תיקון / המשך ההוכחה: בשיעור שעבר לא הוכחנו נכון כי (1)O 2 k = ש ( k = o(c k לכל > 1 c ובפרט ל 1.5 =.c קיים קבוע c וקיים k 0 כך ש kוגם k 0. k c 1.5 k הסכום D 1 k 2 k k=0 =O(1) {}}{ k 0 1 D k 2 k + k=0 k=k 0+1 c ( ) k c k=0 ( ) k 3 4 lim k k k=0 : סכום של סדרה הנדסית, כאשר < 1 q ו 0=k qk q k q k q k +1 = lim = lim = 1 k q 1 k 1 q 1 q c k=0 ( 3 4) k = c = 4c ולכן בשימוש בסכום זה: 3.3 עצי חיפוש בינאריים עץ חיפוש בינארי הוא ADT עליו מוגדרות הפעולות: מקסימום max מינימום min קודם predecessor עוקב successor הכנסה insert מחיקה delete 18

19 הגדרה 3.20 תכונת עץ חיפוש בינארי לכל קודקוד x בעץ לכל (right(x)) y T מתקיים key(y) key(x) < ולכל (left(x)) z T מתקיים key(y),key(x) > כלומר כל הצאצאים הימניים של הקודקוד גדולים ממנו וכל הצאצאים השמאליים קטנים ממנו. הערה 3.21 כרגע אנו לא מטפלים במקרים בו נמצאים בעץ שני קודקודים בעלי אותו.key חיפוש בעץ בינארי אלגוריתם 7 חיפוש בעץ בינארי if x = null return not found else if key(x) = k return x else if key(x) < k return tree_search(left(x), k) else return tree_search(right(x), k) סיבוכיות זמן הריצה היא O(h) כאשר h הוא גובה העץ מינימום ומקסימום Tree_Search(x,k):- Tree_minumum(x):- while left(x) null do x left(x) return x Tree_maximum(x):- while right(x) null do x left(x) return x אלגוריתם 8 מינימום ומקסימום וכמובן שגם הסיבוכיות של אלגוריתמים אלו היא.O(h) עוקב של קודקוד הגדרה 3.22 האיבר הקטן ביותר בעץ שגודל מ x. טענה 3.23 העוקב y של x הוא: 1. אם ל x בן ימני, w, אזי y הוא המינימום של (w) T. 2. אם ל x אין בן ימני, אזי או ש x הוא המקסימום בעץ או שקיים y אב קדמון הכי נמוך של x כך שגם ילדו השמאלי אב קדמון של x או x עצמו, וקדקוד זה הוא העוקב. 19

20 למה 3.24 נניח x קודקוד בעץ חיפוש בינארי. אם z הוא קודקוד בעץ שלא בתת העץ (x) T אזי (x))].key(z) [min(t (x)), max(t הוכחה: (הלמה) לכל קודקוד בעץ קיים מסלול יחיד משורש העץ אל הקודקוד, ולכן קיימים רק המקרים הבאים לפיהם ממוקמים,x:,z w איור 7: הוכחה עבור כל מקרה הוכחה: (טענת העוקב).1 נסתכל על (x),t ברור שבתוך (x) min(right(x)) = min(w) T הוא העוקב של.x ומה עם שאר איבר העץ שלא בתוך (x) T? מוטענת העזר, כל האיברים האלה יושבים מחוץ לטווח min(w)],x]. 2. נתבונן ב ( y ) x T. מקיים שהוא max(left(y)) ולכן בתוך (y) y T. עוקב של x (כי T, כל האיברים שמחוץ ל ( y ) ולגבי המקסימלי מבין כל האיברים הקטנים מ y ) x טענת העזר אומרת שהם מחוץ לטווח [y.[max(lef t(y)), ועכשיו נוכל לכתוב את האלגוריתם עצמו כ: אלגוריתם 9 העוקב של קודקוד Tree_successor(x):- if right(x) null return Tree_min(right(x)) else y parent(x) while y null and x = right(y) x y y parent(x) return y 20

21 3.3.4 הכנסת איבר לעץ אלגוריתם 10 הכנסת איבר לעץ Tree_insert(T,Z):- y = parent(x) y null x root(t ) while x null do y x if key(z) < key(x) x lef t(x) else x right(x) parent(z) y if y = null root(t) = z else if key(z) < key(y) left(y) z else right(y) z מחיקת איבר 1. אם ל x אין ילדים מחיקה פשוטה. 2. אם ל x ילד אחד, אז מוחקים את x ומחברים את הבן לאב של x. 3. אם ל x שני ילדים, ובפרט יש לו ילד ימני, אזי מטענת העוקב, לעקוב של x שהוא x. אין ילד שמאלי, נמחק את העוקב ונעביר אותו במקום min(right(x)) 3.4 עצי חיפוש בינאריים מסוג AVL מטרה: עצי חיפוש בינאריים מאוזניים, כלומר גובה העץ הוא (n k. = O(log תכונת :AVL כאשר הגובה של תת עץ הוא ),k(t אזי מתקיים עבור כל קודקוד בעץ כי. k(left(t )) l(right(t )) 1 מסוכמה: גובה של תת עץ ריק הוא 1. הגדרה 3.25 נגדיר n k להיות מספר הקודקודים המינמלי בעץ AVL בגובה k. לדוגמא:.n 2 = ו 4 n 1 = 2,n 0 = 1 טענה n k 3.26 הוא מונוטוני ממש ב k, כלומר לכל.n k < n k+1 k הוכחה: נניח ש T הוא עץ AVL בגובה + 1 k. ידוע שאחד מתתי העצים הוא בגובה k בדיוק, והשני או k או 1 k. בתת העץ ה i יש לפחות n k קודקודים, ובגלל מינימלית של העץ T, בתת העץ ה i יש בדיוק n k קודקודים, ולכן ב T יש לפחות + 1 k n קודקודים. 21

22 ננסה להגדיר נוסחה כללית ל nונשים k לב כי מתקיים 2 k + 1 n k = n 1 k + n ואם נגדיר + 1 k G k = n אזי נקבל כי n k + 1 = n k n k G k = G k 1 + G k 2 ובעצם קיבלנו את נוסחת פיבונצ י, k 2 F k = F k 1 +f כאשר איברי הסדרה הם,1, 1, 2, 3, 5 ונשים לב כי =,2,3 5 i G ולכן יש הסתה של 3 אינדקסים ביחס למספרי פיבונצ י ונלכן נכתוב G k = F k+3 n k = F k+3 1 φ 1,2 Fכאשר k = 1 5 ( φ k 1 φ k 2) כזכור מהתרגיל, הנוסחה המפורשת למספרי פיבונאצי היא 1± 5 = 1,2,φ ולכן 2 הם הפתרונות של = 0 1 x x 2 כלומר 1 ( φ k ) F k 1 ( φ k 1 1 ) (φ k ) 1 n k 1 5 ( φ k ) 1 ולכן, עבור k מספיק גדול מתקיים כי n k cφ k 1 ולכן log n k k log φ 1 + log c k log n k log φ 1 log c log φ 1 k = O(log n k ) n k n = O(log n) מימוש העץ נוסיף לכל קודקוד שדה חדש המציין את גובה תת העץ, ונגדיר את הפעולות הבאות: הכנסה: נכניס איבר x, ואחרי ההכנסה נעלה מ x אל השורש, ובכל קודקוד (כולל) נעדכן את שדה הגובה, ונבדוק שתכונת AV L מתקיימת, ונזהה את הקודקוד ה I שיש בו הפרה. בשביל לתקן את ההפרה נשתמש בעקרון הנקרא רוטציות, ונסתכל על מקרים שונים של העץ ועל הדרכים לתקן את העץ לאחר הוספת איבר חדש. 1. מקרה LL משתמשים ברוטציית.LL 22

23 איור 8: עץ המתאר את המקרה LL 2. עבור מקרה RR הוא בדיוק סימטרי ל LL. 3. מקרה,LR נבצע פעמיים את הרוטציה, פעם RR על A בשביל להגיע למקרה LL ואז רוטציית LL על B. איור 9: שלב ראשון של מקרה LR יתרונות של השיטה: 1. העץ נשאר עץ חיפוש בינארי 2. אחרי הרוטציה בכל הקודקודים בתת העץ המדובר אין הפרות של.AVL 23

24 3. לא הגדלנו את הגובה בהכנסה. בסה כ האלגוריתם באופן כלי הוא: נבדוק איזו רוטציה יש לבצע,RL, LR, RR, LL נבצעה וסיימנו. הסיבוכיות של האלגוריתם היא (n.o(log מחיקה: נטפל בבעיה שנוצרה ממחיקת קודקוד עם 0 או 1 ילדים. כמו בהכנסה אבל נמשיך לעלות במעלה העץ ולחשב ולתקן בכל פעם שנמצא הפרה של התנאי. הסיבוכיות היא.O(log(n)) 4 רקע בהסתברות דוגמאות כלליות להסתברות: 1. הסיכוי לקבת צבע (Flush) בחלוקת יד בפוקר הוא בערך 2 ל הסיכוי שיהיה מחר גשם 3. הסיכוי שעוד הר געץ יתפרץ באיסלנד ב 30 השנים הבאות. 4. הזמן האופייני בין נפילות מעבדים במערת זו הנו 3 ימים. 5. בהינתן שהורה חולה במחלה גנטית כלשהי, מה הסיכוי שגם הילד שלא יחלה במחלה זו במהלך חייו? הגדרה 4.1 (מרחב הסתברות) נגדיר Ω היא קבוצה של מאורועות אלמנטריים, למשל עבור ) ( = Ω שהוא מספר הידיים האפשריות בפוקר. 52 דוגמא (1) לעיל 5 בנוסף נגדיר פונקציית הסתברות pr : Ω R כך שלכל w Ω מתקיים pr(ω) 0. ω Ω 1 ובנוסף = 1 pr(ω) ביחד, הקבוצה והפעולה שהגדרנו מגדירות את מרחב ההסתברות. הגדרה 4.2 מאורע הוא תת קבוצה של Ω..pr(A) = ω A הגדרה 4.3 ההסתברות של מאורע A היא pr(ω) דוגמא: הטלת שתי קוביות במשחק שש בש ω,ω pr(ω) = כמספר הזוגות האפשריים, ונגדיר כי ההתפלגות אחידה, כלומר Ω = נרצה למצוא את הסיכוי לאכל כלי משחק במרחק 2 (תחת ההנחה כי ניתן ללכת לפי כל קובייה), ולכן המאורע הוא 1)} = b.a = {(a, b) a = 2 b = 2 (a =.pr(a) = = 1 3 ההסתברות של מאורע זה היא דוגמא: הטלת 3 מטבעות בהסתברות שווה = 8 3 = 2 Ω ונרצה למצוא את ההסתברות להטלת 3 מטבעות כך שכולם שווים (כלומר.pr(C) = 1 4 שלוש פעמים פלי או עץ) ולכן = 2 C ולכן הגדרה 4.4 מאורע משלים ל A מסומן ע י Ā והוא מייצג את כל המאורעות האלמנטריים שאינם ב A כלומר Ā. = Ω\A ההסתברות של המאורע המשלים הוא pr(a).pr(ā) = 1 24

25 הגדרה 4.5 חיתוך מאורעות B A כל המאורעות הנמצאים גם ב A וגם ב B. הגדרה 4.6 איחוד מאורעות A B כל המאורעות האלמנטריים שנמצאים לפחות באחת הקבוצות A או B. הגדרה 4.7 מאורעות זרים הם שני מאורעות,A B כך ש = B A (קבוצה ריקה) ואז נקבל כי pr(b).pr(a B) = pr(a) + הערה 4.8 צריך לשים לב כי הסתברות לפעמים נוגדת את האינטואיצה, למשל השאלה מה עדיף מליון דולר בוודאות או 2 מליון בסיכוי של 1 ל 2, ואותה השאלה רק הבחירה בין מליון 1 היא זהה מבחינת הבחירה שנעשה לעומת 2 מליון בהסתברות 100 דולר בהתסברות פרדוקס היומהולדת: ההסתברות שבכיתה של 60 תלמידים יש שני ימי הולדת זהים (כלומר ללא השנה) היא גדולה מ 99%! נניח שימי הולדת מפולגים באופן אחיד, ולכן אם Ω שווה לכל הרשימות האפשרויות באורך 60 של ימי הולדת שונים אז = Ω. נגדיר את A להיוות כל הרשימות שיש בהן שני תאריכם שווים לפחות ואת B = Ā כל הרשימות שבהן כל התאריכים שונים. pr(b) = ! = 305! pr(b) < 1% pr(a) > 99% הגדרה 4.9 הסתברות מותנת היא ההסתברות לאירוע כלשהו בהינתן המידע על קיום (או אי קיום) של האירועים הקודמים לו. ההסתברות שיתקיים A בהינתן B מסומנת ע י.pr(A B) עבור מאורע אלמנטרי w ובהנחה שההתפלגות היא אחידה נקבל כי pr(w B) = 1 Ω B Ω = 1 B ועבור התפלגות כלשהי ולכן עבור מאורע כללי A נקבל pr(w B) = w B pr(w B) = w B 0 pr(w B) = pr(a B) = w A B pr(w) pr(b) pr(w B) pr(b) pr(w) pr(a B) = pr(b) pr(b) 25

26 דוגמא: בחזרה להטלת שתי קוביות..( 1 3 נניח שראינו שהקוביה הראשונה יצאה 1 (כאשר הסיכוי שזה יקרא הוא = = 1 pr(a B) כי מה הסיכוי למאורע A כפי שהוגדר בדוגמא הקודמת, ובמקרה זה נותר רק לחשב את ההסתברות של הקוביה הנוספת שתהיה 1 או 2 ולכן הגדרה 4.10 מאורע A לא תלוי ב B אם ם מתקיים pr(a).pr(a B) = טענה 4.11 אם המאורע A לא תלוי ב B אז B לא תלוי ב A. הוכחה: לפי ההנחה מתקיים. 1 3 pr(a B) = pr(a B) = pr(a) pr(b) pr(a B) = pr(a)pr(b) ולכן אם נכתוב לפי ההגדרה את ההסתברות ל B בהינתן A נקבל: pr(b A) = pr(a B) pr(a) = pr(a)pr(b) pr(a) = pr(b) ולכן היחס הזה הוא יחס סימטרי. מסקנה 4.12 שני מאורעות הם בלתי תלויים אם ם מתקיים pr(a)pr(b).pr(a (B = משתנה מקרי נתחיל עם דוגמא כללית. לאחר בדיקת מחברות הבחינה של תלמידים, חלק מהם התערבבו, והוחזרו לתלמידים אחרים. אם π היא פרמוטציה אקראית כלשהי ו X הוא מספר התלמידים שיקבלו את המחברת שלהם, אזי עבור פרמוטציה π מספר התלמידים שיקבלו את המחברת שלהם הוא מספר נקודות השבת בפרמוטציה, ולכן נקבל כי {1, 2, 3} 3 {1, 3, 2} 1 {2, 3, 1} 0 {2, 1, 3} 1 {3, 1, 2} 0 {3, 2, 1} 1 pr(x = 0) = 1 3, pr(x = 1) = 1 2, pr(x = 3) = 1 6 הגדרה 4.13 משתנה מקרי ממשי על מרחב הסתברות הוא פונקציה X : Ω R אותה נציב ב pr. 26

27 הגדרה 4.14 תוחלת של משתנה מקרי (Expectation) היא הכללה של הממוצע להתפלגויות לא אחידות: E(x) = X(ω) pr(ω) = pr(x = i) i ω Ω i {p x(ω)=p} טענה 4.15 התוכלת היא אופוראטור לינארי ולכ מתקיים כי ) E(Y.E(X + Y ) = E(X) + הוכחה: E(X + Y ) = ω Ω E(X + Y )(w) pr(ω) = ω Ω(X(ω) + Y (ω))pr(ω) = X(ω)pr(ω + Y (ω)pr(ω) ω Ω ω Ω = E(X) + E(Y ) 5 דחיסת מידע קידודים 5.1 מידע טקסטואלי קוד הופמן Code) (Huffman (1952) נרצה לשמור טקסט המורכב מ 26 אותיות במחשב, ולכן הקוד הכי פשוט הוא לייצג כל אות בעזרת אותו מספר ביטים, ולכן נדרשים 5 ביטים לייצוג כל אות, כלומר a = b = c = נשים לב כי קיימות אותיות החוזרות על עצמן בטקסט שוב ושוב בתדירות גבוהה, לעומת אותיות הנמצאות בטקסט לעיתים רחוקות, ולכן נוכל לתת לאותיות החוזרות על עצמן ייצוג קצר יותר, בעוד לאותיות הנדירות ייצוג ארוך יותר. הבעיה היא שאם לכל אות ייצוג בעל אורך שונה, איך נבדיל בין תחילת אות אחת לאחרת? לשם כך נעזר ב קוד חסר תחיליות. הגדרה 5.1 קוד חסר תחיליות הוא קידוד של האותיות, כך שהקידוד של כל אותו הוא אף פעם לא התחלת הקידוד של אות אחרת. נעזר בעץ הישמש אותנו כמילון לקידוד: 27

28 איור 10: עץ המייצג מילון ולכן אם נניח כי התפלגות האותיות היא: 0 45% a % b % c % d % e % f ולכן מספר הביטים הדרוש לייצוג הטקסט הוא (1 45% % % +...)n ובאופן כללי, עלות הקוד T היא L(T ) = f(c)l(c) c C כאשר C היא קבוצת האותיות, f(c) הוא שכיחות האות, ו( l(c הוא מספר הביטים הדרושים לייצוג האות. ולכן, עבור טקסט באורך L(T ) n n (בניגוד לקוד הפשוט, log C n בעוד בקוד הפשוט נקבל כי דרושים 3n ביטים למקרה של 6 אותיות, בקוד זה דרושים רק 2.24n. הקוד הנ ל נקרא קוד הופמן, כאשר צריך לבנות את המילון (העץ) מלמטה למעלה. 28

29 5.1.1 מימוש נעזרת בערימת מינימום, אותה נבנה מתוך האותיות המסודרות לפי השכיחויות שלהן, כאשר כל אות בערמה נייצג כעץ בעל איבר בודד. במשך האלגוריתם מוכנסים לתוכו עצים בהם יש יותר מאות אחת, ויחס הסדר מורכב לפי חיבור ההתפלגויות של האותיות בו, ולכן נוכל לכתוב את הקוד: אלגוריתם 11 קוד הופמן Huffman(C):- n c Q Build_min_heap(C) for i = 1 to n-1 allocate a new node Z left(z) extract_min(q) right(z) extract_min(q) key(z) key(left(z)) + key(right(z)) insert(q,z) return extract_min(q) כאשר הסיבוכיות של האלגוריתם הנ ל היא n. log n יעילות קוד הופמן טענה 5.2 נתון C (אוסף אותיות עם שכיחויות) ונניח ש T הוא עץ המתאר קוד חסר תחיליות עבור C שנוצר מקידוד הופמן. W הוא עץ אחר המתאר קוד חסר תחיליות כלשהו (לאו דווקא של הופמן) עבור C. נרצה להוכיח כי קוד הופמן הוא הכי יעיל, כלומר.L(T ) L(W ) הוכחה: נניח ש ( f(b.f(a) < טענה א : אם W הוא קוד ללא תחיליות אופטימלי, אזי לכל,a b אם f(b) f(a) < אז מתקיים כי l(b).l(a) הוכחה: נניח בשלילה כי התנאי לא מתקיים, ולכן קיימים,a b כך ש ( f(b f(a) < ו l(b).l(a) < נייצר עץ אחר,W שבו מוחלפים,a, b ולכן L(W ) = f(c)l(c) + f(a)l(a) + f(b)l(b) c a,b L(W ) = c ab f(c)l(c) + f(a)l(b) + f(b)l(a) L(W ) L(W ) = f(a)l(b) + f(b)l(a) f(a)l(a) f(b)l(b) = <0 >0 {}}{{}}{ (f(a) f(b)) (l(b) l(a)) < 0 הגענו לסתירה לאופטימליות של W, ולכן טענת העזר מתקיימת. 29

30 טענה ב : עבור א ב C, כאשר 2 C, קיים עץ אופטמילי W כך ששתי האותיות עם השכיחות הנמוכה ביותר, מופיעות ברמה התחתונה בעץ ש אחיות (יש להן אותו הורה). הוכחה: נניח ש x היא האות עם השכיחות המינימלית, ולכן l(x) הכי ארוך (מטענה א ), כלומר x ברמה התחתונה בעץ. ל x יש אחות y, שכן W אופטמלי ולכן חייב להיות עץ מלא (אחרת יש קודקוד עם דרגה 1, ונוכל לקצר אותו ולקבל עץ עם עלות טובה יותר). אם y אינה האות עם השכיחות המינימלית הבא אחרי, אזי z, שהיא האותר הבאה אחרי x, גם היא ברמה התחתונה בעץ (מטענה א ) ולכן נולכ להחליף את y ו z ונקבל W עם אותה עלות. כעת נוכל להשתמש באינגוקציה כדי להוכיח את המשפט. במקרה = 2 C המצב ברור. נניח שהופמן הוא קוד חסר תחילות אופטמלי עבור n, ונוכיח עבור + 1 n. נניח בשלילה שיש לנו קוד יותר טוב מהופמן, ונסמן ב T את קוד הופמן עבור 1+n אותיות, וב W את הקוד האופטימלי עבור אותן אותיות, ולכן ) L(T.L(W ) < נסמן ב T, בתור העץ הנוצר בעזרת קוד הופעמן על C, כאשר C הוא בעל אותן אותיות ושכיחויות ב C חוץ מ y,x שהוחלפו ב z שקיבלה f(y).f(z) = f(x) + מהנחת האינדוקציה ) L(W.L(T ) L(T ) = c C = c x,y f(c)l(c) = = L(T ) + f(z) L(T ) = L(T ) + f(z) L(W ) = L(W ) + f(z) L(T ) L(W ) L(T ) + f(z) L(W ) + f(z) L(T ) L(W ) c x,y f(c)l(c) + f(x) f(z) L T (z)+1 {}}{ L T (z)+1 {}}{ l T (x) +f(y) l T (y) f(z) {}}{{}}{ f(c)l(c) + (f(x) + f(y)) L T (z) + f(x) + f(y) בסתירה לכך ש W הוא הקוד היותר טוב (ממש) מהופמן. דוגמא: נסתכל על טבלת ההתפלגויות של סוסים במרוצי סוסים לפי המקום הראשון, השני, השלישי ואחר. 6 אקראיות וסיבוכיות אקראית 6.1 מיון מהיר אקראי נזכר כי האלגוריתם עובד ע י בחירת איבר ציר כלשהו במערך, ולאחר מכאן לחלק את המערך כך שכל האיברים הקטנים מהציר נמצאים לפניו במערך, וכל האיברים הגדול מהציר 30

31 נמצאים אחריו במערך, ולכן מכיוון שהסיבוכיות של החלוקה היא Θ(n) אז הסיבוכיות הכללית היא T (n) = T (m 1) + T (n m) + Θ(n) כאשר m הוא המיקום הסופי של איבר הציר. ראינו כי כאשר m תמיד נופל בקצוות אז נקבל כי ) 2 T (n) = Θ(n (המקרה הגרוע ביותר), וכאשר m נופל תמיד באמצע אז נקבל (n T (n) = Θ n) log (המקרה הטוב ביותר). בתרגיל 3 ראינו כי ) 2,Ω (n log n) = T (n) = O(n וציינו כי בממוצע על פני כל הקלטים, ניתן להוכיח כי (n Θ(n log (אבל לא נוכיח עובדה זו בקורס זה), ולכן נרצה להשתמש בעובדה זו, כדי שכל קלט שנקבל יתנהג כאילו היה אקראי. במקום לבחור את הציר להיות האיבר הימני ביותר, מגרילים ערך כלשהו במערל בהסתברות אחידה. אבל איך נמצא זמן ריצה של אלגוריתם זה? נסמן במשתנה מקרי את זמן הריצה. מרחב המדגם איפה נפלה החלוקהבכל אכל אחד מצעדי האלגוריתם:.).., 3 (m 1, m 2, m המגדירה את פעולת האלגוריתם באופן אחיד. E(T (n)) = n m=1 1 n תוחלת זמן הריצה: Θ(n) [E(T (m 1)) + E (T (n m))] + טענה 6.1 (כללית) נניח ש,X Y שני משתנים מקריים, אז נגדיר E(X Y = y) = x X pr (X = x Y = y) ולכן E(X) = y E(X Y = y)p r(y = y) הוכחה: (כתרגיל) נשתמש בטענה זו, עבור (n) X = T ו M Y = (מיקום החלוקה) ולכן מלינאריות התוחלת נקבל כי n E(T (n)) = E [T (m 1) + T (n m) + Θ(n)] 1 n m=1 E (T (n)) = 2 n n 1 m=0 n 1 2 E (T (m)) + C 2 n E (T (n)) 2 n n m=0 U(n) = 2 n U(1) = C n 1 m=0 E (T (m)) + Θ (n) n 1 m=0 U(m) + C n E (T (m)) + C 1 n ולכן ונגדיר 31

32 כאשר עבור C = C 1, C 2 נקבל כי (n),u C2 (n) E(T (n)) U C1 ונשים לב כי זאת משוואת רקורסיה שלמה עם היסטוריה מלאה. איך פותרים משוואה שכזו? (1) nu(n) = 2 (2) (n + 1) U(n + 1) = 2 n 1 m=0 U(m) + Cn 2 n U(m) + C (n + 1) 2 m=0 (2) (1) (n + 1) U (n + 1) nu(n) = 2U(n) + C (2n + 1) (צריך להשלים את המעברים לעיל) 1+2n C ולכן החסם העליון הוא n+1 נפתור בשיטת האיטרציות, ונשים לב כי C 2C U(n + 1) n + 2 U(n) + 2C n + 1 n + 2 n + 1 n + 2 n + 1. n U(n + 1) (n + 2) 2c ( n + 1 U(n 1) + 2C n ( n + 1 n U. ) + 2C ( n U(n 2) + 2C n 1 ) ) + 2C + 2C U(1) + n + 2 2C n n 2C + n + 2 n + 1 2C + n + 2 n + 2 2C Harmonic Serie {}}{ n+2 1 i i=2 }{{} <1 {}}{ }{{} 2 +.Θ(log n) = H(n) = n 1 i=1 1 i טענה 6.2 הוכחה: נוכיח רק עבור 1 m n = 2 ולכן <4 1 4 =1 {}}{ } {{ } k 1 איברים ונסמן את הסכום של הבלוק ה k ב S k ולכן הבלוק ה k יתחיל ב ויהיו בו 2 k 1 S כי 2 k איברים כול גדולים צ ולכן 2 k+1 k ובנוסך 1 2 S k log (n + 1) = m 2 H(n) m = log (n + 1) ולכן בסה כ קיבלנו כי n),u(n 1 ) = Θ (n log ולכן n) E(T (n)) = Θ (n log היא הסיבוכיות האקראית של מיון מהיר האקראי. 32

33 משפט 6.3 (מרקוב) בהינתן משתנה מקרי לא שליף X, אם נסמן E(X) = µ אז pr(x. λµ) 1 λ הוכחה: µ = E(x) = pr(x = x)x = pr (X = x) x + pr (X = x) x x X x<λµ x λµ pr (X = x) λµ 1 λ x λµ pr (X λµ) דדד 7 טבלאות גיבוב Table Hash נרצה להגדיר מילון כ ADT, ולכן נרצה להגדיר טיפוס נתונים היאפשר חיפוש הכנסה ומחיקה יעיל של צמדים של מפתח ומידע. 1. חיפוש יקח (1)O. דרישות: 2. אם N הוא מספר המפתחות, ו S הוא המקום בזיכרון לאכסון המפתחות, אז נרצה שיתקיים O(N).S = 7.1 כיוונים למימוש הפתרון שלב ראשון: גיבוב רנדומלי נתון מערך בגודל m. נכניס כל מפתח למקום אקראי במערך ואם יש התנגשות, ניצור רשימה מקושרת. נרצה לחשב את תוחלת אורך הרשימה שבה { יושב מפתח j. לכל מפתח i בקלט נגדיר 1 i and j in the same position = ij Z ולכן מספר האיברים ברשימה משתנה מקרי 0 Otherwise של j הוא i Z ij ולכן ( ) E Z ij = E (Z ij ) i i E(Z ij ) = pr(z ij = 1) 1 + pr (Z ij = 0) 0 = 1 ( ) m E Z ij = N m i 33

34 ולכן, אם רוצים שכל שרשרת תהיה קצרה, חייבים לבחור (N) m. = Ω.α = N m = נקבל במקרה של גיבוב אקראי ש ( O(1 m = Θ (N) ואם נבחר α = N m נקרא פקטור העומס של המערך. הגדרה שלב שני: פונקציית גיבוב על אף שהכנסה אקראית של האיברים למערכת\ מאפשרת למלא אותו בצורה אחידה ולכן ממלאת את הדרישה למקום, עוד אין לנו דרך לאחזר את הנתונים מהמערך בהינתן מפתח. על כן, נרצה להגדיר פונקציה המקבלת מפתח כלשהו, ומאחזרת מיקום בפיזור אחיד על המערך. איור 11: פונקציית גיבוב שיטת החלוקה:.h(k) = k mod m מצד אחד פונקציה זו מספקת את התנאי, מצד שני היא מאוד תלויה בקלט של המפתחות, כי עבור הרבה תתי קלטים יתקיים כי = ) 1 h(k,h(k 2 ), k 1 k 2 למשל עבור = 3 m אז כל המפתחות המסתיימים באותן 3 ספרות, או כל המפתחות שהם מהצורה k. m n שיטת ההכפלה: Ak ) h A (k) = m (Ak כאשר A מספר ממשי קבוע, ובאופן ספציפי +1 5 = A, כלומר יחס הזהב. גם שיטה זו תלויה בקלט הנשלח אליה, ולמשל כל 2 המפתחות מהצרה A 1 nk הנשלחים אל אפס. טענה 7.2 אם U > mn אזי לכל פונקציה m} h : U {1... יש אוף של N מפתחות ש h שולחת לאותו מקום בטבלה. הוכחה: לפי עקרון שובך היונים קיים מספר m אליו הפונקציה h שולחת + 1 N מפתחות. דרישה: נרצה שיטת גיבוב שתעבוד לכל קלט (מבלי להניח הנחות על הקלט). לשם כך, נשתמש בשיטת גיבוב הסתברותית שתבטיח יעילות (בהסתברות גבוהה) לכל קלט. 34

35 7.2 משפחה אוניברסלית של פונקציות גיבוב הגדרה m}} 7.3 H = {h : U {1... תקרא המשפחה האוניברסלית של פונקציית גיבוב,.pr h (h(x) = h(y)) 1 m אם מתקיים שלכל x, y U כאשר x y אז טענה 7.4 אם H משפחה אוניברסלית שכזו, אז אם K הוא אורך הרשימה (המחוברת לכל.E (K) 1 + N m תא במערך) אז הוכחה: כמקדם, נגדיר משתנים מקריים המציינים לכל,x y U מתקיים { 1 h(x) = h(y) C xy = 0 h(x) h(y) ( ) E(K x ) = E C xy = y y 1 + y x E (C xy ) = 1 + y x E (C xy ) E (C xy = 1) 1 + N 1 m 1 + N m ולכן Z p = {0,..., p 1} Z p = {1,..., p 1} h a,b (k) = ((a k + b) mod p) mod m K m = { h a,b : a Z p, b Z p } דוגמא: יהי p ראשוני U m ונסמן: ונגדיר עבור :b Z p, a Z p ולכן בשביל להגדיר פונקציית גיבוב, נדרש רק להגריל,a b מתוך הקבוצות הרלוונטיות. (צריך להשלים את השיעור של ה על פוקנציות גיבוב) 8 גרפים גרף הוא זוג (E G =,V) כאשר V הוא אוסף הקודקודים ו E הוא אוסף הצלעות, שיכול להיות מכוון או לא מכוון (כלומר כל אפשר לנוע כל צלע בשני כיוונים). 8.1 ייצוג של גרפים ייצוג בעזרת רשימת שכנויות כלומר לכל קודקוד נשמר את רשימת הקודקודים המחוברים אליו ישירות באמצעות צלע: {v 1 } v 2... v k {v 2 }

36 ולכן הסיבוכיות מקום של הגרף היא ( E O. V ) + ייצוג בעזרת מטריצת שכנויות כלומר מטריצה בגודל V V ( כאשר בתא ה j,i יש 1 אם קיימת צלע בין v i ל v. j סיבוכיות המקום שלה הוא (2 V O. מתי כדי להשתמש בכל ייצוג? ( 1. אם (2 V E, = Θ כלומר בגרף צפוף, נשתמש בבד כ במטריצת שכנויות. 2. אם ( V ) E, = O כלומר גרף צלול, אז נשתמש ברשימת שכנויות. 8.2 אלגוריתמים לסריקת גרפים נרצה אלגוריתמים למציאת: 1. המסלול הכי קצר בין שתי נקודות. 2. מציאת מסלול ליציאה מתוך מבוך. 8.3 חיפוש לרוחב Search BFS Breadth First נעבור על הגרף כך שבשלב הראשון, נעבור על כל השכנים מדרגה ראשונה של קודקוד ההתחלה, בשלב השני נעבור על השכנים מדרגה שנייה וכן הלאה. BFS BFS(G,S):- forall v in V do dist(v) = dist(s) 0 previous(s) = nil Q Build_Queue({s}) while Q not empty u dequeue(q) forall w in (u, w) E if dist(w) == enqueue(q, w) dist(w) = dist(u)+1 previous(w) = u אלגוריתם 12 36

37 איור 12: גרף לדוגמא נגדיר תור מדרגתי עם ערך d להיות תור שבו כל ערכי dist לכל האברים בו מקיימים כך שאם w הוא האיבר הראשון בתור, אז dist(w) = d וכל שאר האיברים בתור הם בעלי ערך dist השווה ל d עד שהוא עובר ל 1 + d ונשאר כך. הגדרה 8.1 נגדיר (w δ,s) בתור המרחק האמיתי בגרף (ארוך המסלול הקצר ביותר בצלעות). טענה 8.2 לאחר הוצאת k קודקודים: 1. קיים d עבורו התור מדרגתי עם ערך d. 2. כמוכן לכל הקודקודים שהוצאנו מהתור או שעדיין בתור, ערך dist נכון, כלומר שווה ל ( w.δ (s, 3. כך הקודקודים שעוד לא נכנסו לתור = dist וכן δ עבורם יהיה 1 + d. הוכחה: נוכיח באינדוקציה בסיס: עבור = 1 :k.1 מתקיימת עם ערך = 1.d 2. עבור s וכל שכניוי dist באמת מכיל את δ. 3. כל השאר באמת = dist אחרי הוצאת S וגם δ שלהם 2 שכן אינם שכנים של S (קודקוד ההתחלה). 37

38 שלב האינדוקציה: נניח כי הטענות מתקיימות עבור k ונוכיח עבור + 1 k. טענה א : כל הקודקודים שהכנסנו הם עם + 1 d,dist = כלומר או שהתור נראה כך: או שהוא נראה כך: d,..., d, d + 1,..., d + 1 d + 1,..., d + 1 ובכל מקרה מדרגתי. טענה ב : נכון לכל הקודקודים שיצאו מקודם מהנחת האינדוקציה, וכן לקודקוד שהוצאנו בשלב ה 1 + k מהנחת האינדוקציה, וכן לכל הקודקודים שהיו בתור מקודם, לגבי הקודקודים החדשים שנכנסו באיטרציה ה 1 + k לתור עם = dist + 1 d. ידוע מ ג שה δ שלהם גדול (או שווה) מ 1 + d, אבל בגלל שהם שכנים של הקודקוד שכרגע הוצאנו שידוע לגבי ש δשלו שווה ל dist שלו השווה ל d מטענה ב ולכן קיים מסלול שלהם באורך + 1 d ולכ ה δ שהלם בדיוק + 1 d. טענה ג : לגבי כל הקודקודים שעוד לא נכנסו לתור, = dist (ברור), וצ ל שה δ שלהם גדול (או שווה) ל 1 + d (הערך המדרגתי החדש). אם הערך המדרגתי לא השתנה, אזי הטענה נכונה מטענה ג. אם הערך המדרגתי כן השתנה, אזי + 1 d d., ונרצה להראות שה δ שלהם 2 + d ויודעים מטענה ג ש 1 + d, אבל לא יכול להיות + 1 d, שכן אם כן, יש קודקוד שכן w כך ש δ d, = ומטענה ג w כבר עבר בתור או נמצא בתור כרגע. לא ייתכן כי הוא עבור בתור, וגם לא ייתכן שהוא נמצא גרע בתור. כל קודקוד שכבר עבר בתור כבר הכניס את כל השכנים שלו, ולכן לא יכול להיות שהקודקוד v כבר עבר בתור. סיבוכיות: לכל היותר כל קודקוד נכנס פעם אחת לתור ולכן O(Neighbors) ולכן הסיבוכיות היא ( E ).O ( V ) + O O (M)+ v V אלגוריתם Dijkstra ( דייקסטרה ) מציאת משקלים קצרים בגרף ממושקל, ונגדיר (w l(u, בתור אורך הצלע. Dijkstra Dijkstra(G,S):- u V, dist(u), previous(u) nil dist(s)=0 Q build_min_heap(v) sorted by dist while Q not empty v extract_min(q) w, (u, w) E if dist(w) > dist(u)+l(u,w) dist(w) dist(u) + l(u,w) prev(w) = u decrease_key(q,w) אלגוריתם 13 38

39 טענה 8.3 (נכונות) R היא קבוצת כל הקודקודים שיצאו מהערמה..1 קיים ערך d כך ש d dist(w) כאשר w R ולכל קודקוד v R מתקיים.dist(v) d 2. לכל הקודקודים ב R והשכנים שלהם, ערך dist מכיל את אורך המסלול הנכון ב R. סיבוכיות: ) V O( V + E log הערה 8.4 האלגוריתמים של Bellman-Ford, Dikstra, BFS לא עובדים על גרפים עם משקולות שליליים, כי גם מסלול שמתחיל ארוך יותר, יכול להסתיים בצלעות שליליות אשר יקזזו את האורך ההתחלתי. 8.4 חיפוש לעומק DFS Depth First Search בשונה מ S,BF אלגוריתם זה מתקדם כמה שיותר רמות עד אשר אין לו עוד לאן להמשיך, ועל מנת לא לחזור על אותם קודקודים נסמן אותם. האלגוריתם מבוסס על :Explore visit(v)=1 previsit(v) ω, (v, ω) E if visited(ω)=0 then explore(ω) postvisit(v) אלגוריתם 14 אלגוריתם זה יגיע לכל הקודקודים שיש אלהם מסלול מ v. נניח שיש קודקוד z כך ש z.v v 1 v 2... v k ולכן נבנה את אלגוריתם DF S ע י DFS Explore Explore(G, v):- DFS(G):- v V visted(v)=0 v V if visited(v)==0 then explore(v) אלגוריתם 15 והסיבוכיו של האלגוריתם היא E ).O ( V + הגדרה 8.5 חורשת DF S כל העצים (המסלולים) המתקבלים תוך כדי החיפוש. הגדרה 8.6 רכיב קשירות בגרף לא מכוון קבוצה מקסימלית של קודקודים כך שיש מסלול בין כל שני קודקודים בתוכה. 39

40 נרצה למספר את רכיבי הקשירות, ונסמן גודל זה ב um,ccn ובנוסף נרצה לכתוב לכל קודקוד מי רכיב הקשירות שלו. האגוריתם הבא מוצא את רכיבי הקשירות בגרף לא מכוון: CC הגדרה 8.7 בגרף מכוון, נגדיר רכיב קשירות חזק ע י קבוצה מקסימלית של קודקודים בגרך מכוון כל שלכל שני קודקודים,x y בקבוצה, יש מסלול מ x ל y וגם מ y ל x מיון טופולוגי סדר על הקודקדוים כל שלכל צלע v,u) (v E מופיע אחרי u. מסקנה 8.8 אם יש מעגל אזי אין מיון טופולוגי (גרף ללא מעגלים מכוון נקרא גם Directed (Acyclic Graph - DAG הוכחה: נניח שיש מעגל ויש מיון טופולוגי, אזי v 0 v 1... v k v 0 ונניח ש v i הוא הקודקוד ה I במיון הטופולוגי. כל הקודקודים מופיעיםאחריו במיון הטופולוגי כולל 1 j v, אבל יש צלע במעגל מ 1 j v ל v. j אלגוריתם למיון טופולוגי של DAG נוסיף לאלגוריתם DF S שדה של clock ובנוסף נשמור לכל קודקוד את ערך ה clock כאשר נכנס אליו לראשונה ויצאנו ממנוו לאחרונה, כלומר pre(v) clock clock++] אלגוריתם 16 CC(G):- ccnum = 0 DFS(G) ccn um ב S DF נוסיף + + לכל קריאה ל Explore ב S DF previsit(v):- postvisit(v):- post(v) clock clock++ אלגוריתם 17 כניסה ויציאה מקודקוד ב S DF לכל שני קודקודים,u v הצלע,u) (v E יכולה להיות: 1. צלעות בעץ 2. צלעות קדימה 3. צלעות אחורה 40

41 .4 סוג.Cross Edge על כן נוכל להגדיר לכל אינטרוול מה סוג הצלע: 1. אם interval(v) interval(u) < (או להפך) אז זהו מקרה 4..2 אם interval(v) interval(u) אז זהו מקרה.3.3 אם interval(u) interval(v) אז זהו מקרה 1 או.2 טענה 8.9 אם נריץ את DF S אז ה post בסדר יורד נותן מיון טופולוגי, ולאחר מכאן נמיין בעזרת מיון ספירה. הוכחה: צ ל שלכל צלע (v,u) מתקיים כי post(v).post(u) > נניח שהדענו ב S DF ל u לפני v, אז אנחנו במקרה interval(u) interval(v) ואכן.post(v) < post(u) נניח הגענו ל v לפני u, אז בגלל שזה DAG אז אנו במקרה interval(u).interval(v) < אלגוריתם SCC טענה 8.10 גרף רכיבי הקשירות הוא.DAG טענה 8.11 אם נרציץ DF S על v, אז post המקסימלי הוא של קודקוד ברכיב קשירות שהוא מקור של גרף רכיבי הקשירות. טענה 8.12 אם יש צלע מ SCC לצלע C ל SCC ל C אזי ה post המקסימלי בתוך C גדול מה post המקסימלי ב C. G R הוא הגרף שבו כל הצלעות של G הפוכות. הגדרה 8.13 אלגוריתם: הרץ DF S על G. R נמיין את הקודקודים לפי סדר יורד של post בעזרת מיון ספירה ואז נקרא ל ( G ) CC שקורא לקודקודים לפי הסדר הזה. 9 עצים פורשים מינימליים Trees) (Minimum Spanning נסתכל על גרף לא מכוון E) G = (V, ו W : E R t בעלות מינמלית. הגדרה 9.1 עץ הוא גרף קשיר ללא מעגלים, ונגיד שקבוצת זוגות } V T = {(u, v), u, v הן עץ פורש ל G אם T E ו T עץ שקודקודיו הם V. הגדרה 9.2 עץ פורש T יקרא עץ פורש מינימלי אם לכל T עץ פורש מתקיים = ) T) ω. ω (e) ω (T ) טענה 9.3 בעץ על n קודקודים יש 1 n צלעות. 41

42 הוכחה: נתחיל מ n הקודקודים שהם n רכיבי קשירות, ונסוף בכל צעד מהעץ. כל צלע כזו מפחית את מספר רכיבי הקשירות באחד, שכל לא יכול להיות בתוך רכיב קשירות קיים (כי תיצור מעגל). טענה 9.4 (הפוכה) אם בגרף קשיר בין n קודקודים יש 1 n צלעות, אזי הוא עץ. הוכחה: נתון שהעץ קשיר, אז יתכן שאינו עץ כך שאם יש בו מעגל, נוריד צלעות עד שיהפוך לקשיר ללא מעגלים, כלומר לעץ. מהטענה הקודמת יש בעץ 1 n צלעות כלומר לא הורדנו אף צלע. 9.1 אלגוריתם קרוסקל ל MST נתחיל מקבוצה ריקה של צלעות X, ונמיין את הצלעות של העץ לפי משקלן בסדר עולה, ולכל צלע בעץ, נוסיף אותה לקבוצה X אלא אם כן סוגרת מעגל (ואם כך פשוט נזרוק אותה). הערה 9.5 אלגוריתם זה הוא אלגוריתם חמדן,(Greedy) מכיוון שבכל שלב הוא מנסה לקחת את הצלע הטובה ביותר עבור שלב זה בלבד ואינו מנסה להסתכל קדימה, או לחזור אחורה בשביל למצוא את הפתרון האופטימלי, וזו בתחת ההנחה כי אסטרטגיה זו תביא לפתרון טוב, ובמקרה זה לפתרון הטוב ביותר, כלומר לעץ הפורש המינימלי. הוכחה: (נכונות) נראה באינדוקציה שבכל שלב x מקיים שקיים T שהוא M ST כך ש.X T בשביל להוכיח את הנכונות, נעזר בתכונות החתך. חתך: חתך הוא חלוקה של הקודקודים לשתי קבוצות זרות, והצלעות בחתך הן הצלעות המקשרות בין הקודקדים של שתי הקבוצות. תכונת החתך: נניח ש E X כך ש X T כאשר T הוא.MST אם e צלע בחתך (חתך בין רכיבי הקשירות שנמצאו עד כה), ואף צלע ב X אינה צלע בחתך, ו e מינמלית (מבחינת המשקל) בחתך אזי {e} X קיים T שהוא MST כך ש T.X {e} הוכחת תכונת החתך: נתון Vל X 1, V 2 אין אף צלע בחתך, ונתון X T ו.MST T הוספנו ל X את {e} ורוצים למצוא T MST כך ש T.x {e} נניח ש { e } נמצא ב T, אזי נבחר את T להיות Tוסיימנו. נניח ש { e } לא נמצא ב,T ו e צלע בחתך, ונניח כי ) 2 e = (v 1, v כאשר 1 v T היו קשורים ב v 1, v 2 (כי e יש מעגל. נסתכל על הצלע T וב { e } V 1, v 2 V 2 והם משני צידי החתך), ולפי בחירתינו ) e) (e ω (e) ω מינימלית בחתך) ונבנה עכשיו את T כך: נוסיף ל T את e כך ש { {e.t {e} \ ב { {e T = T {e} \ יש 1 n צלעות, והוא קשיר כי הורדנו צלע } e} במעגל ולכן T עץ פורש. ω (T ) = ω (T ) + ω (e) ω (e ) מכיוון ש ( (e ω (e) < ω לא יתכן שכן אז ) (T ω (T ) < ω בסתירה ל MST T ולכן ) (e ω (e) = ω ולכן T באותו משקל כמו T ולכן הוא.MST 42

43 עתה בחזרה להוכחת הנכונות, צעד האינגו ציה הוא: אחרי k צלעות, X E ומניחים ש X T ו { e } X (כאשר e צלע מינימלית שלא סוגרת מעגל). צ ל T X {e } כאשר T הוא.MST נניח ש { e } שקרוסקל מוסיך בשלב ה 1 + k מחברת בין רכיב קשירות G 1 ל G 2 (לא יכול להיות באותו רכיב קשירות כי אז יווצר מעגל), ואז נבחר את החתך להיות בין G 1 וכל השאר, ולכן תכונת החתך מתקיימת ולכן T X. e} } מדוע e מינימלית בחתך? כי היא מינימלית בין כל הצלעות הנותרות, ובפרט עבור הצלעות שבחתך. עתה אחרי הוכחת הנכונות, נותרה עוד הבעיה שמציאת מעגל בגרף נתון היא (E) O, אבל אנו היינו רוצים לעשות זאת ב ( 1 ) O, ולשם כך נעבוד עם מבנה נתונים חדש,.Union-Find 9.2 אלגוריתם Union-Find נרצה מבנה נתונים לטיפול בקבוצות זרות ושהמבנה יתמוך בפעולות: Makeset(x) find(x) מציאת הנציג x. איחוד הקבוצות של Union(x) מבנה הנתונים הנ ל בנוי על עצים המיצגים קבוצות, כאשר שורש העץ הוא הנציג של הקבוצה, ונסמן (x) π בתור המצביע של קודקוד x להורה שלו בעץ. π(x) x rank(x) 0 אלגוריתם 18 Find Makeset Makeset(x):- Find(x):- while x π (x) do x π (x) return x אלגוריתם 19 43

44 Union Union(x, y):- r x find(x) r y find(y) if r x == r y return if rank(r x ) > rank(r y ) then אלגוריתם 20 else π (r y ) r x π (r x ) r y if rank(r x ) == rank (r y ) then rank(r y ) rank(r y ) + 1 טענה 9.6 לקודקוד עם דרגה k, מספר הקדוקדוים בתת העץ שלו (כולל הוא עצמו) גדולה או שווה ל 2. k הוכחה: בססי האינדו ציה בו = 0 k ברור. נניח שנכון עבור דרגה 1 k ונתבונן בקודקוד עם דרגה k, הדרגה עלתה ל k על ידי כך שאוחדו שני קודקודים (או שתי קבוצות) שניצגיהם קודקודים מדרגת = 1 k. לפי הנחת האינדוקציה, בכל עץ כזה יש לפחות 1 k 2 קודקודים. ולכן מספר הקודקודים 2 k ומתקיים.k log (# vertices) log n kruskal(g, w):- v V, makeset (v) QSort(E by w) X (u, v) E if f ind(v) f ind(u) then X X {(u, v)}, Union(u, v) אלגוריתם 21 קרוסקל אבל ניתן לייעל אלגוריתם זה אף יותר ע י שימוש ב Compressions P, ath ובשביל לחשב את היעילות של אלגוריתם זה, צריך להיעזר ב Complexity,Amortized כלומר חישוב העלות של מספר רב של פעולות לאורך זמן. 10 על המבחן הסופי אין דף נסחאות! 10.1 החומר למבחן יהיה תרגול חזרה ביום חמישי או שישי לפני המבחן 44

45 החומר למבחן כל התרגילים (כולל מספר 11), כל התרגולים וכל מה שהיה בשיעור. להיעזר מהסיכומים של סאשה, יש שם הרבה טעויות בפרקים האחרונים. להיעזר בספר שמקושר מהאתר (אחלה ספר) מבנה המבחן המבנה יהיה כמו של מבחן האמצע רק יותר 4 שאלות ראשונה מתוך 5 של שאלות קטנות ו קלות 2 שאלות מתוך 3 של שאלות גדולות ובעלות מספר סעיפים (המלצה לפתור את הסעיפים לפי הסדר כי הם בנויים אחד על השני והולכים מהקל לקשה) חלק II תרגולים 11 תרגול סימונים אסימפטוטים תמיד כשנדבר על פונקציות המתארות זמן ריצה, מדובר בפונקציות חיוביות + R,f g : N. הגדרה 11.1 O גדול נגדיר ש ( f(nהיא (( O(g(nאם קיימים קבועים <,n C 0 כך ש. n > n 0 ( f(nלכל C g(n) אם = f(n) אז מתקיים O(n) f(n) = כי עבור = 1 0 c = 10 19, n מתקיים n לדוגמא: c = 2, n 0 מתקיים אם f(n) = 2n אזי מתקיים O(n) f(n) = כי עבור = n 2n אם f(n) = n 2 אזי ) 2 f(n) O(n כי לכל > 0 c מתקיים שאם n > c אזי. n 2 > c n הגדרה 11.2 Ω נגדיר ש ( f(n היא Ω(g(n)) אם קיימים קבועים <,C n 0 0 כך ש.n לכל n 0 f(n) C g(n) אם = f(n) אזי מתקיים Ω(1) f(n) = כאשר = 1 0 c = 1, n ואז לדוגמא: n 0 = ו 1 c = 1 2 אם f(n) = n אזי מתקיים Ω(2n) f(n) = וגם Ω(n) 2n = עבור (עבור שני המקרים). אם f(n) = n אזי ) 2 f(n) Ω(n באופן דומה ל O. הגדרה 11.3 Θ אם f(n) היא גם O(g(n)) וגם Ω(g(n)) אז נגדיר שהיא.Θ(g(n)) 45

46 הגדרה lim n f(n) = L 11.4 אם ם לכל < ɛ R 0 קיים n 0 N כך שלכל n > n 0 מתקיים f(n) L < ɛ. הערה 11.5 לא כל פונקציה/סדרה מתכנסת כאשר n (למשל.( f(n) = sin n הערה 11.6 מכיוון שהפונקציות איתן אנו עובדים הן תמיד חיוביות, ניתן להשמיט את הערך המוחלט. o קטן נגדיר ש ( f(n היא o(g(n)) (זניחה ביחס ל ( g(n ), 11.7 הגדרה. lim f(n) אם = 0 n g(n) כללים לשימוש בסימונים האסימפטוטים כל הסימונים האסימפטוטים הם טרנסזיטיביים. לדוגמא: = g(n) f(n) = O(g(n)),. O(h(n)) f(n) = O(h(n)) הסימונים האסימפטוטים מתנהגים כמו (אך לא ממש! זוהי רק אינטואיציה): f(n) = O(g(n)) f(n) g(n) f(n) = Ω(g(n)) f(n) g(n) f(n) = Θ(g(n)) f(n) g(n) f(n) = o(g(n)) f(n) < g(n) f(n) = o(g(n)) f(n) = O(g(n)) הכפלה בקבוע לא משפיע על הסימון האסימפטוטי. למשל Θ(g(n)) f(n) =. f(n) = Θ(c g(n)) ניתן להתעלם מפונקציות זניחות, כלומר: o(h(n)) f(n) = Θ(g(n)+h(n)), g(n) =. f(n) = Θ(h(n)) הוכחה: מכיוון ש (( Θ(g(n)+h(n f(n) = אזי קיימים קבועים > 0 2 c 1, c ו N n 1 כך שמתקיים: n > n!, c 1 (g(n) + h(n)) f(n) c 2 (g(n) + h(n)) ומכיוון ש ( g(n הוא אי שלילי אז מתקיים גם: n > n 1, c 1 h(n) f(n) c 2 (g(n) + h(n)) מכיוון ש (( o(h(n g(n) = אז קיים קבוע n 2 N כך שמתקיים: n > n 2, 0 g(n) h(n) 1 2 ולכן אם ניקח } 2 n > n 0 = max{n 1, n נדרש להשלים את ההוכחה מהמצגת! 46

47 גידול מעריכי (אקספוננציאלי) גדול מגידול פולינומי, או באופן פורמלי: = f(n). c > קבועים כלשהם ו 1 הם ו d c כאשר n d, g(n) = c n f(n) = o(g(n)) הוכחה: בשביל להוכיח את הטענה, נעזר בלמה הבאה: למה 11.8 קיימים קבועים > 0 2 c 1, c כך שמתקיים ) c1.c 2 log(n) = o(n הוכחה: באמצעות כלל לופיטל: c 2 log(n) lim n n c1 L Hopital {}}{ (c 2 log(n)) = lim n (n c1 ) c 2 n ln(2) = lim n c 1 n c1 1 = 0 הוכחה: (המשך הוכחת הטענה העיקרית) נשים לב כי n d = c log c (n) d = c d log(c) log(n).c c0 log(n) = c o(n) ולכן c 0 log(n) = o(n) ולכן מהלמה נובע כי c 0 = d log(c) יהי השלמת ההוכחה ע י הוכחת הטענה כי ) n c c0 log(n) = o(c מושארת כתרגיל. גידול פולינומי גדול מגידול לוגריתמי, או באופן פורמלי: = g(n) f(n) = (log(n)) c, o(g(n)) n d f(n) = כאשר > 0 d c, קבועים. הוכחה: מהלמה הקודמת נבוע כי ) c log(n) = o(n d ולכן ניתן להוכיח (תרגיל) כי. (log(n)) c = o(n d ) 12 תרגול אלגורתמי מיון קיימים שני סוגים עקריים של מיונים: מיוני השוואה ומיונים אחרים. מיוני השוואה שכבר ראינו עד כה: מיון בועות, מיזוג וכו מיון ספירה Sort Counting כאשר ידוע טווח הערכים של כל איבר במערך, נוכל למיין את המערך בסיבוכיות לינארית. הרעיון: ניצור מערך שכיחויות ניצור מערך חדש בגודל טווח הקלט, ובכל תא במערך נציין את מספר המופעים של הערך, ומערך זה מציין באופן חח ע את המערך הממויין. ממערך זה, נוכל ליצור מערך באותו הגודל הסוכם את הגדלים שבמערך השכיחויות (אם המערך היה,3,3 2 אז המערך החדש הוא,3).,6 8 המשמעות של המספר בכל מיקום במערך, הוא האינדקס הכי גבוה בו מופיע הערך (לפי המיקום במערך). בשימוש במערך העזר הזה ניתן לעבור על איברי המערך ולהעתיק אותם למערך חדש לפי האינדקסים המופיעים במערך העזר. 47

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

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

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

פתרון תרגיל מרחבים וקטורים. 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+ הוא אוסף הפתרונות של המערכת

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= 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π

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

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

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

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

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 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 תוחלת מותנה. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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() כאשר =

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

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

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

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

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 =

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

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 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

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

כלליים זמן: 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 הוא צומת התחלת החיפוש.

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

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

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

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

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

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

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

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

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

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

מתכנס בהחלט אם 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

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

תוכן עניינים 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............................................

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

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)

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

מתמטיקה בדידה תרגול מס' 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 או, בסימון

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

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

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

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

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 =

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

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

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

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

חלק א' שאלה 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. טעויות נפוצות שכחו לכתוב שזה

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

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

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

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

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

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

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

מבני נתונים 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

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

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

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

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

חידה לחימום. כתבו תכ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ים משחקים במשחק.

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

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

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

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

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

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

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

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

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

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

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

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

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

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. נבחר תת חבורה

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

השאלות..h(k) = k mod m

השאלות..h(k) = k mod m מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 5 השאלות 2. נתונה טבלת ערבול שבה התנגשויות נפתרות בשיטת.Open Addressing הכניסו לטבלה את המפתחות הבאים: 59 88, 17, 28, 15, 4, 31, 22, 10, (מימין לשמאל),

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

תכנון אלגוריתמים 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 נתונות שתי בעיות. בעיה א' מופע: גרף מכוון

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

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 פונקציות המוגדרות בסביבה נקובה

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

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

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

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

[ ] 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 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

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

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

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

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

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

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

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

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה מיון (Sorting) void BubbleSort(int* A, int n){ for (i = ; i < n-; i++) for (j = n-; j >= i; j--) if ( a[j] > a[j+]) swap(&a[j], &a[j+]); מערך בן מספרים. קלט: מערך ובו המספרים מאוחסנים בסדר עולה (או יורד).

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

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 פונקציה מוגדרת

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

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

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

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

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

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

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

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

סדרות - תרגילים הכנה לבגרות 5 יחל סדרות - הכנה לבגרות 5 יח"ל 5 יח"ל סדרות - הכנה לבגרות איברים ראשונים בסדרה) ) S מסמן סכום תרגיל S0 S 5, S6 בסדרה הנדסית נתון: 89 מצא את האיבר הראשון של הסדרה תרגיל גוף ראשון, בשנייה הראשונה לתנועתו עבר

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

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

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

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

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

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

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

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

c ארזים 15 במרץ 2017 הסתברות למתמטיקאים c ארזים 15 במרץ 2017 הקורס הוא המשך של מבוא להסתברות שם דיברנו על מרחבים לכל היותר בני מניה. למשל, סדרת הטלות מטבע בלתי תלויות היא דבר שאי אפשר לממש במרחב בן מניה נסמן את התוצאה של ההטלה

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( ) עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא

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

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

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

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

{ : Halts on every input}

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

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

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

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

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

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

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

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

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

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

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

תרגול משפט הדיברגנץ. 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 פו' סקלרית:

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

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

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

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

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

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

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

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

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hash Tables (המשך) ערבול (Hashing)

Hash Tables (המשך) ערבול (Hashing) מילון עם מפתחות שלמים Lecture of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds טבלאות ערבול הפעולות הבסיסיות של מילון הן כזכור חיפוש, הכנסה, והוצאה. אם המפתחות מספרים שלמים בתחום

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

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

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

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

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

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

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

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

אלגברה לינארית (1) - פתרון תרגיל 11 אלגברה לינארית ( - פתרון תרגיל דרגו את המטריצות הבאות לפי אלגוריתם הדירוג של גאוס (א R R4 R R4 R=R+R R 3=R 3+R R=R+R R 3=R 3+R 9 4 3 7 (ב 9 4 3 7 7 4 3 9 4 3 4 R 3 R R3=R3 R R 4=R 4 R 7 4 3 9 7 4 3 8 6

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

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

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

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

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

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

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

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

מבני נתונים. אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל שלבי הרקורסיה, אך עתה אין צורך להיכנס לתיאור הריצה של. מבני נתונים תרגיל 2 פתרונות מיון מהיר 1. הריצו את השיטה partition על המערך הבא. הראו את שלבי הריצה השונים. 6, 10, 20, 4, 2, 15, 5, 99, 12, 1 אחרי שלב זה המשיכו והריצו את מיון מהיר על המערך. תארו את כל

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

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

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

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

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ

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

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

2 יחל ) השלמה ל - 5 יחל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת. 1 6 מאי, 2004 מועד הבחינה: 2 יח"ל ) השלמה ל - 5 יח"ל) פרק ראשון (50 נקודות) :1 Ï (מקור: שירלי רוזנברג כהן) נגדיר טיפוס נתונים חדש בשם תלת-מחסנית, כמבנה המכיל 3 מחסניות S3. S2, S1, נגדיר את הפעולות הבאות

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

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

3-9 - a < x < a, a < x < a 1 עמוד 59, שאלהמס', 4 סעיףג' תיקוני הקלדה שאלון 806 צריך להיות : ג. מצאאתמקומושלאיברבסדרהזו, שקטןב- 5 מסכוםכלהאיבריםשלפניו. עמוד 147, שאלהמס' 45 ישלמחוקאתהשאלה (מופיעהפעמיים) עמוד 184, שאלהמס', 9 סעיףב',תשובה.

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

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

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

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

אלגברה מודרנית פתרון שיעורי בית 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) < עבור המקרים הבאים: (תזכורת:

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

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

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

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

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

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

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

תרגילים באמצעות 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 מעגל העובר דרך הקודקודים ו- של המקבילית ו- חותך את האלכסונים שלה בנקודות (ראה ציור) מונחות על,,, הוכח כי

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