תורת הגרפים
דוגמה:
כש"קוראים" מפה רוצים אפשר לשאול מספר שאלות: האם ניתן להגיע ממקום u למקום v? האם יש יותר מדרך אחת להגיע ממקום u למקום v? מה הדרך הקצרה ביותר ממקום u למקום v ? הפתרון לשאלה 1 תלוי רק בשאלה "האם יש רצף של כבישים בין מקום u למקום v?" הפתרון אינו תלוי באורך הכבישים, בשיפוע וכדומה. כנ"ל שאלה 2. הפתרון לשאלה 3 כן תלוי באורך של הכבישים. רוצים דרך מתמטית לתאר רק את הנתונים שנחוצים לפתרון הבעיה, מבלי להוסיף פרטים מיותרים.
הגדרה) :גרף) תהי V קבוצה סופית לא ריקה, ותהי E קבוצה של זוגות איברים שונים מתוך V. הזוג G=(V,E) נקרא גרף לא מכוון אם E קבוצה של זוגות לא סדורים. הזוג G=(V,E) נקרא גרף מכוון אם E קבוצה של זוגות סדורים. איברי הקבוצה V נקראים קודקודים (או צמתים). איברי הקבוצה E נקראים צלעות (בגרף לא מכוון) או קשתות (בגרף מכוון). סימונים: במקרה של גרף לא מכוון נסמן צלע בין הקודקודים u,v על ידי {u,v}. במקרה של גרף מכוון נסמן קשת מקודקוד u לקדקוד v על ידי (u,v).
מפה←גרף לא מכוון E (צלעות) : V (קודקודים ): {אוניברסיטת חיפה , חוף הכרמל} {אוניברסיטת חיפה , מרכז זיו} {אוניברסיטת חיפה , מרכז חורב} {מרכז זיו, מרכזית המפרץ} {מרכז חורב, חוף הכרמל} {מרכז חורב, מרכז הכרמל} {מרכז הכרמל, תחנה מרכזית חיפה} V (קודקודים ): אוניברסיטת חיפה תחנה מרכזית חיפה מרכזית המפרץ מרכז זיו מרכז חורב מרכז הכרמל חוף הכרמל מרכזית המפרץ מרכז זיו אוניברסיטת חיפה תחנה מרכזית חיפה מרכז הכרמל מרכז חורב חוף הכרמל
סוגים שונים של גרפים: גרף פשוט – גרף ללא לולאות, שבין כל שני קודקודים יש לכל היותר צלע אחת. מולטי גרף- הוא גרף לא מכוון שבו יתכנו כמה צלעות בין אותו זוג קודקודים. פסאודו גרף- הוא מולטי גרף שאפשר שיהיו בו לולאות. כאשר לולאה היא צלע מקדקוד לעצמו ({u,u}).
הגדרה) :שכנים בגרף לא מכוון) יהי G=(V,E) גרף לא מכוון. נאמר ששני קודקודים u,v הם שכנים אם קיימת צלע ביןu ל v ({u,v}E). סימון: u))μ קבוצת כל השכנים של הקדקוד u . u)={v|{u,v}E})μ דוגמה: u e a b c d u)={e,a,b})μ
הגדרה) :שכנים בגרף מכוון) יהי G=(V,E) גרף מכוון. נאמר שv שכן של u אם קיימת קשת בין u ל v (u,v)E)). סימון: u))μ קבוצת כל השכנים של קדקוד u . u)={v|(u,v)E})μ b דוגמה: a c d u)={e, b})μ e u
שכנים של קבוצה S)={v|u S, {u,v}E})μ b a c S={b,c} d S)={u,b,c,d})μ יהי G=(V,E) גרף לא מכוון (מכוון), תהי S תת קבוצה של V (SV) . אזי : S)={v|u S, {u,v}E})μ היא קבוצת כל השכנים של הקודקודים בקבוצה S. דוגמה: b a c S={b,c} d S)={u,b,c,d})μ e u הערה: מגדירים סביבה של קבוצה בגרף מכוון באופן דומה (צריך להתחשב בכך שיש קשתות במקום צלעות).
דרגה של קודקוד בגרף לא מכוון הגדרה: יהי G=(V,E) גרף לא מכוון. הדרגה של קדקוד uV היא מספר הצלעות השונות שמכילות את u. סימון: degree(u)- הדרגה של u. דוגמה: u e a b c d u)=3)degree
דרגה של קודקוד בגרף מכוון הגדרה: יהי G=(V,E) גרף מכוון. דרגת הכניסה של קדקוד uV היא מספר הצלעות השונות בין קודקודים ב V ל u. סימון: indegree(u)- דרגת הכניסה של u. דרגת היציאה של קדקוד uV היא מספר הצלעות השונות בין u לקודקודים ב V. סימון: outdegree(u)- דרגת היציאה של u. הדרגה של של קדקוד uV היא דרגת היציאה של u + דרגת הכניסה של u. סימון: degree(u)- הדרגה של u (degree(u)= indegree(u)+ outdegree(u)).
דוגמה) :דרגות בגרף מכוון) u e a b c d u)=1)indegree u)=2)outdegree u)=1+2=3)degree(u)=indegree(u)+outdegree
משפט (1): יהי G=(V,E) גרף לא מכוון אזי הוכחה: סיכום של כל הדרגות של הקודקודים בגרף שקול לספירת כל צלע פעמיים: כל צלע בין שני קודקודים לכן היא נספרת פעם אחת בחישוב הדרגה של קדקוד אחד ופעם שנייה בחישוב הדרגה של הקדקוד שני. u e a b c d מקרה פרטי:
מסקנה: יהי G=(V,E) גרף לא מכוון אזי יש בגרף מספר זוגי של קודקודים בעלי דרגה אי זוגית. הוכחה: נניח לצורך סתירה שיש בגרף מספר אי זוגי של קודקודים בעלי דרגה אי זוגית אזי הסכום יהיה אי זוגי. על פי משפט (1) לכן הסכום הוא זוגי בסתירה לכך שעל פי ההנחה קיבלנו שהסכום אי זוגי.
הגדרה: (מסלול) יהי G=(V,E) גרף לא מכוון. סדרה של קודקודים (v1,…,vm)כך שלכל i{1,2,…,m-1} מתקיים {vi,vi+1}E נקרא מסלול (או מסילה). אם כל הקודקודים במסלול שונים זה מזה אזי המסלול נקרא מסלול פשוט. אם v1=vm אז המסלול נקרא מעגל. אורך המסלול (v1,…,vm) שווה m-1 (מספר הצלעות).
יהי G=(V,E) גרף לא מכוון, ויהיו u,v שני קודקודים ב- V אזי המרחק בין u ל- v הוא אורך המסלול הקצר ביותר בין u ל- v. סימון: dG (u,v)- המרחק בין u ל- v . כאשר אין מסלול בין u לv אזי dG (u,v)=∞ . דוגמה: u e a b c d dG(e,d)=2 הגדרה : המרחק הגדול ביותר בין שני קודקודים בגרף נקרא קוטר.
טענה:יהי G=(V,E) גרף לא מכוון ויהיו u,v,w קודקודים בגרף dG(u,v)≥0 ו dG(u,v)=0 אם ורק אם u=v. dG(u,v)= dG(v,u) dG(u,v)+ dG(v,w)≥ dG(u,w) הערה: פונקציה שמקיימת תנאים אלו נקראת מטריקה. הוכחה: עלפי הגדרה אורכו של מסלול הוא 0 אם ורק אם הוא מכיל קדקוד אחד (אם הוא מכיל יותר מקדקוד אחד אורכו גדול או שווה 1). הגרף לא מכוון... אם לא קיים מסלול בין u ל v או בין v ל w אז הצד השמאלי הוא ∞. אם קיימים מסלולים בין u ל v ובין v ל w אז החיבור שלהם הוא מסלול בין u ל w לכן המסלול קצר ביותר בין u ל w יהי קצר לפחות כמו מסלול שמצאנו אחרת הוא לא הקצר ביותר.
הגדרה: (גרף קשיר) u e a b c d u e a b c d b b c d c d u u גרף לא מכוון נקרא קשיר אם קיים מסלול בין כל שני קדקדים בגרף. קשיר u e a b c d לא קשיר u e a b c d גרף מכוון נקרא קשיר חזק אם לכל שני קדקדים בגרף u,v קיים מסלול בין u ל- v וקיים מסלול בין v ל- u. b קשיר חזק b c d לא קשיר חזק c d u u
יחס שקילות מעל גרף לא מכוון. יהי G=(V,E) גרף לא מכוון. קודקודים u,v בגרף נקראים שקולים אם יש מסלול מ- u ל- v. הערה: כל קדקוד שקול לעצמו. זהו יחס שקילות מעל קודקודי הגרף בדוק. יחס שקילות זה משרה חלוקה של קודקודי הגרף למחלקות שקילות. אנו נקרא למחלקות השקילות רכיבי קשירות. דוגמה: A2 u e a b c d A1
יחס שקילות מעל גרף מכוון. יהי G=(V,E) גרף מכוון. קודקודים u,v בגרף נקראים שקולים אם יש מסלול מ- u ל- v וכן מ v ל- u. הערה: כל קדקוד שקול לעצמו. זהו יחס שקילות מעל קודקודי הגרף בדוק. יחס שקילות משרה חלוקה של קודקודי הגרף למחלקות שקילות. אנו נקרא למחלקות השקילות רכיבי קשירות חזקה. דוגמה: A2 b A1 a c d A3 e u