Presentation is loading. Please wait.

Presentation is loading. Please wait.

תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם.

Similar presentations


Presentation on theme: "תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם."— Presentation transcript:

1 תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם : אלגברה I

2 קבוצה בלתי - תלויה כבדה ביותר דוגמה : (1,3) 15 (1,4) 10 (2,6) 20 (2,5) 5 פלט : (2,6) & (1,4) w(S)= 30 קלט : אוסף וקטורים עם משקולות חיוביים פלט : תת - קבוצה S בלתי תלויה ליניארית של הוקטורים שמשקלה גדול ביותר

3 אלגוריתם חמדני משפט : בסוף ריצת האלגוריתם S מכילה קבוצה בלתי תלויה בעלת משקל מקסימאלי. הוכחה : אח ” כ א. מיין את הוקטורים לפי סדר יורד של משקלם. כלומר כעת : ב. S = {} for i = 1…n if v i independent from S S = S + {v i }

4 תזכורת : גרפים גרף (G=(V,E V|=n, |E|=m| מכוון \ לא מכוון דרגה של קדקד רכיבי קשירות

5 מטריצת שכנויות A B C D E A 0 0 0 0 0 B 1 0 0 0 0 C 0 1 0 0 1 D 0 0 1 0 1 E 1 0 0 1 0 A B C D E

6 רשימות שכנות A B C D E 1 1234512345 25 35 14

7 גרף עם מרחקים אורך הצלע (u,v) יסומן ב (w(u,v ( מספר ממשי ) ביצוג של מטריצת שכנויות נשמר כאבר במטריצה ( סימון מיוחד כגון אינסוף כאשר אין צלע.) ביצוג של רשימת שכנויות נשמר כשדה נוסף. 2- 3 2 5 1 3 3 4

8 עץ פורש מקסימאלי הגדרה : עץ פורש של G הינו תת - קבוצה T של צלעות G שמקיימת : ( 1) T עץ,(2) T פורשת את כל קדקדי G. הגדרה : משקל העץ הינו סכום המשקולות של הצלעות בו. קלט : גרף קשיר לא מכוון G עם משקולות w על הצלעות. פלט : עץ פורש שמשקלו מקסימאלי.

9 אלגוריתם חמדני משפט : בסוף הריצה T הינו עץ פורש מקסימאלי. הוכחה : אח ” כ מיין את הצלעות לפי סדר יורד של משקלן. T = {} for all (u,v) in E ( לפי הסדר ) if (v- ל u- מ T- אין מסלול ב ) T = T + (u,v)

10 מימוש יעיל עם מיזוג - חיפוש מיזוג - חיפוש אתחול כל קדקד קבוצת יחידה find(v) מחזיר את “ נציג ” קבוצת v union(u,v) מאחד את קבוצות u ו -v מיין את הצלעות לפי סדר יורד של משקלן. T = {} for all (u,v) in E ( לפי הסדר ) if (find(u) != find(v)) T = T + (u,v) union(u,v)

11 מימוש מיזוג - חיפוש union(u,v): u = find(u) v = find(v) if u.count > v.count v.father = u u.count += v.count else u.father = v v.count += u.count : אתחול for all v v.father = null v.count = 1 find(v): if v.father = null return(v) return find(v.father)

12 ניתוח מיזוג - חיפוש שכלול : find(v): if v.father = null return v v.father=find(v.father) return v.father למה : אם בקבוצת v יש k קדקדים אזי אורך השרשרת מ - v לנציג שלו הינו לכל היותר (log(k מסקנה : זמן לכל פעולת union/find הינו (O(log n

13 מטרואידים משפט : לכל אוסף וקטורים X, אם I הוא אוסף תתי - הקבוצות הבת ” ל של X אזי (X,I) מטרואיד. משפט : לכל גרף לא מכוון (V,E) אם I הוא אוסף תתי - הקבוצות של E שאינן מכילות מעגל אז (E,I) מטרואיד. הגדרה : (X,I) נקרא מטרואיד אם : I הינו אוסף של תתי - קבוצות של X -- שנקראות הקבוצות הבלתי תלויות. אם S  I ו -T  S אזי T  I אם S,T  I ו -|T|>|S| אזי קיים t  T כך ש - (S  {t})  I

14 קבוצה בלתי - תלויה כבדה ביותר אלגוריתם : מיין את אברי X לפי סדר יורד של משקלם. S = {} for i = 1…n if (S + {v i })  I S = S + {v i } משפט : בסוף ריצת האלגוריתם S מכילה קבוצה בלתי תלויה בעלת משקל מקסימאלי. קלט : מטרואיד (X,I) כאשר X={1…m} עם משקולות חיוביים על אברי X: פלט : תת - קבוצה S  I בלתי תלויה שמשקלה גדול ביותר

15 תזכורת : תור קדימויות מימוש : ערימה זמן לכל פעולה : O(log n) enque(x,p) מכניס את x לתור עם עדיפות p deque() מוציא את האבר בעל העדיפות הגדולה ביותר מהתור

16 קוד חסר - רישא דוגמאות : קוד ג קוד ב קוד א A 00 0 0 B 01 1 10 C 10 10 110 D 11 11 111 בקוד ג : 01101010... = ACBB... הגדרה : קוד עבור N אותיות הינו סדרת N מחרוזות בינאריות שונות זו מזו. הגדרה : הקוד נקרא חסר - רישא אם אין בו 2 מחרוזות שאחת רישא של השניה.

17 קוד הופמן דוגמה : A B C D 0.1 0.2 0.3 0.4 000 001 01 1 קלט : שכיחויות של N אותיות f 1 …f N פלט : קוד חסר רישא שאורכו הממוצע ( לפי השכיחויות ) קטן ביותר. כלומר אם l i הינו אורך המחרוזות ה -i: AB C D

18 אלגוריתם חמדני משפט : אלגוריתם זה מייצר קוד אופטימאלי. הוכחה באינדוקציה Priority Que Q = {node(f 1 )…node(f N )} Repeat n-1 times x = Q.deque() y = Q.deque() z = new node(x,y) f z =f x +f y Q.enque(z) Return Q.deque()

19 הוכחה למה 2 : יהי T קוד אופטימאלי למקרה שבמקום x ו y יש אות אחת z עם f z =f x +f y אזי T+x+y הינו קוד אופטימאלי ( לבעיה המקורית ) מבין אלו שבהם x ו y אחים. למה 1 : יהיו x ו y שתי האותיות בעלות משקל מינימאלי אזי יש קוד אופטימאלי בו x ו y “ אחים ”.


Download ppt "תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם."

Similar presentations


Ads by Google