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

Slides:



Advertisements
Similar presentations
While,B:=,0,true while,B:=,1,true N:=,B:=,0,true P1 N:=,B:=,1,true P1 while,end,0,false end,end,0,false P1 N:=,end,0,false P2 while,end,1,false end,end,1,false.
Advertisements

1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
Graph Algorithms What is a graph? V - vertices E µ V x V - edges directed / undirected Why graphs? Representation: adjacency matrix adjacency lists.
CS 206 Introduction to Computer Science II 03 / 27 / 2009 Instructor: Michael Eckmann.
Design and Analysis of Algorithms BFS, DFS, and topological sort Haidong Xue Summer 2012, at GSU.
Traversals A systematic method to visit all nodes in a tree Binary tree traversals: Pre-order: root, left, right In-order: left, root, right Post-order:
גרף מכוון Directed Graph a b c f g ed h צמתים חוג עצמי קשתות.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
פונקציונל פונקציה מספר פונקציונל דוגמאות לא פונקציונל פונקציונל.
קורס אלגוריתמים ספר הקורס: מרצה: נעם ניסן מתרגלים:
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
פעולות מילון Insert, Delete, Search Binary Search Tree, AVL, 2-3 Tree, Skip List O(log n) האם יש מבנה עם סבוכיות (1)O? לא למפתח כלשהו.
Graph Toolkit G-2 group Volansky Vered Hadas Yaron Ben Ezra Asaf Sharov Artyom.
גרפים ממשקלים גרף ממשקל הוא גרף עם משקל לכל קשת עץ פורש הוא עץ שצמתיו הם כל הצמתים של הגרף וקשתותיו הן קשתות הגרף.
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #14 Graph theory – תורת הגרפים Chapter 1: PATHS IN GRAPHS – 1. מסלולים.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
היום נדבר אל נושא אחד בתורת הגרפים. ובהמשך נשתמש בכלים אלו לפתרון כמה בעיות גאומטריות ובפרט להוכחת Szemeredi Trotter theorem.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית ( חוץ מהשורש ) יש לפחות.
משפט ההרכבה Composition Theorem תהי C מחלקה של פונקציות בוליניות תהי נגדיר סדרת פונקציות שניתנות לחישוב בזמן פולינומיאלי.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
צוות : גרייף אלה כורך אילנה רשקובסקי לובה אוניברסיטת בו גוריון בנגב מחלקה להנדסה תוכנית להנדסת תוכנה Application Requirements Presentation.
צביעת גרפים: הגדרה: G=(V,E) גרף בלתי מכוון. צביעת G ב-K צבעים 1
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
בעיות חיפוש – informed search בינה מלאכותית יעל נצר.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Tutorial #7 Preventing combinatorial loops – © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT.
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
גרפים - Graphs גרף G(V,E) מורכב מקבוצת צמתים V וקבוצת קשתות E.
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #16 EULER GRAPHS גרפים אויילרים מבוסס על הספר : S. Even, "Graph Algorithms",
תזכורת : אלגברה ליניארית מסקנה קלט : וקטורים פלט : האם u תלוי ליניארית ב קלט : מערכת של n משואות לינאריות ב -m נעלמים. פלט : פתרון, או שאין כזה. אלגוריתם.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
– © Yohai Devir 2007 © Dima Elenbogen 2009 Technion - IIT Tutorial #7 Preventing combinatorial loops.
CS 206 Introduction to Computer Science II 03 / 30 / 2009 Instructor: Michael Eckmann.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Lecture 13 Maximal Accurate Forests From Distance Matrix.
1 Space Complexity Non-Deterministic Space אליעזר מדבד
Breadth First Search and Depth First Search. Greatest problem in Computer Science Has lead to a lot of new ideas and data structures Search engines before.
1 Programming for Engineers in Python Autumn Lecture 9: Sorting, Searching and Time Complexity Analysis.
Graphs. Types of Records One link – For stack and queue. Two links – For double ended queue. Many links:
שיתוף PDT בין חוטים PDT Thread A Process Descriptor File Object 1 File Object 2 File 1 File 2 pthread_create Thread B Process Descriptor ה PDT משותף לכל.
Graph Theory Def: A graph is a set of vertices and edges G={V,E} Ex. V = {a,b,c,d,e} E = {ab,bd,ad,ed,ce,cd} Note: above is a purely mathematical definition.
FAA FAA (int s, int val) { temp = s; s = s + val; return temp; }
SL = L An Alternative Proof
תירגול 14: מבני נתונים דינאמיים
מבוא למדעי המחשב הרצאה 5: תחומי הכרה של משתנים
מבוא למדעי המחשב הרצאה 6: מיונים.
בעיות נוספות ב-NPC.
Marina Kogan Sadetsky –
תרגול 11 NP complete.
אלגוריתם שינוי צורה למתקני טנזגריטי
Lecture 12 CSE 331 Sep 26, 2016.
חזרה חלקית על תרגול 12 גרף G=(V,E)
Presentation transcript:

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

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

רשימות שכנות A 12345 E 1 2 5 3 5 1 4 C B D

גרף מצביעים class Node { // private data members Node getNbr(int i){ // compute I’th nbr }

גרף לא מפורש class State { // …. void move( …. ) { // change state }

סריקת גרף אלגוריתם נאיבי search(s): print s for all u in s.nbrs search(u) קלט: גרף G, קדקד s פלט: כל הקדקדים אליהם יש מסלול ב-G מ-s

רעיון לשיפור: Memoization F = {s} Repeat v <- node from F for all v in u.nbrs if v not in F F = F + {v} Until no new nodes שיטות סריקה חיפוש לרוחב: Breadth First Search חיפוש לעומק: Depth First Search חיפוש לפי טיב Best First Search ...

חיפוש לרוחב: (BFS(G,s while Q not empty u = Q.deque() print u for all v in u.nbrs if not v.visited v.visited=true Q.enque(v) אתחול: Que Q = {} for all v in V v.visited = false s.visited = true Q.enque(s)

מסלולים קצרים ביותר עובדה: לכל קדקד v (פרט ל- s) קיים קדקד u כך שב-G יש צלע (u,v), ו: d(s,v) = d(s,u) + 1 הגדרה: אורך המסלול הקצר ביותר ב-G מ-s ל-u יסומן ב- d(s,u) עובדה: אם ב-G יש צלע (u,v) אזי: d(s,v) <= d(s,u) + 1 u v

BFS עם חשוב מרחקים while Q not empty u = Q.deque() for all v in u.nbrs if not v.visited v.visited=true v.d = u.d + 1 v.father = u Q.enque(v) אתחול: for all v in V v.visited = false v.d = infinity v.father = NULL s.visited = true s.d = 0 Que Q = {s}

נכונות BFS למה: אם d(s,u) < d(s,w) אזי u נכנס לתור לפני w. הוכחה: באינדוקציה על d=d(s,u) משפט: בסוף הריצה, לכל הקדקדים v: v.d = d(s,v) הוכחה: באינדוקציה על d=d(s,v)

הדפסת מסלול קצר ביותר משפט: אלגוריתם זה מדפיס מסלול קצר ביותר מ-s ל-v. path(v) מדפיס את המסלול הקצר ביותר מ-s ל-v. if v != s path(v.father) print v

חיפוש לעומק: DFS אתחול: for all v in V v.visited = false DFS(s) DFS(u): // starting with u u.visited = true print u for all v in u.nbrs if not v.visited DFS(v) // finished with u

מיון טופולוגי משפט: לגרף G יש מיון טופולוגי אםם אין בו מעגל. הוכחה: נבנה אלגוריתם! קלט: גרף G פלט: מיון טופולוגי של הקדקדים. הגדרה: מיון טופולוגי הינו סידור של הקדקדים כך שאם יש בגרף צלע (u,v) אזי u יופיע לפני v בסדר.

מיון טופולוגי עם DFS אתחול: DFS(u): u.visited = true for all v in V v.visited = false v.finished = false if not v.visited DFS(v) DFS(u): u.visited = true for all v in u.nbrs if not v.visited DFS(v) else if not v.finished exit “cycle exists” print u u.finished = true

נכונות למה: אם בתוך ריצת DFS(u) נתקלנו ב v שהינו למה: אם בתוך ריצת DFS(u) נתקלנו ב v שהינו visited and not finished אזי יש מסלול מ-v ל-u בגרף. משפט 1: אם אין בגרף מעגלים אזי האלגוריתם מדפיס מיון טופולוגי (בסדר הפוך). 2: אם יש בגרף מעגל אזי האלגוריתם אומר כך.