עץ (תורת הגרפים)

שמאל|ממוזער|בעץ שבתמונה יש 6 צמתים, ולכן 5=6-1 קשתות. המסלול הפשוט היחיד שמחבר את צמתים 2 ו-6 הוא 2-4-5-6.
בתורת הגרפים, **עץ** הוא גרף קשיר ללא מעגלים. מלבד התפקיד של עצים בתורת הגרפים, כגרפים הקשירים המינימליים, ובטופולוגיה כמודל למרחב היפרבולי, עצים הנושאים מידע נוסף מהווים משפחה חשובה של מבני נתונים.

לעץ יש "ענפים" – קשתות הגרף, ו"עלים" – הצמתים הקיצוניים. עץ שבו בוחרים ומסמנים את אחד הקודקודים נקרא **עץ עם שורש**, ואז אפשר לראות אותו כצומח ועולה מן השורש הזה, כמו אילן יוחסין – לכל קודקוד פרט לשורש יש "הורה" (הקודקוד שבא מיד לפניו בדרך מן השורש) ו"בנים" (הקודקודים שבאים מיד אחריו כשמתרחקים מן השורש). בתמונה מוצג עץ שהשורש שלו הוא צומת 6, והעלים שלו הם הצמתים 1, 2 ו־3.

## הגדרות שקולות
יהי G גרף לא מכוון פשוט (ללא קשת מקודקוד לעצמו). כל התנאים הבאים יכולים לשמש כהגדרות לעץ:
* G הוא גרף קשיר ואין בו מעגל פשוט.
* ב-G אין מעגל פשוט, אך אם נוסיף לו קשת אחת, ייווצר בו מעגל פשוט.
* G הוא גרף קשיר, אך אם נגרע ממנו קשת אחת, יפסיק להיות קשיר.
* בין כל שני צמתים ב-G מקשר מסלול פשוט יחיד.

אם ל-G יש מספר סופי (שנסמנו n) של צמתים, אז התנאים דלעיל שקולים גם לתנאים:
* G הוא גרף קשיר ויש בו n-1 קשתות.
* ב-G אין מעגל פשוט, ויש בו n-1 קשתות.

## מושגים

*  – בגרפים מכוונים, שורש הוא צומת שקיים מסלול ממנו לכל צומת אחר בגרף.
*  – או עץ מכוון – גרף מכוון שגרף התשתית שלו הוא עץ, ושאת אחד מצמתיו ניתן לסמן כ**שורש העץ**, כך שיש מסלול מהשורש לכל צומת בעץ. בהינתן עץ לא מכוון, ניתן להפוך אותו לעץ מכוון על ידי בחירה שרירותית של אחד הצמתים בתור שורש, ובחירת הכיוון שעל הקשתות בצורה שתאפשר מעבר מהשורש לכל צומת בעץ.

*  – עץ שקיים בו שורש.

*  – מספר הקשתות במסלול בין השורש לצומת.

*  **ו** – צומת v הוא האב של w ו-w הוא הבן של v אם ורק אם ישנה קשת ביניהם ועומקו של  v קטן באחד מעומקו של w.
*  – בגרף מכוון, צומת שאין לו בנים. בגרף לא-מכוון, צומת שהדרגה שלו קטנה או שווה 1.
*  – צומת שיש לו בנים.
*  **ו** – צומת v הוא האב הקדמון של w ו-w הוא הצאצא של v אם ורק אם w הוא הבן של v או ש-w הוא בן של צאצא של v.

*  – מספר הקשתות במסלול הארוך ביותר בין הצומת לאחד הצאצאים שלו.
*  – מספר הקשתות בין השורש לבין העלה שנמצא במסלול הארוך ביותר.
*  – בהינתן עץ T, תת-עץ שלו הוא עץ שצמתיו הם צומת v וצאצאי  v מהעץ T כאשר v הוא שורשו. הקשתות של תת-העץ הם הקשתות מהעץ T שעוברות בין הצאצאים והקשתות בין הצאצאים לv.
* **יער** – גרף חסר מעגלים. ניתן לראות יער בתור איחוד זר של עצים (ומכאן שמו).
* **[[עץ פורש]]** – עץ המוכל בגרף G וכולל את כל הצמתים שלו.

### עץ בינארי

עץ ייקרא **עץ בינארי** אם הוא מקיים את **כל** התכונות הבאות:
* דרגת היציאה של כל קודקוד בעץ היא לכל היותר 2 (במילים אחרות: לכל צומת יש לא יותר משני צאצאים – צמתים שיש קשת ממנו אליהם).
* קיים קודקוד אחד ויחיד שדרגת הכניסה שלו היא 0 (קודקוד זה ייקרא **שורש העץ**).

## עצים פילוגנטיים

**[[עץ פילוגנטי]]** (מופשט) הוא עץ בינארי עם קשתות במשקל אי שלילי, המייצגות יחידות שעוברות שינויים יחד. עצים כאלה משמשים למידול תהליכים אבולוציוניים, כגון ההתפצלות הפילוגנטית של בעלי החיים, מיקרו-אבולוציה של נגיפי שפעת, כתבי יד המועתקים זה מזה עם שגיאות, וכדומה. עצים יכולים להיות מושרשים, במקרה שבו מניחים המצאות של ״אב קדמון״ משותף, או לא מושרשים. עץ מושרש שבו המרחק מהשורש לכלל העלים זהה נקרא עץ אולטרמטרי. 

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

ארכי הקשתות של העץ מגדירים מטריקה על קבוצת העלים שלו. בהינתן מטריקה על קבוצת קודקודים, **תנאי האדטיביות** (תנאי ארבעת הקודקודים Buneman, 1974) הוא תנאי הכרחי ומספיק לכך שהמטריקה ניתנת למימוש על ידי עץ פילוגנטי שאלו הם עליו: נדרש כי לכל ארבעה קודקודים i,j,k,l, מבין שלושת הסכומים d(i,j)+d(k,l), d(i,k)+d(j,l) ו-d(i,l)+d(j,k), המקסימום מתקבל לפחות פעמיים.

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

## ראו גם
* מבנה נתונים
* תרשים עץ (הסתברות)

## קישורים חיצוניים

* 
* 

## הערות שוליים

*