גרף קשיר – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Yonidebot (שיחה | תרומות)
מ בוט החלפות: תרגום מאפיין thumb;
BrobdingnaG (שיחה | תרומות)
מ צומת - מילה שמינה זכר
שורה 17:
==רכיב קשיר היטב==
[[תמונה:Scc.png|ממוזער|גרף שבו מסומנים הרכיבים הקשירים היטב]]
ב[[תורת הגרפים]], [[גרף מכוון]] נקרא '''קשיר היטב''' אם קיים מסלול מכל צומת שבו אל כל צומת אחרתאחר. עבור גרף מכוון כללי, ניתן תמיד לפרק את הגרף ל'''רכיבים קשירים היטב''' - תת גרפים מקסימליים של הגרף המקורי, שכל אחד מהם הוא גרף קשיר היטב בפני עצמו. פירוק זה מהווה חלוקה של הגרף למחלקות זרות - שני רכיבים שונים לא יכולים להכיל צומת משותף. יתר על כן, הגרף שכל צומת בו מייצג אחד מהרכיבים הקשירים היטב, ויש קשת מכוונת בין שני צמתים אם ורק אם יש קשת בין הרכיבים בגרף המקורי, הוא גרף מכוון חסר מעגלים (DAG).
 
לפירוק גרף לרכיבים קשירים היטב יש חשיבות רבה לעתים - ישנם [[אלגוריתם|אלגוריתמים]] שמתבססים על ההנחה שהגרף עליו הם פועלים הוא קשיר היטב, ולכן כדי להפעיל אותם על גרף כללי מפרקים אותו לרכיבים קשירים היטב, מפעילים את האלגוריתם על כל רכיב בנפרד, ואחר כך מאחדים את התוצאות.
שורה 25:
 
תיאור האלגוריתם:
#ראשית מפעילים את אלגוריתם חיפוש לעומק על <math>\ G</math>, ועבור כל צומת זוכרים את זמן היציאה ממנהממנו.
#כעת מחשבים את <math>\ G^T</math>. הדבר ניתן לביצוע בזמן לינארי.
#כעת מפעילים את אלגוריתם חיפוש לעומק שנית, הפעם על <math>\ G^T</math>. מתחילים את ריצת האלגוריתם מהצומת בעלתבעל זמן היציאה הגבוה ביותר מבין אלו שחושבו בשלב 1, וכאשר האלגוריתם מסיים את הסריקה שהחלה מהצומת הזוהזה ועליו לבחור צומת חדשהחדש, בוחרים את הצומת בעלתבעל זמן היציאה הגבוה ביותר מבין אלו שנשארו, וכן הלאה.
#תוצאת האלגוריתם שהופעל בשלב 3 היא [[יער (תורת הגרפים)|יער]]. כל אחד מהעצים שביער הוא אחד מהרכיבים הקשירים היטב שבגרף, וכולם מופיעים בו. מוציאים אותם כפלט, בהתאם למבוקש (תוצאות החיפוש לעומק בלבד אינן מספיקות, שכן הוא בוצע על הגרף המשוחלף).