You are on page 1of 59

‫מערכת שידורים לאומית‬

‫מודלים חישוביים‬
‫פרק ‪ : 1‬אוטומט סופי דטרמיניסטי לא מלא‬
‫שם המורה‪ :‬ריקי יפה‬
‫שם מורה בודק‪ :‬ויקטוריה צורי‬
‫תודה לויקטוריה צורי על האישור להשתמש בחומרים שלה‬

‫‪2‬‬
‫דגשים לבניית אוטומט סופי דטרמיניסטי מלא‬
‫בנו תחילה את המסלול למילה הקצרה ביותר המתקבלת בשפה‪.‬‬ ‫‪.1‬‬
‫האם המילה הריקה (אפסילון ‪ )ε‬בשפה? אם כן‪ ,‬מצב התחלתי הוא מצב מקבל‪.‬‬ ‫‪.2‬‬
‫הבדילו בין המקרים של מתחיל מכיל או מסתיים‪.‬‬ ‫‪.3‬‬
‫בדקו האם ניתן לצמצם תנאים‪.‬‬ ‫‪.4‬‬
‫באם הפתרון הינו אוטומט סופי דטרמיניסטי מלא ראה שכל מצב מטפל בכל קלט אפשרי פעם אחת‬ ‫‪.5‬‬
‫בלבד‪.‬‬
‫שימו לב שיכול להיות יותר ממצב מקבל אחד‪.‬‬ ‫‪.6‬‬

‫‪3‬‬
‫אוטומט סופי דטרמיניסטי מלא‬
‫חשבו‪,‬‬ ‫תרגיל‬
‫איך יודעים אם מספר‬ ‫בנה אוטומט סופי דטרמיניסטי מעל מעל‬
‫מתחלק ב‪? 3 -‬‬ ‫{‪ ∑ = }8,9,…0,1‬המקבל את כל המספרים‬
‫הדצימליים המתחלקים בשלוש ללא שארית‬

‫מספר מתחלק ב‪ 3-‬אם ורק אם סכום הספרות שלו מתחלק ב‪.3-‬‬


‫לדוגמה‪,‬‬
‫המספר ‪ 201‬מתחלק ב‪ 3-‬כי סכום הספרות הוא ‪.3=2+0+1‬‬
‫גם המספר ‪ 837‬מתחלק בשלוש כי סכום הספרות הוא ‪ ,18=8+3+7‬ו‪ 18-‬מתחלק‬
‫ב‪ 3-‬כי סכום הספרות של ‪ 18‬הוא ‪ ,9=1+8‬ו‪ 9-‬מתחלק בשלוש‪.‬‬

‫‪4‬‬
‫אוטומט סופי דטרמיניסטי מלא‬
‫נתחיל לבנות את האוטומט שלנו‬
‫תרגיל ‪1‬‬
‫‪ .1‬האם אפסילון (‪ )ε‬בשפה?‬ ‫בנה אוטומט סופי דטרמיניסטי מלא מעל מעל‬
‫תשובה‪ :‬לא‬ ‫{‪ ∑ = }8,9,…0,1‬המקבל את כל המספרים‬
‫‪ .2‬מהי המילה הקצרה ביותר בשפה?‬ ‫הדצימלים המתחלקים בשלוש ללא שארית‬
‫תשובה‪:‬‬
‫• ‪ 0,3,6,9‬מתחלק ב ‪ 3‬שארית ‪0‬‬
‫• ‪ 1,4,7‬מתחלק ב ‪ 3‬שארית ‪1‬‬ ‫קלט המתקבל יכול להיות באחד משלושה מצבים‪:‬‬
‫• ‪ 2,5,8‬מתחל ב ‪ 3‬שארית ‪2‬‬
‫‪ ‬שארית חלוקה ב ‪ 3‬שווה ‪0‬‬
‫‪ ‬שארית חלוקה ב ‪ 3‬שווה ‪1‬‬
‫‪2‬‬ ‫שווה‬ ‫‪3‬‬ ‫ב‬ ‫חלוקה‬ ‫שארית‬ ‫‪‬‬
‫ניצור שלושה מצבים עבורן‬
‫‪ q0‬זוכר שארית חלוקה של מספר ב ‪ 3‬שווה ‪0‬‬
‫‪ q1‬זוכר שארית חלוקה של מספר ב ‪ 3‬שווה ‪1‬‬
‫‪ q2‬זוכר שארית חלוקה של מספר ב ‪ 3‬שווה ‪2‬‬
‫‪5‬‬
‫אוטומט סופי דטרמיניסטי מלא‬
‫שארית חלוקה של‬
‫תרגיל ‪1‬‬
‫מספר ב ‪ 3‬שווה ‪0‬‬ ‫בנה אוטומט סופי דטרמיניסטי מלא מעל מעל‬
‫‪qq21‬‬ ‫{‪ ∑ = }8,9,…0,1‬המקבל את כל המספרים‬
‫‪0,3,6,9‬‬
‫הדצימלים המתחלקים בשלוש ללא שארית‬

‫‪q0‬‬ ‫‪1,4,7‬‬ ‫‪q2‬‬ ‫שארית חלוקה של‬ ‫ניצור שלושה מצבים עבורן‬
‫מספר ב ‪ 3‬שווה ‪1‬‬
‫‪ q1‬זוכר שארית חלוקה של מספר ב ‪ 3‬שווה ‪0‬‬
‫‪2,5,8‬‬ ‫‪ q2‬זוכר שארית חלוקה של מספר ב ‪ 3‬שווה ‪1‬‬
‫‪ q3‬זוכר שארית חלוקה של מספר ב ‪ 3‬שווה ‪2‬‬
‫שארית חלוקה של‬
‫‪q3‬‬ ‫מספר ב ‪ 3‬שווה ‪2‬‬

‫נשלים את האוטומט שלנו‬


‫‪6‬‬
‫אוטומט סופי דטרמיניסטי מלא‬
‫‪0,3,6,9‬‬

‫שארית חלוקה של‬ ‫תרגיל ‪1‬‬


‫מספר ב ‪ 3‬שווה ‪0‬‬
‫‪q1‬‬ ‫בנה אוטומט סופי דטרמיניסטי מלא מעל מעל‬

‫‪q2‬‬
‫‪1,4,7‬‬ ‫{‪ ∑ = }8,9,…0,1‬המקבל את כל המספרים‬
‫‪0,3,6,9‬‬
‫‪0,3,6,9‬‬ ‫הדצימלים המתחלקים בשלוש ללא שארית‬
‫‪2,5,8‬‬

‫‪q0‬‬ ‫‪1,4,7‬‬
‫‪q2‬‬

‫‪q1‬‬
‫‪1,4,7‬‬ ‫‪2,5,8‬‬ ‫שארית חלוקה של‬
‫מספר ב ‪ 3‬שווה ‪1‬‬ ‫נשלים את האוטומט שלנו‬
‫‪2,5,8‬‬
‫‪2,5,8‬‬

‫‪q3‬‬ ‫‪1,4,7‬‬
‫‪q0‬‬

‫שארית חלוקה של מספר‬


‫ב ‪ 3‬שווה ‪2‬‬

‫‪7‬‬ ‫‪0,3,6,9‬‬
‫‪ ‬אוטומט כמודל חישוב‬
‫‪ ‬מושגים בסיסיים בתורת הקבוצות‬
‫‪ ‬אוטומט סופי דטרמיניסטי (אס"ד) מלא‬
‫‪ ‬אוטומט סופי דטרמיניסטי (אס"ד) לא מלא‬
‫‪ ‬תרגול‬

‫‪8‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫הגדרה‪:‬‬
‫אוטומט סופי דטרמיניסטי לא מלא מוגדר על ידי אותם חמישה מרכיבים כמו אוטומט סופי דטרמיניסטי‬
‫מלא‪ ,‬פרט לפונקציית מעברים‪ ,‬בה יכולים להיות חסרים חלק מהמעברים‪.‬‬
‫עבור מצב מסוים ואות קלט מסוימת ‪ ,‬לא מותאם מעבר‪ .‬במצב כזה האוטומט "נתקע" ‪.‬‬

‫המעברים החסרים הם המעברים עבור אותיות קלט שמובילות למצב מלכודת‪.‬‬

‫‪9‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫בהגדרת האוטומט המלא‪ ,‬קבוצת המעברים הוגדרה כפונקצית מעברים‪ ,‬המתאימה לכל זוג של מצב‬
‫ואות קלט מצב אחד ויחיד ‪.‬‬
‫באוטומט דטרמיניסטי לא מלא איננו יכולים לדבר על פונקציה‪ ,‬משום שיתכן כי יהיו זוגות שלא‬
‫יותאם להם מצב‬

‫המעברים החסרים הם המעברים עבור אותיות קלט שמובילות למצב מלכודת‪.‬‬

‫‪10‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫דוגמא‬
‫‪q0‬‬
‫‪a‬‬ ‫‪q1‬‬ ‫‪b‬‬ ‫‪q2‬‬
‫בנו אוטומט סופי דטרמיניסטי מלא‬
‫‪a,‬‬ ‫‪a‬‬ ‫המקבל את השפה בת המילה האחת {‪}ab‬‬
‫‪b‬‬ ‫‪b‬‬
‫‪a, b‬‬ ‫מעל הא"ב {‪∑ =}a,b‬‬
‫‪q3‬‬

‫בנו אוטומט סופי דטרמיניסטי לא מלא‬


‫המקבל את השפה בת המילה האחת {‪}ab‬‬
‫מעל הא"ב {‪∑ =}a,b‬‬
‫‪q0‬‬ ‫‪a‬‬ ‫‪q1‬‬ ‫‪b‬‬ ‫‪q2‬‬

‫מהו המסלול החישובי של המילים‪aa , abb, a :‬‬


‫‪11‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫מתי מילה מתקבלת ומתי נידחת באוטומט סופי דטרמיניסטי לא מלא ?‬

‫א‪ .‬אוטומט סופי דטרמיניסטי לא מלא מקבל מילה כאשר היא נקראת עד סופה‪ ,‬ובתום קריאתה נמצא‬
‫האוטומט במצב מקבל‪.‬‬
‫ב‪ .‬אוטומט סופי דטרמיניסטי לא מלא דוחה מילה במקרים הבאים‪:‬‬
‫‪ .1‬המילה נקראת עד סופה ובתום קריאתה נמצא האוטומט במצב לא מקבל‪.‬‬
‫‪ .2‬במהלך קריאת המילה מגיע האוטומט למצב אשר ממנו אין מעבר המתאים לאות הקלט הבאה‬
‫(והאוטומט נתקע)‪.‬‬

‫‪12‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫יתרונות‬
‫• תכנון קל יותר וקומפקטי יותר‬
‫• "חוסך" מצבי מלכודת לא מקבלים‬

‫‪13‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫תרגיל ‪1‬‬
‫‪ .1‬מהי המילה הקצרה ביותר בשפה?‬
‫תשובה‪.aa,ab,ac :‬‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫נבנה עבורן מסלול שמוביל למצב מקבל‪.‬‬ ‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪a‬‬
‫‪ .2‬האם אפסילון (‪ )ε‬בשפה?‬ ‫ואורכן זוגי‪.‬‬
‫תשובה‪ :‬לא‬

‫אי זוגי‬ ‫זוגי‬

‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬

‫‪14‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫אי זוגי‬ ‫זוגי‬ ‫תרגיל ‪1‬‬
‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪a‬‬
‫"קיר" שאסור לעבור אותו אחורה‪,‬‬
‫ואורכן זוגי‪.‬‬
‫אחרת נשכח שמילה התחילה‬ ‫שלב שני‪ ,‬השלמת בניית האוטומט‬
‫כנדרש‪.‬‬
‫אי זוגי‬ ‫זוגי‬
‫בכל אחד מהמצבים נשלים את המעברים‬
‫עבור אותיות הקלט‬
‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬

‫האם נדרש טיפול במילה‬


‫‪ – q0‬עבור ‪ b, c‬באוטומט מלא היינו‬ ‫שהתחילה באופן לא‬
‫יוצרים מצב מלכודת‬ ‫תקין ?‬
‫‪15‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫"קיר" שאסור לעבור אותו אחורה‪,‬‬ ‫תרגיל ‪1‬‬
‫אחרת נשכח שמילה התחילה‬
‫כנדרש‪.‬‬
‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫אי זוגי‬ ‫זוגי‬ ‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪a‬‬
‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬
‫ואורכן זוגי‪.‬‬
‫‪q2‬‬
‫‪" q0,q1‬מטופלים"‪ .‬כלומר‪ ,‬יש התייחסות מכל אחד‬
‫מהמצבים הנ"ל לכל תו בא"ב‪.‬‬

‫מה לגבי ‪?q2‬‬


‫‪q2‬זוכר שמילה התחילה כנדרש ב ‪ .a‬ואורכה זוגי‪ .‬אבל כל‬
‫אי זוגי‬ ‫זוגי‬
‫תו נוסף ישנה את אורך המילה לאי זוגי‪.‬‬
‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬

‫‪a,b,c‬‬

‫‪16‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬

‫תרגיל ‪2‬‬
‫‪ .1‬האם אפסילון (‪ )ε‬בשפה?‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫תשובה‪ :‬לא‬ ‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪aa‬‬
‫‪ .2‬מהי המילה הקצרה ביותר בשפה?‬ ‫ואורכן מתחלק ב ‪ 3‬ללא שארית‪.‬‬
‫תשובה‪.aab,aac,aaa :‬‬
‫נבנה עבורה מסלול שמוביל למצב מקבל‪.‬‬

‫שארית ‪1‬‬ ‫שארית ‪2‬‬ ‫שארית ‪0‬‬


‫‪a‬‬ ‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪17‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬

‫היכן "קיר" שאסור לעבור אותו אחורה (אחרת‬ ‫תרגיל ‪2‬‬


‫נשכח שמילה התחילה כנדרש)?‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪aa‬‬
‫ואורכן מתחלק ב ‪ 3‬ללא שארית‪.‬‬

‫שארית ‪1‬‬ ‫שארית ‪2‬‬ ‫שארית ‪0‬‬


‫‪a‬‬ ‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪18‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫שלב שני‪ ,‬השלמת בניית האוטומט‬
‫בכל אחד מהמצבים נשלים את המעברים עבור‬
‫תרגיל ‪2‬‬
‫אותיות הקלט‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪aa‬‬
‫ואורכן מתחלק ב ‪ 3‬ללא שארית‪.‬‬

‫שארית ‪1‬‬ ‫שארית ‪2‬‬ ‫שארית ‪0‬‬


‫‪a‬‬ ‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪b,c‬‬ ‫‪b,c‬‬
‫האם נדרש טיפול‬
‫‪a,b,c‬‬ ‫‪q4‬‬
‫במילה שהתחילה‬
‫באופן לא תקין ?‬
‫‪19‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫‪" q0,q1,q2‬מטופלים"‪.‬‬ ‫תרגיל ‪2‬‬
‫מה לגבי ‪?q3‬‬
‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫כל תו נוסף שנקרא יהפוך את המילה למילה שאורכה מתחלק‬ ‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪aa‬‬
‫ב ‪ 3‬עם שארית ‪ .1‬מצב ‪ q1‬מטפל במקרה זה‪ ,‬אבל‪ ...‬אסור‬ ‫ואורכן מתחלק ב ‪ 3‬ללא שארית‪.‬‬
‫לחזור אליו!!!‬
‫זאת אומרת‪ ,‬יש צורך במצב נוסף‪.‬‬

‫שארית ‪1‬‬ ‫שארית ‪2‬‬ ‫שארית ‪0‬‬


‫‪a‬‬ ‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪20‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫‪" q0,q1,q2‬מטופלים"‪.‬‬
‫תרגיל ‪2‬‬
‫מה לגבי ‪?q3‬‬
‫כל תו נוסף שנקרא יהפוך את המילה למילה שאורכה מתחלק ב ‪ 3‬עם‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫שארית ‪ .1‬מצב ‪ q1‬מטפל במקרה זה‪ ,‬אבל‪ ...‬אסור לחזור אליו!!!‬ ‫שפת כל המילים מעל {‪ }a,b,c‬שמתחילות ב ‪aa‬‬
‫זאת אומרת‪ ,‬יש צורך במצב נוסף‪.‬‬ ‫ואורכן מתחלק ב ‪ 3‬ללא שארית‪.‬‬

‫שארית ‪1‬‬ ‫שארית ‪2‬‬ ‫שארית ‪0‬‬


‫‪a‬‬ ‫‪a‬‬ ‫‪a,b,c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪a,b,c‬‬
‫‪a,b,c‬‬

‫‪q5‬‬

‫‪21‬‬ ‫שארית ‪1‬‬


‫אוטומט סופי דטרמיניסטי לא מלא‬
‫השפה המתקבלת היא‬
‫} ‪L={(ab)ⁿcᵏ | n ,k >0‬‬ ‫‪3‬א‬ ‫תרגיל‬

‫זיהוי שפה‬
‫‪a‬‬ ‫‪b‬‬ ‫‪c‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬ ‫הגדירו את השפה המתקבלת על ידי האוטומט סופי‬
‫‪c‬‬
‫‪a‬‬ ‫דטרמיניסטי (לא מלא) הבא‬

‫ניתן לראות כי המילה חייבת להתחיל ב‪ ,ab -‬לאחר הרצף ‪ ab‬ניתן לחזור שוב על רצפים‬
‫של ‪ ab‬או לעבור לרצף ‪-c‬ים‪.‬‬
‫המילה צריכה להסתיים ברצף של ‪-c‬ים‪.‬‬
‫המילה הקצרה ביותר היא ‪ abc‬כלומר‪ ,‬חייב להיות רצף אחד של ‪ ab‬ורצף אחד של ‪.c‬‬

‫‪22‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫השפה המתקבלת היא‬
‫} ‪L={ ((ab)ⁿcᵐ ) ᵏ| n ,m >0 k≥0‬‬ ‫‪3‬ב‬ ‫תרגיל‬

‫זיהוי שפה‬
‫‪q0‬‬
‫‪a‬‬ ‫‪b‬‬ ‫‪c‬‬ ‫הגדירו את השפה המתקבלת על ידי האוטומט סופי‬
‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬
‫‪c‬‬ ‫דטרמיניסטי (לא מלא) הבא‬
‫‪a‬‬
‫‪a‬‬

‫באוטומט זה שתי תוספות‪ ,‬המעבר ממצב ‪ q3‬עם האות ‪ a‬מאפשר המשך‬


‫קבלת רצפים (‪ , ⁿcᵏ)ab‬כאשר יכולים להיות ‪ i‬רצפים במבנה זה‪.‬‬
‫שינוי נוסף הוא ‪ q0‬מצב מקבל‪ ,‬כלומר גם המילה הריקה השפה‪.‬‬

‫‪23‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫תרגיל ‪4‬‬
‫‪ .1‬האם אפסילון (‪ )ε‬בשפה?‬
‫תשובה‪ :‬לא‬ ‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫את שפת כל המילים מעל הא"ב {‪ }a,b‬שמתחילות‬
‫‪ .2‬מהי המילה הקצרה ביותר בשפה?‬ ‫ב ‪ ,ab‬אורכן אי זוגי ואין בהן רצף ‪.aa‬‬
‫תשובה‪.abb, aba :‬‬
‫נבנה עבורן מסלול שמוביל למצב מקבל‪.‬‬ ‫‪ q3‬זוכר שהמילה התחילה כנדרש‪ ,‬אורכה אי זוגי‬
‫ותו אחרון ‪.a‬‬
‫‪ q4‬זוכר שהמילה התחילה כנדרש‪ ,‬אורכה אי זוגי‬
‫‪a‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫ותו אחרון ‪.b‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬ ‫‪q4‬‬

‫‪a‬‬

‫‪q3‬‬

‫‪24‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬

‫תרגיל ‪4‬‬
‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫"קיר" שאסור לעבור אותו אחורה‪,‬‬
‫אחרת נשכח שמילה התחילה כנדרש‪.‬‬ ‫את שפת כל המילים מעל הא"ב {‪ }a,b‬שמתחילות‬
‫ב ‪ ,ab‬אורכן אי זוגי ואין בהן רצף ‪.aa‬‬
‫זוגי מסתיימת ב ‪b‬‬
‫אי זוגי‬
‫מסתיימת ב ‪b‬‬
‫‪q0‬‬
‫‪a‬‬ ‫‪b‬‬ ‫‪b‬‬
‫‪q1‬‬ ‫‪q2‬‬ ‫‪q4‬‬

‫‪a‬‬

‫‪q35‬‬

‫אי זוגי‬
‫מסתיימת ב ‪a‬‬

‫‪25‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫פתרון סופי‪:‬‬ ‫תרגיל ‪4‬‬
‫בנה אוטומט סופי דטרמיניסטי לא מלא שמקבל‬
‫"קיר" שאסור לעבור אותו אחורה‪,‬‬ ‫את שפת כל המילים מעל הא"ב {‪ }a,b‬שמתחילות‬
‫אחרת נשכח שמילה התחילה כנדרש‪.‬‬
‫ב ‪ ,ab‬אורכן אי זוגי ואין בהן רצף ‪.aa‬‬
‫זוגי‬ ‫אי זוגי‬
‫מסתיימת ב ‪b‬‬ ‫מסתיימת ב ‪b‬‬

‫‪q0‬‬
‫‪a‬‬ ‫‪b‬‬ ‫‪b‬‬
‫‪q1‬‬ ‫‪q2‬‬ ‫‪q4‬‬

‫‪b‬‬
‫‪b a‬‬ ‫‪a‬‬ ‫‪b‬‬

‫‪q35‬‬ ‫‪q6‬‬

‫אי זוגי‬ ‫זוגי‬


‫מסתיימת ב ‪a‬‬ ‫מסתיימת ב ‪a‬‬

‫‪26‬‬
‫אוטומט סופי דטרמיניסטי לא מלא‬
‫סיכום‬
‫• באס"ד לא מלא ישנו לפחות זוג אחד של מצב ואות (‪ )qi,j‬אשר ביחס אליהם לא מוגדר מהי תגובת האוטומט‪.‬‬
‫• באס"ד לא מלא‪ ,‬אם במהלך חישוב המילה האוטומט נתקע‪ ,‬המילה אינה מתקבלת‪.‬‬
‫• באס"ד לא מלא עשויות להיות שתי סיבות שונות לדחיית מילה‪:‬‬
‫‪ o‬תהליך החישוב הסתיים‪ ,‬מילת הקלט נקראה עד סופה והאוטומט אינו במצב מקבל‪.‬‬
‫‪ o‬תהליך החישוב נסתיים כיוון שאין באוטומט התייחסות לצרוף המסוים של אות ומצב‪.‬‬

‫‪27‬‬
‫‪ ‬אוטומט כמודל חישוב‬
‫שפות רגולריות‬
‫איחוד וחיתוך שפות רגולריות‬

‫‪28‬‬
‫שפות רגולריות‬
‫אוטומט סופי מקבל שפה מסוימת‪.‬‬

‫הגדרה‪:‬‬
‫שפה ‪ L‬היא רגולרית אם היא מתקבלת ע"י אוטומט סופי‪.‬‬

‫איך מזהים שפה רגולרית‪:‬‬


‫• "גודל" של שפה אינו מצביע על רגולריות‪ ,‬או לא‪.‬‬
‫*∑ ‪- ∅,‬רגולריות‬ ‫•‬
‫• כל שפה סופית רגולרית‬
‫• שפה רגולרית היא שפה שלא צריך "לזכור" או לספור יותר מכמות סופית‪.‬‬

‫‪29‬‬
‫איחוד וחיתוך שפות רגולריות‬
‫איחוד של שפות ו זה שפה שמכילה את כל המילים שנמצאות לפחות באחת השפות‪.‬‬

‫𝟏 𝑳𝟐 𝑳‬
‫סימון‪U :‬‬

‫חיתוך של שפות ו זה שפה שמכילה את כל המילים שנמצאות בשתי השפות‪.‬‬


‫סימון‪∩ :‬‬

‫𝟏 𝑳𝟐 𝑳‬
‫‪30‬‬
‫איחוד וחיתוך שפות רגולריות‬

‫𝟏 𝑳𝟐 𝑳‬ ‫𝟏 𝑳𝟐 𝑳‬
‫∩‬ ‫‪U‬‬
‫לכל שפה ‪ L‬מתקיים‪:‬‬

‫‪31‬‬
‫איחוד וחיתוך שפות רגולריות‬
‫דוגמא ‪:1‬‬

‫א‪ .‬נתונות שפות הבאות‪:‬‬

‫{}∪={}‬
‫ב‪ .‬נתונות שפות הבאות‪:‬‬

‫‪32‬‬
‫איחוד וחיתוך שפות רגולריות‬
‫דוגמא ‪:2‬‬
‫נתונות שפות הבאות‪:‬‬
‫‪L1‬‬
‫‪L2‬‬

‫‪L3‬‬

‫‪𝐿1‬‬ ‫ענה על השאלות הבאות‪:‬‬


‫‪𝐿2‬‬
‫‪𝐿2‬‬
‫‪𝐿1‬‬

‫‪33‬‬
‫איחוד וחיתוך שפות רגולריות‬
‫המשך של דוגמא ‪:2‬‬
‫נתונות שפות הבאות‪:‬‬

‫ענה על השאלות הבאות‪:‬‬

‫‪L1‬‬
‫‪L2‬‬
‫‪L3‬‬

‫‪34‬‬
‫אוטומט איחוד ‪ /‬חיתוך‬

‫כאשר רוצים לבנות אוטומט סופי דטרמיניסטי עבור שפה שניתן לתאר אותה כאיחוד‪/‬חיתוך של שפות‬
‫אחרות‪ ,‬ניתן לבנות אוטומט סופי דטרמיניסטי עבור כל אחת מהשפות בנפרד‪ ,‬ואז להשתמש באלגוריתם‬
‫לבניית אוטומט חיתוך‪/‬איחוד עבור השפה המקורית‪.‬‬

‫‪35‬‬
‫בניית אוטומט איחוד ‪ /‬חיתוך‬
‫נניח נתון‪:‬‬

‫• אוטומט סופי דטרמיניסטי ‪ A1‬שמקבל את השפה ‪ L1‬כאשר מצבי האוטומט הם‪q0,q1,…,qn :‬‬

‫• אוטומט סופי דטרמיניסטי ‪ A2‬שמקבל את השפה ‪ L2‬כאשר מצבי האוטומט הם‪p0,p1,…,pm :‬‬

‫שלב ‪ :1‬קביעת קבוצת מצבים ומצב התחלתי עבור אוטומט ה איחוד‪/‬חיתור‬

‫קבוצת המצבים של אוטומט סופי דטרמיניסטי שמקבל את או את היא כל הזוגות מהצורה (‪ )qi,pj‬כאשר (‪ )q0,p0‬הוא‬
‫מצב התחלתי‪.‬‬

‫‪36‬‬
‫בניית אוטומט איחוד ‪ /‬חיתוך‬
‫שלב ‪ :2‬הגדרת פונקציית מעברים עבור אוטומט ה איחוד‪/‬חיתור‬

‫לכל מצב (‪ )qi,pj‬וכל אות ‪ a‬מהא"ב יוגדר מעבר לפי כללים הבאים‪:‬‬
‫‪a‬‬
‫‪qi‬‬ ‫• אם האוטומט ‪ A1‬מוגדר מעבר הבא‪qt :‬‬
‫וגם‬
‫‪a‬‬

‫‪pj‬‬ ‫• אם באוטומט ‪ A2‬מוגדר מעבר הבא‪pm :‬‬

‫‪a‬‬
‫(‪)qi,pj‬‬ ‫(‪)qt,pm‬‬ ‫באוטומט ‪ A‬יוגדר מעבר הבא‪:‬‬

‫‪37‬‬
‫בניית אוטומט איחוד ‪ /‬חיתוך‬
‫שלב ‪ :3‬קביעת מצבים מקבלים עבור אוטומט ה איחוד‪/‬חיתור‬

‫הבדל בין אוטומט החיתוך לאוטומט האיחוד הוא בקבוצת המצבים‬


‫המקבלים בלבד‪:‬‬

‫• באוטומט חיתוך‪ )qi,pj( :‬יקבע כמצב מקבל אם ורק אם גם ‪ qi‬וגם ‪ pj‬היו‬


‫מצבים מקבלים‪.‬‬

‫• באוטומט איחוד‪)qi,pj( :‬יקבע כמצב מקבל אם אחד המצבים או שניהם ‪qi ,‬‬
‫‪ pj‬היו מצבים מקבלים‪.‬‬

‫‪38‬‬
‫בניית אוטומט איחוד ‪ /‬חיתוך‬
‫שלב ‪ :4‬צמצום המצבים‬
‫מצבים שלא ניתן להגיע אליהם ממצב התחלתי נקראים מצבים לא ניתנים להשגה וניתן להסירם‬
‫מאוטומט הסופי‪.‬‬

‫שלב ‪ :5‬עדכון שמות המצבים המצבים‬


‫אין סיבה להשאיר שמות מצבים מורכבים משלשות סדורות‪ .‬ניתן לסמן אותם כמקובל על ידי‬
‫אות אחת ומספרים עוקבים החל מ ‪.0-‬‬

‫‪39‬‬
‫אוטומט איחוד ‪ /‬חיתוך‬

‫דוגמה‬
‫נוכל להציג אותה כחיתוך של שפות הבאות‪:‬‬ ‫בנה אוטומט סופי דטרמיניסטי שמקבל את‬
‫שפת כל המילים מעל הא"ב {‪L }a,b‬‬
‫שמתחילות ב ‪ ,ab‬אורכן זוגי ומכילה את‬
‫הרצף ‪.aa‬‬

‫כאשר מתקיים‪:‬‬

‫‪=L‬‬

‫‪40‬‬
‫אוטומט איחוד ‪ /‬חיתוך‬
‫אוטומט סופי דטרמיניסטי‪ A1‬שמקבל את השפה‪:‬‬ ‫דוגמה‬
‫בנה אוטומט סופי דטרמיניסטי שמקבל את‬
‫‪a‬‬ ‫‪b‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q2‬‬
‫שפת כל המילים מעל הא"ב {‪L }a,b‬‬
‫‪b‬‬ ‫‪a‬‬ ‫שמתחילות ב ‪ ,ab‬אורכן זוגי ומכילה את‬
‫‪a,b‬‬
‫‪a,b‬‬ ‫‪q3‬‬ ‫הרצף ‪.aa‬‬

‫אוטומט סופי דטרמיניסטי‪ A2‬שמקבל את השפה ‪:‬‬

‫‪a,b‬‬
‫‪p0‬‬ ‫‪p1‬‬ ‫כאשר מתקיים‪:‬‬
‫‪a,b‬‬ ‫‪=L‬‬
‫אוטומט סופי דטרמיניסטי‪ A3‬שמקבל את השפה ‪:‬‬

‫‪a‬‬ ‫‪a,b‬‬
‫‪t0‬‬
‫‪a‬‬ ‫‪t1‬‬ ‫‪t2‬‬
‫‪b‬‬
‫‪41‬‬ ‫‪b‬‬
‫אוטומט איחוד ‪ /‬חיתוך‬
‫דוגמה‬
‫‪a‬‬ ‫‪b‬‬ ‫‪b‬‬ ‫‪a‬‬
‫‪q0p0t0‬‬ ‫‪q1p1t1‬‬ ‫‪q2p0t0‬‬ ‫‪q2p1t0‬‬ ‫‪q2p0t1‬‬
‫בנה אוטומט סופי דטרמיניסטי שמקבל את‬
‫‪b‬‬ ‫‪b‬‬ ‫שפת כל המילים מעל הא"ב {‪L }a,b‬‬
‫‪a‬‬
‫‪b‬‬ ‫‪b‬‬ ‫‪a‬‬ ‫‪a‬‬ ‫שמתחילות ב ‪ ,ab‬אורכן זוגי ומכילה את‬
‫הרצף ‪.aa‬‬
‫‪b‬‬ ‫‪a‬‬ ‫‪a,b‬‬
‫‪q3p1t0‬‬ ‫‪q3p0t0‬‬ ‫‪q2p1t1‬‬ ‫‪q2p0t2‬‬ ‫‪q2p1t2‬‬
‫‪b‬‬
‫‪a‬‬ ‫‪a,b‬‬
‫‪b‬‬ ‫‪a‬‬ ‫‪b‬‬

‫‪q3p0t1‬‬ ‫‪q3p1t1‬‬ ‫הערה‪ :‬קבוצת מצבים מהם אין דרך להגיע למצב‬
‫מקבל ולכן ניתן להחליף את כולם במצב מלכודת‬
‫‪a‬‬ ‫‪a‬‬ ‫אחד באוטומט מלא או לבטל מצבים אלה באוטומט‬
‫‪a,b‬‬ ‫לא מלא‬
‫‪q3p1t2‬‬ ‫‪q3p0t2‬‬

‫‪a,b‬‬

‫‪42‬‬
‫אוטומט איחוד ‪ /‬חיתוך‬
‫אוטומט חיתוך מלא שמתקבל לאחר שינוי שמות המצבים ואיחוד כל‬
‫דוגמה‬
‫המצבים שלא ניתן להגיע דרכם למצב מקבל למצב אחד‪:‬‬ ‫בנה אוטומט סופי דטרמיניסטי שמקבל את‬
‫שפת כל המילים מעל הא"ב {‪L }a,b‬‬
‫שמתחילות ב ‪ ,ab‬אורכן זוגי ומכילה את‬
‫הרצף ‪.aa‬‬
‫‪a‬‬ ‫‪b‬‬ ‫‪q2‬‬
‫‪b‬‬ ‫‪a‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q3‬‬ ‫‪q4‬‬
‫‪b‬‬ ‫‪b‬‬
‫‪b‬‬ ‫‪a‬‬ ‫‪b‬‬ ‫‪a‬‬ ‫‪a‬‬

‫‪a‬‬ ‫‪a,b‬‬
‫‪q8‬‬ ‫‪a,b‬‬ ‫‪q7‬‬ ‫‪q6‬‬ ‫‪q5‬‬

‫‪a,b‬‬

‫‪43‬‬
‫אוטומט איחוד ‪ /‬חיתוך‬
‫אוטומט חיתוך לא מלא שמתקבל לאחר שינוי שמות המצבים ואיחוד כל‬
‫דוגמה‬
‫המצבים שלא ניתן להגיע דרכם למצב מקבל למצב אחד‪:‬‬ ‫בנה אוטומט סופי דטרמיניסטי שמקבל את‬
‫שפת כל המילים מעל הא"ב {‪L }a,b‬‬
‫שמתחילות ב ‪ ,ab‬אורכן זוגי ומכילה את‬
‫הרצף ‪.aa‬‬

‫‪a‬‬ ‫‪b‬‬ ‫‪q2‬‬


‫‪b‬‬ ‫‪a‬‬
‫‪q0‬‬ ‫‪q1‬‬ ‫‪q3‬‬ ‫‪q4‬‬
‫‪b‬‬ ‫‪b‬‬
‫‪b‬‬ ‫‪a‬‬ ‫‪a‬‬

‫‪a‬‬ ‫‪a,b‬‬
‫‪q7‬‬ ‫‪q6‬‬ ‫‪q5‬‬

‫‪a,b‬‬

‫‪44‬‬
‫‪ ‬אוטומט כמודל חישוב‬
‫‪ ‬מושגים בסיסיים בתורת הקבוצות‬
‫‪ ‬אוטומט סופי דטרמיניסטי (אס"ד) מלא‬
‫‪ ‬אוטומט סופי דטרמיניסטי (אס"ד) לא מלא‬
‫‪ ‬שאלות מבגריות‬

‫באו נתרגל‬
‫‪45‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫תזכורת‬
‫חזקה של מילה ‪ wⁿ‬היא המילה המתקבלת מכתיבת ‪ w , n‬פעמים‬
‫‪wⁿ = w·w·w· … w‬‬
‫‪ n‬פעמים‬
‫‪ wº‬משמעו ‪ 0‬מופעים של ‪ w‬כלומר ‪ -‬מילה ריקה ‪ε =wº‬‬
‫‪46‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫שלב ראשון ‪ :‬זיהוי השפה‬


‫• הבנה שכל החזקות לא חייבות להיות זהות‪.‬‬
‫• זיהוי כמות הרצפים‪.‬‬

‫שלב שני ‪ :‬מילים השייכות לשפה‪ /‬מילים שאינן שייכות לשפה‬

‫‪47‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫תשובה‪:‬‬

‫נבחר ערכים מינימליים עבור פרמטרים‪:‬‬


‫‪k=1, i1=0, 0%3=0‬‬

‫המילה הקצרה ביותר‪:‬‬

‫‪48‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫המילה הקצרה ביותר‪:‬‬


‫בניית מסלול עבור מילה המילה הקצרה ביותר‬

‫שארית ‪0‬‬
‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪$‬‬
‫‪q0‬‬ ‫‪q2‬‬ ‫‪q3‬‬ ‫‪q4‬‬

‫‪$‬‬

‫‪q5‬‬

‫‪49‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬
‫שארית ‪0‬‬
‫‪q0‬‬ ‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪q2‬‬ ‫‪0‬‬ ‫‪q3‬‬ ‫‪$‬‬ ‫‪q4‬‬

‫‪$‬‬

‫‪q5‬‬

‫שארית ‪0‬‬ ‫אס"ד לא מלא‬


‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪$‬‬
‫‪q0‬‬ ‫‪q2‬‬ ‫‪q3‬‬ ‫‪q4‬‬

‫‪0‬‬ ‫‪$‬‬
‫‪0‬‬
‫שארית ‪2‬‬ ‫שארית ‪1‬‬

‫‪q7‬‬ ‫‪0‬‬ ‫‪q6‬‬


‫‪q5‬‬

‫‪50‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬
‫שארית ‪0‬‬
‫‪q0‬‬ ‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪q2‬‬ ‫‪0‬‬ ‫‪q3‬‬ ‫‪$‬‬ ‫‪q4‬‬

‫‪$‬‬

‫‪q5‬‬

‫שארית ‪0‬‬
‫אס"ד מלא‬
‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪$‬‬
‫‪q0‬‬ ‫‪q2‬‬ ‫‪q3‬‬ ‫‪q4‬‬

‫‪$‬‬ ‫‪$‬‬ ‫‪$‬‬


‫‪$,0‬‬ ‫‪0‬‬ ‫‪$‬‬
‫‪0‬‬
‫שארית ‪2‬‬ ‫שארית ‪1‬‬

‫‪q8‬‬ ‫‪q7‬‬ ‫‪0‬‬ ‫‪q6‬‬


‫‪q5‬‬

‫‪51‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬
‫שארית ‪0‬‬
‫‪q0‬‬ ‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪q2‬‬ ‫‪0‬‬ ‫‪q3‬‬ ‫‪$‬‬ ‫‪q4‬‬

‫‪$‬‬

‫‪q5‬‬

‫שארית ‪0‬‬

‫‪0‬‬ ‫‪q1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪$‬‬


‫‪q0‬‬ ‫‪q2‬‬ ‫‪q3‬‬ ‫‪q4‬‬

‫‪$‬‬ ‫‪0‬‬ ‫‪$‬‬


‫‪$,0‬‬ ‫‪0‬‬
‫שארית ‪2‬‬ ‫שארית ‪1‬‬

‫‪q8‬‬ ‫‪q7‬‬ ‫‪0‬‬ ‫‪q6‬‬


‫‪q5‬‬

‫‪52‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫‪53‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫‪54‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫‪ .1‬המילה הקצרה ביותר היא ‪ , aaa‬כך ש ‪ q3,q4‬מצבים מקבלים‪.‬‬

‫‪b‬‬

‫‪q0‬‬
‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬
‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪b‬‬

‫‪q4‬‬

‫‪55‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫‪ .1‬המילה הקצרה ביותר היא ‪ , aaa‬כך ש ‪ q3,q4‬מצבים מקבלים‪.‬‬

‫‪b‬‬

‫‪q0‬‬
‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬
‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪b‬‬

‫‪q4‬‬

‫‪56‬‬
‫בגרות קיץ תש"ע‪2010 /‬‬ ‫איחוד וחיתוך שפות רגולריות‬

‫פתרון סופי‪:‬‬
‫‪b‬‬
‫‪b‬‬ ‫‪b‬‬

‫‪q0‬‬
‫‪a‬‬ ‫‪a‬‬ ‫‪a‬‬
‫‪q1‬‬ ‫‪q2‬‬ ‫‪q3‬‬

‫‪b‬‬ ‫‪a‬‬

‫‪b‬‬ ‫‪q4‬‬
‫‪q4‬‬

‫‪57‬‬
‫תודה על ההקשבה‬

‫‪58‬‬
‫שימוש ביצירות מוגנות בזכויות יוצרים ואיתור בעלי זכויות‬

‫השימוש ביצירות במהלך שידור זה נעשה לפי סעיף ‪27‬א לחוק זכות יוצרים‪,‬‬
‫תשס"ח‪ .2007-‬אם הינך בעל הזכויות באחת היצירות‪ ,‬באפשרותך לבקש‬
‫מאיתנו לחדול מהשימוש ביצירה‪ ,‬זאת באמצעות פנייה לדוא"ל‬
‫‪rights@education.gov.il‬‬

‫‪59‬‬

You might also like