גרפים Flashcards
בגרף לא מכוון, מתי בטוח יש מעגל?
אם מספר הצלעות גדול או שווה למספר הקודקודים (זה לא אמ”מ)
dfs אלגוריתם וזמן הריצה + שימושים
אלגוריתם רקורסיבי, מתחילים בקודקוד אקראי ויוצאים ממנו לטיול. שימושי למציאת מעגל - יש מעגל בגרף אם קיימת קשת אחורה.
מציאת מסלול פשוט
עבור מיון טופולוגי מיון לינארי לגרף מכוון חסר מעגלים לפתרון בעיית הזמנים׳ כל פעם שמתגלה קשת אחורה להוסיף לראש הרשימה
BFS אלגוריתם וזמן ריצה + שימושים
אלגוריתם שעושה שימוש בתור, עבור כל קודקוד מסיימים לעבור על כל השכנים שלו.
האלגוריתם מחשב את המרחק הקצר מקודקוד שממנו יצאנו לכל קודקוד אחר. (כי כל פעם אני עושה צעד אחד).
או מציאת רכיב שקילות
הגדרה לעץ
גרף קשיר חסר מעגלים
הגדרה למסלול\מעגל אוילר
בגרף, מסלול\מעגל שעובר בכל צלע בדיוק פעם אחת.
משפט מתי יש מעגל אוילר + אלגוריתם למציאתו
בגרף לא מכוון וקשיר יש מעגל אוילר
אמ”מ הדרגה של כל קודקוד זוגית.
בגרף מכוון, דרגה זוגית = דרגת כניסה שווה לדרגת יציאה
בגרף לא מכוון וקשיר יש מסלול אוילר אמ”מ יש בו 0 או 2 קודקודים עם דרגה אי זוגית.
הגדרה למסלול\מעגל המילטון
שמבקר בכל הקודקודים פעם אחת בדיוק
משפט מתי יש מעגל המילטון + אלגוריתם למציאות
אם לכל 2 קודקודים שאינם שכנים סכום דרגותם גדול שוה ל מספר הקודקודים. לא טענת אמ”מ.
מיון טפולוגי
אפשר להריץ רק על גרף DAG - גרף מכוון חסר מעגלים.
נותן לנו סדר לינארי שבו לכל קשת
(u.v)
u מופיע לפני
v
האלגוריתם: נייצר רשימת צמתים ריקה. נבצע DFS ובריצצתו כאשר אנו הופכים צומת לשחור (כלומר עברנו על כל השכנים שלו) נכניס אותו לראש רשימת הצמתים.