כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

Σχετικά έγγραφα
מתמטיקה בדידה תרגול מס' 13

logn) = nlog. log(2n

תורישק :תורישקה תייעבב בוש ןייענ?t- t ל s- s מ לולסמ שי םאה 2

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

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

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

Logic and Set Theory for Comp. Sci.

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

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

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

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

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

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

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

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

חורף תש''ע פתרון בחינה סופית מועד א'

שאלה 1 V AB פתרון AB 30 R3 20 R

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

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

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

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

gcd 24,15 = 3 3 =

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

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

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

גרפים אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 הגדרה: מגן דוגמאות: זוגות לא סדורים כיוון שבקבוצה סדר לא חשוב.

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

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

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

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

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

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

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

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

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

אלגברה לינארית מטריצות מטריצות הפיכות

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

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

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

אלגוריתמים 1, סמסטר אביב 2017

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

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

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

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

{ : Halts on every input}

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

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

מושגים: קשיר. o בעל 1 קשתות בדיוק.

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

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

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

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

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

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

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

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

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

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

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

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

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

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

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

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

השאלות ידי מצביעים לילדים.

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

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

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

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

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

תורת הגרפים על פי הרצאות מאת פרופ' אהוד פרידגוט 11 ביולי 2010

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

שאלה 1 נתון: (AB = AC) ABC שאלה 2 ( ) נתון. באמצעות r ו-. α שאלה 3 הוכח:. AE + BE = CE שאלה 4 האלכסון (AB CD) ABCD תשובה: 14 ס"מ = CD.

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

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

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

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

יווקיינ לש תוביציה ןוירטירק

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

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

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

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

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

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

מבני נתונים מבחן מועד א' סמסטר חורף תשס"ו

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


ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

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

םינותנ ינבמ 3 ליגרתמ תולאשל המוד תולאש טסל תונורתפ תולאשה

Trie מאפשר חיפוש, הכנסה, הוצאה, ומציאת מינימום (לקסיקוגרפי) של מחרוזות.

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

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

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

1 סכום ישר של תת מרחבים

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

Transcript:

כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש. זמן: חיפוש לעומק הוא למעשה ביקור ראשון (preorder) אם הגרף הוא עץ בינרי. הרעיון: שימוש במחסנית,LO אלגוריתם רקורסיבי. Q תור, head(q) ראש התור. S מחסנית, top(s) ראש המחסנית. בשני האלגוריתמים נוספת לולאה חיצונית שקוראת להתחלת חיפוש מצומת or each nmarked S() / S() שעדיין לא ביקרנו בו: V do 1 2 S() 1. Visit & mark 2. Q insert() 3. While Q do אלגוריתם :S 3.1 or all nmarked w adj to head(q) do 3.1.1 Visit & mark w 3.1.2 Q insert(w) 3.2 Pop(Q) :S() שתי מטרות עיקריות: סריקה שיטתית של הגרף. מציאת מסלולים קצרים..1.2 3 4

הדגמת פעולת התור: :S() 5 6 7 :S() S() 1.Visit & mark 2. S psh() 3. While S do 8 אלגוריתם :S 3.1 or all nmarked w adj to top(s) do 3.1.1 Visit & mark w 3.1.2 S psh(w) 3.2 Pop(S) S() 1. Visit & mark אלגוריתם רקורסיבי: 2. or all nmarked w dj[] do S(w)

עצים ביער ה S ) (שני :S() הדגמת פעולת המחסנית: 9 10 אחד ביער ה S ) (עץ :S() :S() 11 12

סיווג הקשתות בגרף ע"י S גרף לא מכוון: יער ה( S( : קשת בעץ קשת T אם היא קשת מקודקוד (,) סיימנו את החיפוש ממנו במחסנית), לקודקוד היא קשת בעץ שמסומן ועדיין לא (כלומר נמצא שמגלים אותו בפעם הראשונה (עדיין לא היה במחסנית). קשת אחורה קשת (,) היא קשת אחורה אם היא קשת מקודקוד לאב קדמון שלו בעץ ה S (כלומר מקודקוד מסומן שעדיין לא סיימנו איתו לקודקוד מסומן שעדיין לא סיימנו איתו). למה: בביצוע S על גרף לא מכוון, כל קשת של אחורה. היא או קשת בעץ או קשת 13 14 הוכחה: תהי (,) קשת כלשהי של הגרף. נניח בה"כ שבביצוע ב לפני שביקרנו ב. על S לפני שסיימנו עם כי. dj[] קודם ביקרנו לכן סימנו קודם עם גרף מכוון: יער ה S : כעת אם ביקרנו בקשת,(,) לראשונה, בכיוון מ ל אזי (,) היא קשת בעץ edge.tree ואם ביקרנו בקשת,(,) לראשונה, בכיוון מ ל אזי (,) ה אי קשת אחורה edge,ack מכיוון שעדיין לא סיימנו עם שדרכו הגענו בפעם הראשונה ל.(,) 15 16

ז( קשת קדימה 17 קשת (,) קדימה אם היא קשת מאב קדמון בעץ ה S. לצאצא שלו S היא קשת בעץ ה קשת לרוחב (הצידה) קשת בין שני תתי עצים או בין שני עצים שונים ביער ה S. המאפיין קשתות (,) אלו הוא שהן קשתות מקודקוד מסומן החיפוש ממנו למחסנית). ההבדל הוא שקשת לקודקוד שכבר הסתיים (ולכן הוא כבר מסומן ומחוץ (,) היא קשת קדימה אם חיפוש ה S גילה קודם את קודקוד לפני הגילוי של קודוקד. לעומת זאת שקשת אם בחיפוש ה S ובהמשך ה S גילינו את. (,) היא קשת לרוחב קודם גילינו את 18 לסיכום סוגי קשתות ביער ה S : גרף לא מכוון: כל קשת שמופיעה בגרף או:.1.2 גרף מכוון: תופיע בתור קשת בעץ. היא פונה אחורה בעץ. כל קשת שמופיעה בגרף או:.1.2.3.4 תופיע בתור קשת בעץ. קשת קדימה. קשת אחורה. קשת לרוחב (הצידה). היתרון בזיהוי הקשתות: אפשר לבדוק האם הגרף מכיל מעגל. מסקנה: גרף לא מכוון הוא cyclic ללא מעגלים "א יער) S כלשהו שלו. הוכחה: ( ) אם ורק אם אין ברור שקשת אחורה קשתות אחורה ב ( ) מעגל. כיוון שאם אין קשתות אחורה אזי כל הקשתות הן Tree dge ע"פ הלמה הקודמת. כיצד נמצא מעגל בגרף כלשהו? האם קשת קדימה יוצרת בעיה? האם תמיד יש מעגל כשיש קשת אחורה? משפט: קיים בגרף מעגל אם"ם לכל S של יש קשת אחורה (לכל סדר מתחילים את הסריקה) הוכחה: פרושו לא משנה באיזה ולכן הגרף הוא יער ללא מעגלים. ( ) אחורה: מיידי, המעגל קיים (,) נניח קשת 19 20

( ) יהי ה נניח שקיים מעגל 0.0 1,..., k,, j S k) j 0 ( הקודקוד הראשון שחיפוש מגיע אליו. היות וזה מעגל אז יש j לכל אחד מהקדקודים במעגל, מסלול מ ולכן במהלך S( j ) נגיע לכל הקודקודים במעגל. לכן לפני שנצא מ( S( j אחד מ. i j, i בתת העץ של j, j+ הקשת ) שאלה: j כלומר, ולכן הקשת ניגע בכל כל אחד מהם ( j 1, j ) ( 1 אלגוריתם לזיהוי מעגל בגרף: נוסיף דגל פעילות לכל קודקוד שפירושו: היא קשת אחורה, מש"ל. או כיצד ניתן לזהות שמדובר בקשת אחורה ולא בקשת הצידה? olor[]=white עדיין לא טופל, עדיין לא התבצעה הקריאה.S() olor[]=ray כלומר סומן ועדיין החיפוש לא הסתיים ממנו (כלומר עדיין ברקורסיה). olor[]=lack ב הסתיים החיפוש שהחל S() ( יצא מהמחסנית). בשלב הראשון יש אתחול של כל הקדקודים כלא פעילים, כלומר כולם.White בשלב השני ישנה הלולאה החיצונית: or each nmarked S() V do 21 22 האלגוריתם: S() 1. olor[] = ray 2. or each w dj[] do 2.1. if olor[w] = White then 2.1.1. S(w) 2.2. else if olor[w] = ray קיים מעגל בגרף.2.2.1 then print זמן הריצה: 3. olor[] = lack O ( V + ) תרגיל: הנ"ל כך? O(V ) ההבחנה: כיצד אפשר לשפר את האלגוריתם שבגרף לא מכוון בגרף מכוון זמן הריצה יהיה יש לבדוק את כל הקשתות במקרה הגרוע כיוון שבגרף מכוון V קשתות לא יוצרות בהכרח מעגל! ואילו בגרף לא מכוון כדי שיווצר מעגל יש לבדוק לכל היותר V קשתות! ולכן ניתן לסיים את האלגוריתם לאחר שעברנו על V קשתות לכל היותר (או שיש פחות קשתות וגילינו מעגל, או שאין מעגל כלל). 23 24

אלגוריתם לסיווג הקשתות בגרף: נוסיף לכל קודקוד משתנה המציין את הגילוי זמן של הקודקוד בפעם V (discoery time) הראשונה במהלך ה S : הוא מספר בין 1 ל שמציין את d[] סדר הביקור בקדקודים במהלך הסריקה. 1 2 4 האלגוריתם: יש לבצע (,) על הגרף ועל כל קשת S שעוברים במהלך החיפוש יש לבדוק את דגל d הפעילות (color) הקדקודים ו בהתאם: ואת זמן הגילוי של קשת (,) בעץ T אם אפור ו לבן. קשת (,) אפור. אחורה אם אפור ו קשת (,) קדימה אם אפור ו שחור וגם.d[]<d[] קשת (,) לרוחב אם אפור ו שחור וגם.d[]>d[] 3 5 25 26 1. or each V do olor[]! White 2. time! 1 or each V do if olor[] = White then S() 27 אתחול: זמן: O(V) לולאה חיצונית: אלגוריתם הסיווג: במבנה ה S הדרושות. זמן הריצה הכללי: הרגיל עם התוספות O ( V + ) S() 1. olor[] = ray 2. d[]! time 3. time! time + 1 4. or each dj[] do 4.1. if olor[] = White then (,) קשת בע!.4.1.1 4.1.2. S() 4.2. else if olor[] = ray then (,) קשת אחורה.4.2.1 4.3. else if olor[] = lack then 4.3.1. if d[]<d[] then (,) קשת קדימה.4.3.1.1 4.3.2. else קשת לרוחב (,) 5. olor[] = lack 28

תרגיל: אוילר. נתון גרף (לא מכוון) שקיים בו מעגל יש לכתוב אלגוריתם המוצא (=המדפיס) את המעגל. פתרון: האלגוריתם מבוסס על :S נתחיל מעגל. S מקודקוד כלשהו עד שייסגר """" כיוון שלא עברנו על כל הקשתות אנו חוזרים אחורה ברשימה לקודקוד שממנו יוצאות קשתות שעדיין לא עברנו עליהן ומנסים ממנו ליצור מעגל נוסף שיכנס לתוך הרשימה הנוצרת. ב נחזור צעד אחד אחורה לקודקוד : וכך הלאה: """" סגרנו מעגל, ולכן נחזור אחורה ברשימה לקודקוד ממנו יש קשתות שעדיין לא ביקרנו בהן. 29 30 """"""" """"""" המעגל: """"""""" """" 31 32

האלגוריתם: S_eler() 1. for each nmarked edge (, ) 1.1. do mark edge (, ) 1.2. S_eler() 2. insert in front of a linked list end S_eler 3. print the linked list זמן: ) Θ( V + 33