אוטומט סופי דטרמיניסטי

Download Report

Transcript אוטומט סופי דטרמיניסטי

‫אוטומטים ושפות פורמליות‬
‫ד"ר ויקטוריה סחניני‬
‫מכללת סכנין להכשרת עובדי הוראה‬
‫‪1‬‬
‫מבוא – אוטומט סופי דטרמיניסטי‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪2‬‬
‫אס"ט הוא מודל מתמטי של מערכת המגיבה על‬
‫סדרות סופיות של קלטים‪.‬‬
‫בזמן נתון מערכת כזו נמצאת במצב אחד מתוך‬
‫קבוצה סופית של מצבים והמעבר מהמצב הזה‬
‫למצב חדש מתרחש בהתאם לתו הנקרא מהקלט‪.‬‬
‫על מצבי האוטומט אין אנו מניחים אלא כי ניתן‬
‫להבחין ביניהם‪ .‬אין מניחים דבר על "מהות" של‬
‫מצב או על ה"מבנה" שלו‪.‬‬
‫אוטומט סופי דטרמיניסטי ‪ -‬המשך‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪3‬‬
‫בכל זמן נתון במהלך החישוב נמצא האוטומט‬
‫במצב כלשהו( הנקרא המצב הנוכחי)‪ ,‬בעקבות‬
‫קריאת הקלט האוטומט מבצע מעבר למצב חדש‬
‫וקידום הראש הקורא לאות הקלט הבאה‪.‬‬
‫המצב החדש של האוטומט נקבע באופן יחיד על‬
‫ידי המצב הנוכחי והקלט הנוכחי‪ ,‬מסיבה זו נקרא‬
‫אוטומט כזה דטרמיניסטי‪.‬‬
‫המצב שאליו מגיע האוטומט לאחר קריאת כל‬
‫המילה מוגדר כ"תגובת האוטומט על המלה"‬
‫אוטומט סופי דטרמיניסטי ‪ -‬המשך‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫יש שני סוגי מצבים לאוטומט‪ :‬מצבים מקבלים‬
‫ומצבים לא מקבלים‪.‬‬
‫אם המצב האחרון שאליו הגיע האוטומט לאחר‬
‫סיום קריאת מלת הקלט הנו מצב מקבל‪ ,‬אז‬
‫אומרים שהאוטומט קיבל את המלה אחרת דחה‬
‫האוטומט את המלה‪.‬‬
‫לכל אוטומט יש מצב התחלתי שממנו מתחיל‬
‫החישוב‪.‬‬
‫אוטומט סופי דטרמיניסטי ‪ -‬סיכום‬
‫מודל של מערכת המגיבה על סדרות של סימני קלט (מילת‬
‫קלט) תוך כדי שימוש במספר סופי של מצבים‪.‬‬
‫בכל רגע נתון‪ ,‬המערכת נמצאת במצב אחד מתוך קבוצה‬
‫סופית של מצבים‪.‬‬
‫האוטומט נקרא סופי כי מספר המצבים והמעברים הוא סופי‪.‬‬
‫האוטומט נקרא דטרמיניסטי כי אין "אפשרויות בחירה"‪ .‬מכל‬
‫מצב‪ ,‬עבור כל אחד מסימני הקלט האפשריים‪ ,‬ניתן‬
‫לעבור למצב אחד בדיוק‪.‬‬
‫‪5‬‬
‫אוטומט סופי דטרמיניסטי‪-‬דוגמא‪1‬‬
‫‪1‬‬
‫‪1,0‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪0‬‬
‫‪1,0‬‬
‫‪q2‬‬
‫‪6‬‬
‫המרכיבים של אוטומט סופי דטרמינסטי‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪7‬‬
‫א"ב ‪ -‬כל אותיות הקלט האפשריות‪( .‬מספר‬
‫האותיות סופי וגדול מאפס)‪.‬‬
‫מצבים ‪ -‬כל המצבים בהם יכול האוטומט‬
‫להימצא‪( .‬מספר המצבים סופי וגדול מאפס)‪.‬‬
‫מצב התחלתי ‪ -‬המצב ממנו מתחיל האוטומט‬
‫את מסלול החישוב‪ .‬מקובל לכנות את המצב‬
‫ההתחלתי ‪q0‬‬
‫‪‬‬
‫‪‬‬
‫‪8‬‬
‫קבוצת מצבים מקבלים – קבוצה מתוך קבוצת‬
‫המצבים שאם נמצאים באחד מהם בסיום סדרת‬
‫קלט‪ ,‬הרי שהקלט ענה על צפיות מסוימות‪ .‬מסומן‬
‫בעיגול כפול‪.‬‬
‫פונקצית מעברים ‪ -‬לכל זוג של מצב ‪ q‬ואות קלט‬
‫‪ ,X‬הפונקציה מתאימה מצב (אחד ויחיד) שאליו‬
‫עובר האוטומט כאשר במצב ‪ q‬נקראת האות ‪.x‬‬
‫מושגים נוספים‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫מסלול חישוב‪ -‬סדרת המעברים המתבצעים באוטומט‬
‫עבור סדרת קלט מסוימת‪( .‬מהמצב ההתחלתי ועד‬
‫למצב אליו מגיעים עם תום קריאת הסדרה)‪ .‬המסלול‬
‫יכול להיות מסלול מקבל ויכול להיות מסלול לא מקבל‪.‬‬
‫מסלול מקבל – מסלול חישוב שמתחיל במצב‬
‫ההתחלתי ומגיע בתום סדרת הקלט למצב מקבל‪.‬‬
‫מסלול לא מקבל – מסלול חישוב שמתחיל במצב‬
‫ההתחלתי ומגיע בתום סדרת הקלט למצב שאינו מקבל‪.‬‬
‫‪9‬‬
‫אוטומט סופי דטרמיניסטי ‪ -‬המשך‬
‫‪‬‬
‫‪‬‬
‫‪10‬‬
‫מצב מלכודת – מצב לא מקבל שאין ממנו מעבר‬
‫למצבים אחרים‪.‬‬
‫טבלת מעברים – ייצוג של פונקצית המעברים‪.‬‬
‫כל משבצת בטבלה מייצגת את המצב אליו‬
‫מגיעים מזוג של מצב (שורה) ושל אות קלט‬
‫(עמודה)‪.‬‬
2 ‫דוגמא‬
a,b,c
q0
q1
a,b,c
11
3 ‫דוגמא‬
b
b
a
q0
a
q1
q2
b
a
a,b
q3
12
4 ‫דוגמא‬
b,c
b,c
a
q0
a
q1
b
q2
a,c
a,b,c
q3
13
5 ‫דוגמא‬
b,c
b,c
a
q0
a
q1
b
q2
a,c
q3
a,b,c
14
‫תרגילים‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪15‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל כל‬
‫המילים מעל א"ב }‪ {0,1‬אשר מתחילות באפס‬
‫ומסתיימות באחד‪.‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל כל‬
‫המילים מעל א"ב }‪ {a,b,c‬אשר מכילות מספר‬
‫זוגי של ‪ – a‬ים‬
‫בנה אוטומט סופי דטרמיניסטי המקבל כל‬
‫המילים מעל א"ב }‪ {0,1,2‬אשר אינן מכילות את‬
‫הרצף ‪.012‬‬
‫תרגילים ‪ -‬המשך‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪16‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל כל‬
‫המילים מעל א"ב }‪ {0,1‬באורך זוגי‪.‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל כל‬
‫המילים מעל א"ב }‪ {a,b‬שמספר הופעות ‪a‬‬
‫במילה מתחלק ב‪ 4 -‬ללא שארית‪.‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל את‬
‫השפה הבאה‪ :‬כל המילים מעל א"ב {‪ }a,b,c‬אשר‬
‫‪ aa‬ואין הופעה של‬
‫אין הופעה של הרצף‬
‫הרצף ‪ bb‬ואין הופעה של הרצף ‪. cc‬‬
‫תרגילים ‪ -‬המשך‬
‫‪.7‬‬
‫‪.8‬‬
‫‪17‬‬
‫בנה אוטומט סופי דטרמיניסטי‪ ,‬המקבל את אוסף‬
‫כל המילים מעל א"ב }‪ {a,b,c‬ובהן לפחות ‪ a‬אחד‬
‫ואין הופעה של הרצף ‪.bc‬‬
‫בנה אוטומט סופי דטרמיניסטי‪ ,‬המקבל את אוסף‬
‫כל המילים מעל א"ב }‪ {a,b‬המכילות ‪ abb‬או‬
‫‪.baa‬‬
‫הגדרה פורמלית של אוטומט סופי‬
‫דטרמיניסטי‬
‫)‪A = ( ∑, Q, q0, F, δ‬‬
‫כאשר‪:‬‬
‫∑= א"ב הקלט‬
‫‪ =Q‬קבוצה סופית לא ריקה של מצבים‬
‫‪ = q0‬מצב התחלתי‬
‫‪ = F‬קבוצת מצבים מקבלים‬
‫‪ = δ‬פונקצית מעברים‬
‫‪18‬‬
‫הגדרה‬
‫)‪ L(A‬השפה המתקבלת על ידי האוטומט הסופי‬
‫הדטרמיניסטי ‪ A‬מוגדרת כך‪:‬‬
‫}‪L(A)= {x | x ε ∑, δ(q0, x) ε F‬‬
‫כלומר )‪ L(A‬היא אוסף כל המילים מעל ∑‪ ,‬אשר בסיום‬
‫קריאתן נמצא האוטומט במצב מקבל‪.‬‬
‫הערה‪ :‬מההגדרה נובע‪ ,‬שהמלה הריקה שייכת לשפה‬
‫המתקבלת ע"י האוטומט אמ"מ המצב ההתחלתי הוא מצב‬
‫מקבל‪.‬‬
‫‪19‬‬
‫‪‬‬
‫‪20‬‬
‫פונקצית המעברים ניתן לתאר אותה באמצעות‬
‫טבלה‪.‬‬
‫הגדרה‬
‫יהי ‪ A1‬ו‪ A2 -‬שני אוטומטים סופיים דטרמיניסטיים‪.‬‬
‫‪ A1‬ו‪ A2 -‬נקראים שקולים אמ"מ מתקיים‬
‫)‪.L(A1)=L(A2‬‬
‫‪21‬‬
‫תרגיל בית מס' ‪1‬‬
‫‪22‬‬