Amirrub@cs - אמיר רובינשטיין Union-Find 1. הגדרה: מבנה נתונים, אשר בהינתן אוסף איברים המחולקים לקבוצות זרות, מאפשר ביצוע הפעולות הבאות: Find(i) – החזר.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

1 Colorful XML: One Hierarchy Isn't Enough Authors : H. V. Jagadish, Laks V. S. Lakshmanan, Monica Scannapieco, Divesh Srivastava, Nuwee Wiwatwattana Presented.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
גרף מכוון Directed Graph a b c f g ed h צמתים חוג עצמי קשתות.
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
מתמטיקה בדידה תרגול 3.
מבני נתונים 1 – מבנה התרגולים
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97)
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #14 Graph theory – תורת הגרפים Chapter 1: PATHS IN GRAPHS – 1. מסלולים.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
1 Graph Algorithms Minimum Spanning Trees (MST) Union - Find Dana Shapira נדבר השיעור על עצים פורשים. כל הגרפים יהיו לא מכוונים וקשירים, לכן בהכרח יש עץ.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
Faster reliable phylogenetic analysis Article by: Vincent Berry & David Bryant Presented by: Leonid Shuman & Eva Frant.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Union-Find A data structure for maintaining a collection of disjoint sets Course: Data Structures Lecturer: Hanoch Levy January 2010.
תכנות תרגול 14 שבוע : רשימות מקושרות ישנו מבנה נתונים אשר מאפשר ישנו מבנה נתונים אשר מאפשר לנו לבצע את הוספת האיברים בצורה נוחה יותר. מבנה זה.
Sorting II: הפרד ומשול. Last week: in-place sorting Bubble Sort – O(n 2 ) comparisons –O(n) best case comparisons, O(n 2 ) exchanges Selection Sort -
מחסנית (Stack): מבנה נתונים עליו מוגדרות הפעולות הבאות:
מבוא כללי למדעי המחשב רשימות מקושרות
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
1 ייצוג באמצעות עצים שונים מתוחכם רק לקבוצות גדולות (תקורה בפעולות ובתכנות!!!) עצי חיפוש בינאריים BINARY SEARCH TREES תחום סדור (> < =) תחום איברים גדול.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
גרפים - Graphs גרף G(V,E) מורכב מקבוצת צמתים V וקבוצת קשתות E.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם.
עצים מאוזנים הגדרה: משפחת עצים תקרא מאוזנת אם ,h(T) = O(log n) באשר T הוא עץ במשפחה, n הוא מספר הצמתים ב-T ו-h(T) הוא הגובה של T עצי (Adelson-Velsky,
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
תכנות תרגול 12 שבוע : מבנים מטרת המבנים היא לאפשר למתכנת להגדיר טיפוסי משתנים חדשים אשר מתאימים ספציפית לבעיה שאותה התוכנית פותרת. מטרת המבנים.
Lecture 13 Maximal Accurate Forests From Distance Matrix.
1 Formal Specifications for Complex Systems (236368) Tutorial #3 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book)
- אמיר רובינשטיין 1 מערכים - Arrays מערך חד-מימדי מערך דו-מימדי סיבוכיות גישה לאיבר גישה לאיברסיבוכיות מקום מימד O(1)base+i·typeO(N)O(N)A[N]
תרגול 4 21/3/2007 מבני נתונים 07b ליאור שפירא. תזכורת – B-trees  לכל צומת x יש השדות הבאים n[x] מס ' מפתחות ב -x המפתחות עצמם בסדר לא יורד כל צומת פנימי.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
Programming Arrays.
מבני נתונים רשימה מקושרת, מחסנית ותור
ערמות make-heap Operation insert find-min delete-min union decrease-key delete 1 Binary Heap log n n Binomial Heap Fibonacci Heap † Relaxed Heap Linked.
מבוא למדעי המחשב סיבוכיות.
מבנה נתונים ואלגוריתמים
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
הרצאה 06 רשימות מקושרות קרן כליף.
Data Structures, CS, TAU, Splay Tree
Marina Kogan Sadetsky –
תרגול 11 NP complete.
הרצאה 21: Queue, Iterator & Iterable
שיעור עשירי: מיונים, חיפושים, וקצת סיבוכיות חישוב
Presentation transcript:

amirrub@cs - אמיר רובינשטיין Union-Find 1. הגדרה: מבנה נתונים, אשר בהינתן אוסף איברים המחולקים לקבוצות זרות, מאפשר ביצוע הפעולות הבאות: Find(i) – החזר את שם הקבוצה אליה שייך i. Union(p,q) – בצע איחוד של הקבוצות p ו- q, החזר את שם הקבוצה החדשה (p ו- q נהרסות). בהתחלה כל איבר מהווה קבוצה בפני עצמו. 2. מימושים: א. מערך ב. רשימות מקושרות ג. עצים הפוכים amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין א. מערך נקצה מערך בגודל N (מספר האיברים הכולל). בכניסה ה- i נחזיק את שם הקבוצה של האיבר ה- i. מימוש הפעולות סיבוכיות Find(i) – Union(p,q) - A O(1) החזר A[i]. O(N) נניח שמאחדים תחת השם p. אז נעבור על כל המערך ובכל מקום שרשום q נרשום p. amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין ב. רשימות מקושרות מימוש הפעולות סיבוכיות Find(i) – Union(p,q) - O(1) ממערך האיברים גש לרשומת האיבר ברשימה המקושרת המתאימה. ממנה קיים מצביע לקבוצה אליה שייך האיבר. ממערך הקבוצות גש לכותרות של הקבוצות. עבור על איברי הקבוצה הקטנה יותר והפנה את מצביעיהם לכותרת של הקבוצה הגדולה. אחד את 2 הרשימות המקושרות, עדכן את גודל הקבוצה הגדולה, וסלק את כותרת הקבוצה הקטנה והמצביע אליה ממערך הקבוצות. O(N) סיבוכיות m פעולות הינה O(mlogN) (בהרצאות). לכן סיבוכיות ממוצעת (amortized) של פעולה בודדת הינה O(logN) amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין ג. עצים הפוכים לכל קבוצה ניצור עץ הפוך (בנים מצביעים לאבא) מכל האיברים שלה. שורש כל עץ הפוך יצביע על רשומה עם שם הקבוצה ומספר איבריה (כותרת). בנוסף נחזיק מערכי מיפוי לקבוצות ולאיברים כמו מקודם. amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין מימוש הפעולות סיבוכיות Find(i) – Union(p,q) - O(logN) ממערך האיברים גש לרשומת האיבר בעץ, וטפס לשורש. חזור שוב על הטיפוס, ובדרך העבר את כל הצמתים במסלול העלייה להיות בנים של השורש. כווץ מסלולים ממערך הקבוצות גש לשורשי העצים. הפנה את שורש הקבוצה הקטנה להצביע על שורשה של הגדולה. עדכן את גודל הקבוצה המתקבלת, וסלק את כותרת הקבוצה הקטנה והמצביע אליה ממערך הקבוצות. O(1) איחוד לפי דרגה סיבוכיות m פעולות הינה O(mlog*N) (בהרצאות). לכן סיבוכיות ממוצעת (amortized) של פעולה בודדת הינה O(log*N) amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין לאחר ביצוע find(0): דוגמא: amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין סיכום סיבוכיות Find(x) Union(p,q) amortized מערך O(1) O(N) רשימות מקושרות O(logN) עצים הפוכים O(log*N) amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין תרגילים ! נתון אילן יוחסין (קבוע) הממומש כעץ הפוך מכוון. בהתחלה כל הצמתים "חיים". יש לממש ביעילות את הפעולות הבאות: Kill(x) – בהינתן מצביע x לצומת בעץ, יש "להרוג" את הצומת. אסור "להרוג" את השורש. Master(x) – יש להחזיר את האב הקדמון הצעיר ביותר של x שעדיין חי. אם x חי, אז Master(x) = x. פתרון: מבנה נתונים: נשתמש במבנה נתונים Union-Find. הקבוצה y תכיל את כל הצמתים עבורם Master(x) = y. אתחול: כל איבר יהווה קבוצה בפני עצמו (כולם חיים). פעולות: Master(x) – הפעולה שקולה לביצוע Find(x). Kill(x) – בצע: - zMaster(y) (y הוא אביו של x). - Union(z, x) תחת השם z. amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין דוגמא: פתרון: מבנה נתונים: נשתמש במבנה נתונים Union-Find. הקבוצה y תכיל את כל הצמתים עבורם Master(x) = y. אתחול: כל איבר יהווה קבוצה בפני עצמו (כולם חיים). פעולות: Master(x) – הפעולה שקולה לביצוע Find(x). Kill(x) – בצע: - zMaster(y) (y הוא אביו של x). - Union(z, x) תחת השם z. סיבוכיות הפתרון: עבור m פעולות Master-Kill מתבצעות O(m) פעולות Union-Find. לכן במימוש ע"י עצים הפוכים סיבוכיות של m פעולות היא O(mlog*n). סיבוכיות משוערכת של פעולה בודדת היא O(log*n). amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין 2) דרוש מבנה נתונים המאפשר לתחזק קבוצת n איברים שונים ולבצע עליה את הפעולות הבאות בסיבוכיות מינימלית: Make_EQ(x,y) – קובעת שקילות האיברים x,y. Is_EQ(x,y) – בודקת האם x,y שקולים. בהתחלה אין אף זוג איברים x,y המקיימים x~y. תזכורת: יחס שקילות (נסמנו ~) מוגדר כיחס המקיים את התכונות הבאות: רפלקסיביות: סימטריות: טרנזיטיביות: קבוצת שקילות מוגדרת באופן הבא: יחס שקילות על קבוצה A מחלק אותה לקבוצות שקילות זרות שאיחודן = A. amirrub@cs - אמיר רובינשטיין

amirrub@cs - אמיר רובינשטיין פתרון: נשתמש במבנה UF כאשר בהתחלה כל איבר יהווה קבוצה בפני עצמו. Make_EQ(x,y) – If (Find(x) != Find(y) ) Union (Find(x), Find(y)) Is_EQ(x,y) – // x~y ↔ Find(x)=Find(y) Return (Find(x) == Find(y)) סיבוכיות: Make_EQ ו- Is_EQ דורשות מספר קבוע של פעולות Union/Find, לכן הסיבוכיות שלהן היא O(log*n) בממוצע. amirrub@cs - אמיר רובינשטיין