גרף (תורת הגרפים)

בתורת הגרפים, גרף הוא ייצוג מופשט של קבוצה של אובייקטים, כאשר כל זוג אובייקטים בקבוצה עשויים להיות מקושרים זה לזה. האובייקטים הניתנים לקישור מכונים קודקודים או צמתים (באנגלית: vertex), וקבוצת הקודקודים מסומנת באות V {\displaystyle V} . הקישורים בין הקודקודים מכונים צלעות או קשתות (באנגלית: edge), וקבוצת הצלעות מסומנת באות E {\displaystyle E} . מתקיים כי קבוצת הצלעות מקיימת: E ⊆ V × V {\displaystyle E\subseteq V\times V} , כלומר: כל צלע היא זוג הקודקודים, אותם היא מקשרת (ללא חשיבות לסדר, נהוג לייצג באמצעות קבוצה). גרף, אשר קבוצת הקודקודים שלו היא V {\displaystyle V} וקבוצת הצלעות שלו היא E {\displaystyle E} מסומן באופן הבא: G = ( V , E ) {\displaystyle G=(V,E)} . גרפים זכו למחקר תאורטי נרחב במסגרת תורת הגרפים. הם משמשים גם לפתרון בעיות מעשיות, כגון בעיית הסוכן הנוסע, העוסקת בסוכן נוסע, שבמסגרת תפקידו עליו לעבור בערים רבות, המקושרות ביניהן ברשת כבישים, ויש למצוא את המסלול הקצר ביותר אשר מבקר בכל עיר פעם אחת בדיוק. בבעיה זו, הצמתים בגרף מייצגים את הערים, והקשתות מייצגות את הכבישים המקשרים בין הערים. גרף בלתי מכוון ולעיתים בפשטות גרף הוא קבוצה של צמתים וקבוצה של קשתות. כל קשת מקשרת בין שני צמתים. באופן פורמלי, גרף בלתי מכוון G {\displaystyle G} מוגדר על ידי ( V , E ) {\displaystyle (V,E)} כאשר V {\displaystyle V} היא קבוצת הצמתים ו־ E ⊆ { { u , v } ∣ u , v ∈ V } {\displaystyle E\subseteq \{\{u,v\}\mid u,v\in V\}} היא קבוצת הקשתות. ניתן לראות בגרפים בלתי מכוונים מקרה פרטי של גרפים מכוונים (בהם עבור כל זוג צמתים u {\displaystyle u} ו־ v {\displaystyle v} , הקשתות מ־ u {\displaystyle u} ל־ v {\displaystyle v} ומ־ v {\displaystyle v} ל־ u {\displaystyle u} קיימות שתיהן, או חסרות שתיהן). גרף מכוון הוא קבוצה של צמתים (גם: קודקודים או נקודות) וקבוצה של קשתות מכוונות. כאשר ישנה משמעות לכיוונה של קשת מכוונת – היא יוצאת מצומת אחד ונכנסת לצומת אחר. באופן פורמלי, גרף מכוון D {\displaystyle D} מוגדר על ידי ( V , E ) {\displaystyle (V,E)} כאשר V {\displaystyle V} היא קבוצת הצמתים ו־ E ⊆ V × V {\displaystyle E\subseteq V\times V} היא קבוצת הקשתות. קשת e = ( u , v ) ∈ E {\displaystyle e=(u,v)\in E} יוצאת מ־ u {\displaystyle u} ונכנסת ל־ v {\displaystyle v} . גרף תשתית של גרף מכוון הוא גרף בלתי מכוון, אשר מכיל אותה קבוצת צמתים כמו הגרף המכוון, ומכיל את הקשתות בין זוגות הצמתים אשר היו ביניהם קשתות בגרף המקורי (פורמלית, אם D = ( V , E ) {\displaystyle D=(V,E)} ‎ הוא גרף מכוון אז D ′ = ( V , { { u , v } | ( u , v ) ∈ E } ) {\displaystyle D'=(V,\{\{u,v\}|(u,v)\in E\})} הוא גרף התשתית של D {\displaystyle D} ). גרף מעורב הוא קבוצה של צמתים, קבוצה של קשתות מכוונות וקבוצה של קשתות לא מכוונות. כל קשת, מכוונת או לא מכוונת, מקשרת בין שני צמתים. לולאה (גם: חוג עצמי) היא קשת (או קשת מכוונת) שמקשרת צומת עם עצמו. גרף פשוט הוא גרף לא מכוון ללא לולאות וללא קשתות מקבילות. גרף סופי הוא גרף שקבוצת הצמתים שלו סופית. גרף אינסופי הוא גרף שקבוצת הצמתים שלו היא אינסופית. גרף ממושקל הוא גרף שבו לכל קשת יש ערך, לרוב מספרי, המכונה משקל. באופן פורמלי, גרף ממושקל בלתי מכוון הוא שלשה ( V , E , w ) {\displaystyle (V,E,w)} , כאשר V {\displaystyle V} ו־ E {\displaystyle E} מוגדרים כמקודם, ו־ w {\displaystyle w} היא פונקציית המשקל מ־ E {\displaystyle E} לקבוצה כלשהי (למשל R {\displaystyle \mathbb {R} } ). גרף בלתי מתויג הוא גרף שבו לא ניתן להבחין בין הצמתים. כלומר, אין אף מזהה ייחודי (כגון שם או מספר) לצומת בגרף. תת־גרף G ′ = ( V ′ , E ′ ) {\displaystyle G'=\left(V',E'\right)} של גרף G = ( V , E ) {\displaystyle G=\left(V,E\right)} הוא גרף המורכב משתי תתי־קבוצות של צומתי וקשתות G, דהיינו: V ′ ⊆ V {\displaystyle V'\subseteq V} וכן E ′ ⊆ E {\displaystyle E'\subseteq E} כך שהקשתות E ′ {\displaystyle E'} נפרשות על ידי V ′ {\displaystyle V'} . או במילים אחרות: אם G = ( V , E ) {\displaystyle G=\left(V,E\right)} ו־ H = ( W , F ) {\displaystyle H=\left(W,F\right)} הם שני גרפים, אזי H {\displaystyle H} הוא תת־גרף של G {\displaystyle G} אם: W ⊆ V {\displaystyle W\subseteq V} וגם F ⊆ E {\displaystyle F\subseteq E} . תת־גרף H {\displaystyle H} של גרף G {\displaystyle G} הוא תת־גרף מושרה אם לכל זוג של צמתים x {\displaystyle x} ו־ y {\displaystyle y} ב־ H {\displaystyle H} , ‏ x y {\displaystyle xy} היא קשת של H {\displaystyle H} אם ורק אם היא קשת של G {\displaystyle G} . במילים אחרות, H {\displaystyle H} הוא תת־גרף מושרה של G {\displaystyle G} אם הוא מכיל את כל הקשתות של G {\displaystyle G} המתאימות לצמתים של H {\displaystyle H} ולא מכיל אף קשת נוספת. גרף מעגל מבנה נתונים גרף, באתר MathWorld (באנגלית)