2 suffix tree: definition suffix tree t על מחרוזת s שגודלה n, הוא עץ מכוון...

38

Post on 20-Dec-2015

225 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית
Page 2: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

2

Suffix Tree: Definition

Suffix tree T על מחרוזת S שגודלה n עם עץ מכוון , הוא .n עד 1 עלים ממוספרים מ-nבדיוק

לכל צומת פנימית )חוץ מהשורש( יש לפחות שני ילדים

.S כל קשת מייצגת תת מחרוזת לא ריקה של אין שתי קשתות היוצאות מאותה צומת שתת המחרוזת שהם

מייצגות מתחילה באותה אות.

, חיבור כל המחרוזות המיוצגות ע”י iלכל עלה תכונה עיקרית: המתחילה S, מהווה סיפא של iקשת במסלול מהשורש ל-

.iבמקום ה-

Page 3: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

3

דוגמא

Suffix tree למלה a w y a w x a w x z 21 43 5 6 7 98 10

z

z

6

9

x z

aw

x

8

yawxawxz

3

w

x

awxz

w a

ya

wx

aw

xz

2

5

ya

wx

aw

xz

1

xz

aw

x

4

7

z z

10

Page 4: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

4

דוגמאות לשימושים

n באורך T במחרוזת m באורך Pחיפוש תבנית מציאת תת מחרוזת משותפת מקסימלית לקבוצת מחרוזות

DNAמציאת זיהומים ושיבושים ב –

Page 5: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

5

T בטקסט Pדוגמא למציאת תבנית

a w y a w x בתוך awמצא את כל ההופעות, אם ישנן, של a w x z

z

z

6

9x

z

aw

x

8

y

awxawxz

3

w

x

awxz

w a

ya

wx

aw

xz

2

5

ya

wx

aw

xz

1

xz

aw

x

4

7

z z

10

21 43 5 6 7 98 10

Page 6: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

6

z

z

6

9

xz

aw

x

8

y

awxawxz

3

w

x

awxz

w a

ya

wx

aw

xz2

5

ya

wx

aw

xz

1

xz

aw

x

4

7

z z

10

דוגמא - המשך

Page 7: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

7

דוגמא - המשך

z

z

6

9

xz

aw

x

8

y

awxawxz

3

w

x

awxz

w a

ya

wx

aw

xz

2

5

ya

wx

aw

xz

1

xz

aw

x

4

7

z z

10

Page 8: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

8

דוגמא - סוף

z

z

6

9

xz

aw

x

8

y

awxawxz

3

w

x

awxz

w a

ya

wx

aw

xz

2

5

ya

wx

aw

xz

1

xz

aw

x

4

7

z z

10

: אלה הם בדיוק המיקומים של 7,4,1הפלט יהיה P - ב T

Page 9: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

9

אינטואיציה לנכונות השיטה

, אז היא חייבת להיות התחלה T מהווה תת מחרוזת של Pאם Tשל סיפא כלשהי של

singing in היא ההתחלה של הסיפא singingלדוגמא: –the rain של המחרוזת I’m singing in the rain

היא בהכרח חייבת להיות T היא תת מחרוזת של Pלכן אם זהה למסלול היוצא מהשורש לאחד העלים, לפי הגדרתו של

suffix Tree יהיו בדיוק מספרי העלים שהמסלול T ב – Pהמיקומים של

מסתיים בהם.Pמהשורש המתחיל ב -

Page 10: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

10

בתוך Pחישובי זמן ומקום לפעולת זיהוי T

זמן בניית העץ, ועוד

אותם נשווה עם מסלול היוצא מהשורש p מספר התווים ב – בעץ , ועוד

בתת העץ כדי למצוא את מספרי העלים )ניתן DFS זמן סיור .O(n)להכין מראש עבור כל ההרצה(, בכל מקרה לא יותר מ –

זמן הריצה תלוי במהירות בה ניתן לבנות את העץ

Page 11: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

11

אלגוריתם נאיבי לבניית עץ סייפות

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

בפירוט

.i עד 1 מ – Sהביניים המכיל את כל הסייפות של את עץ - נסמן ב

של העץ, אשר 1 מכיל קשת יחידה מהשורש אל העלה מספר 1..Sמתארת את המחרוזת $

העץ נבנה מתוך העץ ע"י מציאת המסלול הארוך ביותר 2.המתחיל מהשורש, אשר התווית שעליו מתארת רישא של

)מציאת מסלול זה נעשה ע”י השוואות תו תו(.

]...1[ nS

]...[ niSni 2

iN

1N

1iN

]$...1[ niS iN

Page 12: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

12

אלגוריתם נאיבי - המשך

( אזי נפצל את הקשת u,vאם סיום המסלול הוא בתוך קשת )3.לשתיים ע”י הוספת צומת חדשה מיד לאחר התו האחרון

. שתי הקשתות שהתקבלו ייצגו wהזהה בהשוואות, נסמנה ב את שארית הקשת - והסיפא החדשה.

, נוסיף בן עלה נוסף לצומת wאם סיום המסלול הוא בצומת 4.זו, שהקשת החדשה היוצאת ממנו מתארת את יתרת הסיפא,

שלא נכללה במסלול.

Page 13: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

13

דוגמא לאלגוריתם הנאיבי

S=awyawxawxz הדגמת האלגוריתם הנאיבי למחרוזת

11

23

1N 3N

Page 14: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

14

דוגמא - המשך

12

3

4N

4

S=awyawxawxz

Page 15: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

15

דוגמא - המשך

76

7N

וכו'...

Page 16: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

16

מטרה: אלגוריתם בניה לינארי

:E. Ukkonenיתרונות האלגוריתם של קל להבנה ולמימוש–On-Lineאלגוריתם : –

בניית העץ נעשית תו תו לפי סדר ההכנסה, ובכל שלב יש בידנו Suffix Tree .המתאים למחרוזת שהוכנסה עד כה

Page 17: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

17

Ukkonenהאלגוריתם של

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

.מרומז

תיאור כללי של האלגוריתם:

, העץ i+1, כך שבפאזה ה – פאזות nהאלגוריתם יחולק ל – נבנה מתוך העץ

, הרחבה אחת לכל הרחבות i+1 נחלקת ל – i+1הפאזה ה – סיפא של

1iT

iT

]1...1[ iS

]...1[ iSiT

iT

Page 18: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

18

High-level Ukkonen algorithm

1. Construct tree 2. For i from 1 to n-1 do3. begin {phase i+1}4. for j from 1 to i+15. begin {extention j}6. Find the end of the path from the root labeled 7. in the current tree. If needed, extand that 8. path by adding character ,9. thus assuring that string is in the tree.10. end11.end

1T

]...[ ijS

)1( iS]1...[ ijS

Page 19: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

19

הרחבות

]...[נסמן ijS 1...[להיות סיפא של[ iS אזי בהרחבה ה , j כאשר נמצא את סופה של בעץ הנוכחי, נרחיב את כך ,שהסיפא תהיה בתוך העץ.

)1( iS

Page 20: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

20

סוגי ההרחבות

הנוכחי המסלול מסתיים בעלה. לעדכון סוג ראשון: בעץ העץ בהרחבה זו יש להוסיף את התו לסוף התווית של

הקשת האחרונה בדרך לעלה זה

)1( iS

אין מסלול המתחיל מסופה של עם התו , סוג שני:אבל קיים לפחות מסלול אחד שמתחיל בסופה של )עם תו

אחר(. במקרה זה חובה ליצור קשת חדשה המובילה לעלה , שהתווית שלה היא התו . אם הסתיים בתוך קשת,

. jיש צורך אף ליצור צומת חדשה . העלה החדש יסומן ב-

)1( iS

)1( iS

קיים מסלול בעץ המתחיל מסופה של וממשיך סוג שלישי :בתו ץ . במקרה זה לא נעשה דבר.

)1( iS

Page 21: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

דוגמא לסוגי ההרחבות ונניח שכבר נבנה, S=axabxbתהי

:5T

1 3

4

2

6Tנתבונן בהרחבות שהתבצעו עבור

1 3

4

25

1הרחבה לפי סוג 2הרחבה לפי סוג 3הרחבה לפי סוג

5

Page 22: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

22

אם נבצע את חיפוש הסיפא בצורה נאיבית , של פאזה תיקח j ב זמן, אז כל הרחבה

זמן, ובנית העץ תיקח זמן, לכן בנית תקח

)(O

1i)1( jiO 1iT)( 2iO

nT)( 3nO

פתרוןהחיפוש שלב את לבצע כיצד נראה בצורה הרחבה בכל הסיפא של פשוטים, טריקים הוספת עם מהירה, שכל אחד לבדו אינו מספיק, אך יחד -

הם עושים את העבודה .

בעיה

Page 23: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

23

Suffix link

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

suffix link

xxv

xv)(vs

)(vs

מקרה מיוחד מ - הולכת לשורש של העץ. suffix linkאם אזי ה - v

Page 24: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

24

למה

אם צומת פנימית חדשה עם תווית מסלול נוספת לעץ ה אחד jבהרחבה קורה אזי כלשהי, פאזה של

מהשניים:

של 1 פנימית צומת בתוך כבר מסתיימת המסלול תווית .העץ, או

של -j+1. תיווצר צומת פנימית בסוף המסלול בהרחבה ה 2אותה הפאזה.

vx1i

בין הצמתים כאשר Suffix linkחיבור נוסיף לאלגוריתם הבנייההן נוצרות

Page 25: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

25

אפשרי בעץsuffix linkדוגמא ל

S=cacao

שתוויתה הפנימית החמישית, caהצומת בפאזה נוצרת מספר מספר 3בהרחבה בהרחבה ניצור 4. פאזה, אותה של

.aאת הצומת שתוויתה של הפאזה החמישית, לצומת החדשה 3+1בסיום ההרחבה ה a לצומת שתוויתהsuffix - link תהיה caשנוצרה עם התווית

Page 26: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

26

מסקנת ביניים

של באלגוריתם Ukkonen ,חדשה ל פנימית צומת כל יהיה הבאה suffix linkשנוצרת ההרחבה בסוף ממנה

יש תווית מסלול v עבור כל עץ , אם לצומת פנימית בתור. אזי קיימת צומת ב- עם תווית מסלול

iTx)(vs

iT

Page 27: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

27

להאצת הקצב Suffix linkשימוש ב –

נתאר תחילה את שתי ההרחבות הראשונות בפאזה ה - :

. סוף המחרוזת המלאה ימצא תמיד בעלה של , מכיוון 1שזוהי המחרוזת הארוכה ביותר המיוצגת בעץ . לכן נחזיק מצביע

של ההרחבה. 1לעלה קבוע זה, ותמיד נבצע בו את סוג

. תהי תווית של הקשת האחרונה לעלה הנ”ל )נסמנה ב ( 2 נרצה למצוא 2ונניח כי . כעת בהרחבה מספר

, v לצומת 1את סופה של . כדי לעשות זאת, נלך מעלה מס’ היוצאת ממנו ל , ונמשיך משם למטה suffix linkעקוב אחר ה נ

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

1i

]..1[ iSiT

)1,(vxiS ]...1[

)(vs

Page 28: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

28

ההרחבות הבאות

כדי להרחיב את המחרוזת ל - נבצע רעיון דומה:

נתחיל בסוף המחרוזת של העץ הנוכחי, נלך לכל היותר . suffix linkצומת אחת למעלה בעץ - שהיא השורש, או שיש ממנה איננה vאם נסמן ב את התווית של הקשת עליה הלכנו, ואם

היוצא ממנה ל , ונמשיך suffix linkהשורש, נעקוב אחר ה לעקוב אחר המסלול המסומן ב עד סופו, ושם נבצע את

ההרחבה - לפי הסוג המתאים.

]...[ ijS]1...[ ijS

]...1[ ijS

)(vs

, suffix link אם סופה של הוא בצומת שיש ממנה הערה:

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

ממנו יש אז השורש, איננו אביה אם מקרה suffix linkאזי בכל .ההליכה אחורה היא לכל היותר קשת אחת.

]...1[ ijS

Page 29: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

29

Single extension algorithm

Begin

1. Find the first node v at or above the end of that either has a suffix link from it or is the root. Let denote the string between v and the end of .

2. if v is not the root, traverse the suffix link from v to s(v) and then walk down from s(v) following the path for string . If v is the root, then follow the path for from the root - as in the naive algorithm

3. Using the extension rules, ensure that the string is in the tree.

4. If a new internal node w was created in extension j-1, then create the suffix link (w,s(w)) from w to s(w).

]...1[ ijS

]...1[ ijS

]...[ ijS

)1(]...[ iSijS

Page 30: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

30

j>1 עבור jדוגמא: הרחבה

J-1

vS(v)

Page 31: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

31

Skip/count

את מספר התווים על d את האורך של , נסמן ב gנסמן ב אזי נדלג ישר לצומת d<gהקשת היוצאת מ בכיוון . אם

, כך נוכל למצוא בקלות את h=d+1, ו g=g-dהבאה . נסמן המשך המסלול שהוביל לאורך . נמשיך כך עד אשר נקבל

של הקשת אליה g , וכל שנותר הוא למצוא את התו מספר הגענו.

)(vs

dg

ע"י שימוש בשיטה זו, המעקב אחרי יהיה תלוי במספר הצמתים ולא במספר התווים של

Page 32: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

32

, כל פאזה באלגוריתם לוקחת זמןskip/countע”י שיטת

Skip/countיתרון שיטת

למה כלשהי אחריה עקבנו בזמן suffix linkתהי

האלגוריתם, אזי ברגע המעקב, עומקה של הוא לכל היותר באחד יותר מעומקה של

))(,( vsv

v)(vs

טענה)(nO

מסקנה)(האלגוריתם יכול להתבצע ב זמן. 2nO

הערהעל מנת להוריד את זמן האלגוריתם ל - , יש להוריד גם

את המקום בזכרון בו אנו משתמשים.)(nO

Page 33: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

33

אבחנות

של ההרחבה מתבצע 3 בכל פאזה, אם סוג אבחנה ראשונה:•ה שנותרו jבהרחבה ההרחבות יתר בכל יתבצע הוא אזי ,

באותה פאזה ..עלה נשאר עלה אבחנה שניה:•

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

כל משמעות הדבר היא, שכל ההרחבות שיעשו בעלה זה ב תמיד ישתמשו בסוג ראשון של הרחבה.הפאזות הבאות

Page 34: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

34

שיפור האלגוריתם בעקבות האבחנות

של ההרחבה3הפסק כל פאזה ברגע שהופעל לראשונה סוג •

בכל עלה קיים, 1במקום לבצע במפורש סוג הרחבה מספר הרחב את הקשת לעלה זה ע"י סימון סוף הקשת באינדקס

, אותו נעדכן בסוף כל פאזה .eכללי

" כאינדקס סוף הקשת האחרונה לעלה, יעשה בזמן eסימון "היווצרות העלה.

Page 35: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

35

אבחנה לסיכום

. אם 2 או 1כל פאזה מתחילה בסדרה של הרחבות מסוג • את ההרחבה האחרונה בסדרה זו, אזי מכיוון שכל jנסמן ב -

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

, ואת 1 , כי בכולן תתבצע הרחבה מסוג j ועד 1ההרחבות מ-.j+1ההרחבות המפורשות להתחיל בהרחבה מספר

Page 36: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

36

Single phase algorithm

1. Begin2. Explicitly compute successive extensions starting

at pointer “j” until reaching the first extension where rule 3 applies or until all extensions are done in this phase. – When do rule 2, put j to point on the new leaf

3. Increment index “e” by 1.

4. end

1'1 jji

Page 37: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

37

זמן הריצה של האלגוריתם המשופר

O(n) עובד בזמן ומקום Ukkonen: האלגוריתם של טענה

( של כל 3 וסוג 1כל ההרחבות הלא מפורשות )סוג הוכחה: לאורך O(n) זמן, ולכן לוקחות O(1)פאזה לוקחות

בכל פאזה 1האלגוריתם כולו. כמו כן מספר ההרחבות מסוג את האינדקס של ההרחבה המפורשת jאינו יורד. אם נסמן ב

הוא אינדקס שאינו יורד, אבל jשמתבצעת כעת, הראינו ש j פאזות, ו nנשאר זהה בין כל שתי פאזות עוקבות. מכיוון שיש

, נקבל שהאלגוריתם מבצע לאורך כל הדרך לכל nחסום ע”י הרחבות מפורשות. את זמן ביצוען של אלה חישבנו 2nהיותר

קודם: זמן קבוע, ועוד הזמן של חיפוש המסלול, שגם אותו לאורך כל האלגוריתם.O(n)חסמנו ב -

Page 38: 2 Suffix Tree: Definition Suffix tree T על מחרוזת S שגודלה n, הוא עץ מכוון עם בדיוק n עלים ממוספרים מ -1 עד n. לכל צומת פנימית

38

הורדת המקום בזכרון

1,3 2,3

4,6 10,1210,12

4,6

S=abcdefabcuvw1 2 3 4 5 6 7 8 9 10 11 12