חוברת עזר, ע"י חיים אברבוך - אתר מדעי המחשב של הילה קדמן

Transcription

חוברת עזר, ע"י חיים אברבוך - אתר מדעי המחשב של הילה קדמן
‫מכונת טיורינג‬
‫אוטומט מחסנית לא דטרמיניסטי‬
‫שפות חופשיות הקשר‬
‫)שפת ראי לא מסומנת(‬
‫אוטומט מחסנית דטרמיניסטי‬
‫שפות חופשיות הקשר‬
‫)שפת ראי מסומנת(‬
‫סגירות‪:‬איחוד‪,‬שרשור‪,‬היפוך‪,‬‬
‫חיתוך עם שפה רגולרית‬
‫אוטומט סופי דטרמיניסטי‬
‫שפות רגולריות‬
‫סגירות‪:‬חיתוך‪,‬איחוד‪,‬שרשור‪,‬משלים‪,‬היפוך‬
‫© כל הזכויות שמורות‬
‫‪1‬‬
‫© זכויות יוצרים‬
‫עלות השימוש בספר זה החל משנת‬
‫‪ 2012-2013‬הינה ‪ 10‬שקלים‪.‬‬
‫את עלות השימוש יש להעביר ל‪:‬‬
‫אברבוך חיים מרדכי ‪ 11‬רמת השרון‬
‫מיקוד ‪47441‬‬
‫בספר הושקעו זמן ומחשבה מרובים על מנת לעשותו קריא‬
‫ומובן לכל ‪ .‬אשמח לקבל תגובות הערות תוספות ותיקונים‪.‬‬
‫‪ [email protected]‬או ‪[email protected]‬‬
‫תודה מראש לכל מי שהכללתי שאלות ופתרונות שלו‪.‬‬
‫כל מי שרואה עצמו נפגע מכך נא לשלוח לי מייל‪.‬‬
‫© כל הזכויות שמורות‪.‬‬
‫© כל הזכויות שמורות‪.‬‬
‫בהצלחה‬
‫© כל הזכויות שמורות‬
‫‪2‬‬
‫הערה‪ :‬לעיתים בתוכן הענינים האותיות האנגליות יצאו גדולות כאשר בספר עצמו הן קטנות‪8 ...................... ................................ .‬‬
‫הקדמה ‪8 ............. ................................ ................................ ................................ ................................ ................................‬‬
‫כיצד ללמוד ‪8 ...................................... ................................ ................................ ................................ ................................‬‬
‫‪9 ....‬‬
‫מהו אוטומט סופי דטרמיניסטי‪-‬אס"ד ‪9 ................................... ................................ ................................ ................................‬‬
‫מילה‪/‬שפה ‪13 ...................................... ................................ ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-1‬השלם פונקצית מעברים ‪16 ...................... ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-2‬השלם את החיצים ‪17 ............................. ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪ -3‬רשום את השפה המתקבלת לכל אחד מהאוטומטים הבאים ‪19 .......... ................................ ................................‬‬
‫תפקיד המצבים ‪22 ............................... ................................ ................................ ................................ ................................‬‬
‫צמצום תנאי שפה ‪23 ............................ ................................ ................................ ................................ ................................‬‬
‫דגשים לבניית אוטומט סופי ‪24 .............. ................................ ................................ ................................ ................................‬‬
‫תנאים על אס"ד ‪25 ............................ ................................ ................................ ................................ ................................‬‬
‫אוסף תרגילים פתורים באס"ד ‪25 ......................................... ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-4‬בנה אס"ד מתאים לשפה נתונה ‪30 .............. ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-5‬בנה אס"ד מתאים לשפה נתונה ‪30 .............. ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-6‬ביצוע מעקב והגדרת שפה ‪30 ................... ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪ -7‬מה מייצג כל מצב ‪33 .............................. ................................ ................................ ................................‬‬
‫תאור אוטומט באמצעות טבלה ‪35 ........... ................................ ................................ ................................ ................................‬‬
‫שפות "מיוחדות" ‪37 ............................ ................................ ................................ ................................ ................................‬‬
‫השפה הריקה ‪37 ............................... ................................ ................................ ................................ ................................‬‬
‫השפה המכילה את המילה הריקה בלבד ‪37 .............................. ................................ ................................ ................................‬‬
‫שפה שמספר המילים בה סופי ‪37 .......... ................................ ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪ -8‬בנית אס"ד ‪38 ...................................... ................................ ................................ ................................‬‬
‫שפות שמתוארות על ידי חזקה ‪39 .......... ................................ ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪ 8‬א'‪ -‬בנית אס"ד ‪40 .................................. ................................ ................................ ................................‬‬
‫אוטומט לא דטרמיניסטי‪/‬אוטומט לא שלם ‪40 ........................... ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-9‬תרגילים שונים ‪42 ................................. ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-10‬אוטומט סופי לא דטרמיניסטי ‪47 .............. ................................ ................................ ................................‬‬
‫אוטומט מכפלה ‪48 ............................... ................................ ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-11‬אוטומט מכפלה ‪55 ............................... ................................ ................................ ................................‬‬
‫מונחים (הדפס דפים אלה) ‪56 ................. ................................ ................................ ................................ ................................‬‬
‫סגירות שפות רגולריות תחת פעולות ‪58 ................................... ................................ ................................ ................................‬‬
‫© כל הזכויות שמורות‬
‫‪3‬‬
‫חיתוך ‪ -‬גם( ‪ L1∩L2‬פירושו כל המילים המתקבלות הן ב ‪ L1‬והן ב‪58 ................. ................................ ................................ .) L2‬‬
‫איחוד ‪ -‬או ( ‪ L1 L2‬פירושו כל המילים המתקבלות ב ‪ L1‬או ב ‪58 .................... ................................ ................................ .) L2‬‬
‫שרשור( ‪ L1· L2‬פירושו כל המילים אשר ניתן לחלק אותן לשני חלקים כך שהחלק השמאלי שייך ל ‪ L1‬והימני ל ‪58 ......................... )L2‬‬
‫)‪ R(L‬פירושו היפוך ‪ L‬מסומן גם כ ‪58 ............................. ................................ ................................ ................................ . LR‬‬
‫משלים )‪ (L‬מסומן ‪L‬‬
‫פירושו כל המילים שאינן מתקבלות ב ‪59 ........................... ................................ ................................ . L‬‬
‫הכלה (השפות הרגולריות אינן סגורות תחת פעולה זו ) ‪59 .......... ................................ ................................ ................................‬‬
‫אוסף תרגילים פתורים בהוכחת רגולריות בעזרת חוקי סגירות ‪59 ................................. ................................ ................................‬‬
‫תבנית להוכחת רגולריות של שפה ‪61 ..................................... ................................ ................................ ................................‬‬
‫אוסף תרגילים פתורים בפעולות על שפות ‪65 ........................... ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-12‬סגירות שפות רגולריות ופעולות בין שפות ‪68 ........................... ................................ ................................‬‬
‫שאלות ופתרונות שניתנו בקורס מורים מובילים בהנחיית ד"ר מיכל ארמוני ‪72 ................ ................................ ................................‬‬
‫הכלת שפות ‪79 ................................. ................................ ................................ ................................ ................................‬‬
‫הוכחת אי רגולריות ‪81 .......................... ................................ ................................ ................................ ................................‬‬
‫תבנית הוכחה לשפה אי רגולרית ‪83 ....................................... ................................ ................................ ................................‬‬
‫טעויות שכיחות בהוכחת אי רגולריות ‪89 ................................. ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-13‬הוכחת אי רגולריות ‪95 .......................... ................................ ................................ ................................‬‬
‫‪97 .............‬‬
‫הסבר על אוטומט מחסנית באמצעות תרגילים ‪98 ...................... ................................ ................................ ................................‬‬
‫‪99 ........................... ................................ ................................ ................................ ................................ L=ANBN N≥0‬‬
‫‪100 ......................... ................................ ................................ ................................ ................................ L=ANBN N>0‬‬
‫מקרים בהם מספר ה ‪ A‬גדול או קטן ממספר ה ‪B‬ים בכפולה‪101 .................................. ................................ ................................ .‬‬
‫‪101 ......................... ................................ ................................ ................................ ................................ L=ANB3N N0‬‬
‫‪101 ......................... ................................ ................................ ................................ ................................ L=A3NBN N>0‬‬
‫‪102 ........................ ................................ ................................ ................................ ................................ L=A2NB3N N>0‬‬
‫‪103 ...................... ................................ ................................ ................................ ................................ L= A2NB3N N0‬‬
‫מקרים בהם מספר ה ‪ A‬גדול או קטן ממספר ה ‪B‬ים בקבוע‪103 .................................... ................................ ................................ .‬‬
‫‪104 ........................ ................................ ................................ ................................ ................................ L=ANBN+1 N0‬‬
‫‪104 ........................ ................................ ................................ ................................ ................................ L=AN+1BN N0‬‬
‫‪105 ...................... ................................ ................................ ................................ ................................ L=AN-1BN-2 N0‬‬
‫מקרים בהם יש שילוב של כפולה וקבוע ‪106 ........................... ................................ ................................ ................................‬‬
‫‪106 ...................... ................................ ................................ ................................ ................................ L=AN+1B3N N0‬‬
‫‪106 .................... ................................ ................................ ................................ ................................ L=AN+1B3N-2 N0‬‬
‫‪106 .................... ................................ ................................ ................................ ................................ L=AN+1B3N-1 N0‬‬
‫‪107 ................... ................................ ................................ ................................ ................................ L=A2N+1B3N-1 N0‬‬
‫מקרים בהם נדרש להכניס יותר מאות אחת למחסנית ‪108 ........... ................................ ................................ ................................‬‬
‫‪108 ............. ................................ ................................ ................................ ................................ L= ANBK CKDN K,N>0‬‬
‫‪108 ........... ................................ ................................ ................................ ................................ L= ANBK+1 CKDN K,N>0‬‬
‫מספר ה ‪ A‬ים שווה למספר ה ‪ B‬ים ‪110 ................................... ................................ ................................ ................................‬‬
‫© כל הזכויות שמורות‬
‫‪4‬‬
‫מקרים בהם יש לבצע הצבה עקב סימן מינוס בחזקה ‪110 ............ ................................ ................................ ................................‬‬
‫‪111 .............. ................................ ................................ ................................ ................................ L= ANBN-KCK N≥K≥0‬‬
‫דף תרגילים מספר ‪-14‬בנית אוטומט מחסנית ‪111 ..................... ................................ ................................ ................................‬‬
‫‪112 ....................... ................................ ................................ ................................ ................................ L= ANBK+1 CKDN‬‬
‫‪112 ............................. ................................ ................................ ................................ ................................ L= A2N-1B3N‬‬
‫שילוב של אוטומט רגיל ואוטומט מחסנית ‪113 ......................... ................................ ................................ ................................‬‬
‫מקרים בהם אין צורך בהכנסת ‪115 ..................................... ................................ ................................ ................................ S‬‬
‫‪117 ................. ................................ ................................ ................................ ................................ L= A2N+1BN+2 N0‬‬
‫תרגילים שונים (רובם פתורים) ‪118 ...................................... ................................ ................................ ................................‬‬
‫}‪124 ...................................... ................................ ................................ ................................ L={ANBKN, K≥0, K=N/2‬‬
‫מחרוזת פנינים ‪124 ........................... ................................ ................................ ................................ ................................‬‬
‫תרגיל (דורון זוהר) } ‪125 ...................... ................................ ................................ L={ (YX)NZK(XY)JN,K≥0 N<J K EVEN‬‬
‫אוטומט מחסנית לא דטרמיניסטי ‪126 ...................................... ................................ ................................ ................................‬‬
‫מספר כללים לאוטומט מחסנית ‪-‬חזקות ‪129 .............................. ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-15‬אוטומט מחסנית ‪130 ............................ ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-16‬אוטומט מחסנית ‪131 ............................ ................................ ................................ ................................‬‬
‫דף תרגילים מספר ‪-17‬אסד ואוטומט מחסנית ‪131 ..................... ................................ ................................ ................................‬‬
‫סגירות שפות חופשיות הקשר ‪139 .......... ................................ ................................ ................................ ................................‬‬
‫שרשור ( ‪ L1· L2‬פירושו כל המילים אשר ניתן לחלק אותן לשני חלקים כך שהחלק השמאלי שייך ל ‪ L1‬והימני ל ‪140 ...................... )L2‬‬
‫איחוד ( ‪ L1L2‬פירושו כל המילים המתקבלות ב ‪ L1‬או ב ‪140 ......................... ................................ ................................ .)L2‬‬
‫היפוך ‪140 ................................... ................................ ................................ ................................ ................................ L‬‬
‫( ‪ L1∩L2‬פירושו כל המילים המתקבלות הן ב ‪ L1‬והן ב ‪141 ............................. ................................ ................................ .)L2‬‬
‫חיתוך שפה חופשית הקשר עם שפה רגולרית נותן שפה חופשית הקשר ‪141 .................... ................................ ................................‬‬
‫חיתוך שתי שפות חופשיות הקשר שחיתוכן אינו חופשי הקשר ‪141 ............................... ................................ ................................‬‬
‫‪141 ..................................‬‬
‫מהי מכונת טיורינג ‪142 ......................... ................................ ................................ ................................ ................................‬‬
‫מצב מקבל ‪143 ................................. ................................ ................................ ................................ ................................‬‬
‫הסבר על מכונת טיורינג באמצעות תרגילים ‪144 ....................... ................................ ................................ ................................‬‬
‫דוגמה א‪ :‬מכונת טיורינג המחליפה ‪ A‬ל ‪ B‬ו ‪ B‬ל ‪(A‬בשפה מעל }‪144 .................... ................................ ................................ ) {A,B‬‬
‫דוגמה ב‪ :‬מכונת טיורינג המוסיפה ‪ A‬בסוף המילה(בשפה מעל }‪144 .................... ................................ ................................ ) {A,B‬‬
‫דוגמה ג‪ :‬מכונת טיורינג המוסיפה ‪ 1‬למילה באורך איזוגי(בשפה מעל }‪144 .............. ................................ ................................ ) }1‬‬
‫דוגמה ד‪ :‬מכונת טיורינג הבודקת שהאות האחרונה ‪( A‬מעל } ‪145 ...................... ................................ ................................ ) } A,B‬‬
‫דוגמה ה‪ :‬מכונת טיורינג הבודקת שהאות הראשונה זהה לאחרונה (מעל } ‪145 ..................................... ................................ ) } A,B‬‬
‫דף תרגילים ‪ 1‬במכונת טיורינג ‪146 ....................................... ................................ ................................ ................................‬‬
‫מכונת טיורינג לבדיקת שפות רגולריות (ניתן לבנות להן אוטומט סופי דטרמיניסטי) ‪147 ................................ ................................‬‬
‫מכונת טיורינג לשפות חופשיות הקשר ולא רגולריות ‪148 .......... ................................ ................................ ................................‬‬
‫© כל הזכויות שמורות‬
‫‪5‬‬
‫מקבלת מילים מעל }‪ {A,B‬שמתחילות ב ‪ A‬ומסתיימות ב ‪ A‬ואורך רצף ה ‪ A‬בהתחלה ובסוף שווה ‪150 ................... ................................‬‬
‫מכונת טיורינג לשפות לא חופשיות הקשר ‪151 ......................... ................................ ................................ ................................‬‬
‫מקבלת את המילים מעל }‪ {A,B,C‬מהצורה ‪151 .................................... ................................ ................................ N≥0 ANBNCN‬‬
‫מכונת טיורינג – תרגילים שונים ‪151 ...................................... ................................ ................................ ................................‬‬
‫מקבלת רצף של ‪ A‬מוסיפה ‪ A‬בסופו ותוחמת את רצף ה ‪ A‬ים בסימני דולר‪152 ............... ................................ ................................ .‬‬
‫חיבור ‪152 ................... ................................ ................................ ................................ ................................ F(X,Y)=X+Y‬‬
‫‪153 ................................. ................................ ................................ ................................ ................................ F(X)=2X‬‬
‫חיסור ‪153 ................................... ................................ ................................ ................................ X>0 X>Y F(X,Y)=X-Y‬‬
‫למעשה ניתן בפיתרון להשתמש ב ‪ X‬בלבד ואין צורך בשימוש בשתי אותיות גדולות שונות‪154 .................. ................................ .‬‬
‫חיסור ‪154 .................. ................................ ................................ ................................ Y≥0 X >0 X+Y>Z F(X,Y)=X+Y-Z‬‬
‫בנה מכונת טיורינג המבצעת חלוקה בשלוש עבור מספר אונרי ‪159 ............................... ................................ ................................‬‬
‫‪162 ................. ................................ ................................ ................................ ................................ L= ANBNC2N N>=0‬‬
‫‪162 ................. ................................ ................................ ................................ ................................ L= ANBNCM M>=N‬‬
‫‪163 ................. ................................ ................................ ................................ ................................ L= ANBNCM N>=M‬‬
‫מהי השפה המתקבלת על ידי מכונת טיורינג ‪164 ....................... ................................ ................................ ................................‬‬
‫כפל ‪166 ..................................... ................................ ................................ ................................ X>0 Y>0 F(X,Y)=X*Y‬‬
‫תבניות במכונת טיורינג ‪170 ................... ................................ ................................ ................................ ................................‬‬
‫הערות למגן ולבגרות‪-‬דפי סיכום ‪171 ...................................... ................................ ................................ ................................‬‬
‫סוגי שאלות (לא מלא) ‪181 .................... ................................ ................................ ................................ ................................‬‬
‫בגרויות ‪181 ........................................ ................................ ................................ ................................ ................................‬‬
‫תשמ"ז ‪182 ..................................... ................................ ................................ ................................ ................................‬‬
‫תשמ"ח ‪182 .................................... ................................ ................................ ................................ ................................‬‬
‫תשמ"ח ‪183 .................................... ................................ ................................ ................................ ................................‬‬
‫תשמ"ט ‪184 .................................... ................................ ................................ ................................ ................................‬‬
‫תשן ‪184 ......................................... ................................ ................................ ................................ ................................‬‬
‫תשנב ‪185 ....................................... ................................ ................................ ................................ ................................‬‬
‫תשנג ‪185 ...................................... ................................ ................................ ................................ ................................‬‬
‫תש"ס ‪187 ...................................... ................................ ................................ ................................ ................................‬‬
‫תשס"א ‪188 .................................... ................................ ................................ ................................ ................................‬‬
‫תשס"ב ‪191 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ב ‪192 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ב ‪192 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ב ‪193 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫פתרון ‪193 ...................................... ................................ ................................ ................................ ................................‬‬
‫תשס"ג ‪193 ................................ ................................ ................................ ................................ ................................ 11‬‬
‫תשס"ג ‪194 ................................ ................................ ................................ ................................ ................................ 12‬‬
‫תשס"ג ‪195 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ג ‪196 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ג ‪196 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ג ‪196 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫© כל הזכויות שמורות‬
‫‪6‬‬
‫תשס"ד ‪197 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ד ‪198 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ד ‪198 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ד ‪198 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫תשס"ה ‪200 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ה ‪201 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ה ‪201 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ה ‪201 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫תשס"ו ‪203 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ו ‪204 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ו ‪204 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ו ‪205 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫תשס"ז ‪206 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ז ‪206 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ז ‪207 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ז ‪207 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫פתרון ‪208 ...................................... ................................ ................................ ................................ ................................‬‬
‫תשס"ח ‪209 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ח ‪210 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ח ‪211 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ח ‪212 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫תשס"ט ‪212 ................................ ................................ ................................ ................................ ................................ 13‬‬
‫תשס"ט ‪213 ................................ ................................ ................................ ................................ ................................ 14‬‬
‫תשס"ט ‪214 ................................ ................................ ................................ ................................ ................................ 15‬‬
‫תשס"ט ‪214 ................................ ................................ ................................ ................................ ................................ 16‬‬
‫תש"ע ‪216 .................................. ................................ ................................ ................................ ................................ 13‬‬
‫תש"ע ‪216 .................................. ................................ ................................ ................................ ................................ 14‬‬
‫תש"ע ‪217 .................................. ................................ ................................ ................................ ................................ 15‬‬
‫תש"ע ‪219 .................................. ................................ ................................ ................................ ................................ 16‬‬
‫מבחן בגרות ‪231 ......................... ................................ ................................ ................................ ................................ 2011‬‬
‫מבחן בגרות ‪233 ......................... ................................ ................................ ................................ ................................ 2012‬‬
‫פתרון מבחן בגרות ‪236 ................ ................................ ................................ ................................ ................................ 2012‬‬
‫‪246 ............ ................................‬‬
‫© כל הזכויות שמורות‬
‫‪7‬‬
‫הערה‪ :‬לעיתים בתוכן הענינים האותיות האנגליות יצאו גדולות‬
‫כאשר בספר עצמו הן קטנות‪.‬‬
‫הקדמה‬
‫הנושא מודלים חישוביים הינו נושא הנלמד גם במסגרת לימודים על תיכוני‪ .‬לימוד הנושא במוסד אקדמי‬
‫כולל הרחבה של הנושא מעבר לתוכנית הלימודים בתיכון‪ .‬הספר שלהלן מקיף את רוב תוכנית הלימודים‬
‫לפי הנחיות משרד החינוך‪.‬‬
‫הסבר המושגים בויקיפדיה נעשה באופן מדעי‪/‬אקדמי וכאמור מכיל הרחבה של תוכנית הלימודים למרות‬
‫זאת מומלץ לעיין בו‪.‬‬
‫כיצד ללמוד‬
‫עליכם לקרוא את הספר ‪.‬‬
‫חובה לעין בכל דוגמא ובכל מה שמסומן בירוק עם רקע צהוב כמו כן לעיין היטב בתרגילים הפתורים‪.‬‬
‫אין לעבור לפרק הבא לפני שפתרתם מספר תרגילים מכל פרק‪.‬‬
‫לקרוא היטב את עמודי הסיכום‪.‬‬
‫לגבי מבחני בגרות ןפתרונותיהם מומלץ לעיין באתר של הילה קדמן ‪kadman.net‬‬
‫© כל הזכויות שמורות‬
‫‪8‬‬
‫אוטומט_סופי‪http://he.wikipedia.org/wiki/‬‬
‫מהו אוטומט סופי דטרמיניסטי‪-‬אס"ד‬
‫אוטומט הינו כלי‪/‬מכונה‪/‬ציור שמטרתו לתאר שינוי מצב כתוצאה מפעולה‪/‬קלט‪/‬אירוע כלשהו‪.‬‬
‫(בהמשך נרחיב את הגדרת האוטומט)‬
‫דוגמא ‪ :1‬אם אנו במצב "רעב" אזי לאחר שנאכל נעבור למצב "שבע"‪.‬‬
‫החץ מסמן את המצב שהינו נקודת ההתחלה‪/‬מוצא שלנו‪.‬‬
‫בעיגולים נרשם מצב עכשווי וליד החיצים נרשמים האירועים‪.‬‬
‫שבע‬
‫אכלנו‬
‫רעב‬
‫דוגמא ‪ :2‬מנורה כבויה תדלק באם נרים את המתג ותכבה כאשר נוריד‪.‬‬
‫מצב התחלתי‪-‬המנורה כבויה‪.‬‬
‫דלוק‬
‫הרמת מתג‬
‫כבוי‬
‫הורדת מתג‬
‫מה קורה כאשר המתג מורם ואנו מנסים להרים אותו תשובה ‪ :‬המנורה תישאר דלוקה‪.‬‬
‫או כשהוא מורד ואנו מנסים להוריד אותו? תשובה‪ :‬המנורה תישאר כבויה‪.‬‬
‫הרמת מתג‬
‫דלוק‬
‫הורדת מתג‬
‫הרמת מתג‬
‫כבוי‬
‫הורדת מתג‬
‫© כל הזכויות שמורות‬
‫‪9‬‬
‫אוטומט סופי‬
‫דוגמא ‪ :3‬נתונה דלת שבה שני מנעולים‪ .‬מספיק שאחד המנעולים יהיה במצב סגור על מנת שלא‬
‫תפתח‪.‬‬
‫במצב התחלתי הדלת פתוחה כלומר שני המנעולים פתוחים‪.‬‬
‫שימו לב שרק עבור מצב אחד הדלת פתוחה ועבור שלושה מצבים נוספים הדלת סגורה‪.‬‬
‫א סגור‬
‫ב פתוח‬
‫פתח א‬
‫פתח ב‬
‫סגור א‬
‫סגור ב‬
‫א פתוח‬
‫ב פתוח‬
‫א סגור‬
‫ב סגור‬
‫סגור ב‬
‫סגור א‬
‫פתח א‬
‫פתח ב‬
‫א פתוח‬
‫ב סגור‬
‫כמובן שניסיון לפתוח מנעול שהינו כבר פתוח או לסגור מנעול שהינו כבר סגור ישאיר אותנו באותו מצב‪.‬‬
‫נשלים את האוטומט ונקבל‬
‫פתח ב‬
‫סגור א‬
‫הדלת‬
‫סגורה‬
‫א סגור‬
‫ב פתוח‬
‫הדלת‬
‫סגורה‬
‫פתח ב‬
‫פתח א‬
‫פתח א‬
‫סגור א‬
‫סגור ב‬
‫סגור א‬
‫סגור ב‬
‫הדלת‬
‫פתוחה‬
‫רה‬
‫א פתוח‬
‫ב פתוח‬
‫א‪+‬ב‬
‫סגורים‬
‫פתח א‬
‫סגור ב‬
‫סגור א‬
‫פתח ב‬
‫הדלת‬
‫ב סגור‬
‫א פתוח‬
‫סגורה‬
‫פתח א‬
‫סגור ב‬
‫© כל הזכויות שמורות‬
‫‪10‬‬
‫אוטומט סופי‬
‫פתח א‬
‫פתח ב‬
‫דוגמא ‪:4‬‬
‫לעיתים אנו רוצים להבדיל בין המצבים‪.‬‬
‫חלקם יהיו מצבים מקבלים )"מצב טוב"( ונסמנם בעיגול כפול‬
‫וחלקם לא ונסמנם בעיגול רגיל‪.‬‬
‫הדוגמא ‪ :‬מחרוזת)שרשרת( מורכבת מחרוזים בצבעים א )אדום( כ )כחול( וי )ירוק(‪ .‬מחרוזת נחשבת‬
‫לתקינה אך ורק אם אין שני חרוזים צמודים מאותו צבע ואורכה לפחות אחד )מכילה לפחות חרוז אחד(‪.‬‬
‫בואו ונבנה את האוטומט המתאים‪:‬‬
‫‪q1‬‬
‫י‬
‫י‬
‫כ‬
‫כ‬
‫‪q4‬‬
‫י‬
‫אי‬
‫א‬
‫‪q2‬‬
‫י‬
‫א‬
‫‪q0‬‬
‫א‬
‫כא‬
‫כ‬
‫כ‬
‫‪q3‬‬
‫שימו לב‪ :‬החץ‬
‫מסמן את נקודת ההתחלה שמקובל לסמנה כ ‪ . q0‬האוטומט שנבנה סורק את המילה‬
‫המייצגת את צבעי החרוזים מתחילתה)משמאל לימין(‪ .‬עיגול כפול פירושו מצב מקבל ובמקרה שלנו מחרוזת‬
‫חרוזים תקינה‪ .‬באוטומט שלעיל שלושה מצבים מקבלים‪.‬‬
‫בואו נבצע מעקב על המילה(מחרוזת) הבאה משמאל לימין ‪ :‬יאיכאיכ‬
‫עובר‬
‫למצב‬
‫צבע חרוז נבדק‬
‫נמצא במצב‬
‫‪q3‬‬
‫יאיכאיכ‬
‫‪q0‬‬
‫‪q1‬‬
‫יאיכאיכ‬
‫‪q3‬‬
‫‪q2‬‬
‫יאיכאיכ‬
‫‪q1‬‬
‫‪q3‬‬
‫יאיכאיכ‬
‫‪q2‬‬
‫‪q1‬‬
‫יאיכאיכ‬
‫‪q3‬‬
‫‪q2‬‬
‫יאיכאיכ‬
‫‪q1‬‬
‫‪q1‬‬
‫יאיכאיכ‬
‫‪q2‬‬
‫הגענו למצב ‪ q1‬שהינו מצב מקבל‪ .‬כלומר המחרוזת תקינה‪.‬‬
‫שימו לב שאם נתונה מחרוזת לא תקינה כגון ‪ :‬יי אנו מגיעים למצב ‪ q4‬ואיננו יכולים לצאת ממצב זה‪.‬‬
‫מצב זה נקרא מלכודת של מצב לא מקבל‬
‫‪.‬‬
‫© כל הזכויות שמורות‬
‫‪11‬‬
‫אוטומט סופי‬
‫בואו נבצע מעקב על המילה הבאה המייצגת את צבעי המחרוזת ‪ -‬משמאל לימין ‪ :‬יאייכאיכ‬
‫עובר‬
‫למצב‬
‫צבע חרוז נבדק‬
‫נמצא במצב‬
‫‪q3‬‬
‫אייכאיכ‬
‫‪q0‬‬
‫‪q1‬‬
‫אייכאיכ‬
‫‪q3‬‬
‫‪q2‬‬
‫אייכאיכ‬
‫‪q1‬‬
‫‪q3‬‬
‫אייכאיכ‬
‫‪q2‬‬
‫‪q1‬‬
‫אייכאיכ‬
‫‪q3‬‬
‫‪q4‬‬
‫אייכאיכ‬
‫‪q1‬‬
‫‪q4‬‬
‫אייכאיכ‬
‫‪q2‬‬
‫הגענו למצב לא מקבל כיוון שהופיע י פעמיים ברצף‪) .‬יי(‪.‬‬
‫שימו לב שלא משנה מה מופיע אחרי ה יי אנו נישאר במצב ‪ q4‬כיוון שהופעת יי פוסלת את המחרוזת‬
‫ולכן למעשה אין טעם לבדוק אחרי הופעת ה יי‪.‬‬
‫אוטומט סופי‬
‫© כל הזכויות שמורות‬
‫‪12‬‬
‫מילה‪/‬שפה‬
‫שימו לב !! נפגשנו פה בפעם הראשונה עם המושג מילה‪ .‬מילה הינה סדרת סימנים השייכת לשפה ‪.‬‬
‫כל סימן מעביר אותנו מצב‪) .‬כמובן שיתכן שנישאר באותו המצב או נעבור למצב חדש(‪.‬‬
‫שפה הינה הגדרה של אילו מילים מתקבלות ואילו אינן מתקבלות‪ .‬למשל לגבי המחרוזת עם הצבעים הגדרת‬
‫השפה ‪ L‬תהיה ‪ :‬שפת כל המילים מעל {י‪,‬א‪,‬כ} שאסור שיופיעו ‪ 2‬אותיות‪/‬תווים‪/‬סימנים זהים ברצף‪.‬‬
‫)נובע כמובן שגם שלושה או ארבעה ברצף אסור שיופיעו(‪.‬‬
‫דוגמא ‪ : 5‬נתונה שפה המורכבת מהאותיות &‪ $,@ ,‬בלבד‪ .‬כל המילים המתקבלות בשפה מתחילות ב &‬
‫ואורך המילה לא מוגבל‪ .‬צייר אוטומט שמקבל את המילים החוקיות בשפה ו"דוחה" את המילים שלא‬
‫מתקבלות‪.‬‬
‫‪q1‬‬
‫@‪$,‬‬
‫‪q0‬‬
‫&‪$,@,‬‬
‫&‬
‫‪q2‬‬
‫&‪$,@,‬‬
‫!!!! כל מצב (עיגול) הינו בעל משמעות‪ .‬למשל באוטומט שבדוגמא ‪" q1 4‬אומר" אסור שאחרי ההגעה אלי‬
‫יהיה הצבע ירוק כי לפני היה ירוק‪ .‬באופן דומה ‪ q2‬וצבע אדום ו ‪ q3‬וצבע כחול‪.‬‬
‫באוטומט הנוכחי)דוגמא ‪ q2 (5‬פירושו שהמילה התחילה ב & ולכן כל המשך תקני ואילו ‪ q1‬פירושו שהמילה‬
‫התחילה ב @ או ‪ $‬ולכן כל המשך אינו תקני‪.‬‬
‫בכל אוטומט עלינו לציין מהן אותיות השפה‪ .‬כלומר מהו ה א"ב של השפה‪ .‬באוטומט הקודם {י‪,‬כ‪,‬א}‬
‫המייצגים את הצבעים ירוק כחול אדום בהתאמה‪ .‬באוטומט הנוכחי האותיות {&‪.}$,@,‬‬
‫© כל הזכויות שמורות‬
‫‪13‬‬
‫אוטומט סופי‬
‫דוגמא ‪ : 6‬ליעל תא בבית הספר בו היא מחזיקה את ספרי הלימוד ודברים נוספים‪ .‬הקוד למנעול הינו באורך‬
‫‪ 3‬או ‪ 4‬ומורכב מהספרות ‪ 1,2‬בלבד‪ .‬כמו כן אסור שהקוד יכיל רצף באורך שלוש של אותו המספר‪ .‬צייר‬
‫אוטומט שמקבל את הקודים החוקיים‪.‬‬
‫‪2‬‬
‫‪1‬‬
‫‪` 2‬‬
‫‪1‬‬
‫‪2‬‬
‫`‬
‫‪1‬‬
‫`‬
‫‪2‬‬
‫`‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫`‬
‫`‬
‫‪2‬‬
‫‪1,2‬‬
‫‪1‬‬
‫‪`2‬‬
‫`‬
‫‪1‬‬
‫‪1,2‬‬
‫`‬
‫האוטומט אינו שלם‪ .‬כלומר כל המעברים שאינם יכולים להגיע למצב מקבל הושמטו‪.‬‬
‫© כל הזכויות שמורות‬
‫‪14‬‬
‫אוטומט סופי‬
‫האוטומט השלם‬
‫‪2‬‬
‫‪1,2‬‬
‫‪1‬‬
‫מלכודת‬
‫למצב לא‬
‫`‬
‫‪2‬‬
‫מקבל‬
‫‪1‬‬
‫‪2‬‬
‫`‬
‫‪1‬‬
‫`‬
‫‪1‬‬
‫‪2‬‬
‫`‬
‫`‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫`‬
‫`‬
‫`‬
‫‪1‬‬
‫‪2‬‬
‫`‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1,2‬‬
‫‪1,2‬‬
‫`‬
‫‪1,2‬‬
‫מלכודת‬
‫למצב לא‬
‫מקבל‬
‫`‬
‫‪1,2‬‬
‫© כל הזכויות שמורות‬
‫‪15‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪-1‬השלם פונקצית מעברים‬
‫(כתוב בריבועים את אותיות השפה המתאימות לאור הגדרות השפה‪-‬תרגיל ראשון פתור)‬
‫‪a,b‬‬
‫בנה שפה מעל }‪ {a,b‬המקבלת‬
‫את כל המילים בעלות אורך אי‪-‬‬
‫זוגי‬
‫אורך‬
‫אי זוגי‬
‫אורך‬
‫זוגי‬
‫‪a,b‬‬
‫בנה שפה מעל }‪ {a,b‬המקבלת‬
‫את כל המילים המתחילות ב ‪a‬‬
‫בנה שפה מעל }‪ {a,b,c‬המקבלת‬
‫את כל המילים שמספר ה ‪a‬‬
‫ים ‪+‬מספר ה ‪ b‬ים אי‪-‬זוגי‬
‫בנה שפה מעל }‪ {a,b‬המקבלת‬
‫את כל המילים המתחילות ב ‪a‬‬
‫ומסתיימות ב ‪b‬‬
‫© כל הזכויות שמורות‬
‫‪16‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪-2‬השלם את החיצים‬
‫)פונקצית מעברים‪-‬תרגיל ראשון פתור(‬
‫בנה שפה מעל }‪ - {a,b‬כל המילים‬
‫‪a,b‬‬
‫בעלות אורך זוגי שאורכן‬
‫גדול מ ‪1‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫בנה שפה מעל }‪ {a,b,c‬המקבלת‬
‫את כל המילים שמספר ה ‪a‬‬
‫ים ‪+‬מספר ה ‪ b‬ים אי‪-‬זוגי‬
‫‪a,b‬‬
‫‪c‬‬
‫‪c‬‬
‫‪1‬‬
‫בנה שפה מעל {‪}0,1‬‬
‫המכילה ‪ 00‬או ‪11‬‬
‫‪0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫© כל הזכויות שמורות‬
‫‪1‬‬
‫‪17‬‬
‫‪0‬‬
‫‪0‬‬
‫אוטומט סופי‬
‫דוגמא ‪ : 7‬בנה אוטומט מעל }‪ {a,b‬המקבל מילים שמספר ה ‪ a‬בהם הינו לכל היותר ‪.1‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪b‬‬
‫!!!! שימו לב שהמצב ההתחלתי הינו מצב מקבל‪ .‬כלומר המילה הריקה שנסמנה ‪ ε‬או‬
‫מתקבלת‪.‬‬
‫ניתן לומר שאוטומט הינו מעין משחק שבו אנו מקבלים מילה סורקים אותה משמאל לימין ומטיילים על פני‬
‫האוטומט לפי כל אות שנסרקת‪ .‬אם בסוף סריקת המילה הגענו למצב מקבל המילה מתקבלת אחרת אינה‬
‫מתקבלת‪.‬‬
‫דוגמא ‪ : 8‬בנה אוטומט מעל }‪ {a,b‬המקבל מילים מהצורה‬
‫‪n m‬‬
‫‪. n,m > 0 a b‬‬
‫כלומר המילה צריכה להתחיל בלפחות ‪ a‬אחד או יותר להמשיך ב ‪ b‬אחד או יותר‪) .‬אסור שתסתיים ב ‪(a‬‬
‫‪n‬‬
‫‪3‬‬
‫‪ a‬פירושו ‪ n‬פעמים ‪ a .a‬שקול ל ‪aaa‬‬
‫‪q3‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪0‬‬
‫‪ a‬שקול לכלום )למילה הריקה(‪.‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫במהשך נחזור לתרגילים מסוג זה‬
‫אוטומט סופי‬
‫© כל הזכויות שמורות‬
‫‪18‬‬
‫דף תרגילים מספר ‪-3‬‬
‫רשום את השפה המתקבלת לכל אחד מהאוטומטים הבאים‬
‫(תרגיל ראשון פתור‪-‬הנח שכל סימני השפה מופיעים)‬
‫השפה הינה מעל }‪ {a,b‬ומקבלת כל‬
‫‪a,b‬‬
‫מילה בעלת אורך זוגי )כולל‬
‫המילה הריקה(‬
‫‪q0‬‬
‫‪q1‬‬
‫‪a,b‬‬
‫אוטומט סופי‬
‫‪a,b‬‬
‫‪a,b‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0,1‬‬
‫© כל הזכויות שמורות‬
‫‪19‬‬
‫אוטומט סופי‬
‫‪0‬‬
‫‪0,1‬‬
‫‪1‬‬
‫‪0,1‬‬
‫‪.0,1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪.0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫אוטומט סופי‬
‫© כל הזכויות שמורות‬
‫‪20‬‬
‫בנית אוטומט‬
‫עד כעת עסקנו באוטומטים נתונים‪ .‬נראה כעת איך בונים אוטומט ‪.‬‬
‫‪ .1‬בנה אוטומט מעל }‪ {a,b‬של כל המילים המכילות ‪.aa‬‬
‫נבנה תחילה את המילה הקצרה ביותר המובילה למצב מקבל‪.‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫כעת נתחיל להשלים ונוודא שמכל עיגול אנו יודעים להיכן נעבור עבור ‪ a‬ועבור ‪.b‬‬
‫‪b‬‬
‫נוסיף חוג עצמי ל ‪ q0‬של האות ‪ b‬כיוון ש ‪b‬‬
‫לא מקדם אותנו מבחינת הופעת ‪.aa‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫נוסיף קשת מ ‪ q1‬ל ‪ q0‬כיוון שהופעת ‪b‬‬
‫קוטעת את ספירת ה ‪ a‬ים‪.‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a,b‬‬
‫לבסוף הוספנו חוג עצמי ל ‪ q2‬כיוון שלאחר ‪ aa‬כל‬
‫‪q2‬‬
‫המשך מתקבל דוגמאות‪aab :‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪b‬‬
‫מילים מתקבלות‬
‫‪:‬‬
‫‪aa , aabb‬‬
‫מילים שלא מתקבלות‪abab , bbb , baba :‬‬
‫© כל הזכויות שמורות‬
‫‪21‬‬
‫אוטומט סופי‬
‫‪q0‬‬
‫‪ .2‬בנה אוטומט מעל }‪ {0,1‬של כל המילים המסתיימות ב ‪. 1101‬‬
‫בנית השרשרת הקצרה ביותר למצב מקבל‬
‫‪q4‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪1‬‬
‫השלמת השאר‬
‫‪0‬‬
‫‪1‬‬
‫‪q4‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫לכל מצב )עיגול( באוטומט יש משמעות‪ .‬כל מצב מיצג משהו‪.‬‬
‫תפקיד המצבים‬
‫‪ q1‬ישנו ‪ 1‬התו הראשון‬
‫של ‪1101‬‬
‫‪ q2‬ישנו ‪ 11‬שני התווים הראשונים‬
‫של ‪1101‬‬
‫‪ q3‬ישנו ‪ 110‬שלושת התווים הראשונים של ‪1101‬‬
‫‪ q4‬ישנו ‪ 1101‬כל התווים הנדרשים להגעה למצב מקבל‪.‬‬
‫מדוע מ ‪ q2‬באם מופיע ‪ 1‬אנו נשארים ב ‪ ?q2‬למשל ‪1111‬‬
‫תשובה ‪ :‬כיוון שסיפא )החלק הסופי של המילה עד עתה ( הינו ‪1111 .11‬‬
‫מדוע מ ‪ q4‬באם מופיע ‪ 1‬אנו חוזרים ל ‪ ?q2‬למשל ‪?11011‬‬
‫תשובה‪ :‬כיוון שהמילה צריכה להסתיים ב ‪ 1101‬וכיון שסיפא המילה הינו ‪11011 11‬‬
‫© כל הזכויות שמורות‬
‫‪22‬‬
‫אוטומט סופי‬
‫צמצום תנאי שפה‬
‫א‪ .‬בנה אוטומט מעל }‪ {a,b‬של כל המילים המתחילות ב ‪ ab‬או ‪ bb‬מכילות ‪ aa‬או ‪ aaa‬ומסתיימות ב ‪ b‬או‬
‫‪. bab‬‬
‫ניתוח המקרה‬
‫כל המילים המתחילות ב ‪ ab‬או ‪ bb‬פירושו שהאות השניה צריכה להיות ‪.b‬‬
‫כל המילים המכילות ‪ aa‬או ‪) aaa‬כיוון שהתנאי מופיע ‪ aa‬מוכל בתנאי מופיע ‪ (aaa‬ומילת התנאי הינה או‬
‫ניתן לצמצם ולומר שחייב להופיע ‪.aa‬‬
‫כל המילים המסתיימות ב ‪ b‬או ‪) bab‬באופן דומה ניתן לצמצם ולומר שחייב שיסתיימו ב ‪.(b‬‬
‫כלומר עלינו לבנות אוטומט מעל }‪ {a,b‬של כל המילים שהאות השניה ‪ b‬מכילות ‪ aa‬ומסתיימות ב ‪. b‬‬
‫‪.‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪q5‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪b‬‬
‫ב‪ .‬בנה אוטומט מעל }‪ {a,b‬של כל המילים המתחילות ב ‪ a‬וגם ב ‪ ab‬ומכילות ‪ aa‬וגם ‪. aaa‬‬
‫ניתוח המקרה‬
‫כל המילים המתחילות ב ‪ a‬וגם מתחילות ב ‪ ab‬פירושו שחיבות להתחיל ב ‪.ab‬‬
‫כל המילים המכילות ‪ aa‬וגם ‪ aaa‬פירושו למעשה שמכילות ‪.aaa‬‬
‫כלומר עלינו לבנות אוטומט מעל }‪ {a,b‬של כל המילים המתחילות ב ‪ ab‬ומכילות ‪. aaa‬‬
‫‪.‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪2‬‬
‫‪b‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪23‬‬
‫אוטומט סופי‬
‫‪q0‬‬
‫דגשים לבניית אוטומט סופי‬
‫‪ .1‬עיין תחילה בדוגמאות הפתורות ‪.‬‬
‫‪ .2‬בנה תחילה את המסלול למילה הקצרה ביותר המתקבלת בשפה‪.‬‬
‫‪ .3‬בדוק האם המילה הריקה מתקבלת בשפה‪.‬‬
‫‪ .4‬הבדל בין המקרים של מתחיל מכיל או מסתיים‪.‬‬
‫‪ .5‬ראה האם ניתן לצמצם תנאים‪.‬‬
‫‪ .6‬אס"ד הינם ראשי התיבות של אוטומט סופי דטרמיניסטי‪.‬‬
‫‪ .7‬באם הפתרון הינו אוטומט סופי דטרמיניסטי שלם ראה שכל מצב מטפל בכל קלט אפשרי פעם אחת‬
‫בלבד‪.‬‬
‫‪ .8‬כאשר יש דרישה למשל שמספר ה ‪ a‬ים במילה שארית חלוקה בשלוש תהיה ‪ ...‬אזי שים לב שאין‬
‫מעגל של ‪-a‬ים שאינו כפולה של שלוש בפתרון‪.‬‬
‫‪ .9‬אם הפתרון מורכב מתנאים של "מקיים תנאי א' וגם תנאי ב' " או "מקיים תנאי א' או תנאי ב' "‬
‫נלמד בהמשך איך ניתן לפרק את הבעיה ולבנות את הפתרון באמצעות אוטומט מכפלה‪.‬‬
‫‪ .10‬בתחילה‪ ,‬פתרון תרגיל דורש זמן ומחשבה אך בהמשך לאחר פתרון תרגילים מסוגים שונים דרכך‬
‫תהיה קלה יותר‪.‬‬
‫‪ .11‬שימו לב שיכול להיות יותר ממצב מקבל אחד‪.‬‬
‫הסבר לגבי ‪ 14 13‬ינתן בהמשך‬
‫‪ .12‬אם אין דרישה לאוטומט דטרמיניסטי אזי לעיתים פתרון לא דטרמיניסטי הינו פשוט יותר‪.‬‬
‫)אוטומט לא דטרמיניסטי יוסבר בהמשך(‪.‬‬
‫‪ .13‬לכל אוטומט לא דטרמיניסטי ניתן לבנות אוטומט דטרמיניסטי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪24‬‬
‫אוטומט סופי‬
‫תנאים על אס"ד‬
‫כפי שניתן להבחין התנאי על האוטומט מגוון‪.‬‬
‫להלן דוגמאות מייצגות‪ :‬מתחיל ב ‪ ,aa‬מכיל ‪ ,aa‬מסתיים ב ‪.aa‬‬
‫אינו מתחיל ב ‪ ,aa‬אינו מכיל ‪ , aa‬אינו מסתיים ב ‪,aa‬‬
‫אורך מילה זוגי‪ ,‬אורך מילה אי זוגי‪,‬‬
‫שארית חלוקה ב ‪ 3‬שווה ‪ ,1‬אות לפני אחרונה ‪.a‬‬
‫כמובן שניתן גם לשלב תנאים‪ ,‬לדוגמא‪ :‬אורך זוגי ותו לפני אחרון ‪.a‬‬
‫אוסף תרגילים פתורים באס"ד‬
‫תרגיל ‪1‬‬
‫תאר באמצעות גרף אוטומט סופי דטרמיניסטי שיקבל את כל המחרוזות מעל לא"ב {‪ }0,1‬המקיימת את שני‬
‫התנאים ‪:‬‬
‫‪‬‬
‫מופיעה בהן ‪ 000‬כתת מחרוזת בדיוק פעם אחת‪.‬‬
‫‪‬‬
‫אין בהן כלל מופעים של ‪ 00‬פרט לאלה שבמופע של ‪.000‬‬
‫דגמה‪ :‬המחרוזות ‪ 0110100011101‬ו ‪ 000111101‬תתקבלנה‬
‫המחרוזות‬
‫פתרון‬
‫‪0101011‬‬
‫ו ‪ 100011001‬לא תתקבלנה‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0,1‬‬
‫תרגיל ‪( 2‬קשה)‬
‫נתון האוטומט הבא מעל הא"ב {‪: }0,1‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0,1‬‬
‫א‪ .‬הגדר אילו מילים מתקבלות(‬
‫‪q3‬‬
‫ב‪ .‬הגדר תפקיד כל מצב‪.‬‬
‫© כל הזכויות שמורות‬
‫‪25‬‬
‫אוטומט סופי‬
‫פתרון‬
‫‪0  #0 (w)#1 (w)  2‬‬
‫א‪ .‬חייב להתקיים שעבור כל נקודה בקלט)רישא של המילה(‬
‫ובמילים פשוטות מספר האפסים במילה פחות מספר ה ‪ 1‬במילה צריך להיות בין ‪ 0‬ל ‪) 2‬כולל( לכל רישא של‬
‫המילה‪.‬‬
‫ב‪.‬‬
‫‪q0‬‬
‫‪0  #0 (w)#1 (w)  0‬‬
‫‪q1‬‬
‫‪0  #0 (w)#1 (w)  1‬‬
‫‪q2‬‬
‫‪0  #0 (w)#1 (w)  2‬‬
‫תרגיל ‪3‬‬
‫נתונה השפה הבאה‬
‫‪n=m % 2‬‬
‫‪m‬‬
‫‪n‬‬
‫‪L= a Wb‬‬
‫‪ W‬היא מילה מעל {‪ }a,c‬המתחילה ב‪ ,c-‬מסתיימת ב‪ a-‬ולא מכילה את הרצף ‪.aac‬‬
‫א‪ .‬תן ‪ 2‬דוגמאות שונות למילים בשפה‪.‬‬
‫ב‪ .‬בנה אוטומט סופי לשפה‪.‬‬
‫פתרון‬
‫נבנה תחילה את ‪ W‬כלומר מילה מעל {‪ }a,c‬המתחילה ב‪ ,c-‬מסתיימת ב‪ a-‬ולא מכילה את הרצף ‪.aac‬‬
‫פתרון ל ‪ W‬דטרמיניסטי אך לא מלא‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪c‬‬
‫‪a‬‬
‫פתרון ל ‪ W‬דטרמיניסטי ומלא‬
‫‪a‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫© כל הזכויות שמורות‬
‫‪26‬‬
‫אוטומט סופי‬
‫עתה ניגש לפתרון הכולל‪.‬‬
‫מספר ה ‪ a‬ים בהתחלה יכול להיות ‪ 0‬או ‪ 1‬בלבד‪ .‬ולכן פשוט נחלק לשני מקרים‪.‬‬
‫האחד בו מתחילה ‪ W‬מיד והשנייה בה יש ‪ a‬בודד‪ .‬ובשניהם נוסיף ‪ b‬ים תוך שמירה על הזוגיות‪.‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫תרגיל ‪4‬‬
‫עבור כל מצב שבאוטומט לו היה מצב מקבל מהי השפה המתקבלת‪.‬‬
‫‪q1‬‬
‫פתרון‬
‫‪ q0‬מספר אפסים זוגי‬
‫מספר אחדים זוגי‪.‬‬
‫‪ q2‬מספר אפסים זוגי‬
‫מספר אחדים אי זוגי‪.‬‬
‫‪ q3‬מספר אפסים אי זוגי‬
‫מספר אחדים אי זוגי‪.‬‬
‫‪ q1‬מספר אפסים אי זוגי‬
‫מספר אחדים זוגי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪0‬‬
‫‪0‬‬
‫‪27‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫אוטומט סופי‬
‫‪q2‬‬
‫‪1‬‬
‫תרגיל ‪* 5‬‬
‫מה השפה המתקבלת על ידי האוטומט )הלא מלא( הבא?‬
‫‪c‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫פיתרון‬
‫‪n‬‬
‫)‪ ( aWc‬כאשר ‪ W‬הינה מילה מעל }‪ {a,b‬שמספר ה ‪ a‬ים פחות מספר ה ‪ b‬ים שווה ‪ 2‬ובכל רגע נתון‬
‫בסריקתו מימין לשמאל מתקיים שמספר ה ‪ a‬ים פחות מספר ה ‪ b‬ים גדול שווה ‪ 0‬וקטן שווה ל ‪.2‬‬
‫תרגיל ‪6‬‬
‫לפניך אוטומט סופי דטרמיניסטי המקבל את השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b b‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪ .1‬כתוב מילה באורך מינימלי המתקבלת על ידי האוטומט‪.‬‬
‫‪ .2‬כתוב מילה המתחילה ב ‪ a‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪.‬‬
‫‪ .3‬כתוב מילה המתחילה ב ‪ b‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪.‬‬
‫‪ .4‬מהי השפה ‪ L‬המתקבלת על ידי האוטומט? התייחס למילים המתחילות ב ‪ a‬ומילים המתחילות ב ‪.b‬‬
‫© כל הזכויות שמורות‬
‫‪28‬‬
‫אוטומט סופי‬
‫פיתרון‬
‫‪ ab .1‬או ‪bb‬‬
‫‪abbb .2‬‬
‫‪bbbb .3‬‬
‫‪ .4‬אם מתחיל ב ‪ a‬אזי אורך מילה זוגי)גדול מאפס כמובן כי מתחיל ב ‪.(a‬‬
‫אם מתחיל ב ‪ b‬אזי ‪ n bn‬זוגי )גדול מאפס כמובן כי מתחיל ב ‪.(b‬‬
‫תרגיל ‪7‬‬
‫לפניך אוטומט סופי דטרמיניסטי לא שלם ההמקבל את השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪c‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪ .1‬כתוב מילה באורך מינימלי המתקבלת על ידי האוטומט‪.‬‬
‫‪ .2‬כתוב מילה המתחילה ב ‪ a‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪.‬‬
‫‪ .3‬כתוב מילה המתחילה ב ‪ b‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪.‬‬
‫‪ .4‬מהי השפה ‪ L‬המתקבלת על ידי האוטומט? התייחס למילים המתחילות ב ‪ a‬ומילים המתחילות ב ‪.b‬‬
‫פיתרון‬
‫‪b .1‬‬
‫‪abac .2‬‬
‫‪bbbbb .3‬‬
‫‪ .4‬אם מתחיל ב ‪ a‬אזי *)‪a(bWc‬‬
‫* גדול שווה לאפס‪.‬‬
‫‪ W‬מכילה מספר איזוגי של ‪ a‬ומספר זוגי של ‪).b‬ללא ‪(c‬‬
‫אם מתחיל ב ‪ b‬אזי ‪ bn‬שארית חלוקת ‪ n‬בשלוש שווה ‪.2‬‬
‫© כל הזכויות שמורות‬
‫‪29‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪-4‬בנה אס"ד מתאים לשפה נתונה‬
‫בנה אוטומטים לשפות הבאות מעל {‪ }0,1‬כאשר התנאי על מילה בשפה הינו‪:‬‬
‫א‪.‬‬
‫מתחיל ב ‪1‬‬
‫ב‪.‬‬
‫מסתיים ב ‪1‬‬
‫ג‪.‬‬
‫מכיל ‪1‬‬
‫ד‪.‬‬
‫מתחיל ב ‪11‬‬
‫ה‪.‬‬
‫מסתיים ב ‪11‬‬
‫ו‪.‬‬
‫מכיל ‪11‬‬
‫ז‪.‬‬
‫אינו מכיל ‪11‬‬
‫ח‪.‬‬
‫מתחיל ‪1011‬‬
‫ט‪.‬‬
‫מכיל ‪1011‬‬
‫י‪.‬‬
‫מסתיים ב ‪1011‬‬
‫דף תרגילים מספר ‪-5‬בנה אס"ד מתאים לשפה נתונה‬
‫מימין לקו האנכי ישנם התנאים על מילה בשפה‪.‬‬
‫א‪.‬‬
‫{‪ w‬היא מילה מעל הא"ב }‪ {0,1‬המסתיימת ב ‪11011‬‬
‫|‬
‫‪L={ w‬‬
‫ב‪.‬‬
‫{‪ w‬היא מילה מעל הא"ב }‪ {0,1‬המתחילה ב ‪ 1‬ומסתיימת ב ‪1‬‬
‫|‬
‫‪L={ w‬‬
‫ג‪.‬‬
‫{‪ v‬היא מילה מעל הא"ב }‪ {0,1‬המכילה ‪ 00‬או ‪11‬‬
‫ד‪.‬‬
‫{‪ w‬היא מילה מעל הא"ב }‪ {0,1‬שאורך התו האחרון אי זוגי‬
‫ה‪.‬‬
‫{‪ w1,w2‬הינן מילים מעל הא"ב }‪ {0,1‬כולל המילה הריקה‬
‫|‬
‫|‬
‫‪L={ v‬‬
‫‪L={ w‬‬
‫| ‪w1cw2‬‬
‫דוגמאות למילים המתקבלות בשפה‪10c1100 , c :‬‬
‫© כל הזכויות שמורות‬
‫‪30‬‬
‫אוטומט סופי‬
‫{=‪L‬‬
‫דף תרגילים מספר ‪-6‬ביצוע מעקב והגדרת שפה‬
‫לכל מעקב רשום את המסלול והאם המילה מתקבלת או שאינה מתקבלת‪.‬‬
‫‪ .1‬א‪ .‬בצע מעקב עבור המילה @@& והאוטומט הנתון ‪.‬‬
‫ב‪ .‬בצע מעקב עבור המילה @@‪ $‬והאוטומט הנתון‪.‬‬
‫ג‪ .‬מהי השפה שהאוטומט מקבל‪.‬‬
‫@‪$,‬‬
‫‪q1‬‬
‫‪q0‬‬
‫&‪$,@,‬‬
‫&‬
‫&‪$,@,‬‬
‫‪q2‬‬
‫‪ .2‬נתון האוטומט הבא‬
‫מהי השפה המתקבלת?‬
‫‪a‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪q‬‬
‫‪ .3‬א‪ .‬בצע מעקב עבור המילה ‪ baba‬והאוטומט הנתון‪.‬‬
‫ב‪ .‬בצע מעקב עבור המילה ‪ baab‬והאוטומט הנתון‪.‬‬
‫ג‪ .‬מהי השפה שהאוטומט מקבל‪.‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪q‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪q‬‬
‫© כל הזכויות שמורות‬
‫‪31‬‬
‫אוטומט סופי‬
‫‪q0‬‬
‫‪a‬‬
‫סיכום‬
‫ראינו שאוטומט הינו "מכונה"‪"/‬מכשיר" המתארת מה קורה עבור קלט )מילה( נתון תוך כדי סריקתו משמאל‬
‫לימין‪.‬‬
‫ישנם אוטומטים בהם כל מצב הינו מצב תקין‪ .‬למשל כיבוי או הדלקת נורה‪ ,‬אך אנו טיפלנו ונטפל בעיקר‬
‫באוטומטים שלא כל קלט)מילה( חוקי ולכן באוטומט יהיו מצבים מקבלים ומצבים לא מקבלים כמו‬
‫המחרוזת המורכבת מחרוזים‪ .‬לכל אוטומט יש נקודות התחלה והקשתות)חיצים( והמידע שרשום עליהם‬
‫אומרים לנו להיכן לעבור בכל שלב‪ .‬מידע זה נקרא פונקצית המעברים‪ .‬כמו כן לכל אוטומט יש את ה א"ב שלו‬
‫דהיינו מה ניתן לרשום ליד הקשתות‪.‬‬
‫מהדוגמאות שראינו עד עתה ניתן לראות כי אוטומט מורכב ממספר אבני יסוד‪.‬‬
‫תיאור מתמטי פורמאלי של אוטומט‬
‫הוא באמצעות החמישייה הבאה‪:‬‬
‫}‪A  {Q, ,  , Q0 , F‬‬
‫כאשר‪:‬‬
‫‪‬‬
‫היא קבוצת מצבי האוטומט‪.‬‬
‫)העיגולים(‬
‫הוא א"ב הקלט‪.‬‬
‫)נכתב ליד הקשתות(‬
‫היא פונקצית המעברים‪.‬‬
‫)הקשתות המכוונות והרשום לידן(‪.‬‬
‫הוא המצב ההתחלתי‪.‬‬
‫)מסומן גם על ידי חץ(‬
‫היא קבוצת המצבים‬
‫המקבלים שהינה חלק‬
‫מקבוצת כל המצבים‪.‬‬
‫)העיגולים כפולים(‬
‫שפה שניתן לבנות לה אס"ד נקראת שפה רגולרית‬
‫© כל הזכויות שמורות‬
‫‪32‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪ -7‬מה מייצג כל מצב‬
‫להלן נתונים אוטומטים ומה הם מבצעים‪ .‬עיין בפתרונות ורשום מה מייצג כל מצב‪.‬‬
‫למשל בדוגמה הבאה מייצג ‪ q0‬את המילים בעלות אורך זגי ומצב ‪ q1‬מייצג את המילים בעלות אורך אי‪-‬זוגי‪.‬‬
‫האוטומט מקבל את כל המילים בעלות אורך אי זוגי‪.‬‬
‫‪0,1‬‬
‫‪q2‬‬
‫‪q0‬‬
‫‪0,1‬‬
‫נתון אוטומט מעל {‪ }1,1‬המקבל מילה המכילה ‪11‬‬
‫פתרון‬
‫‪0‬‬
‫‪0,1‬‬
‫‪ q0‬מצפה להופעת ה ‪ 1‬הראשון‬
‫‪ q1‬לאחר הופעת ה ‪ 1‬הראשון‬
‫‪1‬‬
‫‪q2‬‬
‫‪ q2‬לאחר הופעת ‪ – 11‬כעת כל המשך מתקבל‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪0‬‬
‫נתון אוטומט מעל {‪ }1,1‬בו כל מילה מסתיימת ב ‪11‬‬
‫‪q0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫אוטומט סופי‬
‫© כל הזכויות שמורות‬
‫‪33‬‬
‫‪q0‬‬
‫נתון אוטומט מעל {‪ }1,1‬בו כל מילה מסתיימת ב ‪ 11‬או ‪11‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪q0‬‬
‫‪0‬‬
‫‪q4‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪0‬‬
‫‪q4‬‬
‫‪0‬‬
‫נתון אוטומט מעל {‪ }1,1‬בו כל מילה מכילה ‪ 11‬או ‪11‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪q3‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪0‬‬
‫‪0‬‬
‫‪q2‬‬
‫© כל הזכויות שמורות‬
‫‪34‬‬
‫אוטומט סופי‬
‫אוטומט מעל }‪ {0,…,9‬המייצג מספר דצימלי המתחלק בשלוש לללא שארית‬
‫‪0,3,6,9‬‬
‫בצע מעקב אחר המילה ‪172437‬‬
‫‪q1‬‬
‫‪1,4,7‬‬
‫‪ q0‬שארית חלוקה ב ‪ 3‬שווה ‪0‬‬
‫‪2,5,8‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪2,5,8‬‬
‫‪1,4,7‬‬
‫‪q0‬‬
‫‪2,5,8‬‬
‫‪1,4,7‬‬
‫‪q2‬‬
‫‪0,3,6,9‬‬
‫© כל הזכויות שמורות‬
‫‪35‬‬
‫אוטומט סופי‬
‫‪0,3,6,9‬‬
‫תאור אוטומט באמצעות טבלה‬
‫ניתן לתאר אוטומט באמצעות טבלה‪.‬‬
‫אות נבדקת‬
‫נמצא ב‬
‫עובר ל‬
‫להלן מספר דוגמאות‪.‬‬
‫כל האוטומטים מעל }‪ {0,1‬מצב מובלט עם קו מתחת הינו מצב מקבל‪.‬‬
‫אורך מילה אי זוגי‬
‫‪1‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪q0‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫אורך מילה זוגי (כולל מילה ריקה)‬
‫‪1‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪q0‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪q0‬‬
‫אורך מילה זוגי (לא כולל מילה ריקה)‬
‫‪1‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪q2‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫‪q2‬‬
‫`‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪q1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪q0‬‬
‫מתחיל ב ‪ 1‬ומכיל את המילה הריקה‬
‫‪q1‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪0,1‬‬
‫‪0‬‬
‫‪q2‬‬
‫© כל הזכויות שמורות‬
‫‪36‬‬
‫אוטומט סופי‬
‫‪0,1‬‬
‫שפות "מיוחדות"‬
‫השפה הריקה‬
‫‪a,b‬‬
‫מעל }‪ - {a,b‬אף מילה לא מתקבלת‬
‫)זוהי השפה הריקה ומקובל לסמנה(‬
‫‪q0‬‬
‫השפה המכילה את המילה הריקה בלבד‬
‫‪a,b‬‬
‫מעל }‪ - {a,b‬רק המילה הריקה מתקבלת‬
‫‪a,b‬‬
‫‪q1‬‬
‫‪q0‬‬
‫השפה המכילה את כל המילים מלבד המילה הריקה‬
‫‪a,b‬‬
‫מעל }‪ – {a,b‬כל המילים לא כולל‬
‫‪q1‬‬
‫המילה הריקה‬
‫‪a,b‬‬
‫‪q0‬‬
‫שפה שמספר המילים בה סופי‬
‫שים לב שמספר המילים בשפות שטיפלנו בהם עד עכשיו הינו אינסופי‪.‬‬
‫בנה אוטומט)לא שלם( מעל }‪ {a,b,c‬כך ש }‪) L={e,ab,ac,abc‬שים לב שמספר המילים בשפה הינו ‪(4‬‬
‫‪ e‬הינה המילה הריקה‬
‫‪c‬‬
‫‪q3‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪c‬‬
‫שים לב שהאוטומט אינו שלם למשל מהמצב ‪ q0‬אין יודעים מה לעשות כאשר יש לנו ‪ b‬או ‪ c‬כלומר מילים‬
‫שמתחילות ב ‪ b‬או ‪ c‬אינן מתקבלות‪.‬‬
‫לכל שפה שמספר המילים בה סופי ניתן לבנות אוטומט סופי דטרמיניסטי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪37‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪ -8‬בנית אס"ד‬
‫‪ .1‬בנה אוטומטים לשפות הבאות מעל {‪ }0,1‬כאשר התנאי על מילה בשפה הינו‪:‬‬
‫א‪ .‬מסתיים ב ‪11011‬‬
‫ב‪ .‬מתחיל ב ‪ 1‬ומסתיים ב ‪1‬‬
‫ג‪ .‬מכיל ‪ 00‬או ‪11‬‬
‫ד‪ .‬מכיל ‪ 10‬או ‪01‬‬
‫ה‪ .‬מספר ‪ 0‬זוגי וגם מספר ‪ 1‬זוגי‬
‫ו‪ .‬מספר ‪ + 0‬מספר ‪ 1‬זוגי כולל מילה ריקה‬
‫ז‪ .‬אורך אי זוגי‪.‬‬
‫ח‪ .‬אורך זוגי כולל המילה הריקה‪.‬‬
‫ט‪ .‬אורך התו האחרון זוגי‪.‬‬
‫י‪ .‬אורך התו האחרון אי זוגי‪.‬‬
‫יא‪ .‬אורך זוגי לא כולל המילה הריקה‪.‬‬
‫יב‪ .‬אורך זוגי ומסתיים ב ‪.0‬‬
‫יג‪ .‬מכיל ‪ 00‬וגם ‪11‬‬
‫יד‪ .‬אינו מכיל ‪.11‬‬
‫טו‪ .‬כל המילים שבהן אורך הרצף האחרון‬
‫זוגי) גדול מ ‪ ( 0‬ואסור שיתחילו ב ‪0‬‬
‫טז‪ .‬רצף כלשהו באורך ‪ 2‬או באורך ‪ 1‬שחוזר‬
‫על עצמו‪ .‬דוגמה ‪111 1010 010101 :‬‬
‫‪ .2‬בנה אוטומטים לשפות הבאות מעל {‪:}0,1,2‬‬
‫א‪ 2211 .‬אינו מופיע כתת מחרוזת ו ‪ 1100‬מופיע כתת מחרוזת‬
‫אחרונה במילה‪ 1100212 .‬מתקבל ו ‪ 0110012‬או ‪ 11002211‬לא מתקבל‪.‬‬
‫ב‪ .‬המקבל מילים המסתיימות ב ‪ 10‬או ‪ 01‬ו ‪ 2‬יכול להופיע רק ברצף בהתחלה‪.‬‬
‫ג‪ .‬המקבל מילים המסתיימות ב ‪ 00‬או ‪ 11‬ואין בהן רצף של ‪.22‬‬
‫ד‪ .‬אורך זוגי מסתיים ב ‪) 0‬גם המילה הריקה מתקבלת(‪.‬‬
‫ה‪ .‬אורך אי זוגי מסתיים ב ‪.1‬‬
‫מסתיים ב ‪.1‬‬
‫ו‪ .‬אורך זוגי‬
‫ז‪ .‬אורך אי זוגי מסתיים ב ‪.0‬‬
‫ח‪ .‬מכיל ‪ 012‬או ‪ 011‬או ‪02‬‬
‫ט‪ .‬מתחיל ב ‪ 11‬או ‪ 22‬ואינו מסתיים ב ‪.2‬‬
‫י‪ .‬המקבל את כל המחרוזות המסתיימות ב ‪ 10‬או ‪ 01‬ו ‪ 2‬יכול להופיע רק‬
‫ברצף בהתחלה‪.‬‬
‫יא‪ .‬כל המילים המסתיימות ב ‪ 00‬או ‪ 11‬ואין בהן רצף של ‪.22‬‬
‫‪.3‬‬
‫בנה אס"ד לכל אחת מהשפות הבאות מעל {‪:}a,b,c‬‬
‫יב‪ .‬מתחיל ב ‪ a‬ומסתיים ב ‪b‬‬
‫יג‪ .‬מספר ה ‪ b‬זוגי ומספר ה ‪ a‬אי זוגי‬
‫יד‪ .‬אות לפני אחרונה ‪a‬‬
‫טו‪ .‬אסור רצף באורך שניים‪.‬‬
‫טז‪ .‬אסור רצף באורך שלוש‪.‬‬
‫יז‪ .‬כל המילים שאחרי כל מופע של ‪ a‬אם יש מופיע מיד רצף של שלש אותיות ‪b‬‬
‫יח‪ .‬אורכן זוגי ושאין בהן תת מילה ‪aa‬‬
‫יט‪ .‬שארית חלוקת מספר ה ‪ a‬בשלוש שווה ‪1‬‬
‫כ‪ .‬תת המחרוזת ‪ aba‬מופיעה בדיוק פעמיים‬
‫© כל הזכויות שמורות‬
‫‪38‬‬
‫אוטומט סופי‬
‫שפות שמתוארות על ידי חזקה‬
‫לעיתים תיאור השפה נעשה באופן הבא‪:‬‬
‫‪n k‬‬
‫בנה אוטומט סופי דטרמיסיטי לשפה ‪n≥1 , k≥1 a b‬‬
‫תאור פורמלי זה אומר שהשפה חייבת להתחיל ב ‪ a‬ים )לפחות ‪ (1‬ולאחרי זה ‪ b‬ים )לפחות ‪.(1‬‬
‫אסור שאחרי שמופיע ‪ b‬יופיע ‪a‬‬
‫מילים מתקבלות ‪ab , aaabbb , abbb :‬‬
‫מילים שאינן מתקבלות ‪a , b , abba , babb :‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q3‬‬
‫הסבר‬
‫‪0‬‬
‫‪ a‬הינה המילה הריקה‪.‬‬
‫‪1‬‬
‫‪ a‬הינה המילה ‪.a‬‬
‫‪2‬‬
‫‪ a‬הינה המילה ‪ .aa‬וכו‬
‫‪n n‬‬
‫‪ n ≥ 1 a b‬הינם כל המילים שבהם מספר ‪a‬ים במילה שווה למספר ה ‪ b‬יםכאשר ה ‪ a‬ים בתחילת המילה‬
‫וה ‪b‬ים בסוף המילה)לאחר ה ‪a‬ים(‪ .‬המילה הקצרה ביותר ‪.ab‬‬
‫© כל הזכויות שמורות‬
‫‪39‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪ 8‬א'‪ -‬בנית אס"ד‬
‫‪ .1‬בנה אס"ד לכל אחת מהשפות הבאות מעל {‪:}a,b‬‬
‫‪n≥0 m≥0‬‬
‫‪an b m . a‬‬
‫‪n≥0 m≥1‬‬
‫‪an b m . b‬‬
‫‪n≥1 m≥0‬‬
‫‪an b m . c‬‬
‫‪n≥1 m≥1‬‬
‫‪an b m . d‬‬
‫‪ .2‬בנה אס"ד לכל אחת מהשפות הבאות מעל {‪:}a,b,c‬‬
‫‪n m k‬‬
‫‪k,m,n ≥ 0 a b c‬‬
‫‪.a‬‬
‫‪n m k‬‬
‫‪k,m,n ≥ 1 a b c‬‬
‫‪.b‬‬
‫‪n m k‬‬
‫‪k ≥ 0 m,n ≥ 1 a b c .c‬‬
‫‪n m k‬‬
‫‪m ≥ 0 n,k ≥ 1 a b c .d‬‬
‫‪ .3‬בנה אס"ד לכל אחת מהשפות הבאות מעל {‪:}a,b‬‬
‫‪L={bab,ba,a,e} .a‬‬
‫) שקול לומר ‪(|b| = |a| % 3‬‬
‫‪m=n%3‬‬
‫‪an b m . b‬‬
‫) שקול לומר ‪(|b % 3| = |a| % 3‬‬
‫‪m%3=n%3‬‬
‫‪an b m . c‬‬
‫‪ .d‬אורך זוגי ואין רצף ‪aa‬‬
‫‪.4‬‬
‫מיוחדים‬
‫‪ .a‬מס' בינאריים המתחלקים ב ‪ 5‬ללא שארית‬
‫‪ .b‬מספר שלם המתחלק ב ‪ 3‬ללא שארית‬
‫© כל הזכויות שמורות‬
‫‪40‬‬
‫}‪{0,1‬‬
‫}‪{0,1,2,3,4,5,6,7,8,9‬‬
‫אוטומט סופי‬
‫אוטומט לא דטרמיניסטי‪/‬אוטומט לא שלם‬
‫‪0,1‬‬
‫האוטומט שמשמאל אינו דטרמיניסטי כיוון שמ ‪q0‬‬
‫עבור הקלט ‪ 1‬ניתן או לעבור ל ‪ q0‬או ל ‪.q1‬‬
‫‪1‬‬
‫אף‬
‫מיל‬
‫ה‬
‫לא‬
‫מת‬
‫‪q1‬‬
‫כמו כן האוטומט אינו שלם כיוון שמ ‪ q1‬אין אנו יודעים להיכן‬
‫ללכת עבור קלט ‪ 0‬או ‪.1‬‬
‫האוטומט מקבל את כל המילים מעל }‪ {0,1‬המסתיימות ב ‪.1‬‬
‫קבל‬
‫הכלל הינו שאם קיים מסלול עבור מילה שמוביל למצב מקבל המילה מתקבלת אחרת אינה‬
‫ת‬
‫מתקבלת‪.‬‬
‫מעל‬
‫‪{a,‬‬
‫לכל אוטומט לא דטרמיניסטי ניתן לבנות אוטומט דטרמיניסטי השקול לו‪.‬‬
‫)כלומר שמקבל את אותם המילים ואותם בלבד( ‪.‬‬
‫}‪b‬‬
‫הש‬
‫פה‬
‫דוגמה נוספת‬
‫‪0,1,2‬‬
‫הרי‬
‫קה‬
‫‪q2‬‬
‫‪0,1,2‬‬
‫‪-‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪q1‬‬
‫מס‬
‫מני‬
‫ם‬
‫האוטומט מקבל את כל המילים מעל }‪ {0,1,2‬שהאות לפני האחרונה הינה ‪.1‬‬
‫‪Ø‬‬
‫לעומת זאת שימו לב שאין זה נכון לומר על האוטומט הבא שהוא מקבל מילים שאינן מסתיימות ב ‪. 11‬‬
‫‪0,1,2‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪q1‬‬
‫אם במבחן לא נאמר לבנות אוטומט דטרמיניסטי הרי שניתן לבנות לא דטרמיניסטי או דטרמיניסטי‬
‫כרצונכם‪.‬‬
‫© כל הזכויות שמורות‬
‫‪41‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪-9‬תרגילים שונים‬
‫תרגיל‬
‫נתון האוטומט הבא מעל הא"ב {‪: }0,1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0,1‬‬
‫א‪ .‬הגדר את השפה המתקבלת‪.‬‬
‫‪q4‬‬
‫ב‪ .‬הגדר תפקיד כל מצב‪.‬‬
‫תרגיל‬
‫בנה אוטומט סופי לא דטרמיניסטי עבור השפות הבאות מעל }‪{0,1,2‬‬
‫א( האות האחרונה שווה לראשונה‪.‬‬
‫ב( האות האחרונה לא הופיע קודם במילה‪.‬‬
‫ג( האות לפני האחרונה שווה לאות הראשונה‪.‬‬
‫תרגיל‬
‫בנה אוטומט סופי דטרמיניסטי אשר מקבל את השפה הבאה מעל הא"ב{‪}0,1‬‬
‫אוסף המילים המתחילות ב ‪ , 1‬מכילות מספר זוגי של אפסים ומסתיימות ב ‪.11‬‬
‫)הערה ‪ :‬המילה ‪ 11‬מתקבלת בשפה זו(‬
‫תרגיל‬
‫נתונה השפה הבאה ‪j=n%3‬‬
‫‪anbmcj n % 3=0 0=m % 3‬‬
‫בנה אוטומט לשפה‪.‬‬
‫תרגיל‬
‫בנה אס"ד‪ ,‬המקבל את כל המילים מעל הא"ב { ‪ , }a,b‬המכילות‬
‫לפחות ‪ 2‬אותיות ‪ a‬ומספר אותיות ה – ‪ b‬בהן מתחלק ב – ‪.2‬‬
‫© כל הזכויות שמורות‬
‫‪42‬‬
‫אוטומט סופי‬
‫תרגיל‬
‫נתונים שני האוטומטים )סופיים דטרמיניסטים( הבאים מעל } ‪{ a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪a,b‬‬
‫א‪.‬‬
‫‪start‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪start‬‬
‫בדוק עבור שני האוטומטים האם המילים הבאות מתקבלות ‪:‬‬
‫)‪abaaa (1‬‬
‫)‪abbaba (2‬‬
‫)‪aaaaba (3‬‬
‫ב‪.‬‬
‫הסבר במילים מהי השפה המתקבלת עבור האוטומט הראשון ‪.‬‬
‫ג‪.‬‬
‫עבור שתי הטענות הבאות‪ ,‬אם הטענה נכונה ‪ -‬הסבר מדוע‪ ,‬ואם אינה נכונה ‪ -‬הבא דוגמא נגדית‬
‫)דוגמא שסותרת את הטענה(‪.‬‬
‫כל מילה המתקבלת באוטומט השני מתקבלת גם באוטומט הראשון‪.‬‬
‫)‪(1‬‬
‫כל מילה המתקבלת באוטומט הראשון מתקבלת גם באוטומט השני‪.‬‬
‫)‪(2‬‬
‫© כל הזכויות שמורות‬
‫‪43‬‬
‫אוטומט סופי‬
‫תרגיל‬
‫)השאלה הבאה מנוסחת בסגנון מבחני הבגרות(‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫{‪ m+n+k‬זוגי ‪L= {ambnak |n,m >0 k≥0‬‬
‫לפניך סרטוט חלקי של אוטומט סופי דטרמיניסטי המקבל את ‪.L‬‬
‫בסרטוט חסרים סימני קלט‪.‬‬
‫‪c‬‬
‫הסרטוט מכיל את כל המצבים של האוטומט ואת כל המצבים המקבלים‪.‬‬
‫העתק למחברתך את הסרטוט והשלם אותו כך שיקבל את השפה ‪. L‬‬
‫עליך להשלים את סימני הקלט החסרים‪.‬‬
‫שים לב‪ :‬אין להוסיף מצבים לאוטומט‪ ,‬ואין להוריד ממנו מצבים‪.‬‬
‫תרגיל‬
‫)השאלה הבאה מנוסחת בסגנון מבחני הבגרות(‬
‫השפה ‪ L‬מעל הא"ב }‪ {a,b‬מקיימת את התנאי שהאות לפני האחרונה ‪.b‬‬
‫לפניך סרטוט חלקי של אוטומט סופי דטרמיניסטי המקבל את ‪.L‬‬
‫‪b‬‬
‫בסרטוט חסרים סימני קלט ומעברים‪.‬‬
‫‪q2‬‬
‫‪q‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪q‬‬
‫הסרטוט מכיל את כל המצבים של האוטומט ואת כל המצבים המקבלים‪.‬‬
‫העתק למחברתך את הסרטוט והשלם אותו כך שיקבל את השפה ‪. L‬‬
‫עליך להשלים את סימני הקלט החסרים ואת המעברים החסרים‪.‬‬
‫שים לב‪ :‬אין להוסיף מצבים לאוטומט‪ ,‬ואין להוריד ממנו מצבים‪.‬‬
‫© כל הזכויות שמורות‬
‫‪44‬‬
‫אוטומט סופי‬
‫‪q1‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪a‬‬
‫תרגיל‬
‫מה השפה המתוארת באוטומט הבא?‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪c‬‬
‫‪c‬‬
‫‪c‬‬
‫‪c‬‬
‫‪c‬‬
‫תרגיל‬
‫הגדר לכל אוטמט את השפה המתקבלת ?‬
‫‪q5‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q3‬‬
‫© כל הזכויות שמורות‬
‫‪45‬‬
‫אוטומט סופי‬
‫‪b‬‬
‫‪q4‬‬
‫תרגיל להלן שרטוט של השפה ‪ L‬מעל הא"ב }‪ .{a,b,c‬הגדר את השפה המתקבלת ‪.‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪c c‬‬
‫‪c c‬‬
‫‪b‬‬
‫‪b‬‬
‫‪c‬‬
‫תרגיל הגדר מהי השפה שמתקבלת מעל }‪{0,1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫תרגיל הגדר את השפה המתקבלת‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪46‬‬
‫אוטומט סופי‬
‫דף תרגילים מספר ‪-11‬אוטומט סופי לא דטרמיניסטי‬
‫תרגיל‬
‫הגדר לכל אחד מהאוטומטים הבאים מה השפה המתקבלת?‬
‫‪0,1,2‬‬
‫‪1‬‬
‫‪0,1,2‬‬
‫‪q2‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪0,1,2‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫‪q3‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫תרגיל‬
‫‪ .1‬הסבר מדוע לא נכונים המשפטים הבאים בהתייחס לאוטומטים שלידם?‬
‫‪ .2‬הגדר מה השפות שהאוטומטים מקבלים‪.‬‬
‫‪0,1,2‬‬
‫האוטומט מקבל מילים המכילות ‪ 11‬פעם אחת בלבד‪.‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪q1‬‬
‫האוטומט אינו מקבל מילים המכילות ‪. 11‬‬
‫‪0,1‬‬
‫‪0,2‬‬
‫‪1‬‬
‫‪q2‬‬
‫© כל הזכויות שמורות‬
‫‪47‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪q0‬‬
‫אוטומט סופי‬
‫אוטומט מכפלה‬
‫לעיתים עלינו לבנות אוטומט אשר תיאורו מכיל תנאים שביניהם היחס וגם)חיתוך( או היחס או )איחוד(‪.‬‬
‫כמובן שתמיד ניתן לבנות את האוטומט המבוקש ישירות אך קיימת גם דרך טכנית לבנות אוטומט עבור כל‬
‫תנאי ואז לשלב את האוטומטים‪.‬‬
‫נראה מספר דוגמאות‪ .‬נתחיל מדוגמה פשוטה )שברור שניתן לבנות לה ישירות אס"ד(‬
‫תחילה נראה דוגמאות כאשר היחס בין התנאים הינו ו"גם"‬
‫ולאחר מכן כאשר היחס הינו "או"‪.‬‬
‫© כל הזכויות שמורות‬
‫‪48‬‬
‫אוטומט סופי‬
‫אוטומט מכפלה (חתולים וכלבים)‬
‫בתהלוכה שבה משתתפים חתולים וכלבים מתקיימים החוקים הבאים‪:‬‬
‫‪ .1‬התהלוכה מתחילה בכלב‪.‬‬
‫‪ .2‬התהלוכה מסתיימת בחתול‪.‬‬
‫חייב להתחיל בכלב‬
‫חייב להסתיים בחתול‬
‫חתול‬
‫כלב‬
‫חתול‬
‫‪q4‬‬
‫חתול‬
‫כלב‬
‫‪q3‬‬
‫‪q1‬‬
‫כלב‬
‫‪q0‬‬
‫חתול‬
‫כלב‬
‫‪q2‬‬
‫כלב‬
‫חתול‬
‫עד עתה בנינו אוטומט עבור כל תנאי‪ .‬כעת נבנה טבלה‪ .‬נתחיל מהמצב ההתחלתי של שני האוטומטים‬
‫שהינו ‪ q0q3‬ונרשום לאיזה מצב מוביל אותנו כלב‪ .‬אנו רואים שבאוטומט השמאלי כלב מוביל ל ‪q1‬‬
‫ובאוטומט הימני כלב מוביל ל ‪ q3‬מכאן שכלב מוביל ל ‪q1q3‬‬
‫כנ"ל נבצע לחתול ונבחין שהוא מוביל ל ‪q2q4‬‬
‫מכאן קיבלנו את השורה הראשונה בטבלה‪ .‬כעת כל מצב שמופיע בעמודות חתול וכלב ירשם בעמודת מצב‬
‫וחוזרים על התהליך‪.‬‬
‫בנית אוטמט המכפלה‬
‫חתול‬
‫כלב‬
‫מצב‬
‫‪q2q4‬‬
‫‪q1 q4‬‬
‫‪q2 q4‬‬
‫‪q1 q4‬‬
‫‪q2 q4‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q3‬‬
‫‪q0 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q4‬‬
‫‪q1 q4‬‬
‫‪q2 q3‬‬
‫‪ q1‬הינו מצב מקבל באוטומט השמאלי ו ‪ q4‬הינו מצב מקבל באוטומט הימני לכן ‪ q1q4‬הינו המצב המקבל‬
‫באוטומט הסופי‬
‫האוטומט לפי הטבלה‬
‫חתול‬
‫חתול‬
‫‪1,4‬‬
‫כלב‬
‫חתול‬
‫‪1,3‬‬
‫‪1,4‬‬
‫כלב‬
‫‪2,3‬‬
‫כלב‬
‫האוטומט לאחר צמצום מצבים‬
‫כלב‬
‫חתול‬
‫כלב‬
‫‪1,3‬‬
‫כלב‬
‫‪0,3‬‬
‫כלב‬
‫חתול‬
‫חתול‬
‫‪2,4‬‬
‫‪2,4‬‬
‫חתול‬
‫חתול‬
‫כלב‬
‫חתול‬
‫כלב‬
‫© כל הזכויות שמורות‬
‫‪49‬‬
‫אוטומט סופי‬
‫‪0,3‬‬
‫אוטומט מכפלה (חתולים וכלבים)‬
‫בתהלוכה שבה משתתפים חתולים וכלבים מתקיימים החוקים הבאים‪.‬‬
‫‪ .3‬התהלוכה מתחילה בכלב‪.‬‬
‫‪ .4‬אסור חתול שמשמאלו וימינו יהיו כלבים‪.‬‬
‫חייבת להתחיל בכלב‬
‫אסור חתול בין שני כלבים‬
‫חתול‬
‫כלב‬
‫חתול‬
‫כלב‬
‫כלב‬
‫חתול‬
‫‪q1‬‬
‫‪q6‬‬
‫כלב‬
‫‪q5‬‬
‫חתול‬
‫‪q4‬‬
‫כלב‬
‫‪q3‬‬
‫כלב‬
‫‪q0‬‬
‫חתול‬
‫‪q2‬‬
‫חתול‬
‫כלב‬
‫חתול‬
‫בנית אוטמט המכפלה‬
‫חתול‬
‫כלב‬
‫מצב‬
‫‪q2 q3‬‬
‫‪q1 q5‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q4‬‬
‫‪q1 q4‬‬
‫‪q1 q6‬‬
‫‪q1 q4‬‬
‫‪q0 q3‬‬
‫‪q1 q4‬‬
‫‪q1 q5‬‬
‫‪q1 q3‬‬
‫המצבים המסומנים בירוק הינם מצבים מקבלים‪) .‬כל שילוב של מצב מקבל באוטומט אחד עם מצב מקבל באוטומט‬
‫השני הינו מצב מקבל(‬
‫שימו לב ש ‪ q2‬הינה מלכודת של מצב לא מקבל ולכן לא רשמנו אותה בעמודה "מצב"‬
‫כלב‬
‫‪1,4‬‬
‫כלב‬
‫כלב חתול‬
‫‪1,3‬‬
‫חתול‬
‫‪1,5‬‬
‫‪0,3‬‬
‫חתול‬
‫כלב‬
‫‪2,3‬‬
‫‪1,6‬‬
‫חתול‬
‫כלב‬
‫חתול‬
‫ראה מצגת הסבר‬
‫© כל הזכויות שמורות‬
‫‪50‬‬
‫אוטומט מכפלה‬
‫אוטומט מכפלה (חתולים כלבים ועכברים)‬
‫תרגיל דומה לקודם רק שהפעם נוספו עכברים‪.‬‬
‫בתהלוכה שבה משתתפים עכברים חתולים וכלבים מתקיימים החוקים הבאים‪.‬‬
‫‪ .1‬התהלוכה מתחילה בכלב‪.‬‬
‫‪ .2‬אסור חתול שמשמאלו וימינו יהיו כלבים‪.‬‬
‫חייבת להתחיל בכלב‬
‫אסור חתול בין שני כלבים‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪q6‬‬
‫חתול‬
‫עכבר‬
‫כלב‬
‫‪q5‬‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫כלב‬
‫חתול‬
‫כלב‬
‫‪q4‬‬
‫‪q3‬‬
‫‪q1‬‬
‫כלב‬
‫‪q0‬‬
‫עכבר‬
‫חתול‬
‫עכבר‬
‫חתול‬
‫עכבר‬
‫‪q2‬‬
‫בנית הטבלה‬
‫עכבר‬
‫‪q2 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫חתול‬
‫כלב‬
‫‪q2 q3‬‬
‫‪q1 q5‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q4‬‬
‫‪q1 q4‬‬
‫‪q1 q6‬‬
‫‪q1 q4‬‬
‫‪q0 q3‬‬
‫‪q1 q4‬‬
‫‪q1 q5‬‬
‫‪q1 q3‬‬
‫האוטמט‬
‫כלב‬
‫‪14‬‬
‫כלב‬
‫עכבר כלב חתול‬
‫‪13‬‬
‫חתול‬
‫עכבר‬
‫‪15‬‬
‫חתול‬
‫עכבר‬
‫© כל הזכויות שמורות‬
‫‪03‬‬
‫חתול‬
‫עכבר‬
‫כלב‬
‫‪2,3‬‬
‫‪1,6‬‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪51‬‬
‫אוטומט מכפלה‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫אוטומט מכפלה(חתולים כלבים ועכברים תנאי מורכב יותר)‬
‫בתהלוכה שבה משתתפים עכברים חתולים וכלבים מתקיימים החוקים הבאים‪.‬‬
‫‪ .1‬התהלוכה מתחילה בכלב‪.‬‬
‫‪ .2‬אסור שהתהלוכה תסתיים בעכבר‪.‬‬
‫‪ .3‬אסור חתול שמשמאלו וימינו יהיו כלבים‪.‬‬
‫אסור חתול בין שני כלבים‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪q7‬‬
‫חתול‬
‫עכבר‬
‫כלב‬
‫‪q6‬‬
‫חתול‬
‫מתחילה בכלב ואסור שתסתיים בעכבר‬
‫חתול‬
‫כלב‬
‫עכבר‬
‫כלב‬
‫כלב‬
‫‪q5‬‬
‫עכבר‬
‫‪q2‬‬
‫‪q4‬‬
‫‪q1‬‬
‫חתול‬
‫כלב‬
‫עכבר‬
‫חתול‬
‫עכבר‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪q3 q4‬‬
‫‪q2 q4‬‬
‫‪q2 q4‬‬
‫‪q2 q4‬‬
‫‪q2 q4‬‬
‫‪q3 q4‬‬
‫‪q1 q6‬‬
‫‪q1 q4‬‬
‫‪q1 q4‬‬
‫‪q1 q4‬‬
‫‪q1 q5‬‬
‫‪q1 q5‬‬
‫‪q1 q7‬‬
‫‪q1 q5‬‬
‫‪q1 q5‬‬
‫עכבר‬
‫כלב‬
‫‪24‬‬
‫כלב‬
‫עכבר‬
‫חתול‬
‫עכבר‬
‫‪15‬‬
‫חתול‬
‫‪16‬‬
‫‪14‬‬
‫חתול‬
‫חתול‬
‫© כל הזכויות שמורות‬
‫כלב‬
‫עכבר‬
‫חתול‬
‫‪q0 q4‬‬
‫‪q1 q5‬‬
‫‪q1 q6‬‬
‫‪q2 q4‬‬
‫‪q1 q4‬‬
‫‪04‬‬
‫חתול‬
‫עכבר‬
‫כלב‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪52‬‬
‫חתול‬
‫עכבר‬
‫‪q3‬‬
‫כלב‬
‫עכבר‬
‫כלב‬
‫‪q0‬‬
‫אוטומט מכפלה‬
‫אוטומט מכפלה (מכיל "בת בת" אינו מכיל "בן בן" )‬
‫ילדים הושבו בשורה אך נקבעו כללים משונים‪:‬‬
‫‪ .1‬חייב שבשורה לפחות פעם אחת ישבו ‪ 2‬בנות יחד כלומר אחת ליד השנייה )מכיל ‪ .(aa‬שימו לב שמותר גם‬
‫שלוש בנות ביחד ואם שלוש בנות יושבות יחד אזי התנאי שני בנות יחד מתקיים‪.‬‬
‫‪ .2‬אסור ששני בנים ישבו יחדיו‪) .‬אינו מכיל ‪(bb‬‬
‫מכיל ‪aa‬‬
‫אינו מכיל ‪bb‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q5‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪q3‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q0 q4‬‬
‫‪q0 q4‬‬
‫‪q0 q5‬‬
‫‪q2 q4‬‬
‫‪q0 q5‬‬
‫‪q2 q5‬‬
‫‪q0 q5‬‬
‫‪q2 q5‬‬
‫‪q1 q3‬‬
‫‪q2 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q3‬‬
‫‪q1 q5‬‬
‫‪q2 q3‬‬
‫‪q2 q5‬‬
‫‪q2 q5‬‬
‫‪a‬‬
‫‪q0 q3‬‬
‫‪q1 q3‬‬
‫‪q0 q4‬‬
‫‪q2 q3‬‬
‫‪q0 q5‬‬
‫‪q2 q4‬‬
‫‪q1 q5‬‬
‫‪q2 q5‬‬
‫‪23‬‬
‫‪a‬‬
‫‪a‬‬
‫‪13‬‬
‫‪03‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a b‬‬
‫‪24‬‬
‫‪b‬‬
‫‪25‬‬
‫‪15‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪05‬‬
‫‪04‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫את מצבים ‪ 05 15 25‬ניתן לאחד למלכודת אחת‬
‫‪23‬‬
‫‪a‬‬
‫‪13‬‬
‫‪a‬‬
‫‪03‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a b‬‬
‫‪24‬‬
‫‪b‬‬
‫‪b‬‬
‫‪04‬‬
‫‪25‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪b‬‬
‫‪53‬‬
‫אוטומט מכפלה‬
‫אוטומט מכפלה (חתולים וכלבים) (תנאי או)‬
‫בתהלוכה שבה משתתפים חתולים וכלבים מתקיימים החוקים הבאים‪:‬‬
‫התהלוכה מתחילה בכל או מסתיימת בחתול‪.‬‬
‫חייבת להתחיל בכלב‬
‫חייבת להסתיים בחתול‬
‫חתול‬
‫כלב‬
‫חתול‬
‫‪q4‬‬
‫חתול‬
‫כלב‬
‫‪q3‬‬
‫‪q1‬‬
‫כלב‬
‫‪q0‬‬
‫חתול‬
‫כלב‬
‫‪q2‬‬
‫כלב‬
‫חתול‬
‫עד עתה בנינו אוטומט עבור כל תנאי‪ .‬כעת נבנה טבלה‪ .‬נתחיל מהמצב ההתחלתי של שני האוטומטים‬
‫שהינו ‪ q0q3‬ונרשום לאיזה מצב מוביל אותנו כלב‪ .‬אנו רואים שבאוטומט השמאלי כלב מוביל ל ‪q1‬‬
‫ובאוטומט הימני כלב מוביל ל ‪ q3‬מכאן שכלב מוביל ל ‪q1q3‬‬
‫כנ"ל נבצע לחתול ונבחין שהוא מוביל ל ‪q2q4‬‬
‫מכאן קיבלנו את השורה הראשונה בטבלה‪ .‬כעת כל מצב שמופיע בעמודות חתול וכלב ירשם בעמודת מצב‬
‫וחוזרים על התהליך‪.‬‬
‫בנית אוטמט המכפלה‬
‫חתול‬
‫כלב‬
‫מצב‬
‫‪q2q4‬‬
‫‪q1 q4‬‬
‫‪q2 q4‬‬
‫‪q1 q4‬‬
‫‪q2 q4‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q3‬‬
‫‪q0 q3‬‬
‫‪q1 q3‬‬
‫‪q2 q4‬‬
‫‪q1 q4‬‬
‫‪q2 q3‬‬
‫‪ q1‬הינו מצב מקבל באוטומט השמאלי ולכן בכל מקום שמופיע ‪ q1‬באוטומט המכפלה יהיה מצב מקבל‪.‬‬
‫‪ q4‬הינו מצב מקבל באוטומט הימני ולכן בכל מקום שמופיע ‪ q4‬באוטומט המכפלה יהיה מצב מקבל‪.‬‬
‫האוטומט לפי הטבלה‬
‫חתול‬
‫חתול‬
‫‪1,4‬‬
‫כלב‬
‫‪1,3‬‬
‫כלב‬
‫‪2,3‬‬
‫האוטומט לאחר צמצום מצבים‬
‫חתול‬
‫כלב‬
‫כלב‬
‫‪1,3‬‬
‫כלב‬
‫כלב‬
‫‪0,3‬‬
‫חתול‬
‫‪2,4‬‬
‫‪2,3‬‬
‫חתול‬
‫כלב‬
‫חתול‬
‫כלב‬
‫© כל הזכויות שמורות‬
‫כלב‬
‫חתול‬
‫‪2,4‬‬
‫חתול‬
‫‪54‬‬
‫חתול‬
‫אוטומט מכפלה‬
‫‪0,3‬‬
‫דף תרגילים מספר ‪-11‬אוטומט מכפלה‬
‫‪ .1‬בנה אוטומט מכפלה מעל }‪ {a,b‬שאסור שיופיע ‪ aa‬ואות לפני אחרונה ‪)b‬נתון פתרון חלקי‪-‬השלם אותו(‪.‬‬
‫אות לפני אחרונה ‪b‬‬
‫אינו מכיל ‪aa‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q6‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q5‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪q2‬‬
‫‪3‬‬
‫‪q‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪q‬‬
‫‪ .2‬נתונים שני האוטומטים הדטרמיניסטיים הבאים ‪:‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫א‪.‬‬
‫רשום במילים את השפה המתקבלת ע"י כל אחד מהאוטומטים‪.‬‬
‫ב‪.‬‬
‫הגדר את השפות המתקבלות מ ‪:‬‬
‫‪ (1‬חיתוך האוטומטים ‪.‬‬
‫‪ (2‬איחוד האוטומטים‪.‬‬
‫ג‪.‬‬
‫בנה לכל סעיף ב ב' אוטומט מתאים בעזרת אוטומט מכפלה‪.‬‬
‫‪ .3‬ילדים הושבו בשורה לפי הכללים הבאים‪:‬‬
‫‪ .i‬חייב שבשורה לפחות פעם אחת ישבו ‪ 2‬בנות יחד כלומר אחת ליד השניה )‪ .‬שימו לב שמותר גם‬
‫שלוש בנות ביחד ואם שלוש בנות יושבות יחד אזי התנאי שני בנות יחד מתקיים‪(.‬‬
‫‪ .ii‬מספר הבנות זוגי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪55‬‬
‫אוטומט מכפלה‬
‫מונחים (הדפס דפים אלה)‬
‫שימו לב!! עד עתה בבחינת הבגרות כאשר נעשה שימוש באחד מהסימונים הבאים הרי שהוא לווה בהסבר‪.‬‬
‫דוגמה‪ :‬בנה אוטומט מעל }‪{a,b,c‬‬
‫המקיים את התנאי ‪<= 2‬‬
‫)‪#a ( w‬‬
‫)מספר אותיות ‪ a‬במילה קטן שווה ‪(2‬‬
‫המונחים‬
‫סימון‬
‫‪‬‬
‫‪ ‬‬
‫משמעות‬
‫האות היוונית ‪ ‬מייצגת את המילה הריקה‪ .‬מספר האותיות במילה הריקה הינו אפס‪.‬‬
‫שפה שמכילה מילה ריקה היא לא שפה ריקה‪ ,‬שכן יש בה מילה אחת שהיא המילה הריקה‬
‫‪‬‬
‫השפה הריקה‪ .‬מספר המילים בשפה הריקה הינו אפס‪) .‬אינה מכילה את המילה הריקה(‪.‬‬
‫‪w‬‬
‫בדרך כלל האות ‪ w‬מציינת מילה בשפה‪ .‬מילה הינה סדרה סופית של אותיות מתוך ‪‬‬
‫אורך של מילה ‪ w‬מציין את מספר האותיות במילה‬
‫‪w‬‬
‫)‪#a ( w‬‬
‫‪L‬‬
‫‪L‬‬
‫‪w L‬‬
‫‪w L‬‬
‫מספר המופעים של אות הא"ב ‪ a‬במילה ‪ . w‬דוגמה‪#a (baabbab)  3 :‬‬
‫בדרך כלל האות ‪ L‬מציינת שפה של מילים‬
‫מספר המילים בשפה ‪L‬‬
‫המילה ‪ w‬שייכת לשפה ‪ , L‬המילה נמצאת בשפה‬
‫המילה ‪ w‬לא שייכת לשפה ‪ , L‬המילה לא נמצאת בשפה‬
‫‪‬‬
‫*‪‬‬
‫שפת כל המילים שניתן להרכיב מאותיות קבוצת הא"ב ‪ ‬כולל המילה הריקה‬
‫‪Є‬‬
‫שייך ל‪...‬‬
‫מספר אונרי‬
‫קבוצת אותיות א"ב של השפה‪ .‬דוגמאות ‪={a,b,c} :‬‬
‫}‪={0,1,a‬‬
‫מספר האחדים מביע את ערך המספר דוגמה‪ 111 :‬שווה ‪3‬‬
‫{ )‪# b (w) # a (w‬‬
‫|‬
‫*)‪ L = { w Є (a,b‬פירושו ש ‪ L‬הינה שפה מעל )‪ (a,b‬כך‬
‫שמספר ה ‪ a‬ים במילה שווה למספר ה ‪ b‬ים במילה‪ .‬הסימן | פירושו "כך ש" ‪.‬‬
‫© כל הזכויות שמורות‬
‫‪56‬‬
‫מונחים‬
‫סימון‬
‫‪w1  w2‬‬
‫‪wi‬‬
‫‪R(w), wR‬‬
‫‪L1 L2‬‬
‫‪L1 L2‬‬
‫‪L1 L2‬‬
‫‪Li‬‬
‫‪R( L), LR‬‬
‫‪L1 L2‬‬
‫‪L1 L2‬‬
‫‪L1 L2‬‬
‫‪L‬‬
‫‪L1 L2‬‬
‫‪‬‬
‫משמעות‬
‫שרשור בין ‪ 2‬מילים יוצר מילה חדשה המתקבלת מהצמדת המילה השנייה ‪ w2‬מימין למילה‬
‫הראשונה ‪w1‬‬
‫מילה חדשה המתקבלת משרשור המילה ‪ w‬לעצמה ‪ i‬פעמים‪ .‬חזקת ‪ 0‬שווה המילה הריקה‪.‬‬
‫היפוך המילה ‪ w‬יוצר מילה חדשה המתקבלת מרישום אותיות המילה בסדר הפוך מימין‬
‫לשמאל‬
‫איחוד שתי שפות ‪ L1, L2‬יוצר את שפת כל המילים משתי השפות יחד ‪ -‬שקול לקשר לוגי של‬
‫או‬
‫חיתוך שתי שפות ‪ L1, L2‬יוצר את שפת כל המילים המשותפות לשתי השפות ‪ -‬שקול לקשר לוגי‬
‫של וגם‬
‫שרשור שתי שפות ‪ L1, L2‬יוצר את שפת כל המילים המתקבלות משרשור מימין של כל מילה‬
‫מהשפה ‪ L2‬לכל מילה מהשפה ‪L1‬‬
‫חזקה של שפה מציינת שרשור השפה ‪ L‬לעצמה ‪ i‬פעמים‬
‫היפוך השפה ‪ L‬יוצר את שפת כל המילים ההפוכות למילים בשפה ‪L‬‬
‫הכלה ‪ /‬חלקיות [מוכל או שווה] ‪ -‬השפה ‪ L1‬מוכלת בשפה ‪ L2‬או שווה לה‪ ,‬כל המילים בשפה ‪L1‬‬
‫נמצאות בשפה ‪L2‬‬
‫הכלה ‪ /‬חלקיות [מוכל ממש ולא שווה] ‪ -‬השפה ‪ L1‬מוכלת ממש בשפה ‪ L2‬ולא שווה לה ‪ -‬השפה‬
‫‪ L1‬חלקית לשפה ‪ , L2‬כל המילים בשפה ‪ L1‬נמצאות בשפה ‪L2‬‬
‫השפה ‪ L1‬לא מוכלת בשפה ‪L2‬‬
‫משלים יוצר את שפת כל המילים שאינן נמצאות בשפה ‪L‬‬
‫הפרש יוצר את שפת כל המילים שנמצאות בשפה ‪ , L1‬ולא נמצאות בשפה ‪ , L2‬הפרש שקול‬
‫לביטוי ‪L1 L2‬‬
‫מלכודת של מצב מקבל הינו מצב שאומר שכל המשך שהוא המילה תתקבל‪.‬‬
‫ומלכודת של מצב שאינו מקבל הינו מצב שאומר שכל המשך שהוא המילה לא תתקבל‪.‬‬
‫דוגמה ‪ :‬כל המילים מעל }‪ {a,b,c‬המתחילות ב ‪.a‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪b,c‬‬
‫‪a,b,c‬‬
‫הגדרת המונחים בויקיפדיה‬
‫© כל הזכויות שמורות‬
‫‪57‬‬
‫מונחים‬
‫סגירות שפות רגולריות תחת פעולות‬
‫שפה רגולרית הינה שפה שניתן לבנות לה אוטומט אס"ד ולהיפך לשפה שניתן לבנות לה אס"ד‬
‫קוראים שפה רגולרית‪.‬‬
‫השפות הרגולריות סגורות תחת הפעולות הבאות‪ :‬חיתוך‪ ,‬איחוד‪ ,‬שרשור‪ ,‬היפוך ‪ ,‬משלים‪.‬‬
‫חיתוך ‪ -‬גם( ‪ L1∩L2‬פירושו כל המילים המתקבלות הן ב ‪ L1‬והן ב‪.) L2‬‬
‫תהי ‪ L1‬שפת כל המילים מעל }‪ {a,b‬המתחילות ב ‪.a‬‬
‫תהי ‪ L2‬שפת כל המילים מעל }‪ {a,b‬המסתיימות ב ‪.b‬‬
‫‪ L3 = L1∩L2‬הינם המילים המתחילות ב ‪ a‬ומסתיימות ב ‪. b‬‬
‫אם ידוע ש ‪ L1‬רגולרית ו ‪ L2‬רגולרית אזי ‪ L1∩L2‬גם כן רגולרית‪.‬‬
‫איחוד ‪ -‬או ( ‪ L1 L2‬פירושו כל המילים המתקבלות ב ‪ L1‬או ב ‪.) L2‬‬
‫תהי ‪ L1‬שפת כל המילים מעל }‪ {a,b‬המתחילות ב ‪.a‬‬
‫תהי ‪ L2‬שפת כל המילים מעל }‪ {a,b‬המסתיימות ב ‪.b‬‬
‫‪ L3 = L1L2‬הינם המילים המתחילות ב ‪ a‬או מסתיימות ב ‪. b‬‬
‫אם ידוע ש ‪ L1‬רגולרית ו ‪ L2‬רגולרית אזי ‪ L1L2‬גם כן רגולרית‪.‬‬
‫שרשור( ‪ L1· L2‬פירושו כל המילים אשר ניתן לחלק אותן לשני חלקים כך שהחלק‬
‫השמאלי שייך ל ‪ L1‬והימני ל ‪)L2‬‬
‫שים לב שגם מילה ריקה‬‫יכולה להיות חלק שמאלי אם ‪ L1‬כוללת אותה או חלק ימני אם ‪ L2‬כוללת אותה)‪.‬‬
‫תהי ‪ L1‬שפת כל המילים מעל }‪ {a,b‬המתחילות ב ‪.a‬‬
‫תהי ‪ L2‬שפת כל המילים מעל }‪ {a,b‬המסתיימות ב ‪.b‬‬
‫‪ L3 = L1·L2‬הינם המילים המתחילות ב ‪ a‬ומסתיימות ב ‪ . b‬קיבלנו כמו החיתוך‪ ,‬אך לא תמיד נקבל כך‪.‬‬
‫אם ידוע ש ‪ L1‬רגולרית ו ‪ L2‬רגולרית אזי ‪ L1·L2‬גם כן רגולרית‪.‬‬
‫שרשור של השפה הריקה עם כל שפה נותנת שפה ריקה‪.‬‬
‫שפה המכילה את המילה הריקה אינה שפה ריקה‪.‬‬
‫)האם נכון לומר ש ‪.( L2·L1 = L1·L2‬‬
‫)‪ R(L‬פירושו היפוך ‪ L‬מסומן גם כ ‪. LR‬‬
‫כלומר עבור כל מילה ב ‪ L‬אנו הופכים אותה‪.‬‬
‫תהי ‪ L‬שפת כל המילים מעל }‪ {a,b‬המסתיימות ב ‪.a‬‬
‫)‪ R(L‬הינה שפת כל המילים המסתיימות ב ‪.a‬‬
‫© כל הזכויות שמורות‬
‫‪58‬‬
‫סגירות שפות רגולריות‬
‫משלים )‪ (L‬מסומן ‪ L‬פירושו כל המילים שאינן מתקבלות ב ‪. L‬‬
‫תהי ‪ L‬שפת כל המילים מעל }‪ {a,b‬המתחילות ב ‪.a‬‬
‫‪ L‬הינה שפת כל המילים שאינן מתחילות ב ‪) .a‬כולל המילה הריקה(‪.‬‬
‫)האם נכון לומר שאחת משתי השפות‬
‫‪L‬‬
‫או‬
‫‪L‬‬
‫מכילה את המילה הריקה(‪.‬‬
‫הכלה (השפות הרגולריות אינן סגורות תחת פעולה זו )‬
‫תהי ‪ L‬שפת כל המילים מעל }‪.{a,b‬‬
‫‪n n‬‬
‫תהי תהי '‪ L‬שפת כל המילים מעל }‪ {a,b‬מהצורה ‪.a b‬‬
‫‪ L‬רגולרית בעוד '‪ L‬אינה רגולרית‪.‬‬
‫הרחבה בנושא בעמוד ‪.72‬‬
‫© כל הזכויות שמורות‬
‫‪59‬‬
‫סגירות שפות רגולריות‬
‫אוסף תרגילים פתורים בהוכחת רגולריות בעזרת חוקי סגירות‬
‫תרגיל ‪1‬‬
‫הוכח שהשפה ‪ L‬מעל }‪ {a,b,c‬שבה כל מילה מתחילה ב ‪ a‬מסתיימת ב ‪ c‬ומכילה את הרצף ‪ bb‬רגולרית‪.‬‬
‫פתרון‬
‫ניתן לפרק את השפה לשלוש שפות‪.‬‬
‫ולבנות אוטומט לכל שפה‪.‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪ L1‬כל המילים המתחילות ב ‪a‬‬
‫‪b,c‬‬
‫‪a,b,c‬‬
‫‪ L2‬כל המילים המסתיימות ב ‪c‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a,b‬‬
‫‪ L3‬כל המילים המכילות ‪bb‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪a,c‬‬
‫‪a,b,c‬‬
‫‪a,c‬‬
‫‪ L=L1∩L2∩L3‬המבוקשת‬
‫מסגירות משפחת השפות הרגולריות לפעולת החיתוך נובע ש ‪ L‬רגולרית‪.‬‬
‫)האם נכון לומר ש ‪( ?? L=L1·L2·L3‬‬
‫)האם נכון לומר ש ‪( ?? L=L1·L3·L2‬‬
‫תרגיל ‪2‬‬
‫הוכח שהשפה ‪ L‬מעל }‪ {a,b,c‬שבה כל מילה )מתחילה ב ‪ a‬או מסתיימת ב ‪ ( c‬ואינה מכילה את הרצף ‪bb‬‬
‫רגולרית‪.‬‬
‫פתרון‬
‫הפתרון דומה לפתרון התרגיל הקודם‪ .‬ניתן לפרק את השפה לשלוש שפות‪.‬‬
‫ולבנות אוטומט לכל שפה‪.‬‬
‫‪ L1‬כל המילים המתחילות ב ‪a‬‬
‫‪ L2‬כל המילים המסתיימות ב ‪c‬‬
‫‪ L3‬כל המילים המכילות ‪bb‬‬
‫‪L  ( L1  L2)  L3‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת החיתוך‪,‬איחוד‪,‬משלים נובע ש ‪ L‬רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪60‬‬
‫סגירות שפות רגולריות‬
‫תבנית להוכחת רגולריות של שפה‬
‫נתונה השפה ‪ L‬מעל הא"ב { } המקיימת את התנאים הבאים‪" :‬התנאים"‬
‫הוכח שהשפה רגולרית‪.‬‬
‫הוכחה‬
‫ננגדיר את השפות הבאות ונבנה אוטומט לכל שפה‬
‫=‪ L1‬הינה שפה מעל }{ המקיימת את תנאי א‬
‫=‪ L2‬הינה שפה מעל }{ המקיימת את תנאי ב‬
‫=‪ L3‬הינה שפה מעל }{ המקיימת את תנאי ג‬
‫*‬
‫*‬
‫‪L3…….‬‬
‫פעולה ‪ L2‬פעולה ‪L=L1‬‬
‫)במילה פעולה אנו מתכוונים לחיתוך או איחוד או משלים או שרשור או היפוך(‬
‫אנו רואים כי ניתן לבטא את ‪ L‬בעזרת השפות שבנינו‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולות החיתוך‪ ,‬איחוד‪ ,‬שרשור‪ ,‬משלים והיפוך‬
‫נובע ש ‪ L‬רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪61‬‬
‫סגירות שפות רגולריות‬
‫תרגיל ‪3‬‬
‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ {a,b‬שבהן השארית של מספר האותיות ‪ a‬מחולק ב‪ 2-‬שווה לשארית‬
‫של מספר האותיות ‪ b‬מחולק ב‪ .2-‬האם ‪ L‬רגולרית? הוכח את תשובתך‪.‬‬
‫‪a,b‬‬
‫פתרון‬
‫‪q1‬‬
‫הדרך הפשוטה ביותר להוכחה הינה בנית האוטומט ‪:‬‬
‫‪q0‬‬
‫‪a,b‬‬
‫תרגיל ‪4‬‬
‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ {0,1,2‬המסתיימות ב) ‪ 000‬או ב ‪ ( 0‬האות לפני האחרונה ‪ 0‬אורך‬
‫המילה מתחלק ב ‪ 15‬עם שארית גדולה מאפס וחייב שכל אות תופיע לפחות פעם אחת‪ .‬האם ‪ L‬רגולרית?‬
‫פתרון‬
‫נגדיר את השפות הבאות ונבנה אוטומט לכל שפה‪.‬‬
‫את התנאי )מסתיים ב ‪ 000‬או ב ‪ (0‬והאות לפני האחרונה ‪ 0‬ניתן ל צמצם למסתיים ב ‪.00‬‬
‫‪1,2‬‬
‫השפה שמסתיימת ב ‪L1 00‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1,2‬‬
‫‪0‬‬
‫השפה שמכילה את האות ‪ 0‬לפחות פעם אחת ‪L2‬‬
‫‪1,2‬‬
‫‪0‬‬
‫באופן דומה ‪ L3‬עבור ‪ 1‬ו ‪ L4‬עבור ‪.2‬‬
‫‪1,2‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫השפה שאורך המילה מתחלק בשלוש ללא שארית ‪L5‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫השפה שאורך המילה מתחלק בחמש ללא שארית ‪L6‬‬
‫‪0,1,2‬‬
‫‪ L‬השפה המבוקשת‬
‫‪0,1,2‬‬
‫‪ L  ( L1  L2  L3  L4)  L5  L6‬ומסגירות‬
‫‪0,1,2‬‬
‫השפות הרגולריות לפעולות החיתוך ומשלים נובע ש ‪ L‬רגולרית‬
‫© כל הזכויות שמורות‬
‫‪62‬‬
‫סגירות שפות רגולריות‬
‫תרגיל ‪5‬‬
‫בתרגיל זו שני סעיפים א ו ב שאין קשר ביניהם‪ .‬ענה על שניהם‪.‬‬
‫א‪.‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪:}a,b‬‬
‫אוסף כל המילים המתחילות ב ‪ , aaaa‬מספר ה ‪ a‬ים במילה מתחלק ב ‪ 2‬ללא שארית ‪,‬‬
‫הרצף ‪ aba‬מופיע במילה והרצף ‪ bbb‬אינו מופיע במילה‪.‬‬
‫הוכח שהשפה רגולרית‪.‬‬
‫ב‪.‬‬
‫לפניך שתי שפות ‪:‬‬
‫} ‪L1= { (ab)n (ab)n | n>0‬‬
‫} ‪L2= { (ba)n (ab)n | n>0‬‬
‫רשום לגבי כל שפה האם היא רגולרית או לא‪ .‬אם כן‪ ,‬בנה את האוטומט‪ ,‬אם לא נסה לנמק מדוע‪.‬‬
‫פתרון א‬
‫נגדיר את השפות הבאות ונבנה אוטומט לכל שפה‪.‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪a‬‬
‫‪ L1‬הינה שפה מעל }‪ {a,b‬של‬
‫‪q0‬‬
‫המילים המתחילות ב ‪aaaa‬‬
‫‪q‬‬
‫‪a,b‬‬
‫‪ L2‬הינה שפה מעל }‪ {a,b‬של‬
‫‪a‬‬
‫‪q1‬‬
‫המילים שמספר ה ‪ a‬במילה‬
‫‪q0‬‬
‫‪a‬‬
‫מתחלק ב ‪ 2‬ללא שארית‬
‫‪4q‬‬
‫‪b‬‬
‫‪b‬‬
‫‪ L3‬הינה שפה מעל }‪ {a,b‬של‬
‫‪q3‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪a‬‬
‫המילים שהרצף ‪ aba‬מופיע‬
‫‪q0‬‬
‫במילה‬
‫‪q‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫‪ L4‬הינה שפה מעל }‪ {a,b‬של‬
‫‪q3‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q0‬‬
‫המילים שהרצף ‪ bbb‬מופיע‬
‫‪q‬‬
‫במילה‬
‫‪a,b‬‬
‫‪a,b‬‬
‫) ‪ L= L1∩ L2∩ L3∩( L 4‬המבוקשת‬
‫ומסגירות השפות הרגולריות לפעולות החיתוך ומשלים נובע ש ‪ L‬רגולרית‬
‫© כל הזכויות שמורות‬
‫‪63‬‬
‫סגירות שפות רגולריות‬
‫פתרון ב‬
‫‪ L1‬רגולרית וניתן לבנות לה אוטומט‪) .‬שים לב שעל הקשת יש ‪ (ab‬שזה חוקי בתורת המודלים אך אין‬
‫מלמדים לבנות כך לפי תכנית הלימודים‪.‬‬
‫‪ab‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪4q‬‬
‫‪ab‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪ab‬‬
‫‪ L2‬אינה רגולרית כי ניתן להסתכל על השפה כ ‪ xn yn‬וקיימת תלות בין מספר ה ‪x‬ים למספר ה ‪y‬ים והתלות‬
‫אינה חסומה‪.‬‬
‫תרגיל ‪6‬‬
‫נתון כי ‪ L1 L2‬רגולרים‪.‬‬
‫הוכח כי ‪ L1-L2‬רגולרית‪.‬‬
‫פתרון‬
‫‪ L1-L2 = L1∩ L 2‬ומחוקי הסגירות נובע שהיא רגולרית‪.‬‬
‫תרגיל ‪7‬‬
‫הוכח כי השפה ‪ L‬מעל }‪ {0,1,2‬שאורך המילה זוגי מכילה את הרצף ‪ 012‬ולאחריו במקום כלשהו את הרצף‬
‫‪ 111‬רגולרית‪.‬‬
‫פתרון‬
‫נגדיר את השפות הבאות ונבנה אוטומט לכל שפה‪.‬‬
‫‪ L1‬אורך מילה זוגי‬
‫‪ L2‬מכיל ‪012‬‬
‫‪ L1‬מכיל ‪111‬‬
‫)‪ L= L1∩( L2* L3‬המבוקשת‬
‫ומסגירות השפות הרגולריות לפעולות החיתוך ושרשור נובע ש ‪ L‬רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪64‬‬
‫סגירות שפות רגולריות‬
‫אוסף תרגילים פתורים בפעולות על שפות‬
‫‪ .1‬נתונות שתי שפות מעל }‪.{a,b‬‬
‫‪ L1‬הינה שפת כל המילים המכילות ‪a‬‬
‫‪ L2‬הינה שפת כל המילים המסתיימות ב ‪b‬‬
‫מהי השפה ‪L1·L2‬‬
‫פתרון זוהי שפת כל המילים המסתיימות ב ‪ b‬ומכילות ‪a‬‬
‫למשל ‪) bbaab , ab‬לא בשפה ‪(aa bb‬‬
‫מהי השפה ‪L2·L1‬‬
‫פתרון זוהי שפת כל המילים המכילות ‪ b‬ומימין ל ‪ b‬מופיע ‪)a‬מכילות רצף ‪(ba‬‬
‫למשל ‪) bbaa , ba‬לא בשפה ‪(aa ab‬‬
‫מהי השפה ‪L1∩L2‬‬
‫פתרון זוהי שפת כל המילים המסתיימות ב ‪ b‬ומכילות ‪) .a‬כמו שרשור ‪(L1·L2‬‬
‫מהי השפה ‪L1υL2‬‬
‫פתרון זוהי שפת כל המילים המסתיימות ב ‪ b‬או מכילות ‪.a‬שימו לב שזוהי שפת כל המילים מעל‬
‫}‪ {a,b‬לא כולל המילה הריקה‪.‬‬
‫למשל ‪a , b‬‬
‫מהי שפת המשלים ל ‪.L1‬‬
‫פתרון זוהי השפה המכילה ‪b‬ים בלבד כולל המילה הריקה‪(bn n≥0) .‬‬
‫© כל הזכויות שמורות‬
‫‪65‬‬
‫פעולות על שפות‬
‫‪ .2‬נתונות שתי שפות מעל }‪.{a,b,c‬‬
‫)דומה לתרגיל הקודם רק שהוספנו את ‪( c‬‬
‫‪ L1‬הינה שפת כל המילים המכילות ‪a‬‬
‫‪ L2‬הינה שפת כל המילים המסתיימות ב ‪b‬‬
‫מהי השפה ‪L1·L2‬‬
‫פתרון זוהי שפת כל המילים המסתיימות ב ‪ b‬ומכילות ‪a‬‬
‫למשל ‪bbaccab , ab‬‬
‫)לא בשפה ‪(aa bcbc‬‬
‫מהי השפה ‪L2·L1‬‬
‫פתרון זוהי שפת כל המילים המכילות ‪ b‬ומימין ל ‪ b‬מופיע ‪a‬‬
‫למשל ‪bbaa , ba‬‬
‫מהי השפה ‪L1∩L2‬‬
‫פתרון זוהי שפת כל המילים המסתיימות ב ‪ b‬ומכילות ‪) .a‬כמו שרשור ‪(L1·L2‬‬
‫מהי השפה ‪L1υL2‬‬
‫פתרון זוהי שפת כל המילים המסתיימות ב ‪ b‬או מכילות ‪ .a‬למשל ‪a , b‬‬
‫מהי שפת המשלים של ‪.L1‬‬
‫פתרון זוהי השפה המכילה ‪b‬ים או ‪c‬ים כולל המילה הריקה‪(bn n≥0) .‬‬
‫‪ .3‬נתונות שתי שפות רגולריות ‪ L1 L2‬כלשהן‪.‬‬
‫האם נכון לומר ש ‪R(L1·L2) == L2·L1‬‬
‫פתרון‬
‫התשובה לא‪ .‬דוגמה‪L1=anb n>0 :‬‬
‫‪ L2·L1‬מילים שמתחילות ב ‪a‬‬
‫‪L2=akb k>0‬‬
‫)‪ R(L1·L2‬מילים שמתחילות ב ‪b‬‬
‫‪ .4‬תהי ‪ L‬שפת כל המילים מעל }‪ {a,b‬המתחילות ב ‪ a‬ומסתיימות ב ‪.b‬‬
‫מהי השפה )‪L ∩ R(L‬‬
‫פתרון השפה הריקה‪.‬‬
‫מהי השפה )‪L - R(L‬‬
‫פתרון ‪.L‬‬
‫© כל הזכויות שמורות‬
‫‪66‬‬
‫פעולות על שפות‬
‫‪ .5‬נתון האוטומט הבא מעל הא"ב {‪) : }0,1‬קשה(‬
‫‪1‬‬
‫א‪.‬‬
‫הגדר את השפה שהאוטומט מקבל‪.‬‬
‫ב‪.‬‬
‫בנה את האוטומט המשלים ‪.‬‬
‫ג‪.‬‬
‫האם יכול להיות שהאוטומט ההפוך לשפה כלשהי תהיה זהה לשפה המקורית‬
‫‪0,1‬‬
‫)כלומר כל מילה המתקבלת בשפה המקורית תתקבל גם בשפה ההופכית‪ ,‬ולהפך‪.‬‬
‫כמו כן כל מילה שלא מתקבלת בשפה המקורית לא תתקבל בהופכית ולהפך(‪.‬‬
‫פתרון‬
‫א‪.‬‬
‫המילים המתקבלות הם אלה שיש בהם לפחות פעם אחת ‪ 0‬במקום אי זוגי ‪.‬‬
‫ב‪.‬‬
‫האוטומט המשלים )שיש בו רק ‪ 1‬במקום אי זוגי לא כולל המילה הריקה‪.‬‬
‫ג‪.‬‬
‫כן‪ .‬מתחיל ב ‪ a‬ומסתיים ב ‪a‬‬
‫‪ .6‬נתונה השפה הבאה מעל הא"ב }‪{a,b‬‬
‫‪ T‬היא אוסף כל המילים המתחילות ומסתיימות באותה אות לא כולל המילה הריקה‪.‬‬
‫טענה ‪ T·T‬שווה ‪T‬‬
‫הוכח או הפרך‬
‫פתרון‬
‫הטענה שגויה כי המילה הקצרה ביותר ב ‪ T‬היא ‪ aa‬או ‪bb‬‬
‫וב ‪ T·T‬המילה הקצרה ביותר מכילה ‪ 4‬אותיות‪.‬‬
‫דוגמה נוספת ‪) aabb‬כלומר ‪ (aa·bb‬ב ‪ TT‬ואינה ב ‪T‬‬
‫© כל הזכויות שמורות‬
‫‪67‬‬
‫פעולות על שפות‬
‫‪0‬‬
‫‪0,1‬‬
‫‪ .7‬לפניך השפות הבאות‪:‬‬
‫{אוסף כל המילים מעל {‪ }a,b‬שבהן מספר ה ‪ a‬ב ‪ w‬זוגי|‬
‫‪L1=}w‬‬
‫{אוסף כל המילים מעל {‪ }a,b‬שבהן מספר ה ‪ b‬ב ‪ w‬זוגי|‬
‫‪L2=}w‬‬
‫הא"ב הוא {‪}a,b‬‬
‫}‪L3= { anbm | n,m ≥ 0‬‬
‫הא"ב הוא {‪}a,b‬‬
‫}‪L4= { bnam | n,m ≥ 0‬‬
‫הא"ב הוא { ‪}a,b,c‬‬
‫{ ‪L5 = { bncnax | n=x%3 ,x >= 0‬‬
‫{ שפת כל המילים מעל {‪ } a,b,c‬שהרצף ‪ ac‬מופיע בהן בדיוק פעם אחת } = ‪L6‬‬
‫לפניך מספר טענות‪ .‬קבע לכל אחת אם היא נכונה או לא ונמק את קביעתך‪.‬‬
‫פתרון‬
‫)‪aba Є (L1 ∩ L2‬‬
‫‪1.‬‬
‫לא כי מספר ה ‪ b‬במילה איזוגי ולפי התנאים חייב להיות זוגי‪.‬‬
‫כן‬
‫} ‪ m‬זוגי ‪ n ,‬זוגי ‪| n,m ≥ 0 ,‬‬
‫‪n m‬‬
‫‪(L1 ∩ L3) ∩ L2 = { a‬‬
‫‪2.‬‬
‫(השפה הריקה( ‪L3 ∩ L4 = Ø‬‬
‫‪3.‬‬
‫‪b‬‬
‫לא כי ‪ a‬מתקבל בשניהם‬
‫} ‪{ bncnax bncnax | n=x%3 , x>=0‬‬
‫=‬
‫‪L5·L5‬‬
‫‪4.‬‬
‫לא כי ‪ bn‬לא חייב להיות זהה‬
‫‪L5∩ L6 = Ø‬‬
‫‪5.‬‬
‫כן כי ‪ ac‬אסור שיופיע ב ‪L5‬‬
‫} ‪L5∩R(L6) = { bbccaa , bca‬‬
‫‪6.‬‬
‫לא כי ‪ bcaaaa‬גם כן מתקבל‬
‫‪ .8‬נתונות שתי שפות מעל }‪.{a,b‬‬
‫‪| n>0‬‬
‫‪n‬‬
‫‪| n>0‬‬
‫‪n‬‬
‫מהי השפה ‪L1·L2‬‬
‫פתרון ‪an bk n,k>0‬‬
‫כיוון ש ‪ n‬מופיע בשתי השפות רצוי לשנות את ‪ n‬באחת מהן לאות אחרת‪ .‬פתרון שגוי ‪n>0 an bn‬‬
‫© כל הזכויות שמורות‬
‫‪68‬‬
‫פעולות על שפות‬
‫‪L1 = a‬‬
‫‪L2 = b‬‬
‫דף תרגילים מספר ‪-12‬סגירות שפות רגולריות ופעולות‬
‫בין שפות‬
‫‪ .1‬השפות הבאות הינן מעל }‪{a,b,c‬‬
‫‪L1‬‬
‫שפת כל המילים המתחילות ב ‪.a‬‬
‫‪L2‬‬
‫שפת כל המילים המתחילות ב ‪.c‬‬
‫‪L3‬‬
‫שפת כל המילים המתחילות ב ‪.aa‬‬
‫מהן השפות הבאות? תן דוגמה למילה הקצרה ביותר המתקבלת בשפה ולמילה שאינה מתקבלת בשפה‪.‬‬
‫א‪.‬‬
‫‪ L1 · e‬כלומר שרשור כל מילה ב ‪ L1‬למילה הריקה‪.‬‬
‫ב‪.‬‬
‫‪L1 · Ø‬‬
‫ג‪.‬‬
‫)‪L1· R(L1‬‬
‫ד‪.‬‬
‫)‪L1-R(L1‬‬
‫ה‪.‬‬
‫‪L1  L2‬‬
‫ו‪.‬‬
‫‪L1 · L2‬‬
‫ז‪.‬‬
‫‪L1  L2‬‬
‫ח‪.‬‬
‫)‪L1 · R(L2‬‬
‫ט‪.‬‬
‫‪L1  L2 ·L1·L2‬‬
‫י‪.‬‬
‫)‪L1  L2 ·L1· R(L2‬‬
‫יא‪.‬‬
‫)‪R( L1)  R( L2)  ( L1  L2‬‬
‫יב‪.‬‬
‫‪L1  L2  e‬‬
‫יג‪.‬‬
‫‪L1  L3‬‬
‫יד‪.‬‬
‫‪L1 ∩ L3‬‬
‫טו‪.‬‬
‫‪L1 · L2· L3‬‬
‫טז‪L3-L1 .‬‬
‫יז‪.‬‬
‫‪L1 - L3‬‬
‫‪ .2‬האם הכללים הבאים נכונים לכל שתי שפות רגולריות?‬
‫‪A  B  A  B‬‬
‫‪A  B  A  B‬‬
‫פעולות על שפות‬
‫© כל הזכויות שמורות‬
‫‪69‬‬
‫‪ .3‬נתונות השפות הבאות מעל }‪{a,b,c‬‬
‫}‪L1 = {anbmn>m>0‬‬
‫}‪L2 ={bna2mm>n>0‬‬
‫מהן השפות הבאות? תן דוגמה למילה הקצרה ביותר המתקבלת בשפה‪ .‬תן דוגמה למילה שאינה מתקבלת‬
‫בשפה‪.‬‬
‫א‪.‬‬
‫‪L1  L2‬‬
‫ב‪.‬‬
‫‪L1 · L2‬‬
‫ג‪.‬‬
‫‪L1  L2‬‬
‫ד‪.‬‬
‫)‪L1 · R(L2‬‬
‫ה‪.‬‬
‫‪L1  L2 ·L1·L2‬‬
‫ו‪.‬‬
‫)‪L1  L2 ·L1· R(L2‬‬
‫ז‪.‬‬
‫)‪R( L1)  R( L2)  ( L1  L2‬‬
‫*‬
‫‪ .4‬נגדיר ∑ כאוסף כל המילים מעל א"ב נתון‪ ,‬כולל המילה הריקה‪.‬‬
‫בעבור שפה ‪ L‬כלשהי נגדיר ‪:‬‬
‫*‬
‫} ∑ ‪Init(L) = {u | uv Є L u,v Є‬‬
‫*‬
‫} ∑ ‪Fin(L) = {v | uv Є L u,v Є‬‬
‫= )‪Min(L‬‬
‫‪wЄL‬‬
‫ובעבור כל ‪ w1 w2‬המקיימות‬
‫‪ w=w1.w2‬ו ‪ w2‬אינה ריקה ‪ w1‬אינה שייכת ל ‪L‬‬
‫לפניך ‪ 5‬שפות מעל ה א"ב }‪{0,1‬‬
‫}‪|n≥1 k≥0‬‬
‫‪L1={ 0 1 0 1‬‬
‫}‪|n≥0 k≥0‬‬
‫‪L2={ 0n 1k‬‬
‫}‪|i≥0‬‬
‫‪L3={ 0i 1i‬‬
‫}‪| k≥i≥0‬‬
‫‪L4={ 0i 1k‬‬
‫}‪| i≥k≥0‬‬
‫‪L5={ 0i 1k‬‬
‫מהי השפה‬
‫‪? L1 ∩ L2‬‬
‫מהי השפה‬
‫)‪? Init (L3‬‬
‫מהי השפה‬
‫)‪? Fin(L3‬‬
‫האם‬
‫)‪?0011 Є Min(L4‬‬
‫האם‬
‫)‪?0011 Є Min(L5‬‬
‫© כל הזכויות שמורות‬
‫‪ L4 ∩ L5‬רגולרית ?‬
‫האם‬
‫‪70‬‬
‫‪k‬‬
‫‪k‬‬
‫‪n‬‬
‫‪n‬‬
‫פעולות על שפות‬
‫‪( .5‬לצטר) לפניך חמש השפות ‪ L1-L5‬מעל הא"ב }‪. {a , b , c‬‬
‫} אוסף כל המילים שבהן מספר האותיות ב‪ w -‬אי זוגי ‪L1 = { w /‬‬
‫} ‪L2 = { w / |w| % 3 = 2‬‬
‫} ‪L3 = { anb3n / n  0‬‬
‫} אוסף כל המילים שבהן מספר האותיות ב‪ w -‬זוגי ‪L4 = { w /‬‬
‫} ‪L5= {an bn+1 cm | n>=0, m=n%3‬‬
‫מהן השפות הבאות?‬
‫‪L6= L5  L1‬‬
‫‪L7 = L3  L2‬‬
‫‪L8 = L3  L4‬‬
‫‪L9 = L1  L2‬‬
‫‪L10= L3  L1‬‬
‫)‪L11 = L32 . R(L5‬‬
‫‪ .6‬מה השוני בתשובה הקודמת לו‬
‫} אוסף כל המילים שאורכן אי זוגי ומכילות את האותיות ‪ a,b‬בלבד ‪L1 = { w /‬‬
‫‪ .7‬נתונות השפות הבאות מעל הא"ב }‪{a,b‬‬
‫{ ‪L1={ an bm n,m ≥ 0‬‬
‫{ ‪L2={ bn am n,m ≥ 0‬‬
‫מהי השפה ‪L1. L2‬‬
‫האם )‪ R(L1‬שווה ‪ ? L2‬הוכח את תשובתך‪.‬‬
‫האם )‪ (L2) . (L2‬שווה ‪ ? R(L1) .L2‬הוכח את תשובתך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪71‬‬
‫פעולות על שפות‬
‫שאלות ופתרונות שניתנו בקורס מורים מובילים בהנחיית ד"ר מיכל ארמוני‬
‫)חוקי סגירות של שפות רגולריות(‬
‫שאלה ‪( 1‬איריס ברגורי)‬
‫תהיינה ‪ L1‬ו‪ L2-‬שפות מעל הא"ב }‪ .{0,1‬תהי ‪ L2L1‬שפת כל המילים השייכות ל‪ L2-‬אך אינן שייכות ל‪.L1-‬‬
‫הוכח או הפרך )על ידי דוגמה נגדית( את הטענה הבאה‪ :‬אם ‪ L1‬ו‪ L2L1-‬רגולריות‪ ,‬אז ‪ L2‬רגולרית‪.‬‬
‫פתרון‬
‫הטענה אינה נכונה‪.‬‬
‫}‪= }w | |w| > 3‬‬
‫דוגמה נגדית‪:‬‬
‫}‪= {anbn n>0‬‬
‫‪.L1‬‬
‫‪. L2‬‬
‫*‬
‫‪ L1‬היא רגולרית )להוכחה מלאה יש כמובן להראות אוטומט סופי שמקבל את ‪.(L1‬‬
‫*‬
‫}‪L2 – L1 ={a b n>0, 2n<3}={a b  n=1‬‬
‫‪n n‬‬
‫‪n n‬‬
‫כלומר‪ L2L1 ,‬היא שפה סופית )שמכילה בדיוק מילה אחת( ולכן רגולרית‪.‬‬
‫אבל ידוע כי ‪ L2‬אינה רגולרית‪ .‬ומכאן ההוכחה‪.‬‬
‫שאלה ‪( 3‬ויקטוריה צורי)‬
‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ ,{0,1,2‬שמתחילות במספר כלשהו )גדול ממש מ‪ (0-‬של אפסים ואין בהן‬
‫שתי אותיות ‪ 1‬צמודות‪ .‬האם ‪ L‬רגולרית? הוכח את תשובתך‪.‬‬
‫פתרון‬
‫קל יותר לפתור שאלה זו בעזרת פירוק לשפות פשוטות יותר ושימוש בתכונות סגירות‪ ,‬אך גם פתרון ישיר‪ ,‬על‬
‫ידי בניית אוטומט הוא אפשרי‪ .‬בפתרון ישיר לעיתים קרובות שוכחים לטפל באות ‪.2‬‬
‫ניתן לפרק את ‪ L‬כך‪ L1 , L  L1  L 2 :‬ו‪ L2-‬מעל הא"ב }‪:{0,1,2‬‬
‫{‪ w‬מתחילה ברצף לא ריק של אפסים ‪L1={w ‬‬
‫{‪ w‬מכילה רצף ‪L2={w  11‬‬
‫‪ L1‬רגולרית – הנה אוטומט שמקבל אותה )אוטומט דטרמיניסטי לא מלא(‬
‫‪0,1,2‬‬
‫‪q1‬‬
‫‪0‬‬
‫‪q0‬‬
‫‪ L2‬רגולרית – הנה אוטומט שמקבל אותה )אוטומט לא דטרמיניסטי(‪:‬‬
‫© כל הזכויות שמורות‬
‫‪72‬‬
‫סגירות שפות רגולריות‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת המשלים גם ‪ L 2‬רגולרית‪,‬‬
‫ומסגירות משפחת השפות הרגולריות לפעולת החיתוך גם ‪ L  L1  L 2‬רגולרית‪.‬‬
‫הנה אוטומט מתאים עבור ‪:L1‬‬
‫‪0,1,2‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪1‬‬
‫‪0,1,2‬‬
‫‪q2‬‬
‫והנה אוטומט מתאים עבור ‪:L2‬‬
‫‪0,2‬‬
‫‪0,1,2‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪0,2‬‬
‫סגירות שפות רגולריות‬
‫© כל הזכויות שמורות‬
‫‪73‬‬
‫שאלה ‪( 4‬ויקטוריה צור)‬
‫נתבונן בשפה מעל הא"ב }‪ {a,b,c‬המכילה את כל המילים שאורכן אי‪-‬זוגי והן מקיימות לפחות אחד משני‬
‫התנאים הבאים‪:‬‬
‫‪ .1‬מתחילות ומסתיימות באותה אות‪.‬‬
‫‪ .2‬מכילות את הרצף ‪.aa‬‬
‫האם השפה רגולרית? הוכח את תשובתך‪.‬‬
‫פתרון‬
‫פתרון י שיר ללא שימוש בפירוק )ע"י בניית אוטומט סופי המקבל את השפה( אינו פשוט‪ ,‬אך ניתן להגיע‬
‫לפתרון בעל מורכבות טכנית נמוכה ע"י שימוש בפירוק הבא‪ L = L1(L2 L3) :‬כאשר ‪ L2 ,L1‬ו‪ L3-‬מעל‬
‫}‪:{a,b,c‬‬
‫{‪ w‬באורך אי‪-‬זוגי ‪L1={w ‬‬
‫{‪ w‬מתחילה ומסתיימת באותה אות ‪L2={w ‬‬
‫{‪ w‬מכילה את הרצף ‪L3={w  aa‬‬
‫הנה אוטומט סופי שמקבל את ‪:L1‬‬
‫‪a,b,c‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪a,b,c‬‬
‫הנה אוטומט סופי‬
‫שמקבל את ‪:L2‬‬
‫‪q1‬‬
‫‪a,b,c‬‬
‫‪a,b,c‬‬
‫‪c‬‬
‫‪q0‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a,b,c‬‬
‫‪q3‬‬
‫‪q4‬‬
‫‪c‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q5‬‬
‫זהו אוטומט סופי לא דטרמיניסטי‪) .‬אוטומט דטרמיניסטי עבור שפה זו הוא מורכב למדי(‪.‬‬
‫‪ q1‬מטפל במקרה המיוחד שהמילה בת אות אחת – כלומר האות המתחילה היא גם האות המסיימת )כמובן‪,‬‬
‫אפשר לאחד את ‪ q1‬ו‪.(q5-‬‬
‫הנה אוטומט סופי שמקבל את ‪:L3‬‬
‫© כל הזכויות שמורות‬
‫סגירות שפות רגולריות‬
‫‪74‬‬
‫‪a,b,c‬‬
‫‪a,b,c‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫לכן ‪ L2 ,L1‬ו‪ L3-‬הן שפות רגולריות‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת האיחוד גם ‪ L2L3‬רגולרית ומסגירות משפחת השפות הרגולריות‬
‫לפעולת החיתוך גם )‪ L1(L2 L3‬היא רגולרית‪.‬‬
‫סגירות שפות רגולריות‬
‫© כל הזכויות שמורות‬
‫‪75‬‬
‫שאלה ‪( 5‬ויקטוריה צורי)‬
‫נתבונן בשפה מעל הא"ב }‪ ,{0,1,2‬המכילה את כל המילים שמתחילות ברצף ‪ 01‬או ברצף ‪ ,10‬ומסתיימות ברצף‬
‫‪ 10‬או ברצף ‪ .0111‬האם השפה היא רגולרית? הוכח את תשובתך‪.‬‬
‫פתרון‬
‫פתרון ישיר שאינו משתמש בפירוק אינו פשוט‪ ,‬כי קל לשכוח מילים כמו ‪ 0111 ,10‬או ‪ 10111‬שהן בשפה‬
‫ומקיימות תנאים בחפיפה‪ .‬כמובן‪ ,‬כאשר מפרקים את השפה לשפות פשוטות‪ ,‬ההתמודדות היא עם כל תנאי‬
‫בנפרד ואין צורך לחשוב על שילוב התנאים‪.‬‬
‫ניתן להציג את השפה באופן הבא‪ ,‬כאשר ‪ L2 ,L1‬ו‪ L3-‬הן מעל הא"ב }‪.{0,1,2‬‬
‫)‪(L1L2)(R(L1)L3‬‬
‫{‪ w‬מתחילה ב‪L1={w | 01-‬‬
‫{‪ w‬מתחילה ב‪L2={w | 10-‬‬
‫{‪ w‬מסתיימת ב‪L3={w | 0111-‬‬
‫‪ L1‬היא רגולרית – הנה אוטומט סופי המקבל אותה‪:‬‬
‫‪0,1,2‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪ L2‬היא רגולרית – הנה אוטומט סופי המקבל אותה‪:‬‬
‫‪0,1,2‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪ L3‬היא רגולרית – הנה אוטומט סופי המקבל אותה‪:‬‬
‫‪0,1,2‬‬
‫‪q4‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q3‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪0‬‬
‫‪q1‬‬
‫‪q0‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת ההיפוך גם )‪ R(L1‬רגולרית‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת האיחוד גם ‪ L1L2‬ו‪ R(L1)L3-‬רגולריות‪ ,‬ומסגירות משפחת‬
‫השפות הרגולריות לפעולת החיתוך גם )‪ (L1L2)(R(L1)L3‬רגולרית‪.‬‬
‫סגירות שפות רגולריות‬
‫© כל הזכויות שמורות‬
‫‪76‬‬
‫שאלה ‪( 6‬ריקה רם)‬
‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ {a,b,c‬שאורכן לפחות ‪ ,6‬ובין ‪ 3‬האותיות בהן מתחילה המילה אין שתי‬
‫אותיות זהות ובין ‪ 3‬האותיות בהן מסתיימת המילה אין שתי אותיות זהות‪ .‬האם שפה זו רגולרית? הוכיחו את‬
‫תשובתכם‪.‬‬
‫פתרון‬
‫ניתן להגדיר את ‪ L‬בעזרת שתי השפות הבאות‪:‬‬
‫‪ L1‬היא שפת כל המילים מעל הא"ב }‪ {a,b,c‬שאורכן בדיוק ‪ 3‬ואין בהן שתי אותיות זהות‪.‬‬
‫‪ L2‬היא שפת כל המילים מעל הא"ב }‪.{a,b,c‬‬
‫‪ L1‬היא סופית ולכן רגולרית‪ L2 .‬אף היא רגולרית )מוכח בספר לתלמיד(‪.‬‬
‫‪ .L=L1∙L2∙L1‬מסגירות משפחת השפות הרגולריות לשרשור גם ‪ L1∙L2‬רגולרית ולכן גם ‪ L=(L1∙L2)∙L1‬רגולרית‪.‬‬
‫שאלה זו מדגימה יפה כי השימוש בפירוק יכול להפחית בצורה משמעותית את המורכבות הטכנית של הפתרון‪,‬‬
‫ובמקרה זה אפילו אין צורך לבנות אוטומט‪ ,‬בעוד שבניית אוטומט ישיר לשפה כלל אינה טריוויאלית‪.‬‬
‫שאלה ‪( 8‬אסנת אנגלמן‪ ,‬אסתי מאסטראסי ואורנה שטיין)‬
‫הוכח כי שפת כל המילים מעל הא"ב }‪ {a,b,c‬שאינן מכילות רצף של שתי אותיות זהות היא רגולרית‪.‬‬
‫פתרון‬
‫ניתן לייצג את השפה בעזרת שלוש השפות הבאות‪ ,‬כולן מעל הא"ב}‪:{a,b,c‬‬
‫‪ L1‬היא שפת כל המילים שמכילות את הרצף ‪.aa‬‬
‫‪ L2‬היא שפת כל המילים שמכילות את הרצף ‪.bb‬‬
‫‪ L3‬היא שפת כל המילים שמכילות את הרצף ‪.cc‬‬
‫השפה הנדונה היא ‪L1  L 2  L 3‬‬
‫)וניתן להציגה גם כ‪.( (L1  L 2  L 3 ) -‬‬
‫‪ L1‬היא רגולרית‪ .‬הנה אוטומט סופי שמקבל אותה )לא דטרמיניסטי(‪.‬‬
‫‪a,b,c‬‬
‫‪q2‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫אוטומטים דומים מקבלים את ‪ L2‬ו‪ .L3-‬עבור ‪ L2‬נחליף את ‪ a‬במעברים מ‪ q0-‬ל‪ q1-‬ומ‪ q1-‬ל‪ q2-‬ב‪ ,b-‬ועבור ‪L3‬‬
‫נחליף את ‪ a‬במעברים האלו ב‪ .c-‬לכן גם ‪ L2‬ו‪ L3-‬רגולריות‪.‬‬
‫בייצוג הרא שון מקבלים כי השפה הנדונה רגולרית ע"י שימוש שלוש פעמים בתכונת הסגירות של השפות‬
‫הרגולריות לפעולת המשלים‪ ,‬ופעמיים שימוש בתכונת הסגירות של השפות הרגולריות לפעולת החיתוך‪.‬‬
‫בייצוג השני מקבלים כי השפה הנדונה רגולרית ע"י שימוש פעמיים בתכונת הסגירות של השפות הרגולריות‬
‫לפעולת האיחוד ופעם אחת שימוש בתכונת הסגירות של השפות הרגולריות לפעולת המשלים‪.‬‬
‫© כל הזכויות שמורות‬
‫‪77‬‬
‫סגירות שפות רגולריות‬
‫שאלה ‪( 17‬רחלי צ'רניחוב)‬
‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ {a,b,c‬המקיימות את כל התנאים הבאים‪:‬‬
‫ניתן לחלק את המילה לשני חלקים כך שחלקה הראשון מכיל את הרצף ‪ bca‬וחלקה השני מכיל את‬
‫א‪.‬‬
‫הרצף ‪.acb‬‬
‫ב‪.‬‬
‫המילה מכילה את הרצף ‪.bb‬‬
‫ג‪.‬‬
‫המילה אינה מכילה יותר משלוש אותיות ‪ a‬רצופות‪.‬‬
‫האם ‪ L‬רגולרית? הוכח את תשובתך‪.‬‬
‫פתרון‬
‫ניתן לייצג את ‪ L‬בעזרת השפות הבאות‪ ,‬כולן מעל הא"ב }‪:{a,b,c‬‬
‫‪ L1‬היא שפת כל המילים שמכילות את הרצף ‪.bca‬‬
‫‪ L2‬היא שפת כל המילים שמכילות את הרצף ‪.bb‬‬
‫‪ L3‬היא שפת כל המילים שמכילות את הרצף ‪.aaaa‬‬
‫‪L  ((L1  R (L1 ))  L 2 )  L 3‬‬
‫‪ L2 ,L1‬ו‪ L3-‬רגולריות‪:‬‬
‫‪ A1‬עבור ‪:L1‬‬
‫‪a,b,c‬‬
‫‪q3‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪c‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪ A2‬עבור ‪:L2‬‬
‫‪a,b,c‬‬
‫‪a,b,c‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪ A3‬עבור ‪:L3‬‬
‫‪a,b,c‬‬
‫‪q4‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת ההיפוך גם )‪ R(L1‬רגולרית‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת השרשור גם )‪ L1∙ R(L1‬רגולרית‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת המשלים גם ‪ L 3‬רגולרית‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת החיתוך גם ‪ (L1∙R(L1))L2‬וגם ‪L  ((L1  R (L1 ))  L 2 )  L 3‬‬
‫רגולרית‪.‬‬
‫סגירות שפות רגולריות‬
‫© כל הזכויות שמורות‬
‫‪78‬‬
‫שאלה ‪( 19‬דגנית מורן)‬
‫תהי ‪ L‬שפת כל המילים מעל הא"ב }‪ {a,b,c‬המקיימות את כל התנאים הבאים‪:‬‬
‫האות לפני האחרונה במילה היא ‪ ,a‬המילה מכילה פעמיים את הרצף ‪ abc‬ומספר האותיות ‪ b‬במילה הוא זוגי‪.‬‬
‫א‪.‬‬
‫הבא דוגמה למילה השייכת לשפה ודוגמה למילה שאינה שייכת לשפה‪.‬‬
‫ב‪.‬‬
‫האם ‪ L‬רגולרית? הוכח את תשובתך‪.‬‬
‫פתרון‬
‫א‪.‬‬
‫המילה ‪ cabcccabcaa‬שייכת לשפה‪.‬‬
‫המילה ‪ abcabcabc‬אינה שייכת לשפה‪.‬‬
‫ב‪.‬‬
‫נגדיר את שפות הבסיס הבאות מעל הא"ב }‪:{a,b,c‬‬
‫‪ – L1‬שפת כל המילים שמכילות את הרצף ‪.abc‬‬
‫‪ – L2‬שפת כל המילים בהן מספר האותיות ‪ b‬זוגי‪.‬‬
‫‪ – L3‬שפת כל המילים בהן האות לפני האחרונה היא ‪.a‬‬
‫כעת ‪L = (L1∙L1)L2L3‬‬
‫‪ L1‬רגולרית – הנה אוטומט סופי שמקבל אותה‪:‬‬
‫‪a,b,c‬‬
‫‪q3‬‬
‫‪a,b,c‬‬
‫‪c‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪ L2‬רגולרית – הנה אוטומט סופי שמקבל אותה‪:‬‬
‫‪a,c‬‬
‫‪a,c‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪ L3‬רגולרית – הנה אוטומט סופי שמקבל אותה‪:‬‬
‫‪a,b,c‬‬
‫‪q2‬‬
‫‪a,b,c‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫מסגירות משפחת השפות הרגולריות לשרשור גם ‪ L1∙L1‬רגולרית‪ .‬מסגירות משפחת השפות הרגולריות‬
‫לחיתוך גם ‪ L2L3‬רגולרית וגם )‪.L = (L1∙L1)(L2L3‬‬
‫סגירות שפות רגולריות‬
‫© כל הזכויות שמורות‬
‫‪79‬‬
‫הכלת שפות‬
‫תרגיל ‪1‬‬
‫נתון ש ‪ L‬רגולרית ו '‪ L‬מוכלת בה ‪ .‬האם '‪ L‬רגולרית ?‬
‫פתרון‬
‫יתכן שתהיה רגולרית ויתכן שלא‪.‬‬
‫דוגמה שלא ‪ :‬תהיי ‪ L‬שפת כל המילים מעל }‪ {a,b‬הינה רגולרית‪.‬‬
‫תהיי '‪ L‬שפת כל המילים מעל }‪ {a,b‬המקיימים את התנאי }‪{a n b n | n  0‬‬
‫הראנו דוגמה ש '‪ L‬אינה רגולרית‪.‬‬
‫דוגמה שכן ‪ :‬תהיי ‪ L‬שפת כל המילים מעל }‪ {a,b‬הינה רגולרית‪.‬‬
‫תהיי '‪ L‬שפת כל המילים מעל }‪ {a,b‬המתחילים ב ‪ a‬הינה שפה רגולרית‪.‬‬
‫דוגמה נוספת‪:‬נבחר מספר סופי של מילים וכמובן שאם שפה מכילה מספר סופי של מילים‬
‫היא רגולרית‪.‬‬
‫תרגיל ‪2‬‬
‫נתון ‪ L‬וכן ש '‪ L‬רגולרית ומוכלת בה ‪ .‬האם ‪ L‬רגולרית ?‬
‫פתרון‬
‫יתכן שתהיה רגולרית ויתכן שלא‪.‬‬
‫דוגמה שלא ‪ :‬תהיי '‪ L‬השפה המכילה את המילה ‪ ab‬בלבד הינה רגולרית‪.‬‬
‫תהיי ‪ L‬שפת כל המילים מעל }‪ {a,b‬המקיימים את התנאי }‪L  {a n b n | n  0‬‬
‫שידוע שאינה רגולרית‪.‬‬
‫דוגמה שכן ‪ :‬תהיי '‪ L‬השפה המכילה את המילה ‪ ab‬בלבד הינה רגולרית‪.‬‬
‫תהיי ‪ L‬שפת כל המילים מעל }‪ {a,b‬המתחילות באות ‪. a‬‬
‫‪ L‬רגולרית ומכילה את '‪L‬‬
‫© כל הזכויות שמורות‬
‫‪80‬‬
‫סגירות שפות רגולריות‬
‫הוכחת אי רגולריות‬
‫קימות שפות שאינן רגולריות כלומר לא ניתן לבנות להן אס"ד‪ .‬הדוגמה הפשוטה ביותר הינה‬
‫}‪n  0‬‬
‫| ‪ . L  {a n b n‬שימו לב שמספר ה ‪a‬ים צריך להיות שווה למספר ה ‪b‬ים‪.‬‬
‫לו היה תנאי נוסף והוא ‪ n<10‬למשל כן ניתן היה לבנות אס"ד אך כיוון ש ‪ n‬אינו מוגבל לא ניתן לבנות אס"ד‪.‬‬
‫הרעיון הכללי בהוכחת אי רגולריות הינה בדרך השלילה‪.‬‬
‫אנו מניחים שהשפה כן רגולרית ולכן ניתן לבנות לה אוטומט סופי‪ .‬בחירה נבונה של קבוצה אינסופית של‬
‫מילים בשפה וניסיון לבנות אוטומט תביא אותנו לסתירה כלומר שהאוטומט מקבל מילה שאסור שתתקבל‬
‫ומכיוון שמספר המילים בשפה אינסופי נובע שהשפה אינה רגולרית‪.‬‬
‫מבנה רעיון ההוכחה חוזר על עצמו‪/‬דומה בכל המקרים‪.‬‬
‫פרק זה קשה להבנה ורק לאחר קריאה איטית ומעמיקה של הדוגמאות ומעבר על פני כל הדוגמאות ניתן‬
‫להבין נושא זה‪.‬‬
‫© כל הזכויות שמורות‬
‫‪81‬‬
‫הוכחת אי רגולריות‬
‫דוגמא ‪1‬‬
‫}‪n  0‬‬
‫| ‪L  {a n b n‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫בואו ונבחן את הקבוצה האינסופית הבאה‪:‬‬
‫}‪W = {a , a2 , a3 , a4.....,am,...‬‬
‫התחלות של מילים בשפה ‪. L‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות‬
‫‪J‬‬
‫‪wj=a , wi=ai‬‬
‫כך ש‪ i ≠ J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫‪ai‬‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫נסמן את המצב המשותף של שתי המילים ב ‪ q1‬באוטומט‪.‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪aJ‬‬
‫שתי המילים מגיעות למצב משותף ‪ q1‬מכאן‬
‫‪ai‬‬
‫‪i i‬‬
‫שהמילה ‪ a b‬שייכת לשפה לכן ‪ q2‬מצב מקבל‪.‬‬
‫‪J i‬‬
‫‪q2‬‬
‫יוצא ש‪ a b -‬מתקבל בשפה עבור ‪i ≠ J‬‬
‫‪bi‬‬
‫‪q0‬‬
‫‪q1‬‬
‫)המסלול מ ‪ q1‬ל ‪ q2‬משותף לשתי המילים(‪,‬‬
‫‪J‬‬
‫‪a‬‬
‫וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משותף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪.‬‬
‫ומאחר והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיעה למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪A -‬‬
‫)באוטומט( ‪ ,‬בניגוד להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪82‬‬
‫הוכחת אי רגולריות‬
‫תבנית הוכחה לשפה אי רגולרית‬
‫} {=‪L‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫)בחלק מהמקרים ניתן לבחור בשלב זה תת קבוצה(‬
‫בואו ונבחן את הקבוצה האינסופית הבאה‪:‬‬
‫}‪ W = {w1 , w2 , w3 ,...‬התחלות של מילים בשפה ‪.L‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות‬
‫‪wj , wi‬‬
‫‪wi‬‬
‫כך ש‪ ( =,≠,<,>) i ? J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫‪q0‬‬
‫נסמן את המצב המשותף של שתי המילים ב ‪ q1‬באוטומט‪.‬‬
‫‪q1‬‬
‫‪wj‬‬
‫המילה ‪ wi‬שייכת לשפה לכן‬
‫‪ q2‬מצב מקבל והמילה ‪wiw‬‬
‫מתקבלת‪.‬‬
‫יוצא שגם ‪wj w -‬‬
‫מתקבלת‬
‫בשפה )המסלול מ ‪ q1‬ל ‪ q2‬משותף לשתי המילים(‪ ,‬וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫‪wi‬‬
‫‪q2‬‬
‫‪w‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪w2‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משותף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪.‬‬
‫ומאחר והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪, A -‬‬
‫בניגוד להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪83‬‬
‫הוכחת אי רגולריות‬
‫דוגמא ‪2‬‬
‫}‪n  0, n  k‬‬
‫| ‪L  {a nb k‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫בואו ונבחן את הקבוצה האינסופית הבאה‪:‬‬
‫}‪W = {a , a2 , a3 , a4.....,am,...‬‬
‫התחלות של מילים בשפה ‪ L‬עבור ‪ m‬כלשהו‪.‬‬
‫‪J‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪wj=a , wi=ai‬‬
‫‪ai‬‬
‫כך ש‪ i ≠ J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫‪q0‬‬
‫נסמן את המצב המשותף של שתי המילים ב ‪ q1‬באוטומט‪.‬‬
‫‪q1‬‬
‫‪aJ‬‬
‫‪i J‬‬
‫המילה ‪ a b‬שייכת לשפה לכן‬
‫‪ q2‬מצב מקבל‪ .‬יוצא ש‪aJbJ -‬‬
‫מתקבל בשפה‬
‫‪2‬‬
‫עבור ‪) i ≠ J‬המסלול מ ‪ q1‬ל ‪ q2‬משותף לשתי המילים(‪ ,‬וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫‪q2‬‬
‫‪bJ‬‬
‫‪ai‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪aJ‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משותף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪.‬‬
‫ומאחר והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪, A -‬‬
‫בניגוד להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪84‬‬
‫הוכחת אי רגולריות‬
‫דוגמה ‪} 3‬מעל }‪ {a,b‬כך שמספר ה ‪ a‬ים קטן ממספר ה ‪ b‬ים{=‪L‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫בואו ונסתכל על תת‪-‬הקבוצה הבאה של מילים בשפה ‪| n  0} L‬‬
‫‪L'  {a n b n1‬‬
‫ונבחן את הקבוצה האינסופית הבאה‪W = {a , a2 , a3 , a4.....,am,...} :‬‬
‫התחלות של מילים בשפה '‪ L‬עבור ‪ m‬כלשהו‪.‬‬
‫‪J‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪wj=a , wi=ai‬‬
‫‪ai‬‬
‫כך ש‪ i ≠ J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫כן אזי היה צורך באינסוף מצבים‪ .‬נניח כי ‪J > i‬‬
‫‪.‬‬
‫‪q0‬‬
‫‪q1‬‬
‫נסמן את המצב המשותף של שתי המילים ב ‪ q1‬באוטומט‪.‬‬
‫‪aJ‬‬
‫‪2‬‬
‫המילה‬
‫‪i i+1‬‬
‫‪ a b‬שייכת לשפה לכן‬
‫‪ q2‬מצב מקבל‪ .‬יוצא גם ש‪aJbi+1 -‬‬
‫מתקבלת בשפה‪.‬‬
‫)המסלול מ ‪ q1‬ל ‪ q2‬משותף לשתי המילים(‪ .‬אך ‪ J > i‬ומכאן נובע שמספר ה ‪a‬ים במילה‬
‫‪J i+1‬‬
‫‪b‬‬
‫‪ a‬שווה או‬
‫גדול ממספר ה ‪b‬ים במילה וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫‪q2‬‬
‫‪bi+1‬‬
‫‪ai‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪aJ‬‬
‫‪2‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משותף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪.‬‬
‫ומאחר והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪, A -‬‬
‫בניגוד להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪85‬‬
‫הוכחת אי רגולריות‬
‫דוגמה ‪4‬‬
‫}‪i  0, j  0, k  i  j‬‬
‫| ‪L  {a i b j c k‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫נבחר את ‪ J‬להיות אפס ‪ .‬מכאן נובע ש ‪ I‬צריך להיות שווה ל ‪ .k‬ומכאן ראה דוגמה מספר ‪.1‬‬
‫)כמובן שניתן לפתור גם על ידי קיבוע של ‪.( i‬‬
‫הוכחת אי רגולריות‬
‫© כל הזכויות שמורות‬
‫‪86‬‬
‫דוגמה ‪( 5‬חלוקה ושארית בשלמים)‬
‫א‪.‬‬
‫נתונה השפה }‪| n  0‬‬
‫נתונה השפה ‪:‬‬
‫ב‪.‬‬
‫‪ {a10c n b n / 10‬האם השפה רגולרית? הוכח תשובתך באופן מפורט‪.‬‬
‫}‪{a10c n b n % 10 | n  0‬‬
‫האם השפה רגולרית?‬
‫נמק תשובתך היטב‪ ,‬באופן מילולי )אין צורך להוכיח(‪.‬‬
‫תשובה‬
‫א‪ .‬השפה‬
‫}‪{a10c n b n / 10 | n  0‬‬
‫=‪ L‬אינה שפה רגולרית‪.‬‬
‫ההוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמינסטי ‪ A‬הבונה אותה‪.‬‬
‫תהי הקבוצה האינסופית הבאה‪:‬‬
‫}‪W  {a10c10 , a10c 20 , a10c 30 ,........, a10c10i ,......‬‬
‫התחלות של מילים בשפה ‪ L‬עבור ‪ m‬כלשהו‪.‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות‬
‫‪10 10i‬‬
‫‪, wi=a c‬‬
‫‪10 10j‬‬
‫‪ wj= a c‬כך ש‪ i≠j -‬מתוך‬
‫הקבוצה ‪.W‬‬
‫‪i‬‬
‫נניח כי שתי המילים מגיעות למצב משתף ‪ qt‬באוטומט ‪ .A‬משם נשרשר כל מילה עם ‪b‬‬
‫שתי המילים מגיעות למצב משתף ‪ , qr‬מאחר ויש להם מסלול משותף‪.‬‬
‫המילה ‪ a10c10ibi‬שייכת לשפה לכן ‪ qr‬מצב מקבל‪ .‬יוצא גם ש‪ a10c10j bi -‬גם בשפה‬
‫עבור ‪ , i≠j‬וזה בניגוד לכללי השפה ( ‪.)10j/10≠i‬‬
‫לכן הנחתינו ששתי המילים מגיעות למצב משותף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪ .‬ומאחר‬
‫והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן יש אינסוף מצבים ב‪ , A -‬בניגוד להגדרת‬
‫אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫ב‪.‬‬
‫השפה‪{a10c n b n % 10 | n  0} :‬‬
‫היא שפה רגולרית‪.‬‬
‫ניתן לבנות אותה ע"י איחוד של ‪ 01‬שפות רגולריות‪.‬‬
‫}‪n % 10 ={t | 0=< t =< 9‬‬
‫} ‪{a10c n b n % 10 | n  0}  {a10c n b 0  a10c n b1  a10c n b 2  .........  a10c n b 9‬‬
‫כל אחד מאברי האיחוד הוא שפה רגולרית )ניתן לבניה ע"י אוטומט סופי דטרמיניסטי או‬
‫שרשור של ‪ 3‬שפות רגולריות(‪ .‬מכאן עלפי תכונות הסגירות‪ ,‬איחוד סופי של שפות רגולריות הוא רגולרי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪87‬‬
‫הוכחת אי רגולריות‬
‫דוגמה ‪6‬‬
‫}‪n  0, n  k‬‬
‫| ‪L  {c 2 (ab) 2 n c k‬‬
‫נתונה השפה שלעיל מעל הא"ב }‪{a,b,c‬‬
‫א‪.‬‬
‫האם השפה רגולרית‪ ,‬הוכח תשובתך באופן מפורט‪.‬‬
‫ב‪.‬‬
‫האם השפה היא חופשית הקשר‪ ,‬הוכח תשובתך באופן מלא‪.‬‬
‫נוכיח כי השפה אינה רגולרית בדרך השלילה‪.‬‬
‫נניח שהשפה היא רגולרית‪ ,‬כלומר קיים אוטומט סופי ‪ A‬שיש בו מספר סופי של מצבים המקבל אותה‪.‬‬
‫נסתכל על הקבוצה האינסופית הבאה‪:‬‬
‫}‪W={c2, c2 (ab)2, c2(ab)4, ................., c2(ab)2n......‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪, c2 (ab)2j‬‬
‫‪2i‬‬
‫‪2‬‬
‫)‪ij , c (ab‬‬
‫שמגיעות‬
‫לאותו מצב ‪ q‬באוטומט ‪.A‬‬
‫מכאן שהמילה ‪ c2 (ab)2j ci‬מגיעה למצב מקבל לפי הגדרת השפה‪ .‬לכן גם המילה ‪c2 (ab)2i ci‬‬
‫מגיעה לאותו מצב מקבל כאשר ‪ ,ij‬וזה בסתירה להגדרת השפה‪.‬‬
‫לכן כל אחת מן המילים בקבוצה ‪ W‬מגיעה למצב אחר‪ ,‬ומשום שהקבוצה היא אינסופית יש אינסוף מצבים‬
‫באוטומט בסתירה להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שגויה והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪88‬‬
‫הוכחת אי רגולריות‬
‫דוגמה ‪7‬‬
‫}‪i, j  0‬‬
‫‪k i j‬‬
‫| ‪L  {(ab) i a j c k‬‬
‫נתונה השפה שלעיל מעל הא"ב }‪{a,b,c‬‬
‫האם השפה הבאה היא רגולרית? הוכח תשובתך באופן מפורט‪.‬‬
‫נוכיח כי השפה }‪ L  {(ab) i a j c k | k  i  j i, j  0‬אינה רגולרית בדרך השלילה‪.‬‬
‫נניח שהשפה היא רגולרית‪ ,‬כלומר קיים אוטומט סופי ‪ A‬שיש בו מספר סופי של מצבים המקבל אותה‪.‬‬
‫נסתכל על הקבוצה האינסופית הבאה‪:‬‬
‫‪3 m‬‬
‫‪m‬‬
‫‪2‬‬
‫‪m‬‬
‫}‪W={(ab)a , (ab) a , (ab) a , ................., (ab)nam......‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪, c2 (ab)2j‬‬
‫‪2i‬‬
‫‪2‬‬
‫)‪ij , c (ab‬‬
‫שמגיעות‬
‫לאותו מצב ‪ q‬באוטומט ‪.A‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪ i≠j (ab)jam , (ab)iam‬שמגיעות לאותו‬
‫מצב ‪ q‬באוטומט ‪.A‬‬
‫ממצב זה ‪ q‬נמשיך להפעיל את האוטומט על הרצף ‪ ,ci+ m‬נקבל כי המילים‬
‫‪(ab)iamci+m‬‬
‫ו ‪ (ab)jamci+m‬מגיעות לאותו מצב באוטומט (‪.(i≠j‬‬
‫המילה‬
‫‪ (ab)jamci+m‬מגיעה למצב מקבל לפי הגדרת השפה‪j+m=i+1+m<i+m .‬‬
‫לכן גם המילה‬
‫‪ )ab)iamci+m‬מגיעה לאותו מצב מקבל‪ ,‬וזה בסתירה להגדרת השפה‪.‬‬
‫לכן כל אחת מן המילים בקבוצה ‪ W‬מגיעה למצב אחר‪ ,‬ומשום שהקבוצה היא אינסופית יש אינסוף מצבים‬
‫באוטומט בסתירה להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה היא שגויה והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪89‬‬
‫הוכחת אי רגולריות‬
‫טעויות שכיחות בהוכחת אי רגולריות‬
‫דוגמה ‪ 8‬הוכחה‬
‫שגויה }‪| n  k  2n , n  0‬‬
‫‪L  (a n b k‬‬
‫נתונה השפה שלעיל ‪:‬‬
‫א‪ .‬אילו מהמילים הבאות בשפה ‪a 5b 6 , a 3b 6 , a 2 b 3‬‬
‫ב‪ .‬הוכח כי השפה ‪ L‬היא אי רגולרית‪.‬‬
‫תשובה‬
‫א‪ .‬המילים ‪ a 5 b 6 , a 2 b 3‬הן בשפה‬
‫ב‪ .‬השפה ‪ L‬היא אי רגולרית‪ ,‬נוכיח בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫תהי הקבוצה האינסופית הבאה‪:‬‬
‫}‪W  {a, a 2 , a 3 , ........., a n ,......‬‬
‫התחלות של מילים בשפה ‪L‬‬
‫נבחר שתי התחלות שונות ‪ wj= ai+1 , wi=ai‬עבור ‪ , i>1‬מתוך הקבוצה ‪.W‬‬
‫נניח כי שתי המילים מגיעות למצב משתף ‪ qt‬באוטומט ‪ .A‬משם נשרשר כל מילה עם ‪b2i‬‬
‫(הטעות ‪ :‬לא ניתן להניח כי קיימות שתי התחלות ‪ wj= ai+1 , wi=ai‬שמגיעות למצב משותף)‪.‬‬
‫© כל הזכויות שמורות‬
‫‪90‬‬
‫הוכחת אי רגולריות‬
‫הוכחה נכונה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫בואו ונבחן את הקבוצה האינסופית הבאה‪:‬‬
‫}‪| n  k  2n , n  0‬‬
‫‪L  (a n b k‬‬
‫}‪W  {a, a 2 , a3 ,......‬‬
‫התחלות של מילים בשפה ‪ L‬עבור ‪ m‬כלשהו‪.‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪wj=aj , wi=ai‬‬
‫‪J‬‬
‫‪a‬‬
‫כך ש‪ i≠j -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫‪q0‬‬
‫נניח כי שתי המילים מגיעות למצב משותף ‪ q1‬באוטומט ‪ A‬ונניח ש ‪.i>j‬‬
‫‪j j‬‬
‫המילה ‪ a b +1‬שייכת לשפה לכן ‪ q2‬מצב מקבל‪ .‬יוצא גם ש‪-‬‬
‫‪q1‬‬
‫‪i j+1‬‬
‫‪ a b‬גם בשפה‬
‫‪i‬‬
‫‪a‬‬
‫)המסלול מ ‪ q1‬ל ‪ q2‬משותף לשתי המילים( אך ‪ i‬גדול מ ‪ j‬לפחות באחד כלומר הוא‬
‫לפחות ‪ j+1‬אך החזקה של ‪ b‬צריכה להיות גדולה מהחזקה של ‪a‬‬
‫וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫‪bJ+1‬‬
‫‪q2‬‬
‫‪aJ‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪ai‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משתף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪ .‬ומאחר‬
‫והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪ , A -‬בניגוד‬
‫להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫(מותר להניח ש ‪ i>j‬שהרי חייב להיות שאחד גדול מהשני)‬
‫© כל הזכויות שמורות‬
‫‪91‬‬
‫הוכחת אי רגולריות‬
‫דוגמה ‪ 9‬הוכחה שגויה‬
‫}‪| k , n  0‬‬
‫‪L  (a n b k a n‬‬
‫נתונה השפה שלעיל ‪) :‬להשלים(‬
‫הוכח כי השפה ‪ L‬היא אי רגולרית‪.‬‬
‫פתרון‬
‫השפה ‪ L‬היא אי רגולרית‪ ,‬נוכיח בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫נבחר את ‪ k‬להיות אפס‪( .‬עדיין קבוצת המילים אינסופית)‪.‬‬
‫תהי הקבוצה האינסופית הבאה‪:‬‬
‫}‪W  { , a, a 2 , a 3 , ........., a n ,......‬‬
‫התחלות של מילים בשפה ‪L‬‬
‫נבחר שתי התחלות שונות‬
‫‪aJ , wi= ai‬‬
‫=‪ wj‬עבור ‪ ,‬מתוך הקבוצה ‪.W‬‬
‫נניח כי שתי המילים מגיעות למצב משתף ‪ q1‬באוטומט ‪( .A‬הטעות ‪ :‬אין לומר נניח כי שתי המילים מגיעות‬
‫‪aJ‬‬
‫למצב משותף‪( .‬ראה דוגמה קודמת)‬
‫‪q0‬‬
‫‪q1‬‬
‫‪i‬‬
‫משם נשרשר כל מילה עם ‪.b‬‬
‫‪i‬‬
‫שתי המילים מגיעות למצב משתף ‪ , qr‬מאחר ויש להם מסלול משותף‪.‬‬
‫המילה‬
‫‪i i‬‬
‫‪ a a‬שייכת לשפה לכן ‪ qr‬מצב מקבל‪ .‬יוצא גם ש‪-‬‬
‫!!!!! מדוע‬
‫‪J i‬‬
‫‪a‬‬
‫‪aJai‬‬
‫‪a‬‬
‫גם בשפה‪ ,‬וזה בניגוד לכללי השפה‪.‬‬
‫‪ a‬אינו בשפה‪ .‬אם אינו בשפה חייב להתקיים ש ‪ i‬זוגי ו ‪ j‬אי זוגי או להיפך‪ .‬כלומר יש פה‬
‫הנחה על שתי ההתחלות‬
‫‪aj , wi= ai‬‬
‫=‪ wj‬שהזוגיות שלהן שונה ושמגיעות לאותו מצב‪ ..‬אך ניתן לבנות‬
‫אוטומט שבו זוגיות ‪ a‬משתנה‪.‬‬
‫© כל הזכויות שמורות‬
‫‪92‬‬
‫הוכחת אי רגולריות‬
‫הוכחה נכונה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫בואו ונבחן את הקבוצה האינסופית הבאה )נבחר את ‪ k‬להיות ‪:(1‬‬
‫}‪W = {a , a2 , a3 , a4.....,am,...‬‬
‫התחלות של מילים בשפה ‪ L‬עבור ‪ m‬כלשהו‪.‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות ‪wj=aJ , wi=ai‬‬
‫‪J‬‬
‫‪a‬‬
‫כך ש‪ i≠ J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫‪q0‬‬
‫‪q1‬‬
‫נניח כי שתי המילים מגיעות למצב משותף ‪ q1‬באוטומט ‪ A‬ונניח ש‪.i>j‬‬
‫המילה‬
‫‪J‬‬
‫‪kbJ‬‬
‫‪j‬‬
‫‪ai‬‬
‫‪i‬‬
‫‪ a‬שייכת לשפה לכן ‪ q2‬מצב מקבל‪ .‬יוצא גם ש‪ a kb -‬גם בשפה‬
‫אך ‪ I‬שונה מ ‪ J‬וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫‪kbJ‬‬
‫‪q2‬‬
‫‪+1‬‬
‫‪aJ‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪i‬‬
‫‪a‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משתף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪ .‬ומאחר‬
‫והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪ , A -‬בניגוד‬
‫להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪93‬‬
‫הוכחת אי רגולריות‬
‫דוגמה ‪ 11‬הוכחה שגויה {כל המילים מעל ‪L = { a,b‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫בואו ונסתכל על תת‪-‬הקבוצה הבאה של מילים בשפה ‪L‬‬
‫}‪| n  0‬‬
‫‪L'  {a n b n‬‬
‫ונבחן את הקבוצה האינסופית הבאה‪W = {a , a2 , a3 , a4.....,am,...} :‬‬
‫התחלות של מילים בשפה '‪ L‬עבור ‪ m‬כלשהו‪.‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות‬
‫‪J‬‬
‫‪wj=a , wi=ai‬‬
‫כך ש‪ i ≠ J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫‪ai‬‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫נסמן את המצב המשותף של שתי המילים ב ‪ q1‬באוטומט‪.‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪aJ‬‬
‫שתי המילים מגיעות למצב משתף ‪ q1‬מכאן‬
‫‪ai‬‬
‫‪i i‬‬
‫שהמילה ‪ a b‬שייכת לשפה לכן ‪ q2‬מצב מקבל‪.‬‬
‫יוצא ש‪-‬‬
‫‪J i‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪ a‬מתקבל בשפה עבור ‪, i ≠ J‬‬
‫‪bi‬‬
‫‪q1‬‬
‫וזה בניגוד לכללי‪/‬חוקי השפה '‪.L‬‬
‫!!!!! המילה‬
‫‪J i‬‬
‫‪b‬‬
‫‪J‬‬
‫‪ a‬כן מתקבלת בשפה ‪ . L‬אין להסתכל בשלב זה על השפה '‪ L‬אלא על ‪.L‬‬
‫© כל הזכויות שמורות‬
‫‪q0‬‬
‫‪a‬‬
‫‪94‬‬
‫הוכחת אי רגולריות‬
‫דף תרגילים מספר ‪-13‬הוכחת אי רגולריות‬
‫לכל שפה מהשפות הבאות בצע‪:‬‬
‫א‪ .‬רשום את המילה הקצרה ביותר‪.‬‬
‫ב‪ .‬רשום ‪ 4‬מילים נוספות בשפה‪.‬‬
‫ג‪ .‬אם השפה רגולרית בנה אוטומט ואם לא הוכח שאינה וציין מה גורם לה להיות אי רגולרית‪.‬‬
‫‪ .1‬נתונה השפה הבאה מעל הא"ב }‪{a,b,c‬‬
‫}‪L  {(ab) i a j c k | k  i  j i, j  0‬‬
‫‪ .2‬נתונה השפה הבאה מעל הא"ב }‪{a,b‬‬
‫}‪L  {((abb) n (ba) 2n ) m | m  0, n  0‬‬
‫}‪L  {a n  c k  b 2n1 | n  0, k  0‬‬
‫‪ .3‬נתונה השפה הבאה מעל הא"ב }‪{a,b,c‬‬
‫‪ .4‬נתונה השפה הבאה מעל הא"ב‬
‫}‪L  {c k b 2n (aab) n c j | k , n, j  0, k   j‬‬
‫}‪{a,b,c‬‬
‫‪ .5‬נתונה השפה הבאה מעל הא"ב }‪{a,b,c‬‬
‫}‪L  {a nc mb c mn | m  n  0‬‬
‫‪ k ; i , j , k>=0{ .6‬היא השארית המתקבלת מחלוקת ‪ i‬ב‪} aibjck | 3 -‬‬
‫‪ .7‬נתונה השפה ‪ L‬מעל הא"ב }‪ {a,b,c‬בה מספר ה ‪ a‬ים ועוד מספר ה ‪ b‬ים זוגי‪.‬‬
‫‪ .8‬השפה ‪ L‬היא אוסף כל המילים המכילות את הצירוף ‪ ,abba‬מספר אותיות ה‪ c -‬הוא‬
‫זוגי‪ ,‬ומספר אותיות ה‪ a -‬גדול ממספר אותיות ה‪.b -‬‬
‫‪ .9‬שפת כל המילים מעל {‪ }a,b‬שבהן מספר ה‪ a-‬קטן ממספר ה‪ ,b-‬אבל ההפרש הוא לכל היותר ‪.3‬‬
‫‪ .10‬שפת כל המילים מעל {‪ }a,b‬שבהן מספר ה‪ a-‬קטן ממספר ה‪ ,b-‬וגם ההפרש הוא לכל היותר ‪ ,3‬וגם‬
‫בכל רישא של המילה ‪ -‬ההפרש הוא לכל היותר ‪.3‬‬
‫‪| m, n, k  0} .11‬‬
‫‪n m k‬‬
‫‪L= {a b c‬‬
‫‪ .12‬שפת כל הביטויים החשבוניים החוקיים עם סוגריים‪ ,‬למשל ‪.(4+5)*2+3‬‬
‫הקבוצה ‪ W‬מורכבת מביטוי חשבוני עם ‪ i‬פותחים‪ ,‬לכל ‪.i‬‬
‫© כל הזכויות שמורות‬
‫‪95‬‬
‫הוכחת אי רגולריות‬
‫‪ .13‬שפת כל הביטויים החשבוניים החוקיים בלי סוגריים‪.‬‬
‫‪.14‬‬
‫‪.15‬‬
‫}‪| i  0, j  0, k  i  j‬‬
‫‪L  {aib2 j c k‬‬
‫נתונות השפות הבאות מעל הא"ב }‪{a,b‬‬
‫{ ‪n,k ≥ 0‬‬
‫‪L1={ an bk‬‬
‫{ ‪L2={ bk an n≠k k ≥ 0 , n ≥ 1‬‬
‫האם ‪ L1‬רגולרית? נמק את תשובתך‪.‬‬
‫האם ‪ L2‬רגולרית? נמק את תשובתך‪.‬‬
‫האם ‪ L1 * L2‬רגולרית? נמק את תשובתך‪.‬‬
‫האם ‪ L1 ∩ L2‬רגולרית? נמק את תשובתך‪.‬‬
‫‪ .16‬נתונות השפות הבאות מעל הא"ב }‪{a,b‬‬
‫{ ‪L1={ an bk n≠k n,k ≥ 0‬‬
‫{ ‪L2={ bk an n≠k n,k ≥ 0‬‬
‫האם ‪ L1‬רגולרית? נמק את תשובתך‪.‬‬
‫האם ‪ L2‬רגולרית? נמק את תשובתך‪.‬‬
‫האם ‪ L1 * L2‬רגולרית? נמק את תשובתך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪96‬‬
‫הוכחת אי רגולריות‬
‫תיאור מתמטי פורמאלי של אוטומט מחסנית הוא באמצעות השביעייה הבאה‪( :‬הסבר ינתן בהמשך)‬
‫}‪A  {Q, , ,  , q0 , , F‬‬
‫כאשר‪:‬‬
‫היא קבוצת מצבי האוטומט‪.‬‬
‫הוא א"ב הקלט‪.‬‬
‫‪‬‬
‫הוא א"ב המחסנית‪.‬‬
‫‪‬‬
‫היא פונקצית המעברים‪.‬‬
‫הוא המצב ההתחלתי‪.‬‬
‫┤ או ┴‬
‫היא תחתית המחסנית‪.‬‬
‫היא קבוצת המצבים המקבלים‪.‬‬
‫למעשה את רוב המצבים אנו מכירים מפרק אוטומט סופי דטרמיניסטי‪ .‬מלבד‬
‫‪‬‬
‫הוא א"ב המחסנית‪.‬‬
‫┤ או ┴‬
‫היא תחתית המחסנית‪.‬‬
‫אוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪97‬‬
‫ראינו בפרק הוכחת אי רגולריות שיש שפות שלא ניתן לבנות להן אוטומט סופי דטרמיניסטי‪.‬‬
‫לדוגמה ‪:‬‬
‫‪L=anbn n0‬‬
‫הסיבה הינה שיש צורך בספירה )שאינה מוגבלת בחסם עליון( ולכן לא ניתן לעשות זאת באס"ד‪ .‬לצורך כך אנו‬
‫נשתמש במחסנית‪.‬‬
‫הרעיון המרכזי ‪ :‬המחסנית משמשת ככלי ספירה‪ .‬הספירה נעשית על ידי הכנסת תווים למחסנית והוצאתם‪.‬‬
‫יש מקרים בהם אין צורך להכניס או להוציא ונסמנם לל"ש (ללא שינוי) דוגמה פשוטה‪n0 :‬‬
‫‪anbn‬‬
‫=‪L‬‬
‫)מומלץ לעיין במצגת לאוטומט מחסנית זה(‪.‬‬
‫הרעיון ‪ :‬על ה ‪ a‬הראשונה נכניס ‪ S‬על כל ל ‪ a‬נוספת נכניס ‪ A‬למחסנית והחל מה ‪ b‬הראשונה על כל ‪b‬‬
‫נוציא‪/‬נשלוף ‪ A‬מהמחסנית ועל ה ‪ b‬האחרון נשלוף ‪.S‬‬
‫דוגמאות לפעולות המותרות באוטומט מחסנית‬
‫מה קורה‬
‫במחסנית‬
‫מצב ראש‬
‫המחסנית‬
‫פירוש‬
‫הסימן‬
‫הנבדק‬
‫דחוף ‪A‬‬
‫┴‬
‫לל"ש‬
‫‪A‬‬
‫‪a‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫כשבראש המחסנית ‪ A‬והתו נבדק ‪ b‬אז שלוף ‪A‬‬
‫‪AA‬‬
‫‪A‬‬
‫‪a‬‬
‫כשבראש המחסנית ‪ A‬והתו הנבדק ‪ a‬אז דחוף ‪ A‬למחסנית‬
‫‪a‬‬
‫כשהמחסנית ריקה)┴) והתו הנבדק ‪ a‬אז דחוף ‪ A‬למחסנית‬
‫ללא שינוי )אין מכניסים ואין מוציאים מהמחסנית(‬
‫) ‪ AA‬פירושו בעצם הוספת ‪( A‬‬
‫(שקול לדחוף‬
‫‪(A‬‬
‫אותיות השפה הינן אותיות קטנות)‪ (ab‬למחסנית מכניסים אותיות גדולות ‪.‬‬
‫שימו לב ‪ :‬אין להוציא ממחסנית יותר מאות אחת‬
‫להכניס מותר יותר מאות אחת‬
‫שפה שניתן לאמת אותה באמצעות אוטומט מחסנית נקראת חופשית הקשר‪.‬‬
‫משפחת השפות חופשיות ההקשר כוללת גם את השפות הרגולריות‪.‬‬
‫© כל הזכויות שמורות‬
‫‪98‬‬
‫אוטומט מחסנית‬
‫הסבר על אוטומט מחסנית באמצעות תרגילים‬
‫‪L=anbn n≥0‬‬
‫נתחיל מהמילה הקצרה ביותר שהיא המילה הריקה‬
‫‪q0‬‬
‫כעת נצרף את המילה השניה הקצרה ביותר שהיא ‪.ab‬‬
‫דחוף ‪a┴ | S‬‬
‫‪Q1‬‬
‫‪q0‬‬
‫שלוף ‪bS| S‬‬
‫‪q3‬‬
‫כעת נצרף את המילה השלישית הקצרה ביותר שהיא ‪.aabb‬‬
‫דחוף ‪aS | A‬‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪bA| A‬‬
‫‪Q1‬‬
‫‪q2‬‬
‫שלוף ‪bS|S‬‬
‫‪q0‬‬
‫שלוף ‪bS| S‬‬
‫‪q3‬‬
‫שים לב שכאשר אנו ב ‪ q1‬ומפיע ‪ b‬אנו עוברים ל ‪ q2‬כי אחרי הופעת ה ‪ b‬הראשון אסור שיופיעו ‪a‬ים‪.‬‬
‫וכעת נציג את אוטומט המחסנית הטוב לכל מילה מהצורה ‪anbn‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪aS | A‬‬
‫שלוף ‪bA |A‬‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪bA|A‬‬
‫‪Q1‬‬
‫‪q2‬‬
‫שלוף ‪bS|S‬‬
‫‪q0‬‬
‫הרעיון‪ :‬על ה ‪ a‬הראשון נדחוף ‪S‬‬
‫על כל ‪ a‬נוספת נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫על ה ‪ b‬האחרון נשלוף ‪S‬‬
‫שלוף ‪bS| S‬‬
‫‪q3‬‬
‫אוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪99‬‬
‫מעבר המילה ‪ aaabbb‬באוטומט (מעקב אחר המילה ‪)aaabbb‬‬
‫מצב‬
‫עוברים‬
‫מחסנית אחרי‬
‫למצב‬
‫ראש‬
‫אות‬
‫המחסנית‬
‫נבדקת‬
‫‪┴S‬‬
‫‪q1‬‬
‫דחוף ‪S‬‬
‫┴‬
‫‪a‬‬
‫‪q0‬‬
‫‪┴SA‬‬
‫‪q1‬‬
‫דחוף ‪A‬‬
‫‪S‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪┴SAA‬‬
‫‪q1‬‬
‫דחוף ‪A‬‬
‫‪A‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪┴SA‬‬
‫‪q2‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪┴S‬‬
‫‪q2‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪(q3‬מקבל)‬
‫שלוף ‪S‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q2‬‬
‫┴‬
‫פעולה‬
‫מצב‬
‫כפי ששמתם לב בפתרונות הקודמים על האות הראשונה מוכנס ‪ S‬למחסנית‪ .‬מטרת‬
‫הכנסת ה ‪ S‬הינה זיהוי בהוצאה מהמחסנית שמחסנית התרוקנה‪.‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪aS | A‬‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪bA |A‬‬
‫‪n>0‬‬
‫‪q0‬‬
‫שלוף ‪bS|S‬‬
‫‪L=a b‬‬
‫המילה הקצרה ביותר ‪ab‬‬
‫הרעיון‪ :‬על ה ‪ a‬הראשון נדחוף ‪S‬‬
‫על כל ‪ a‬נוספת נדחוף ‪ A‬ועל‬
‫כל ‪ b‬נשלוף ‪ A‬על ה ‪b‬‬
‫האחרון נשלוף ‪S‬‬
‫שלוף |‪bA‬‬
‫‪q1‬‬
‫‪n n‬‬
‫שלוף ‪bS| S‬‬
‫‪q2‬‬
‫אם נבדוק את המילה ‪ ab‬אזי על ה ‪ a‬נדחוף ‪ S‬על ה ‪ b‬נשלוף ונעבור למצב מקבל‪.‬‬
‫אם נבדוק את המילה ‪ abb‬אזי על ה ‪ a‬נדחוף ‪ S‬על ה ‪ b‬נשלוף ונעבור למצב מקבל ועל ה ‪b‬‬
‫הבאה אנו נתקעים )כלומר לא כתוב מה לעשות במקרה זה ב ‪.q2‬‬
‫‪‬‬
‫שימו לב ש ‪.n>0‬‬
‫‪‬‬
‫תפקיד מצב ‪ q0‬הינו לדחוף ‪ A‬על כל ‪ S ) a‬על מחסנית ריקה(‬
‫‪‬‬
‫תפקיד מצב ‪ q1‬הינו לומר שהחל מפה יכול להופיע רק ‪ b‬ואסור שיופיע ‪ a‬כמו כן תפקידו לשלוף ‪ A‬על‬
‫כל ‪. b‬‬
‫‪‬‬
‫תפקיד מצב ‪ q2‬הינו שהגענו למצב שבו מספר ה ‪ a‬שווה למספר ה ‪. b‬‬
‫שימו לב שעבור מצב שאינו חוקי האוטומט נתקע‪.‬‬
‫)למשל אם המילה מתחילה ב ‪) b‬והמחסנית ריקה( אזי האפשרות הזאת אינה קיימת ולכן אנו‬
‫נתקעים(‪.‬‬
‫© כל הזכויות שמורות‬
‫‪100‬‬
‫אוטומט מחסנית‬
‫מקרים בהם מספר ה ‪ a‬גדול או קטן ממספר ה ‪b‬ים בכפולה‪.‬‬
‫‪L=anb3n n0‬‬
‫פתרון א (פשוט יותר מפתרון ב)‬
‫המילה הקצרה ביותר‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪AAA‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫דחוף ‪aA | AAA‬‬
‫שלוף ‪bA | A‬‬
‫‪q3‬‬
‫שלוף ‪bS|S‬‬
‫‪q2‬‬
‫‪q1‬‬
‫שלוף ‪bA| A‬‬
‫דחוף ‪a┴ | SAA‬‬
‫‪q0‬‬
‫מעבר המילה ‪ abbb‬באוטומט (טבלת מעקב)‬
‫עוברים‬
‫למצב‬
‫פעולה‬
‫ראש‬
‫המחסנית‬
‫אות‬
‫נבדקת‬
‫מצב‬
‫מצב‬
‫מחסנית אחרי‬
‫‪┴SAA‬‬
‫‪q1‬‬
‫דחוף ‪SAA‬‬
‫┴‬
‫‪a‬‬
‫‪q0‬‬
‫‪┴SA‬‬
‫‪q1‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪┴S‬‬
‫‪q1‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪(q3‬מקבל)‬
‫שלוף ‪S‬‬
‫‪S‬‬
‫‪b‬‬
‫‪q1‬‬
‫┴‬
‫פתרון ב‬
‫המילה הקצרה ביותר‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪A‬‬
‫על כל שלושה ‪ b‬נשלוף ‪A‬‬
‫שלוף ‪bS|S‬‬
‫ללש |‪bA‬‬
‫ללש |‪bS‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪aA | A‬‬
‫ללש |‪bA‬‬
‫ללש |‪bS‬‬
‫דחוף ‪a┴ | S‬‬
‫ללש |‪bA‬‬
‫ללש |‪bS‬‬
‫© כל הזכויות שמורות‬
‫‪101‬‬
‫אוטומט מחסנית‬
‫‪q1‬‬
‫ללש |‪aA‬‬
‫דחוף ‪a┴ | S‬‬
‫דחוף ‪aS | A‬‬
‫דחוף ‪a A | A‬‬
‫ללש |‪aA‬‬
‫‪q2‬‬
‫‪L=a3nbn n>0‬‬
‫המילה הקצרה ביותר ‪aaab‬‬
‫הרעיון‪ :‬על כל שלושה ‪ a‬נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫‪q0‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bA|A‬‬
‫שלוף ‪bS|S‬‬
‫‪q3‬‬
‫שלוף ‪bS|S‬‬
‫‪q4‬‬
‫תאור אוטומט מחסנית(שלעיל) באמצעות טבלה‬
‫עוברים למצב‬
‫פעולה‬
‫ראש המחסנית‬
‫אות נבדקת‬
‫מצב‬
‫‪q1‬‬
‫דחוף ‪S‬‬
‫┴‬
‫‪a‬‬
‫‪q0‬‬
‫‪q1‬‬
‫דחוף ‪A‬‬
‫‪S‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪q2‬‬
‫דחוף ‪A‬‬
‫‪A‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪q2‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪q4‬‬
‫שלוף ‪S‬‬
‫‪S‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪q2‬‬
‫ללש‬
‫‪A‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪q0‬‬
‫ללש‬
‫‪A‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪q3‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪(q4‬מקבל)‬
‫שלוף ‪S‬‬
‫‪S‬‬
‫‪b‬‬
‫‪q3‬‬
‫© כל הזכויות שמורות‬
‫‪102‬‬
‫אוטומט מחסנית‬
‫‪L=a2nb3n n>0‬‬
‫דחוף ‪a┴ | SAA‬‬
‫דחוף‪aA | AAA‬‬
‫שלוף ‪bA | A‬‬
‫ללש |‪aA‬‬
‫המילה הקצרה ביותר ‪aabbb‬‬
‫הרעיון‪ :‬על כל ‪ a 2‬נדחוף ‪AAA‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫שלוף ‪bA|A‬‬
‫שלוף ‪bS|S‬‬
‫‪L= a2nb3n n0‬‬
‫שלוף ‪bA | A‬‬
‫דחוף‪aA | AAA‬‬
‫‪q2‬‬
‫‪q3‬‬
‫‪q0‬‬
‫‪q1‬‬
‫שלוף ‪bA|A‬‬
‫דחוף ‪a┴ | SAA‬‬
‫ללש |‪aA‬‬
‫המילה הקצרה ביותר‬
‫הרעיון‪ :‬כמו הקודם‬
‫שלוף ‪bS|S‬‬
‫‪q4‬‬
‫מעבר המילה ‪ aaaabbbbbb‬באוטומט (טבלת מעקב)‬
‫מצב‬
‫עוברים‬
‫מחסנית אחרי‬
‫למצב‬
‫ראש‬
‫אות‬
‫המחסנית‬
‫נבדקת‬
‫‪┴SAA‬‬
‫‪q1‬‬
‫דחוף ‪SAA‬‬
‫┴‬
‫‪a‬‬
‫‪q0‬‬
‫‪┴SAA‬‬
‫‪q2‬‬
‫ללש‬
‫‪A‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪┴SAAAAA‬‬
‫‪q1‬‬
‫דחוף ‪AAA‬‬
‫‪A‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪┴SAAAAA‬‬
‫‪q2‬‬
‫ללש‬
‫‪A‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪┴SAAAA‬‬
‫‪q3‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q2‬‬
‫‪┴SAAA‬‬
‫‪q2‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪┴SAA‬‬
‫‪q3‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪┴SA‬‬
‫‪q3‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪┴S‬‬
‫‪q3‬‬
‫שלוף ‪A‬‬
‫‪A‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪(q4‬מקבל)‬
‫שלוף ‪S‬‬
‫‪S‬‬
‫‪b‬‬
‫‪q3‬‬
‫┴‬
‫© כל הזכויות שמורות‬
‫פעולה‬
‫‪103‬‬
‫אוטומט מחסנית‬
‫מצב‬
‫מקרים בהם מספר ה ‪ a‬גדול או קטן ממספר ה ‪b‬ים בקבוע‪.‬‬
‫‪L=anbn+1 n0‬‬
‫דחוף ‪a┴ | SA‬‬
‫דחוף ‪aA | A‬‬
‫פתרון א‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bA| A‬‬
‫שלוף ‪bS|S‬‬
‫ללש‬
‫|‬
‫המילה הקצרה ביותר ‪b‬‬
‫הרעיון‪ :‬על ה ‪ a‬הראשון נדחוף ‪SA‬‬
‫על כל ‪ a‬נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫┴‪b‬‬
‫פתרון ב‬
‫דחוף ‪a┴ | S‬‬
‫דחוף ‪aS | A‬‬
‫דחוף ‪aA | A‬‬
‫שלוף ‪bA | A‬‬
‫ללש |‪bS‬‬
‫ללש |‪bA‬‬
‫שלוף ‪bS|S‬‬
‫המילה הקצרה ביותר ‪b‬‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪)A‬ראשון ‪(S‬‬
‫עבור ה ‪ b‬הראשון לא נבצע מאומה‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫ללש |┴‪b‬‬
‫פתרון ג‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪a┴ | A‬‬
‫דחוף ‪aA | A‬‬
‫שלוף‪bA| A‬‬
‫ללש |┴‪b‬‬
‫© כל הזכויות שמורות‬
‫המילה הקצרה ביותר ‪b‬‬
‫אין צורך ב ‪S‬‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫עבור ‪ b‬ומחסנית ריקה נעבור למקבל‬
‫ללש |┴‪b‬‬
‫‪104‬‬
‫אוטומט מחסנית‬
‫‪L=an+1bn n0‬‬
‫דחוף ‪aS | A‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪a┴|S‬‬
‫ללש |┴‪a‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bS|S‬‬
‫שלוף ‪bS|S‬‬
‫המילה הקצרה ביותר ‪a‬‬
‫הרעיון‪:‬‬
‫על ה ‪ a‬הראשונה לא נבצע מאומה‬
‫על כל ‪ a‬נוסף נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫‪L=an-1bn-2 n0‬‬
‫למרות שרשום ‪ n≤0‬הרי רק עבור ‪ n‬שווה ‪ 2‬מתקבל משהו "הגיוני" ‪ .‬למעשה ה ‪ n‬הראשון המעשי הינו‬
‫‪ n‬שווה ל ‪ . 2‬הפתרון הינו למעשה כמו התרגיל הקודם‪.‬‬
‫אוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪105‬‬
‫מקרים בהם יש שילוב של כפולה וקבוע‬
‫‪L=an+1b3n n0‬‬
‫דחוף ‪aA | AAA‬‬
‫ללש |┴‪a‬‬
‫דחוף ‪a┴ | SAA‬‬
‫שלוף ‪bA | A‬‬
‫נציב את ה ‪ n‬הנמוך ביותר ונקבל את‬
‫המילה ‪ a‬מכאן נובע‬
‫המילה הקצרה ביותר ‪a‬‬
‫הרעיון‪:‬‬
‫על ה ‪ a‬הראשונה לא נבצע מאומה‬
‫על כל ‪ a‬נוסף נדחוף ‪AAA‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫שלוף ‪bS|S‬‬
‫שלוף ‪bA | A‬‬
‫‪L=an+1b3n-2 n0‬‬
‫עבור ‪: n=0‬‬
‫נקבל ‪b-2‬‬
‫אסור‪.‬‬
‫עבור ‪ : n=1‬נקבל ‪) . aab‬שהיא גם המילה הקצרה ביותר( ה ‪ n‬הראשון המתקבל הוא "החריג"‪ .‬עבורו אין‬
‫מבצעים מאומה‪) .‬כלומר על ה ‪ aa‬הראשונים ועל ה ‪ b‬האחרון אין לבצע מאומה‪.‬‬
‫"פנים" האוטומט חייב לטפל ביחס החזקות שהוא ‪ 1‬ל ‪) 3‬מורידים את הקבועים ‪ +1‬ו ‪ -2‬ומקבלים ‪(anb3n‬‬
‫מה שמסומן באדום הינו הטיפול ב ‪aab‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪a┴ | AAA‬‬
‫דחוף ‪aA | AAA‬‬
‫שלוף ‪bA|A‬‬
‫ללש |┴‪b‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪b‬‬
‫© כל הזכויות שמורות‬
‫‪106‬‬
‫אוטומט מחסנית‬
‫‪L=an+1b3n-1 n0‬‬
‫נציב את ה ‪ n‬הנמוך ביותר שהוא ‪ 1‬כי‬
‫עבור ‪ 0‬נקבל מספר שלילי‪.‬‬
‫ונקבל את המילה ‪ aabb‬מכאן נובע‬
‫המילה הקצרה ביותר ‪aabb‬‬
‫הרעיון‪:‬‬
‫על ‪ 2‬ה ‪ a‬הראשונות לא נבצע מאומה‬
‫על כל ‪ a‬נוסף נדחוף ‪AAA‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫על ‪ 2‬ה ‪ b‬האחרונים )כשהמחסנית ריקה‬
‫לא נבצע מאומה‬
‫השלם את פונקצית המעברים של‬
‫אוטמט המחסנית המבוקש )התיבות המקוקוות(‬
‫דחוף ‪a┴ | AAA‬‬
‫דחוף ‪aA | AAA‬‬
‫שלוף ‪bA|A‬‬
‫ללש |┴‪b‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪b‬‬
‫‪L=a2n+1b3n-1 n0‬‬
‫נציב את ה ‪ n‬הנמוך ביותר שהוא ‪ 1‬כי‬
‫עבור ‪ 0‬נקבל מספר שלילי‪.‬‬
‫ונקבל את המילה ‪ aaabb‬מכאן נובע‬
‫המילה הקצרה ביותר ‪aaabb‬‬
‫הרעיון‪:‬‬
‫על ‪ 3‬ה ‪ a‬הראשונות לא נבצע מאומה‬
‫על כל ‪ a 2‬נוספים נדחוף ‪AAA‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫על ‪ 2‬ה ‪ b‬האחרונים )כשהמחסנית ריקה‬
‫לא נבצע מאומה‬
‫שרטט את אוטמט המחסנית המבוקש‬
‫© כל הזכויות שמורות‬
‫‪107‬‬
‫אוטומט מחסנית‬
‫מקרים בהם נדרש להכניס יותר מאות אחת למחסנית‬
‫תרגיל ‪1‬‬
‫בנה אוטומט מחסנית המקבל את השפה הבאה מעל הא"ב }‪:{a,b,c‬‬
‫‪L= anbk ckdn k,n>0‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪bB |B‬‬
‫שלוף ‪cB |B‬‬
‫שלוף ‪dA |A‬‬
‫דחוף ‪bA |B‬‬
‫דחוף ‪bS |B‬‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪cB |B‬‬
‫שלוף ‪dA |A‬‬
‫שלוף‪dS| S‬‬
‫שלוף‪dS| S‬‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪A‬‬
‫על כל ‪ b‬נדחוף ‪B‬‬
‫על כל ‪ c‬נשלוף ‪B‬‬
‫על כל ‪ d‬נשלוף ‪A‬‬
‫ניתן לאחד את שני המצבים הראשונים‬
‫כמו שנעשה באוטומט הבא‬
‫כיצד נשנה את הפתרון לו השפה הינה‬
‫‪L= anbk+1 ckdn k,n>0‬‬
‫שלוף ‪dA |A‬‬
‫שלוף ‪cB |B‬‬
‫שלוף ‪dA |A‬‬
‫שלוף‪dS| S‬‬
‫דחוף ‪bS |B‬‬
‫דחוף ‪bB |B‬‬
‫דחוף ‪a┴ | S‬‬
‫דחוף ‪aA | A‬‬
‫שלוף ‪cB |B‬‬
‫ללש | ‪bS‬‬
‫ללש | ‪bA‬‬
‫שלוף‪dS| S‬‬
‫כלומר השינוי הינו שעל ה ‪ b‬הראשון לא נבצע מאומה‬
‫© כל הזכויות שמורות‬
‫‪108‬‬
‫אוטומט מחסנית‬
‫תרגיל ‪2‬‬
‫בנה אוטומט מחסנית המקבל את השפה הבאה מעל הא"ב }‪:{a,b,c‬‬
‫}‪L={(anbn) (azbz)…k time ckk>0‬‬
‫פתרון‬
‫דחוף ‪aA | A‬‬
‫שלוף ‪cC |C‬‬
‫שלוף ‪cS|S‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪cC|C‬‬
‫שלוף ‪bA| A‬‬
‫דחוף ‪aC|CA‬‬
‫דחוף ‪aS|CA‬‬
‫שלוף ‪cS|S‬‬
‫© כל הזכויות שמורות‬
‫דחוף ‪a┴ |SA‬‬
‫‪109‬‬
‫אוטומט מחסנית‬
‫תרגיל ‪3‬‬
‫מספר ה ‪ a‬ים שווה למספר ה ‪ b‬ים‬
‫בנה אוטומט מחסנית לשפה מעל }‪ {a,b‬כך שמספר ה ‪ a‬ים שווה למספר ה ‪ b‬ים‪).‬כולל המילה הריקה(‬
‫פתרון א‬
‫פתרון זה הינו במספר קטן של מצבים אך עם שימוש באותיות שונות בהכנסה‬
‫דחוף ‪bK | B‬‬
‫דחוף ‪aS | A‬‬
‫המילה הקצרה ביותר‬
‫הרעיון‪ :‬כל עוד מספר ה ‪a‬ים גדול‬
‫ממספר ה ‪b‬ים נדחוף ‪ A‬ונשלוף ‪B‬‬
‫כל עוד מספר ה ‪b‬ים גדול ממספר ה‬
‫‪a‬ים נדחוף ‪ B‬ונשלוף ‪A‬‬
‫שלוף ‪aB | B‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪bB | B‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪a┴ | S‬‬
‫דחוף ‪b┴ | K‬‬
‫שלוף ‪bS | S‬‬
‫שלוף‪aK | K‬‬
‫דחוף ‪aS | A‬‬
‫פתרון ב‬
‫פתרון נוסף תוך שימוש רק ב ‪ A‬ו ‪ S‬בהכנסה למחסנית‪.‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪aA | A‬‬
‫שלוף ‪bS | S‬‬
‫דחוף ‪a┴ | S‬‬
‫דחוף ‪b┴ | S‬‬
‫שלוף ‪aS | S‬‬
‫דחוף ‪bA | A‬‬
‫שלוף ‪aA | A‬‬
‫דחוף ‪bS | A‬‬
‫© כל הזכויות שמורות‬
‫‪110‬‬
‫אוטומט מחסנית‬
‫מקרים בהם יש לבצע הצבה עקב סימן מינוס בחזקה‬
‫‪n≥k≥0‬‬
‫רצוי להיפטר מסימן המינוס בחזקה‪ .‬נציב ‪ j=n-k‬נעביר אגף ונקבל גם ‪j+k=n‬‬
‫נציב ונקבל ‪aj+kbjck‬‬
‫מכאן הפתרון ברור והוא על כל ‪ a‬נדחוף על כל ‪ b‬נשלוף ועל כל ‪ c‬נשלוף‪.‬‬
‫© כל הזכויות שמורות‬
‫‪111‬‬
‫אוטומט מחסנית‬
‫‪L= anbn-kck‬‬
‫דף תרגילים מספר ‪-14‬בנית אוטומט מחסנית‬
‫תרגיל ‪1‬‬
‫בנה אוטומט מחסנית לשפות הבאות‬
‫‪L= anbk+1 ckdn‬‬
‫א‪ .‬כאשר‬
‫‪k,n≥0‬‬
‫ב‪ .‬כאשר‬
‫‪k>0,n≥0‬‬
‫ג‪ .‬כאשר‬
‫‪k≥0,n>0‬‬
‫תרגיל ‪2‬‬
‫בנה אוטומט מחסנית למילים מעל }‪ {a,b‬כך שמספר ה ‪ a‬ים גדול ב ‪ 1‬ממספר ה ‪ b‬ים‪.‬‬
‫תרגיל ‪3‬‬
‫בנה אוטומט מחסנית לשפה הבאה‬
‫‪L= a2n-1b3n‬‬
‫** תרגילים נוספים באוטומט מחסנית בדף תרגילים מספר ‪ 15‬בעמוד ‪ 127‬לערך‬
‫© כל הזכויות שמורות‬
‫‪112‬‬
‫אוטומט מחסנית‬
‫שילוב של אוטומט רגיל ואוטומט מחסנית‬
‫{ ‪L={ambnan |n,m >0‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫פתרון (מספר ה ‪ a‬בהתחלה לפחות אחד ואינו תלוי ולכן על כל ‪ a‬המחסנית תשאר ללא שינוי)‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫שלוף ‪aA|A‬‬
‫שלוף ‪aA|A‬‬
‫ללש |┴‪a‬‬
‫דחוף ‪b┴| S‬‬
‫ללש |┴‪a‬‬
‫שלוף ‪aS|S‬‬
‫שלוף ‪aS|S‬‬
‫{‪ m+n‬זוגי ‪L={ambnan |n,m >0‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫פתרון (מספר ה ‪ a‬בהתחלה לפחות אחד ואינו תלוי ולכן על כל ‪ a‬המחסנית תשאר ללא שינוי אך‬
‫כיוון שיש לשמור על זוגיות ה ‪ a‬בהתחלה תזוז בין שני מצבים)‬
‫להלן האוטומט‬
‫ללש |┴‪a‬‬
‫ללש |┴‪a‬‬
‫שלוף ‪aA|A‬‬
‫דחוף ‪b┴| S‬‬
‫שלוף ‪aA|A‬‬
‫שלוף ‪aS|S‬‬
‫© כל הזכויות שמורות‬
‫דחוף ‪b┴| S‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫‪113‬‬
‫אוטומט מחסנית‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫}‪L={ck b2n (ab)n ck%2 | k>0, n>=0‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫שימו לב שבפתרון רשמתי ‪ ab‬ליד חלק מהקשתות‪ ,‬לפי תוכנית הלימודים יש לפרק זאת‪.‬‬
‫ללש |┴‪c‬‬
‫ללש |┴‪c‬‬
‫ללש |┴‪c‬‬
‫דחוף ‪b┴|S‬‬
‫דחוף ‪b┴|S‬‬
‫ללש |‪bS‬‬
‫דחוף ‪bS|A‬‬
‫ללש |‪bS‬‬
‫דחוף ‪bS|A‬‬
‫ללש |‪bA‬‬
‫דחוף ‪bA|A‬‬
‫ללש |‪bA‬‬
‫דחוף ‪bA|A‬‬
‫שלוף ‪ab,A|A‬‬
‫שלוף ‪ab,A|A‬‬
‫שלוף ‪ab,S|S‬‬
‫שלוף ‪ab,S|S‬‬
‫שלוף ‪ab,A|A‬‬
‫שלוף ‪ab,A|A‬‬
‫ללש |┴‪c‬‬
‫© כל הזכויות שמורות‬
‫‪114‬‬
‫אוטומט מחסנית‬
‫מקרים בהם אין צורך בהכנסת ‪S‬‬
‫בתוכנית הלימודים מקובל להכניס ‪ S‬על האות הראשונה והסברנו זאת בתחילת הפרק שכאשר אנו מוציאים‬
‫את ‪ S‬אנו יודעים שהמחסנית התרוקנה‪ .‬אך לעיתים אין צורך בהכנסת ‪ .S‬להלן מספר דוגמאות"‪.‬‬
‫‪k>n0‬‬
‫‪L= anbk‬‬
‫דחוף ‪aA | A‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪a┴ | A‬‬
‫שלוף ‪bA| A‬‬
‫המילה הקצרה ביותר ‪b‬‬
‫אין צורך ב ‪S‬‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫עבור ה ‪ b‬הראשונה כשה מחסנית ריקה‬
‫עוברים למצב מקבל‬
‫ללש |┴‪b‬‬
‫ללש |┴‪b‬‬
‫ללש |┴‪b‬‬
‫‪n>k0‬‬
‫שלוף|‪bA‬‬
‫שלוף ‪bA| A‬‬
‫ללש |┴ ‪a‬‬
‫המילה הקצרה ביותר ‪a‬‬
‫אין צורך ב ‪S‬‬
‫הרעיון‪ :‬על ה ‪ a‬הראשונה ללש‬
‫על כל ‪ a‬נדחוף ‪A‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫‪a ┴| ┴A‬‬
‫‪a A| AA‬‬
‫© כל הזכויות שמורות‬
‫‪115‬‬
‫אוטומט מחסנית‬
‫‪L= anbk‬‬
‫‪n0‬‬
‫‪L= a2nb3n+1‬‬
‫פתרון א‬
‫דחוף ‪a ┴| AAA‬‬
‫שלוף ‪bA|A‬‬
‫דחוף‪a A| AAA‬‬
‫שלוף |‪bA‬‬
‫ללש |‪a A‬‬
‫ללש |┴‪b‬‬
‫המילה הקצרה ביותר ‪b:‬‬
‫אין צורך ב ‪S‬‬
‫הרעיון‪ :‬על כל ‪ a 2‬נדחוף ‪)AAA‬על‬
‫הראשון דוחפים ועל השני אין מבצעים‬
‫דבר(‪.‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫על ה ‪ b‬האחרון לל"ש‬
‫ללש |┴‪b‬‬
‫פתרון ב‬
‫המילה הקצרה ביותר ‪b:‬‬
‫אין צורך ב ‪S‬‬
‫הרעיון‪ :‬על כל ‪ a 2‬נדחוף ‪) A‬על הראשון‬
‫דוחפים ועל השני אין מבצעים דבר(‪.‬‬
‫על כל שלושה ‪ b‬נשלוף ‪A‬‬
‫על ה ‪ b‬האחרון לל"ש‬
‫┴‪a ┴| A‬‬
‫שלוף ‪bA| a‬‬
‫ללש |┴‪b‬‬
‫ללש |‪bA‬‬
‫‪a A| AA‬‬
‫ללש |‪bA‬‬
‫ללש |┴ ‪a‬‬
‫ללש |‪a A‬‬
‫ללש |‪bA‬‬
‫ללש |┴‪b‬‬
‫אוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪116‬‬
‫‪L= a2n+1bn+2 n0‬‬
‫שלוף ‪bA| a‬‬
‫ללש |┴‪b‬‬
‫שלוף ‪bA| a‬‬
‫‪aA| AA‬‬
‫┴‪a┴| A‬‬
‫ללש |┴‪a‬‬
‫ללש |‪aA‬‬
‫ללש |┴‪b‬‬
‫ללש |┴‪b‬‬
‫© כל הזכויות שמורות‬
‫ללש |┴ ‪a‬‬
‫‪117‬‬
‫המילה הקצרה ביותר ‪bb:‬‬
‫אין צורך ב ‪S‬‬
‫הרעיון‪ :‬על כל ‪ a 2‬נדחוף ‪ A‬ועל כל ‪b‬‬
‫נשלוף‪ .‬על ה ‪ b‬האחרון ללש‪.‬‬
‫אוטומט מחסנית‬
‫תרגילים שונים (רובם פתורים)‬
‫שלוף ‪bA | A‬‬
‫‪*>0‬‬
‫*)‪L=( a2nbn‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bS|S‬‬
‫ללש | ‪aA‬‬
‫שלוף ‪bS|S‬‬
‫דחוף ‪a┴ | S‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪a┴ | S‬‬
‫כיצד יראה הפתרון לו ‪* ≤1‬‬
‫המילה הקצרה ביותר ‪ac:‬‬
‫‪L=an+k‬‬
‫ועל‪bn‬‬
‫נדחוף‪ckAn‬‬
‫‪0 k a> 0‬‬
‫כל ‪b‬‬
‫הרעיון‪ :‬על כל‬
‫נשלוף ועל כל ‪ c‬נשלוף‪.‬‬
‫מקרה קיצון‪ n :‬שווה לאפס‬
‫שלוף ‪cA | A‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪aS | A‬‬
‫שלוף ‪cA | A‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪cA | A‬‬
‫שלוף‪cS| S‬‬
‫© כל הזכויות שמורות‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪bA | A‬‬
‫שלוף‪cS| S‬‬
‫‪118‬‬
‫אוטומט מחסנית‬
‫‪L=anbn+kck n0 k>0‬‬
‫‪anbn bkck‬‬
‫►►►‬
‫‪anbn+kck‬‬
‫הרעיון ‪ :‬על כל ‪ a‬נדחוף‪ ,‬על כל ‪ b‬נשלוף עד שהמחסנית מתרוקנת‪ .‬כעת על כל ‪ b‬נדחוף ועל כל ‪ c‬נשלוף‪.‬‬
‫מקרה קיצון‪ n :‬שווה לאפס כלומר אין ‪ a‬במילה‪.‬‬
‫דחוף ‪b┴ |S‬‬
‫דחוף ‪aA | A‬‬
‫שלוף ‪ cA | A‬דחוף ‪B┴ | S‬‬
‫שלוף ‪cA | A‬‬
‫שלוף‪cS | S‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪B┴ | S‬‬
‫דחוף ‪a┴ | A‬‬
‫המילה הקצרה ביותר ‪bc:‬‬
‫הרעיון‪ :‬על כל ‪ a‬נדחוף ‪ A‬ועל כל ‪ b‬נשלוף‬
‫על ‪ b‬כשהמחסנית ריקה נדחוף ועל כל ‪c‬‬
‫נשלוף‬
‫שלוף ‪bA | A‬‬
‫שלוף‪cS | S‬‬
‫‪n,K0‬‬
‫‪L=a2n-kbncn-k+1‬‬
‫‪n+n-k n n-k+1‬‬
‫‪bc‬‬
‫‪bncn-k+1‬‬
‫‪ L=a‬ומכאן נובע הרעיון לפיתרון המופיע בהמשך‪.‬‬
‫‪n+n-k‬‬
‫‪ L=a‬נציב ‪n-k=x‬‬
‫ונקבל ‪L=an+x bncx+1=ax+n bncxc‬‬
‫הרעיון ‪ :‬על כל ‪ a‬נדחוף‪ ,‬על כל ‪ b‬נשלוף‪ ,‬על כל ‪ c‬נשלוף‪ .‬לבסוף ‪ c‬נוספת‪.‬‬
‫מקרה קיצון‪ n :‬שווה לאפס כלומר אין ‪ b‬במילה‪.‬‬
‫שלוף ‪cA | A‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪cA|A‬‬
‫ללש |┴‪c‬‬
‫דחוף ‪aA|A‬‬
‫שלוף ‪bA|A‬‬
‫דחוף ‪a┴|A‬‬
‫שלוף ‪cA|A‬‬
‫ללש |┴‪c‬‬
‫© כל הזכויות שמורות‬
‫‪119‬‬
‫אוטומט מחסנית‬
‫‪n>m0‬‬
‫‪L= a2n+1bn-mam+1‬‬
‫א‪ .‬מהי המילה הקצרה ביותר‪.‬‬
‫ב‪ .‬מהי המילה הקצרה ביותר לו התנאי היה ‪n>=m>=0‬‬
‫פתרון‬
‫תחילה נפטר מפעולת החיסור כיוון שמופיע ‪ n-m‬נבצע הצבה‬
‫כמו כן ‪ m‬יכול להיות ‪ 0‬ומהתנאי ‪ n>m‬נובע ש ‪ n‬לפחות ‪1‬‬
‫‪k=n-m  k+m=n‬‬
‫נציב ונקבל‬
‫‪= aa2k+2mbkam+1‬‬
‫‪= aa2ma2kbkama‬‬
‫‪L=a2(k+m)+1bkam+1‬‬
‫מכאן על ה ‪ a‬הראשון נכניס ‪ A‬בודד ‪ .‬כעת על כל ‪ a 2‬נכניס ‪ A‬למחסנית על כל ‪ b‬נוציא ועל כל ‪ a‬נוציא‪.‬‬
‫)אין צורך בהכנסת אותיות שונות(‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪aA | A‬‬
‫דחוף ‪aS | A‬‬
‫ללש | ‪aA‬‬
‫שלוף ‪aS |S‬‬
‫שלוף ‪aA | A‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪a┴ |S‬‬
‫שלוף ‪aS |S‬‬
‫ב‪ .‬המילה הקצרה ביותר ‪aaaba‬‬
‫ג‪ .‬המילה הקצרה ביותר ‪aa‬‬
‫© כל הזכויות שמורות‬
‫‪120‬‬
‫אוטומט מחסנית‬
‫‪n>m0‬‬
‫‪L= an+1bn-ma2m+1‬‬
‫א‪ .‬מהי המילה הקצרה ביותר‪.‬‬
‫ב‪ .‬מהי המילה הקצרה ביותר לו התנאי היה ‪n>=m>=0‬‬
‫ג‪ .‬בנה אוטומט מחסנית‪.‬‬
‫פתרון‬
‫א‪ .‬המילה הקצרה ביותר ‪aaaba‬‬
‫ב‪ .‬המילה הקצרה ביותר ‪aa‬‬
‫ג‪.‬‬
‫תחילה נפטר מפעולת החיסור כיוון שמופיע ‪ n-m‬נבצע הצבה‬
‫‪k=n-m  k+m=n‬‬
‫כמו כן ‪ m‬יכול להיות ‪ 0‬נובע ש ‪ n‬לפחות ‪1‬‬
‫נציב ונקבל‬
‫‪k+m k 2m+1‬‬
‫‪m k k 2m+1‬‬
‫‪ba‬‬
‫‪= aa a b a‬‬
‫‪= aa‬‬
‫‪k+m+1 k 2m+1‬‬
‫‪L=a‬‬
‫‪ba‬‬
‫‪m>=0 , k>0‬‬
‫דחוף ‪aA | A‬‬
‫דחוף ‪aS | A‬‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪aA | A‬‬
‫שלוף ‪aS | S‬‬
‫ללש‬
‫|‬
‫‪aA‬‬
‫שלוף ‪aA|A‬‬
‫שלוף ‪bA | A‬‬
‫א‪ .‬המילה הקצרה ביותר ‪aaaba‬‬
‫ב‪ .‬המילה הקצרה ביותר ‪aa‬‬
‫© כל הזכויות שמורות‬
‫‪121‬‬
‫אוטומט מחסנית‬
‫‪n>m0‬‬
‫‪L= a2n+1bn-mam-1‬‬
‫תחילה נפטר מפעולת החיסור כיוון שמופיע ‪ n-m‬נבצע הצבה‬
‫‪k=n-m  k+m=n‬‬
‫כמו כן ‪ m‬חייב להיות לפחות ‪ 1‬נובע שגם ‪ n‬לפחות ‪2‬‬
‫נציב ונקבל‬
‫‪= aa2ma2kbkam-1 k>0 m0‬‬
‫‪= aa2k+2mbkam-1‬‬
‫‪L=a2(k+m)+1bkam-1‬‬
‫המילה הקצרה ביותר עבור ‪ m=1 n=2‬הינה ‪aaaaab‬‬
‫השלם את האוטומט‬
‫‪L=(L1)K‬‬
‫מקבלת את המילים מעל }‪ {a,b‬זוגי‪n,k≥0 n‬‬
‫‪L1=anbanb‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪. L1‬‬
‫פתרון‬
‫ללש |┴‪b‬‬
‫ללש |‪bA‬‬
‫שלוף‪aA| A‬‬
‫דחוף‪aA|A‬‬
‫דחוף‪a┴|A‬‬
‫דחוף‪aA|A‬‬
‫ללש |┴‪b‬‬
‫תרגיל‬
‫בנה אוטומט מחסנית לשפה ‪L‬‬
‫‪ n‬זוגי‬
‫© כל הזכויות שמורות‬
‫‪n,k≥0‬‬
‫‪122‬‬
‫‪L=(L1)K‬‬
‫‪L1=banban‬‬
‫אוטומט מחסנית‬
‫תרגיל‬
‫בנה אוטומט מחסנית המקבל את השפה הבאה מעל הא"ב }‪:{a,b,c,d‬‬
‫{ ‪L={anbn+m+kcmdkn,m,k≥0‬‬
‫‪anbn+m+kcmdk == anbn bm+kcmdk‬‬
‫פתרון‬
‫על כל ‪ a‬נדחוף‪ ,‬על כל ‪ b‬נשלוף‪ ,‬כאשר המחסנית מתרוקנת אזי על כל ‪ b‬נדחוף נדחוף על כל ‪ c‬נשלוף ועל כל ‪d‬‬
‫דחוף ‪aS | A‬‬
‫דחוף ‪aA | A‬‬
‫נשלוף‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪a┴|S‬‬
‫שלוף ‪bA| A‬‬
‫שלוף ‪dS|S‬‬
‫שלוף ‪ cS|S‬שלוף ‪cS|S‬‬
‫שלוף ‪ dS|S‬שלוף ‪dS|S‬‬
‫שלוף ‪dA|A‬‬
‫שלוף ‪dA|A‬‬
‫שלוף ‪bS| S‬‬
‫דחוף ‪b┴|S‬‬
‫שלוף ‪cA|A‬‬
‫שלוף ‪cA|A‬‬
‫שלוף ‪bS| S‬‬
‫דחוף ‪bS | A‬‬
‫דחוף ‪bA | A‬‬
‫}‪L={anbmckn,m,k>0,k≥n+m‬‬
‫בנה אוטומט מחסנית המקבל את השפה מעל הא"ב }‪{a,b,c‬הרשומה לעיל‪.‬‬
‫דחוף ‪aA| A‬‬
‫ללש|┴‪c‬‬
‫דחוף ‪bA| A‬‬
‫שלוף ‪cA|A‬‬
‫שלוף ‪cS|S‬‬
‫דחוף ‪A┴| S‬‬
‫שלוף ‪cA|A‬‬
‫דחוף ‪bA| A‬‬
‫© כל הזכויות שמורות‬
‫‪123‬‬
‫אוטומט מחסנית‬
‫}‪L={anbkn, k≥0, k=n/2‬‬
‫בנה אוטומט מחסנית המקבל את השפה ‪ L‬מעל הא"ב }‪.{a,b‬‬
‫הערה ‪ 5/2 :‬שווה ‪ 6/2 . 2‬שווה ‪.3‬‬
‫שלוף ‪bA|A‬‬
‫פתרון‬
‫הרעיון‪ :‬על כל ‪ a 2‬נדחוף ‪. A‬‬
‫)על ה ‪ a‬השניה(‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫שלוף ‪bS|S‬‬
‫שלוף ‪bA|A‬‬
‫שלוף ‪bA|A‬‬
‫ללש|‪aS‬‬
‫ללש|‪aA‬‬
‫ללש|┴‪a‬‬
‫דחוף ‪a┴|S‬‬
‫דחוף ‪aS|A‬‬
‫דחוף ‪aA|A‬‬
‫שלוף ‪bS|S‬‬
‫שלוף ‪bS|S‬‬
‫מחרוזת פנינים‬
‫בבית חרושת מייצרים מחרוזות המורכבות מפנינים גדולות וקטנות‪ ,‬ובכל מחרוזת מספר הפנינים הקטנות‬
‫שווה למספר הפנינים הגדולות‪ .‬המחרוזת צריכה להתחיל ברצף של פנינים קטנות ולהסתיים ברצף של פנינים‬
‫קטנות ובמרכזה רצף של פנינים גדולות‪ .‬מחרוזת שאינה עומדת בתנאים אלו אינה עוברת את בדיקת האיכות‪.‬‬
‫א‪.‬‬
‫הגדר שפה שמתאימה לכל המחרוזות העומדות בבדיקת האיכות‪.‬‬
‫ב‪.‬‬
‫בנה אוטומט מחסנית הקובע אם מחרוזת נתונה עוברת את בדיקת האיכות‪.‬‬
‫פתרון‬
‫א‪.‬‬
‫השפה היא } ‪ {anbn+mamn, m>0‬מעל הא"ב }‪.{a,b‬‬
‫דחוף ‪aA|A‬‬
‫דחוף ‪bS|A‬‬
‫דחוף ‪bA|A‬‬
‫ב‪.‬‬
‫שלוף ‪aA|A‬‬
‫שלוף ‪bA|A‬‬
‫דחוף ‪a┴|A‬‬
‫שלוף ‪aA|A‬‬
‫דחוף ‪b┴|S‬‬
‫שלוף ‪aS|S‬‬
‫© כל הזכויות שמורות‬
‫שלוף ‪bA|A‬‬
‫שלוף ‪aS|S‬‬
‫‪124‬‬
‫אוטומט מחסנית‬
‫תרגיל (דורון זוהר) } ‪L={ (yx)nzk(xy)jn,k≥0 n<j k even‬‬
‫בנה אוטומט מחסנית עבור השפה הבאה מעל הא"ב }‪:{x,y,z‬‬
‫פתרון‬
‫ללש | ‪yA‬‬
‫ללש | ┴‪y‬‬
‫‪q5‬‬
‫שלוף ‪xA|A‬‬
‫‪q4‬‬
‫‪q1‬‬
‫דחוף ‪yA | A‬‬
‫דחוף ‪y┴ | A‬‬
‫שלוף ‪xA|A‬‬
‫ללש|┴‪x‬‬
‫ללש |‬
‫┴‪x‬‬
‫ללש |‬
‫┴‪y‬‬
‫שלוף ‪xA|A‬‬
‫‪q6‬‬
‫‪q7‬‬
‫ללש|‪xA‬‬
‫ללש|┴‪z‬‬
‫ללש|‪zA‬‬
‫‪q3‬‬
‫‪q2‬‬
‫ללש|┴‪z‬‬
‫ללש|‪zA‬‬
‫ללש|┴‪x‬‬
‫‪q0‬‬
‫ללש |‬
‫ללש|┴‪z‬‬
‫ללש|‪zA‬‬
‫┴‪x‬‬
‫אוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪125‬‬
‫אוטומט מחסנית לא דטרמיניסטי‬
‫המודל של אוטומט מחסנית הינו לא דטרמיניסטי‪ .‬למעשה אוטומט מחסנית דטרמיניסטי הינו‬
‫מקרה פרטי של אוטומט מחסנית‪.‬‬
‫כוחו של אוטומט מחסנית לא דטרמיניסטי גדול יותר מכוחו של אוטומט מחסנית דטרמיניסטי‪.‬‬
‫תרגיל ‪1‬‬
‫בנה אוטומט המקבל את השפה הבאה‪:‬‬
‫}‪ k=m n,k,m>0‬או ‪L={anbkcm n=k‬‬
‫פתרון‬
‫הרעיון ‪ :‬נחלק לשני מקרים‬
‫מקרה אחד כאשר מספר ה ‪a‬ים שווה למספר ה ‪b‬ים שאז על כל ‪ a‬נדחוף ‪ A‬למחסנית ועל כל ‪ b‬נשלוף‪.‬‬
‫עבור ה ‪c‬ים לא בצע מאומה‪.‬‬
‫מקרה שני כאשר מספר ה ‪b‬ים שווה למספר ה ‪c‬ים שאז על כל ‪ a‬לא נבצע דבר על כל ‪ b‬נדחוף ‪ A‬למחסנית‬
‫ועל כל ‪ c‬נשלוף‪.‬‬
‫האי דטרמיניזם מתבטא )בתו הראשון( שכאשר יש לנו ‪ a‬והמחסנית ריקה ניתן לבחור בשתי אפשרויות ‪:‬‬
‫דחוף ‪ A‬או לל"ש‪.‬‬
‫ללש |┴‪c‬‬
‫שלוף ‪bA |A‬‬
‫ללש |┴‪c‬‬
‫דחוף ‪aA| A‬‬
‫שלוף ‪bA |A‬‬
‫דחוף ‪a┴| A‬‬
‫שלוף ‪cS|S‬‬
‫שלוף ‪cS|S‬‬
‫שלוף ‪cA|A‬‬
‫שלוף ‪cA|A‬‬
‫© כל הזכויות שמורות‬
‫ללש |┴‪a‬‬
‫דחוף ‪b┴|S‬‬
‫דחוף ‪bS | A‬‬
‫דחוף ‪bA | A‬‬
‫‪126‬‬
‫ללש |┴‪a‬‬
‫אוטומט מחסנית לא דטרמיניסטי‬
‫תרגיל ‪2‬‬
‫בנה אוטומט המקבל את השפה הבאה‪:‬‬
‫מילה מעל }‪{a,b,c‬שאורכה זוגי והינה פלינדרום כולל המילה הריקה‪.‬‬
‫פתרון‬
‫* פירושו לא משנה מה יש בראש המחסנית‪ .‬הפתרון אינו דטרמיניסטי‪.‬‬
‫הרעיון‪ :‬על כל אות דוחפים למחסנית את האות הגדולה המתאימה לה ללא תלות במה שיש ברשא המחסנית‪.‬‬
‫מרגע מסוים מתחילים להוציא אך פה אם יש בקלט ‪ a‬אזי חייב להיות ‪ A‬בראש המחסנית שפירושו שהיה ‪a‬‬
‫בהתאמה )בחלק השמאלי של המילה(‪.‬‬
‫שלוף ‪a X |X‬‬
‫שלוף ‪b Y |Y‬‬
‫שלוף ‪c Z |Z‬‬
‫שלוף ‪aA |A‬‬
‫שלוף ‪bB |B‬‬
‫שלוף‪cC |C‬‬
‫שלוף ‪aA |A‬‬
‫שלוף ‪bB |B‬‬
‫שלוף‪cC |C‬‬
‫דחוף ‪a* |A‬‬
‫דחוף ‪b* |B‬‬
‫דחוף‪c* |C‬‬
‫דחוף ‪a ┴ |X‬‬
‫דחוף ‪b ┴ |Y‬‬
‫דחוף‪c ┴ |Z‬‬
‫שלוף ‪a X |X‬‬
‫שלוף ‪b Y |Y‬‬
‫שלוף ‪c Z |Z‬‬
‫בנה אוטומט המקבל את השפה הבאה‪:‬‬
‫מילה מעל }‪ {a,b,c‬שהינה פלינדרום כולל המילה הריקה‪.‬‬
‫© כל הזכויות שמורות‬
‫‪127‬‬
‫אוטומט מחסנית לא דטרמיניסטי‬
‫תרגיל ‪3‬‬
‫בנה אוטומט המקבל את השפה הבאה‪:‬‬
‫}‪n,k >0‬‬
‫‪3n ≥k ≥ n‬‬
‫‪L={anbk‬‬
‫פתרון‬
‫הרעיון ‪ :‬על כל ‪ a‬נדחוף ‪ A‬או ‪ AA‬או ‪ AAA‬על כל ‪ b‬נשליך ‪.A‬‬
‫שלוף ‪bA | A‬‬
‫דחוף ‪aS |A‬‬
‫דחוף ‪aS | AA‬‬
‫דחוף ‪aS | AAA‬‬
‫דחוף ‪aA |A‬‬
‫דחוף ‪aA | AA‬‬
‫דחוף ‪aA | AAA‬‬
‫דחוף ‪a┴ |S‬‬
‫דחוף ‪a┴ | SA‬‬
‫דחוף ‪a┴| SAA‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bS | S‬‬
‫שלוף ‪bS | S‬‬
‫© כל הזכויות שמורות‬
‫‪128‬‬
‫אוטומט מחסנית לא דטרמיניסטי‬
‫מספר כללים לאוטומט מחסנית ‪-‬חזקות‬
‫‪am‬‬
‫לפי חוקי החזקות מתקיים ולכן הרעיון הכללי הוא להגיע‬
‫‪n‬‬
‫‪am+n == am an‬‬
‫‪== a‬‬
‫‪am*n == (am) n== (an) m‬‬
‫למצב שיש לנו חזקות שוות או כפולות של חזקות‬
‫‪a0 ==ε‬‬
‫חזקת אפס נותנת את מילה הריקה‬
‫דוגמאות‬
‫‪anb2n+1 = anb2n+1= an b2n b = (a)n (b)2n b‬‬
‫‪‬‬
‫על כל ‪ a‬נכניס למחסנית ‪ A‬ועל כל שני ‪ b‬נוציא )על ה ‪ b‬השנייה( כשהמחסנית ריקה צריך ‪b‬‬
‫או‬
‫על כל ‪ a‬נכניס למחסנית ‪AA‬‬
‫אם הפירוק הינו‬
‫‪2n‬‬
‫ועל כל ‪ b‬נוציא כשהמחסנית ריקה צריך ‪b‬‬
‫‪n‬‬
‫)‪ (a) b (b‬אזי‬
‫על כל ‪ a‬נכניס למחסנית ‪ A‬על ה ‪ b‬הראשונה לא נעשה כלום )לל"ש( ועל כל שני ‪ b‬נוציא )על ה ‪ b‬השנייה(‬
‫או‬
‫על כל ‪ a‬נכניס למחסנית ‪ AA‬על ה ‪ b‬הראשונה לא נעשה כלום )לל"ש( ועל כל ‪ b‬נוציא כשהמחסנית‬
‫ריקה צריך ‪b‬‬
‫‪anbn-1 = aan-1bn-1= a(a)n-1(b)n-1‬‬
‫‪‬‬
‫הערה‪ :‬נובע ‪ n>0‬גם אם נאמר ‪.n>=0‬‬
‫על כל ‪ a‬נכניס למחסנית ועל כל ‪ b‬נוציא )הסוגריים הינם להדגשה בלבד(‬
‫‪k=n+m‬‬
‫‪anbkcm‬‬
‫‪‬‬
‫‪= anbn+mcm= anbnbmcm‬‬
‫על כל ‪ a‬נכניס למחסנית ועל כל ‪ b‬נוציא כאשר המחסנית ריקה והאות בקלט ‪ b‬נתחיל שוב להכניס‬
‫למחסנית ובהמשך על כל ‪ c‬להוציא‪.‬‬
‫‪anbn-mcm‬‬
‫נציב =‪ k=n-m‬נובע גם ש ‪n=m+k‬‬
‫‪‬‬
‫נציב במקור ונקבל‬
‫‪= am+kbkcm= amakbkcm‬‬
‫על כל ‪ a‬נכניס למחסנית ועל כל ‪ b‬נוציא ועל כל ‪ c‬נוציא‪.‬‬
‫© כל הזכויות שמורות‬
‫‪129‬‬
‫אוטומט מחסנית‬
‫אוטומט מחסנית‬-15 ‫דף תרגילים מספר‬
1. L=an bk n>k k0
2. L=an bk nk n,k0
3. L=anb2w 2w>n
4. L=anbw
w > 2 ‫ ב‬n ‫שארית חלוקת‬
5. L=an
n%3=1
6. L=anbw n % 3 = 1 , w % 2 = 0
(L=a3n+1b2w n , w 0 ‫)שקול ל‬
7. L=anbw
w = n%3
8. L=anbw
w % 3 = n% 3
9. L=a2nb3n+1 n0
a ┴| A┴
a ┴| ‫ללש‬
a A| AA
bA| ‫ללש‬
a A| ‫ללש‬
bA| ‫ללש‬
bA| ‫ללש‬
bA| ‫ללש‬
b┴| ‫ללש‬
b┴| ‫ללש‬
10.
L=a5n-1b3n+2 n>0
11.
L= ( anbkcmak+n+1 | n,k,m  1 )
12.
L= anbmc2(m-n) | mn n>0
13.
L= a3n-1b2mcm+2dn+1 n>0 m0
14.
L=anbmakbl n,m,k,l0 n+k=m+l
r
s s
t t
w w
a a b ba a b b
‫ניתן לפרק את הביטוי ל‬
r
‫אוטומט מחסנית‬
130
‫© כל הזכויות שמורות‬
15.
L=anbmck
16.
aibj i>j0
n,m,k >0 , n+m
== ak aj bj k>0 j0
‫ אי זוגי‬, n+m > k
a ┴| ‫ללש‬
aA
aA| AA
a ┴| ‫ללש‬
| ‫חוף‬
e┴| ‫ללש‬
bA| e
‫אוטומט מחסנית‬-16 ‫דף תרגילים מספר‬
‫עבור כל תרגיל רשום את הרעיון בלבד‬
1. a3n+8bn+2 n0
2. a2n+3bn+1 n0
3. an-1b2n-1 n0
4. a3n-2bn+1 n>0
5. a2n-1b3m+1cm+3dn+1 n0
6. aibj ij j0
7. anb2n+1 n0
8. a3n+8bn+2 n0
9. a2n+3bn+1 n0
10. an-1b2n-1 n0
11. a3n-2bn+1 n>0
12. a2n-1b3m+1cm+3dn+1 n0
13. a2n+1bn+2 n0
aA| AA
a ┴| ‫ללש‬
a┴| ‫ללש‬
a┴| A┴
bA| Δ
aA| ‫ללש‬
b┴| ‫ללש‬
‫אוטומט מחסנית‬
bA| Δ
b┴| ‫ללש‬
b┴| ‫ללש‬
131
‫© כל הזכויות שמורות‬
‫דף תרגילים מספר ‪-17‬אסד ואוטומט מחסנית‬
‫‪.1‬‬
‫בנה אוטומט מחסנית שיקבל את השפה הבאה‬
‫‪.2‬‬
‫נתונה השפה הבאה ‪ { :‬זוגי )‪} an ck b2n+k | n>0, k>=0 , (2n+k‬‬
‫‪ambkcj m>=0 k>=2 m+k<j j % 2 = 0‬‬
‫בנה אוטומט מחסנית לשפה ‪.‬‬
‫‪.3‬‬
‫שרטט אוטומט סופי דטרמיניסטי המקבל את שפת כל המילים מעל האב' {‪} 0,1,2‬‬
‫המתחילות ב ‪ 0 -‬ומסתימות ב ‪ 2 -‬ולא מכילות את הרצף ‪ ,02‬וכן לא מתקיים שיש במילה שתי אותיות‬
‫זהות רצופות‪.‬‬
‫‪.4‬‬
‫בנה אוטומט מחסנית לכל אחת מהשפות הבאות‬
‫נתונה השפה הבאה ‪}a1+2n bk cn+k | n, k>=0{ :‬‬
‫נתונה השפה הבאה ‪ { :‬זוגי )‪} an ck b2n+k | n>0, k>=0 , (2n+k‬‬
‫לפניך השפה הבאה‪l={aibjck| i>=0, j>0 , j % 2=0, k= 1+ i % 2 } :‬‬
‫‪.5‬‬
‫א‪.‬‬
‫ב‪.‬‬
‫ג‪.‬‬
‫ד‪.‬‬
‫ה‪.‬‬
‫מהם הערכים האפשריים של הביטוי ‪_________________ ? i % 2‬‬
‫__________________‬
‫מהם הערכים האפשריים של ‪?k‬‬
‫מהי המילה הקצרה ביותר בשפה? ________________‬
‫תן ‪ 2‬דוגמאות שונות למילים בשפה‪___________________ ______________ :‬‬
‫ו‪ 2-‬דוגמאות למילים שאינן בשפה‪___________________ ______________ :‬‬
‫בנה אוטומט סופי דטרמיניסטי מעל } ‪ ∑ ={a,b,c‬המקבל את השפה הנ"ל‪.‬‬
‫‪ .5‬קוד סודי של כרטיס אשראי בנוי מ‪ 4 -‬תווים באופן הבא‪:‬‬
‫התו הראשון הוא אחת מהאותיות ‪.a,b,c‬‬
‫שני התווים הבאים הם שתיים מהספרות ‪.0-9‬‬
‫התו האחרון הוא אחת מהאותיות ‪ ,a,b,c‬אך שונה מהתו הראשון‪.‬‬
‫ו‪ .‬מה הא"ב של השפה? _____________________________‬
‫ז‪ .‬בנה אוטומט סופי דטרמיניסטי המקבל את כל המילים המהוות קוד כרטיס אשראי‪.‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪132‬‬
‫תרגיל ‪1‬‬
‫נתונים שני האוטומטים )סופיים דטרמיניסטים( הבאים מעל } ‪{ a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫ג‪.‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪start‬‬
‫בדוק עבור שני האוטומטים האם המילים הבאות מתקבלות ‪:‬‬
‫)‪abaaa (1‬‬
‫ב‪.‬‬
‫‪a‬‬
‫‪start‬‬
‫‪b‬‬
‫‪a,b‬‬
‫א‪.‬‬
‫‪b‬‬
‫)‪abbaba (2‬‬
‫)‪aaaaba (3‬‬
‫הסבר במילים מהי השפה המתקבלת עבור האוטומט הראשון ‪.‬‬
‫עבור שתי הטענות הבאות‪ ,‬אם הטענה נכונה ‪ -‬הסבר מדוע‪,‬‬
‫ואם אינה נכונה ‪ -‬הבא דוגמא נגדית )דוגמא שסותרת את הטענה(‪.‬‬
‫כל מילה המתקבלת באוטומט השני מתקבלת גם באוטומט הראשון‪.‬‬
‫)‪(1‬‬
‫כל מילה המתקבלת באוטומט הראשון מתקבלת גם באוטומט השני‪.‬‬
‫)‪(2‬‬
‫תרגיל ‪2‬‬
‫במשחק "בן ‪ -‬בת " שני כללים ‪:‬‬
‫הילדים יושבים בשורה כך שאין אף בן שמשני צדדיו יושבות בנות ) בת מכל צד ( וכן אין בת‬
‫בין שני בנים‪.‬‬
‫כל רצף ילדים חייב להתחיל בבת ולהסתיים בבן‪.‬‬
‫‪.1‬‬
‫מהו א"ב השפה ?‬
‫‪.2‬‬
‫תן דוגמא לרצף שעומד בכללי המשחק ולרצף שאיננו עומד בכללים‪.‬‬
‫‪.3‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל את הרצפים העומדים בכללי המשחק‪.‬‬
‫© כל הזכויות שמורות‬
‫‪133‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫תרגיל ‪3‬‬
‫נתונה השפה הבאה מעל א"ב { ‪: } a,b‬‬
‫{ ‪m<2w‬‬
‫‪l = { a2n bn+m c2w | n,m >= 0‬‬
‫תרגיל ‪4‬‬
‫נתונה השפה הבאה ‪:‬‬
‫{ ‪L = } 0i 1j 2i+j+k 3k  i,j,k >= 0‬‬
‫א‪ .‬עבור כל מילה בדוק האם היא שייכת לשפה‪ ,‬אם לא הסבר בקצרה מדוע לא‪.‬‬
‫המילה‬
‫‪0123 .1‬‬
‫שייכת לשפה‬
‫לא שייכת לשפה‪ ,‬הסבר מדוע לא‬
‫‪0011222223 .2‬‬
‫‪2233 .3‬‬
‫‪1133 .4‬‬
‫תרגיל ‪5‬‬
‫נתון האוטומט הבא מעל הא"ב {‪: }0,1‬‬
‫‪0,1‬‬
‫‪10,1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫א‪ .‬הגדר אילו מילים מתקבלות ‪.‬‬
‫ב‪ .‬בנה את האוטומט המתאים לשפה ההפוכה‪.‬‬
‫פתרון‬
‫א‪.‬‬
‫ב‪.‬‬
‫המילים המתקבלות הם המתחילות ב ‪ 1‬ואורכן זוגי או מתחילות ב ‪ 0‬ומספר ה ‪ 1‬מתחלק ב ‪ 3‬ללא‬
‫שארית‪.‬‬
‫פתור‪.‬‬
‫© כל הזכויות שמורות‬
‫‪134‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫תרגיל ‪* 6‬‬
‫נתונים האוטומטים הבאים מעל הא"ב {‪: }a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫לכל אוטומט רשום‬
‫א‪ .‬הגדר אילו מילים מתקבלות ‪.‬‬
‫ב‪ .‬בנה את האוטומט המתאים לשפה ההפוכה‪.‬‬
‫תרגיל ‪7‬‬
‫בנה אוטומט סופי דטרמיניסטי מעל }‪ {0,1,2‬המקבל מילה המסתיימת ב ‪ 11‬או ‪|w| % 3 = 1‬‬
‫תרגיל ‪8‬‬
‫מהי השפה המתקבלת על ידי האוטומט הבא‪:‬‬
‫‪0,1,2‬‬
‫‪2‬‬
‫‪0,1,2‬‬
‫‪0,1‬‬
‫‪0,1,2‬‬
‫© כל הזכויות שמורות‬
‫‪135‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫תרגיל ‪9‬‬
‫מהי השפה המתקבלת על ידי האוטומט הבא‪:‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪2‬‬
‫‪2‬‬
‫‪2‬‬
‫‪2‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫תרגיל ‪11‬‬
‫בנה אוטומט מחסנית ל לשפה הבאה‬
‫‪mn n>0‬‬
‫‪n-m‬‬
‫‪n m‬‬
‫‪c a bc‬‬
‫פתרון חלקי‬
‫נרשום‬
‫מכאן נובע‬
‫נציב ונקבל‬
‫‪k=n-m‬‬
‫‪n=k+m‬‬
‫‪== ck+mambck‬‬
‫‪== ck cmambck‬‬
‫תרגיל ‪11‬‬
‫בנה אוטומט סופי דטרמיניסטי אשר מקבל את השפה הבאה מעל הא"ב{‪(a,b‬‬
‫אוסף המילים המתחילות ברצף ‪ aba‬ומסתיימות ברצף ‪.ba‬‬
‫האם שפה מעל הא"ב {‪ }a,b,c‬המכילה את המילים המתחילות ב ‪c‬‬
‫מספר ה ‪ a‬מתחלק ב ‪ 3‬ללא שארית ומסתיימות ברצף ‪ aabb‬רגולרית‪.‬‬
‫הסבר תשובתך במספר משפטים‪.‬‬
‫תרגיל ‪12‬‬
‫בנה אוטומט מחסנית המקבל את השפה { ‪} (ab)n (ba)n | n>=0‬‬
‫}‪L={anbm | (n+m) % 2=0 ,n,m>0‬‬
‫בנה אוטומט סופי דטרמיניסטי לשפה הבאה‪:‬‬
‫© כל הזכויות שמורות‬
‫‪136‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫תרגיל ‪13‬‬
‫בנה אוטומט סופי דטרמיניסטי‪ ,‬המקבל את כל המילים מעל הא"ב { ‪ , }a,b‬המכילות‬
‫לפחות ‪ 2‬אותיות ‪ a‬ומספר אותיות ה – ‪ b‬בהן מתחלק ב – ‪.2‬‬
‫תרגיל ‪14‬‬
‫נתונים שני האוטומטים הבאים )סופיים ודטרמיניסטיים ( מעל }‪: {a,b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫א‪ .‬בדוק עבור שני האוטומטים האם המילים הבאות מתקבלות ‪:‬‬
‫‪abaaa .1‬‬
‫ב‪.‬‬
‫ג‪.‬‬
‫‪abbaba .2‬‬
‫‪aaaaba .3‬‬
‫הסבר במילים מהי השפה המתקבלת עבור האוטומט הראשון ‪.‬‬
‫עבור שתי הטענות הבאות‪ ,‬אם הטענה נכונה הסבר‪ ,‬אחרת תן דוגמה נגדית ‪.‬‬
‫‪.I‬‬
‫‪.II‬‬
‫כל מילה המתקבלת באוטומט העליון מתקבלת גם באוטומט התחתון ‪.‬‬
‫כל מילה המתקבלת באוטומט תחתון מתקבלת גם באוטומט העליון‪.‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪137‬‬
‫תרגיל ‪15‬‬
‫בנה אוטומט סופי דטרמיניסטי המקבל את כל המילים מעל } ‪ { a,b‬המכילות לפחות ‪ 2‬אותיות ‪ a‬ומספר‬
‫אותיות ה ‪ b‬בהן מתחלק ב ‪.3‬‬
‫תרגיל ‪16‬‬
‫בנה אוטומט מחסנית שיקבל את השפה הבאה‬
‫‪anbm m > 2n n,m0‬‬
‫תרגיל ‪17‬‬
‫בנה אוטומט מחסנית שיקבל את השפה הבאה‬
‫‪anbmc2(m-n) m > n0‬‬
‫תרגיל ‪18‬‬
‫בנה אוטומט מחסנית שיקבל את השפה הבאה ‪:‬‬
‫‪m >n‬‬
‫)‪anbm c2(m-n‬‬
‫תרגיל ‪19‬‬
‫שרטט אוטומט סופי דטרמיניסטי המקבל את שפת כל המילים מעל האב' {‪} 0,1,2‬‬
‫המתחילות ב ‪ 0 -‬ומסתימות ב ‪ 2 -‬ולא מכילות את הרצף ‪ ,02‬וכן לא מתקיים שיש במילה‬
‫שתי אותיות זהות רצופות‪.‬‬
‫תרגיל ‪21‬‬
‫בנה אוטומט סופי דטרמיניסטי אשר מקבל את השפה הבאה מעל הא"ב{‪}0,1‬‬
‫אוסף המילים המתחילות ב ‪ , 1‬מכילות מספר זוגי של אפסים ומסתיימות ב ‪ 11) .11‬מתקבל(‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0,1‬‬
‫‪0‬‬
‫‪1‬‬
‫© כל הזכויות שמורות‬
‫‪138‬‬
‫תרגילים באסד ואוטומט מחסנית‬
‫סגירות שפות חופשיות הקשר‬
‫‪ ‬כל שפה רגולרית הינה גם חופשית הקשר אך לא להיפך‪.‬‬
‫‪ ‬לשפה שניתן לבנות לה אס"ד קוראים שפה רגולרית‪.‬‬
‫‪ ‬שפה שניתן לבנות לה אוטומט מחסנית הינה חופשית הקשר‪.‬‬
‫‪ ‬לכל שפה רגולרית ניתן לבנות אוטומט מחסנית ולכן כל שפה רגולרית הינה גם חופשית‬
‫הקשר‪.‬‬
‫משפחת השפות חופשיות ההקשר סגורה תחת מספר פעולות‪:‬‬
‫‪ ‬איחוד ‪L1 U L2‬‬
‫‪ ‬שירשור ‪L1L2‬‬
‫‪ ‬היפוך }‪LR = {w | wR  L‬‬
‫‪ ‬חיתוך עם שפה רגולרית ‪LR‬‬
‫תרגיל ‪1‬‬
‫תהי ‪ L= anbn‬האם )‪ L1=L·R(L‬חופשית הקשר‪.‬‬
‫‪n n‬‬
‫פתרון א לשפה ‪ a b‬בנינו אוטומט מחסנית וכיוון ששפות חופשיות הקשר סגורות לתכונות היפוך ושרשור‬
‫נובע ש ‪ L1‬חופשית הקשר‪.‬‬
‫פתרון ב )שאינו רצוי( בניית אוטומט מחסנית לשפה‪.‬‬
‫תרגיל ‪ 2‬חיתוך‬
‫תהי ‪L1= anbnck‬‬
‫‪k n n‬‬
‫‪. L2= a b c‬‬
‫האם ‪ L=L1∩L2‬חופשית הקשר‪.‬‬
‫פתרון‬
‫‪n n n‬‬
‫לא‪ .‬כי חיתוך השפות נותן ‪ a b c‬ולא ניתן לבנות אוטומט מחסנית‪.‬‬
‫ברור שקיימים מקרים בהם החיתוך נותן שפה חופשית הקשר‪.‬‬
‫© כל הזכויות שמורות‬
‫‪139‬‬
‫סגירות שפות חופשיות הקשר‬
‫שרשור ( ‪ L1· L2‬פירושו כל המילים אשר ניתן לחלק אותן לשני חלקים כך שהחלק‬
‫השמאלי שייך ל ‪ L1‬והימני ל ‪)L2‬‬
‫דוגמה‪:‬‬
‫תהי ‪ L1‬שפת כל המילים מעל‬
‫}‪ {a,b‬מהצורה ‪n>0‬‬
‫‪a2nbn‬‬
‫תהי ‪ L2‬שפת כל המילים מעל‬
‫}‪ {a,b‬מהצורה ‪n>0‬‬
‫‪anbn‬‬
‫‪ L3 = L1·L2‬אם ידוע ש ‪ L1‬חופשית הקשר ו ‪ L2‬חופשית הקשר אזי ‪ L3=L1·L2‬גם כן חופשית הקשר‪.‬‬
‫איחוד ( ‪ L1L2‬פירושו כל המילים המתקבלות ב ‪ L1‬או ב ‪.)L2‬‬
‫דוגמה‪:‬‬
‫תהי ‪ L1‬שפת כל המילים מעל‬
‫}‪ {a,b‬מהצורה ‪n>0‬‬
‫‪a2nbn‬‬
‫תהי ‪ L2‬שפת כל המילים מעל‬
‫}‪ {a,b‬מהצורה ‪n>0‬‬
‫‪anbn‬‬
‫‪ L3 = L1L2‬אם ידוע ש ‪ L1‬חופשית הקשר ו ‪ L2‬חופשית הקשר אזי ‪ L3=L1L2‬גם כן חופשית הקשר‪.‬‬
‫דוגמה‪:‬‬
‫תהי ‪ L1‬שפת כל המילים מעל‬
‫}‪ {a,b,c‬מהצורה ‪n>0‬‬
‫‪anbnck‬‬
‫תהי ‪ L2‬שפת כל המילים מעל‬
‫}‪ {a,b,c‬מהצורה ‪n>0‬‬
‫‪akbncn‬‬
‫‪ L3 = L1L2‬אם ידוע ש ‪ L1‬חופשית הקשר ו ‪ L2‬חופשית הקשר אזי ‪ L3=L1L2‬גם כן חופשית הקשר‪.‬‬
‫היפוך ‪L‬‬
‫דוגמה‪:‬‬
‫תהי ‪ L‬שפת כל המילים מעל‬
‫© כל הזכויות שמורות‬
‫}‪ {a,b‬מהצורה ‪ anbn n>0‬אזי היפוך שך ‪ L‬הינו ‪n>0‬‬
‫‪140‬‬
‫‪bnan‬‬
‫סגירות שפות חופשיות הקשר‬
‫( ‪ L1∩L2‬פירושו כל המילים המתקבלות הן ב ‪ L1‬והן ב ‪.)L2‬‬
‫חיתוך שפה חופשית הקשר עם שפה רגולרית נותן שפה חופשית הקשר‬
‫תהי ‪ L1‬שפת כל המילים מעל‬
‫}‪ {a,b,c‬מהצורה ‪n>0‬‬
‫‪anbnck‬‬
‫תהי ‪ L2‬שפת כל המילים מעל }‪ {a,b,c‬שבהן מספר ה ‪ a‬זוגי‪.‬‬
‫‪ L3 = L1∩L2‬מכילה המילים‬
‫מהצורה ‪n>0‬‬
‫‪2n 2n k‬‬
‫‪.a b c‬‬
‫חיתוך שתי שפות חופשיות הקשר שחיתוכן אינו חופשי הקשר‬
‫תהי ‪ L1‬שפת כל המילים מעל }‪ {a,b,c‬שבהן מספר ה ‪ a‬שווה למספר ה ‪. b‬‬
‫תהי ‪ L2‬שפת כל המילים מעל }‪ {a,b,c‬שבהן מספר ה ‪ b‬שווה למספר ה ‪. c‬‬
‫‪ L3 = L1∩L2‬מכילה מילים שבהם מספר ה ‪ a‬שווה למספר ה ‪ b‬שווה למספר ה ‪. c‬‬
‫© כל הזכויות שמורות‬
‫‪141‬‬
‫סגירות שפות חופשיות הקשר‬
‫מהי מכונת טיורינג‬
‫מכונת טיורינג הינה מודל מופשט המסוגל לבצע כל חישוב או אלגוריתם הניתן לביצוע במחשב‪.‬‬
‫המכונה מקבלת סרט המכיל סימן ראש סרט תווים ולבסוף מכיל את הסמל "ריק"‪ .‬ראש הקריאה כתיבה נמצא על תו‬
‫כלשהו לרוב על התו הראשון מימין לראש הסרט‪├ .‬‬
‫מסמן את ראש הסרט‪.‬‬
‫∆ מסמן את הסמל "ריק"‪.‬‬
‫(ניתן לדמות לצורך ההבנה בלבד את הסמל "ריק" לסימן רווח)‬
‫∆∆∆∆∆∆‪├aaaaaaaa‬‬
‫המכונה עוברת על הסרט ומחליפה כל תו בתו אחר (כולל הוא עצמו שאז אין שינוי בסרט)‪.‬‬
‫המכונה יכולה לנוע שמאלה או ימינה כאשר אסור לה לנוע משמאל לסימן תחילת הסרט‪.‬‬
‫דוגמה ‪ :‬לאחר הפעולה‬
‫ימין ‪a/b‬‬
‫הסרט יראה‬
‫∆∆∆∆∆∆‪├baaaaaaa‬‬
‫© כל הזכויות שמורות‬
‫‪142‬‬
‫מכונת טיורינג‬
‫המכונה מורכבת מהחלקים הבאים‪:‬‬
‫‪‬‬
‫סרט המחולק לתאים והוא אינסופי ימינה‪.‬‬
‫‪‬‬
‫ראש שמסוגל לקרוא את תוכן התא ולכתוב לתוכו מיד לאחר הקריאה ולאחר מכן לזוז ימינה או שמאלה‪.‬‬
‫‪‬‬
‫מצב התחלתי‪.‬‬
‫‪‬‬
‫הוראות המורות לראש מה לכתוב בתא‪ ,‬לאן לזוז (תא אחד ימינה או תא אחד שמאלה)‪ ,‬כל זאת בהתאם למצב‬
‫הנוכחי (כפי שהוא רשום באוגר המצב) ולסמל‪/‬אות‪/‬סימן שנקרא מהתא הנוכחי‪ .‬אם אין בטבלה התייחסות לצירוף‬
‫של המצב והסמל הנוכחיים‪ ,‬המכונה עוצרת‪.‬‬
‫כל מרכיביה של מכונת טיורינג הם סופיים‪ ,‬מלבד הסרט שאינו מוגבל באורכו‪.‬‬
‫מכונת טיורינג מתחילה את פעולתה במצב ההתחלתי‪ ,‬כשעל הסרט כתוב מידע כלשהו ‪ -‬הקלט‪ .‬הקלט הוא תמיד סופי‪,‬‬
‫והאלפבית של האותיות שמרכיבות אותו הוא חלקי ממש לאלפבית של הסימנים שניתן לרשום על הסרט‪.‬‬
‫הסימן ∆ מטרתו לציין את סיום הקלט‪ .‬המכונה יכולה לשנות את מצבו של הסרט ולבסוף עשויה לעצור או שלא‬
‫לעצור‪.‬‬
‫באופן כללי המכונה נעה על הסרט ימינה ושמאלה בהתאם לנדרש ומחליפה כל אות (סימן) באות‪ ,‬במטרה להגיע‬
‫לתוצאה הרצויה‪.‬‬
‫התוצאה הרצויה יכולה להיות החלטה אם מילה מתקבלת בשפה או שלא ‪ ,‬או תוצאה של פונקציה מסוימת למשל‬
‫שארית חלוקה בשלוש‪ ,‬או השלמת המספר למספר המתחלק בשלוש ללא שארית‪.‬‬
‫מצב מקבל לפי תוכנית הלימודים קיימת מוסכמה שבכל מכונת טיורינג יש מצב מקבל‪:‬‬
‫‪ ‬באם המכונה בודקת האם מילה שייכת לשפה הרי מצב מקבל == אכן המילה משתייכת לשפה‪.‬‬
‫למשל האם המילה ‪ aabbcc‬שייכת לשפה ‪anbncn‬‬
‫‪ ‬באם המכונה מבצעת משהו למשל אם אורך המילה איזוגי מוסיפה ‪ a‬בסוף המילה אחרת משאירה ללא שינוי‬
‫אזי מצב מקבל == סיימנו את המשימה ובצענו אותה בהצלחה‪.‬‬
‫נא עיינו בדוגמאות הבאות‪ :‬תחילה נראה דוגמה למכונה המבצעת פונקציה לאחר מכן נראה מכונה הבודקת שפה‬
‫רגולריות(כאלה שניתן לבנות להן אס"ד)‪ ,‬לאחר מכן מכונה הבודקת שפה חופשית הקשר (כאלה שאוטומט מחסנית‬
‫יכול לטפל בהן) לאחר מכן מכונה שבודקת שפה שאינה חופשיות הקשר ולבסוף נחזור ונראה מכונות המבצעות‬
‫פונקציות‪.‬‬
‫הגדרת מספר אונרי‪:‬‬
‫כלום ערכו ‪0‬‬
‫‪1‬‬
‫ערכו ‪1‬‬
‫‪ 11‬ערכו ‪2‬‬
‫‪ 111‬ערכו ‪3‬‬
‫וכו‬
‫© כל הזכויות שמורות‬
‫‪143‬‬
‫מכונת טיורינג‬
‫הסבר על מכונת טיורינג באמצעות תרגילים‬
‫דוגמה א‪ :‬מכונת טיורינג המחליפה ‪ a‬ל ‪ b‬ו ‪ b‬ל ‪(a‬בשפה מעל }‪) {a,b‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל }‪ {a,b‬כאשר ראש המכונה נמצא על התו הראושן)השמאלי( ומשנה ‪ a‬ל‬
‫‪ b‬ו ‪b‬ל ‪. a‬‬
‫ימין ‪a / b‬‬
‫הרעיון‪ :‬ננוע רק ימינה ונחליף ‪ a‬ב ‪b‬‬
‫ימין ‪b / a‬‬
‫‪ b‬ב ‪a‬‬
‫ימין ‪/‬‬
‫המצב המקבל פירושו שהצלחנו לסיים את המשימה ולבצע אותה בהצלחה‪.‬‬
‫דוגמה ב‪ :‬מכונת טיורינג המוסיפה ‪ a‬בסוף המילה(בשפה מעל }‪) {a,b‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל }‪ {a,b‬כאשר ראש המכונה נמצא על התו הראשון)השמאלי( ומוסיפה‬
‫‪ a‬מימין למילה‪.‬‬
‫ימין ‪a / a‬‬
‫ימין ‪b / b‬‬
‫הרעיון‪ :‬ננוע רק ימינה ונחליף ‪ a‬ב ‪a‬‬
‫‪ b‬ב ‪b‬‬
‫את הסמל "ריק" הראשון נחליף ב ‪a‬‬
‫ימין ‪/a‬‬
‫דוגמה ג‪ :‬מכונת טיורינג המוסיפה ‪ 1‬למילה באורך איזוגי(בשפה מעל }‪) }1‬‬
‫הרעיון‪ :‬ננוע רק ימינה ונחליף ‪ 1‬ב ‪1‬‬
‫ימין ‪1/1‬‬
‫ימין ‪/1‬‬
‫ימין ‪1/1‬‬
‫כאשר המעבר בין שני המצבים הוא‬
‫מונה זוגיות אי זוגיות‪.‬‬
‫באם הגענו סמל "ריק" הראשון‬
‫כשמספר האחדים אי זוגי נחליף אותו ב‬
‫‪1‬‬
‫© כל הזכויות שמורות‬
‫‪144‬‬
‫מכונת טיורינג‬
‫דוגמה ד‪ :‬מכונת טיורינג הבודקת שהאות האחרונה ‪( a‬מעל } ‪) } a,b‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫הרעיון‪ :‬ננוע ימינה וכשנגיע לסימן ריק‬
‫נחזור שמאלה ונבדוק האם התו הינו ‪a‬‬
‫ימין ‪a/a‬‬
‫שמאל ‪/‬‬
‫דוגמה ה‪ :‬מכונת טיורינג הבודקת שהאות הראשונה זהה לאחרונה (מעל } ‪) } a,b‬‬
‫הרעיון‪ :‬אחרי התו הראשון נתפצל‬
‫לשני מסלולים‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫שמאל ‪/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪b/b‬‬
‫שמאל ‪/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫© כל הזכויות שמורות‬
‫‪145‬‬
‫מכונת טיורינג‬
‫דף תרגילים ‪ 1‬במכונת טיורינג‬
‫עבור כל מכונה אמור מה היא מבצעת (בודקת)‬
‫)מעל }‪( }1‬‬
‫ימין ‪1/1‬‬
‫ימין ‪/1‬‬
‫ימין ‪1/1‬‬
‫ימין ‪/1‬‬
‫ימין ‪/1‬‬
‫)מעל }‪( }a,b‬‬
‫ימין ‪b/a‬‬
‫ימין ‪a/b‬‬
‫ימין ‪a/a‬‬
‫‪b/b‬‬
‫ימין ‪/‬‬
‫ימין‬
‫ימין ‪/‬‬
‫ימין ‪a / a‬‬
‫ימין ‪b / b‬‬
‫ימין ‪/a‬‬
‫© כל הזכויות שמורות‬
‫‪146‬‬
‫מכונת טיורינג‬
‫מכונת טיורינג לבדיקת שפות רגולריות‬
‫(ניתן לבנות להן אוטומט סופי דטרמיניסטי)‬
‫בנה מכונת טיורינג ה‬
‫מקבלת את המילים המתחילות ב ‪ a‬מעל }‪{a,b,c‬‬
‫הרעיון בניה על סמך אס"ד מתאים‪.‬‬
‫מקרים שרצוי לבדוק ‪:‬‬
‫מילים מתקבלות‪. a :‬‬
‫ימין ‪a / a‬‬
‫מילים שאינן מתקבלות‪. c , ba :‬‬
‫ימין ‪b / b‬‬
‫ימין ‪c / c‬‬
‫ימין ‪a/a‬‬
‫ימין ‪/‬‬
‫בנינו מכונת טיורינג לשפה רגולרית‪.‬‬
‫בנה מכונת טיורינג ה‬
‫מקבלת את המילים מעל }‪ {a,b,c‬כך ש ‪|W|%3=1‬‬
‫הרעיון בניה על סמך אס"ד מתאים‪ .‬מקרים שרצוי לבדוק‪. a aa aaa :‬‬
‫ימין ‪/‬‬
‫ימין ‪a / a‬‬
‫ימין ‪b / b‬‬
‫ימין ‪c / c‬‬
‫ימין ‪a / a‬‬
‫ימין ‪b / b‬‬
‫ימין ‪c / c‬‬
‫ימין ‪a / a‬‬
‫ימין ‪b / b‬‬
‫ימין ‪c / c‬‬
‫בנינו מכונת טיורינג לשפה רגולרית‪.‬‬
‫מכונת טיורינג‬
‫© כל הזכויות שמורות‬
‫‪147‬‬
‫מכונת טיורינג לשפות חופשיות הקשר ולא‬
‫רגולריות‬
‫בנה מכונת טיורינג המקבלת את המילים מעל }‪ {a,b‬מהצורה ‪n≥0 anbn‬‬
‫הרעיון ‪:‬להפוך את ‪ a‬ל ‪ X‬לחפש ‪ b‬ולהפוך ל ‪ . Y‬בסוף התהליך לסרוק שיש רק ‪ Y‬שפירושו שאין יותר ‪ b‬מ ‪.a‬‬
‫מקרים שרצוי לבדוק ‪. bab abab aab abb ab :‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫שמאל ‪b/Y‬‬
‫‪q2‬‬
‫‪q1‬‬
‫ימין ‪a/X‬‬
‫ימין ∆‪∆/‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫‪q5‬‬
‫‪q0‬‬
‫ימין ‪Y/Y‬‬
‫‪q4‬‬
‫ימין ∆‪∆/‬‬
‫בנינו מכונת טיורינג לשפה חופשית הקשר שאינה רגולרית‪.‬‬
‫שים לב‬
‫ימין ‪Y/Y‬‬
‫עבור מילה המתחילה ב ‪ b‬נתקע ב ‪q0‬‬
‫עבור ‪ aabbbbb‬נתקע ב ‪ b‬הראשון המיותר )‪ (aabbbbb‬ובמצב ‪q4‬‬
‫ועבור ‪ aaaabb‬נתקע ב ‪ a‬מיותר ובמצב ‪ q1‬כאשר לא קיים עבורו ‪.b‬‬
‫מעקב אחר המילה ‪aabb‬‬
‫שינוי‬
‫מצב חדש‬
‫אות נבדקת‬
‫מצב‬
‫‪aX‬‬
‫ללש‬
‫‪q1‬‬
‫‪aabb‬‬
‫‪Xabb‬‬
‫‪Xabb‬‬
‫‪q0‬‬
‫‪bY‬‬
‫ללש‬
‫© כל הזכויות שמורות‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪148‬‬
‫מכונת טיורינג‬
‫בנה מכונת טיורינג ה‬
‫‪n n‬‬
‫מקבלת את המילים מעל }‪ {a,b‬מהצורה ‪n≥0 a b‬‬
‫באם המילה אינה מתקבלת יש למחוק אותה מהסרט באם מתקבלת יש לנוע סביב סימן הריק הראשון‪.‬‬
‫הרעיון‪ :‬כמו בתרגיל הקודם רק שיש להוסיף את המקרים המבוקשים‪.‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫‪n>k‬‬
‫‪anbk‬‬
‫המילה‬
‫מתחילה‬
‫ב‪b‬‬
‫‪q2‬‬
‫שמאל ‪b/Y‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫מספר ה ‪ b‬גדול‬
‫ממספר ה ‪ a‬במילה‬
‫או מהצורה …‪aba‬‬
‫‪q1‬‬
‫ימין ‪a/X‬‬
‫שמאל ∆‪∆/‬‬
‫תבנית‬
‫‪q0‬‬
‫ימין ‪Y/Y‬‬
‫ימין ∆‪∆/‬‬
‫שמאל ‪b/b‬‬
‫‪q6‬‬
‫‪q5‬‬
‫‪q4‬‬
‫ימין ∆‪∆/‬‬
‫מחיקה‬
‫שמאל ‪b/b‬‬
‫שמאל ‪a/a‬‬
‫ימין ‪Y/Y‬‬
‫בנינו מכונת טיורינג לשפה חופשית הקשר שאינה רגולרית‪.‬‬
‫שים לב‬
‫עבור מילה מהצורה ‪n>k‬‬
‫‪ anbk‬לדוגמה ‪ aaaabb‬נתקע ב ‪ a‬מיותר ובמצב ‪ q1‬כאשר לא קיים עבורו ‪.b‬‬
‫עבור מילה המתחילה ב ‪ b‬נתקע ב ‪q0‬‬
‫עבור ‪ aabbbbb‬נתקע ב ‪ b‬הראשון המיותר )‪ (aabbbbb‬ובמצב ‪q4‬‬
‫עבור ‪ aababb‬נתקע ב ‪ a‬השלישי )‪ (aababb‬ובמצב ‪q4‬‬
‫עבור ‪ aabba‬נתקע ב ‪ a‬השלישי )‪ (aababb‬ובמצב ‪q4‬‬
‫ליד ‪ q6 q5‬יש להוסיף ∆‪∆/‬ימין ∆‪∆/‬שמאל‬
‫© כל הזכויות שמורות‬
‫‪149‬‬
‫מכונת טיורינג‬
‫בנה מכונת טיורינג ה‬
‫מקבלת מילים מעל }‪ {a,b‬שמתחילות ב ‪ a‬ומסתיימות ב ‪ a‬ואורך‬
‫רצף ה ‪ a‬בהתחלה ובסוף שווה‬
‫הרעיון‪ :‬להפוך ‪ a‬בתחילת המילה ל ‪ X‬לחפש ‪ a‬בסוף ולהפוך ל ‪ Y‬וכך לחזור על התהליך‪.‬‬
‫מקרים שכדאי לבדוק‪) aab baa aabababaaa aaababaa aaaa aabaa :‬רק שני הימניים מתקבלים(‪.‬‬
‫ניתן לפתור באמצעות אטומט מחסנית לא דטרמיניסטי )דטרמיניסטי אם יש לפחות ‪ b‬אחת(‪.‬‬
‫ימין ‪a/X‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪a/a‬‬
‫‪q4‬‬
‫ימין ‪X/X‬‬
‫‪q3‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫שמאל ‪a/Y‬‬
‫‪q2‬‬
‫שמאל ∆‪∆/‬‬
‫‪q1‬‬
‫ימין ‪a/X‬‬
‫שמאל ‪Y/Y‬‬
‫ימין ‪b/b‬‬
‫שמאל ‪Y/Y‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫‪q7‬‬
‫© כל הזכויות שמורות‬
‫שמאל ‪b/b‬‬
‫‪q6‬‬
‫‪150‬‬
‫שמאל ‪Y/Y‬‬
‫‪q5‬‬
‫מכונת טיורינג‬
‫‪q0‬‬
‫מכונת טיורינג לשפות לא חופשיות הקשר‬
‫בנה מכונת טיורינג ה‬
‫מקבלת את המילים מעל }‪ {a,b,c‬מהצורה ‪n≥0 a b c‬‬
‫‪n n n‬‬
‫הרעיון ‪ :‬להפוך את ‪ a‬ל ‪ X‬לחפש ‪ b‬ולהפוך ל ‪ Y‬לחפש ‪ c‬ולהפוך ל ‪ Z‬לחזור לאחור ולחזור על התהליך‪.‬‬
‫מקרים שכדאי לבדוק ‪ n :‬שווה לאפס‪,‬‬
‫‪abc , ab , a , aabc , abcc‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Z/Z‬‬
‫ימין ‪b/b‬‬
‫‪q3‬‬
‫שמאל ‪c/Z‬‬
‫‪q2‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/Y‬‬
‫‪q1‬‬
‫ימין ‪a/X‬‬
‫ימין ‪/‬‬
‫שמאל ‪Z/Z‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫‪q5‬‬
‫‪q0‬‬
‫ימין ‪Y/Y‬‬
‫‪q4‬‬
‫ימין ‪/‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪Z/Z‬‬
‫© כל הזכויות שמורות‬
‫‪151‬‬
‫מכונת טיורינג‬
‫מכונת טיורינג – תרגילים שונים‬
‫בנה מכונת טיורינג ה‬
‫מקבלת רצף של ‪ a‬מוסיפה ‪ a‬בסופו ותוחמת את רצף ה ‪ a‬ים בסימני דולר‪.‬‬
‫המטרה ‪ :‬לקבל תוצאה תחומה בין שני סימני דולר‬
‫דוגמת סרט לפני‪├aaaaaaaa∆ :‬‬
‫דוגמת סרט אחרי‪├$aaaaaaaaa$∆ :‬‬
‫הרעיון ‪ :‬את ה ‪ a‬הראשון נהפוך לדולר ‪ ,‬שני רווחים בסוף נהפוך לשני ‪ a‬ורווח נוסף יהפוך לדולר‪.‬‬
‫מקרים שכדאי לבדוק‪ :‬מספר ה ‪ a‬ים שווה לאפס‪ ,‬כלומר אין ‪a‬ים‪.‬‬
‫ימין ‪a / a‬‬
‫ימין ‪/$‬‬
‫ימין ‪/a‬‬
‫ימין ‪a / $‬‬
‫ימין ‪/a‬‬
‫ימין ‪/$‬‬
‫חיבור ‪f(x,y)=x+y‬‬
‫∆‪├1111111#1111‬‬
‫הקלט הינו במבנה הבא‬
‫∆‪├$11111111111$‬‬
‫הפלט ‪:‬‬
‫הרעיון ‪ :‬את ה ‪ a‬הראשון נהפוך לדולר ‪ ,‬שני רווחים בסוף נהפוך לשני ‪ a‬ורווח נוסף יהפוך לדולר‪.‬‬
‫המטרה ‪ :‬לקבל תוצאה תחומה בין שני סימני דולר‪.‬‬
‫מקרה שכדאי לבדוק ‪ x :‬שווה לאפס‪.‬‬
‫ימין ‪# / $‬‬
‫ימין ‪1/1‬‬
‫ימין ‪∆/$‬‬
‫© כל הזכויות שמורות‬
‫ימין ‪# / 1‬‬
‫‪152‬‬
‫ימין ‪1/1‬‬
‫ימין ‪1/$‬‬
‫מכונת טיורינג‬
‫‪f(x)=2x‬‬
‫∆‪├111‬‬
‫הקלט הינו במבנה הבא‬
‫הרעיון ‪ :‬תחילה לשים ‪ $‬לאחר ה ‪...111‬‬
‫לאחר מכן על כל אחד שנהפוך אותו ל ‪ X‬נחליף ‪ 2‬רווחים ל ‪ 2‬אחדים‬
‫לבסוף נוסיף ‪$‬‬
‫המטרה ‪ :‬לקבל תוצאה תחומה בין שני סימני דולר‬
‫‪$111111$‬‬
‫מקרים שכדאי לבדוק ‪ x :‬שווה לאפס‪.‬‬
‫ימין ‪X/X‬‬
‫שמאל ‪$/$‬‬
‫שמאל ‪1/1‬‬
‫שמאל ‪∆/1‬‬
‫הוספת ‪ $‬בסוף המילה‬
‫ימין ‪$/$‬‬
‫ימין ‪1/1‬‬
‫ימין ‪∆/1‬‬
‫שמאל ‪1/1‬‬
‫ימין ‪1/X‬‬
‫ימין ├‪├/‬‬
‫שמאל ‪∆/$‬‬
‫ימין ‪$/$‬‬
‫החלפת ‪ 2‬רווחים ל ‪ 2‬אחדים‬
‫ימין ‪∆/$‬‬
‫ימין ‪1/1‬‬
‫הוספת ‪ $‬בסוף המילה‬
‫© כל הזכויות שמורות‬
‫‪153‬‬
‫ימין ‪1/1‬‬
‫מכונת טיורינג‬
‫חיסור ‪x>0 x>y f(x,y)=x-y‬‬
‫∆‪├1111111#111‬‬
‫‪├….$1111$....‬‬
‫הקלט הינו במבנה הבא‬
‫המטרה ‪ :‬לקבל תוצאה תחומה בין שני סימני דולר‬
‫‪ y‬שווה ‪.1‬‬
‫מקרים שכדאי לבדוק ‪ y :‬שווה אפס‬
‫שמאל ‪X/X‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪$/$‬‬
‫ימין ‪X/X‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪$/$‬‬
‫ימין ‪1 / 1‬‬
‫שמאל ‪1 / Y‬‬
‫פעולת החיסור‬
‫ימין ‪#/$‬‬
‫ימין ‪1 /X‬‬
‫ימין ‪1 / 1‬‬
‫ימין ‪X/$‬‬
‫שמאל ∆‪∆/‬‬
‫ימין ‪$/$‬‬
‫ימין ‪X/1‬‬
‫ימין‬
‫‪1/$‬‬
‫ימין ├‪├/‬‬
‫ימין ‪$ /1‬‬
‫ימין ‪∆/$‬‬
‫חזרה להתחלה‬
‫כאשר ‪ y‬שווה ‪0‬‬
‫שמאל ‪X/X‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪$/$‬‬
‫שמאל ‪1/1‬‬
‫למעשה ניתן בפיתרון להשתמש ב ‪ X‬בלבד ואין צורך בשימוש בשתי אותיות גדולות שונות‪.‬‬
‫© כל הזכויות שמורות‬
‫‪154‬‬
‫מכונת טיורינג‬
‫חיסור ‪y≥0 x >0 x+y>z f(x,y)=x+y-z‬‬
‫הקלט הינו במבנה הבא ‪x=7 y=4 z=5‬‬
‫∆‪├1111111#1111#11111‬‬
‫המטרה ‪ :‬לקבל תוצאה תחומה בין שני סימני דולר‬
‫‪├….$111111$....‬‬
‫ימין ‪$/$‬‬
‫שמאל ‪$/$‬‬
‫ימין ‪1 / 1‬‬
‫ימין ‪1 / 1‬‬
‫שמאל ‪1 / $‬‬
‫ימין ‪#/$‬‬
‫ימין‬
‫ימין ‪#/1‬‬
‫‪1/$‬‬
‫פעולת החיסור‬
‫ימין ‪1 /$‬‬
‫© כל הזכויות שמורות‬
‫שמאל ∆‪∆/‬‬
‫‪155‬‬
‫פעולת החיבור‬
‫מכונת טיורינג‬
‫שאלה‬
‫נתונה מכונת טיורינג המקבלת על הסרט מילה באורך אי זוגי שאורכה לפחות ‪.3‬‬
‫א‪ .‬בצע מעקב עבור המילה ‪) . 01100‬הינך יכול לתאר את הקטע הסופי של המכונה במילים(‬
‫ב‪ .‬רשום מה מבצעת המכונה‪.‬‬
‫ימין ‪ X/ Δ‬ימין ‪X/ Δ‬‬
‫ימין ‪ Y/ Δ‬ימין ‪Y/ Δ‬‬
‫ימין ‪ Δ / Δ‬ימין ‪Δ / Δ‬‬
‫‪q8‬‬
‫‪q11‬‬
‫ימין ‪X/0‬‬
‫ימין ‪Y/0‬‬
‫ימין ‪X/1‬‬
‫ימין ‪Y/1‬‬
‫‪q10‬‬
‫‪q7‬‬
‫ימין ├‪├ /‬‬
‫שמאל ‪X/X‬‬
‫שמאל ‪Y/Y‬‬
‫ימין ├‪├ /‬‬
‫‪q9‬‬
‫שמאל ‪X/X‬‬
‫שמאל ‪Y/Y‬‬
‫‪q6‬‬
‫שמאל ‪ Y/Y‬שמאל ‪X/X‬‬
‫‪q5‬‬
‫ימין ‪0/0‬‬
‫ימין ‪1/1‬‬
‫שמאל ‪X/X‬‬
‫‪q2‬‬
‫ימין ‪0/0‬‬
‫ימין ‪1/1‬‬
‫‪q1‬‬
‫ימין ‪0/X‬‬
‫ימין ‪1/Y‬‬
‫שמאל ‪X/X‬‬
‫שמאל ‪Δ/Δ‬‬
‫‪q3‬‬
‫שמאל ‪1/X‬‬
‫שמאל ‪0/X‬‬
‫שמאל ‪0/0‬‬
‫שמאל ‪1/1‬‬
‫© כל הזכויות שמורות‬
‫ימין ‪X/X‬‬
‫ימין ‪Y/Y‬‬
‫‪q4‬‬
‫‪156‬‬
‫מכונת טיורינג‬
‫‪q0‬‬
‫פתרון (כל מעקב שבו מובן מה עושים מתקבל)‬
‫שינוי‬
‫מצב חדש‬
‫אות נבדקת‬
‫מצב‬
‫‪0X‬‬
‫ללש‬
‫ללש‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫ללש‬
‫‪q2‬‬
‫ללש‬
‫‪q2‬‬
‫‪11100‬‬
‫‪X1100‬‬
‫‪X1100‬‬
‫‪X1110‬‬
‫‪X1101‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫ללש‬
‫‪q3‬‬
‫‪X1100 Δ‬‬
‫‪q2‬‬
‫‪0X‬‬
‫ללש‬
‫‪q4‬‬
‫‪q4‬‬
‫‪X1101‬‬
‫‪X111X‬‬
‫‪q3‬‬
‫‪q4‬‬
‫ללש‬
‫‪q4‬‬
‫‪X110X‬‬
‫‪q4‬‬
‫ללש‬
‫‪q4‬‬
‫‪X110X‬‬
‫‪q4‬‬
‫ללש‬
‫‪q0‬‬
‫‪1Y‬‬
‫ללש‬
‫ללש‬
‫ללש‬
‫‪0X‬‬
‫ללש‬
‫ללש‬
‫‪1Y‬‬
‫ללש‬
‫ללש‬
‫ללש‬
‫ללש‬
‫ללש‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫‪q3‬‬
‫‪q4‬‬
‫‪q4‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q5‬‬
‫‪q9‬‬
‫‪q9‬‬
‫‪q9‬‬
‫‪q10‬‬
‫‪q11‬‬
‫‪X110X‬‬
‫‪X110X‬‬
‫‪XY10X‬‬
‫‪XY1 1 X‬‬
‫‪q4‬‬
‫‪X 1‬‬
‫‪q2‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q2‬‬
‫‪q2‬‬
‫‪q3‬‬
‫‪q4‬‬
‫‪q4‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q5‬‬
‫‪q9‬‬
‫‪q9‬‬
‫‪q9‬‬
‫‪q10‬‬
‫‪XY10X‬‬
‫‪XY1 1 X‬‬
‫‪XY1XX‬‬
‫‪XY1XX‬‬
‫‪XY1XX‬‬
‫‪XYYXX‬‬
‫‪XYYXX‬‬
‫‪XYYXX‬‬
‫‪XYYXX‬‬
‫‪├XYYXX‬‬
‫‪XYYXX‬‬
‫לאחר מכן המכונה רושמת מהמקום השני ואילך רווחים ונעה לאינסוף‬
‫המכונה רושמת במקום הראשון במילה את התו האמצעי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪157‬‬
‫מכונת טיורינג‬
‫שאלה‬
‫נתונה מכונת טיורינג ‪ ,‬העובדת על הא"ב {‪ }a,b‬ומקבלת מילה‪ .‬אם אורכה זוגי משאירה ואם אורכה אי זוגי‬
‫מוחקת‪ .‬בצע מעקב אחר המילה ‪abbab‬‬
‫זזים‬
‫מצב‬
‫תיאור ומיקום ראש‬
‫ימינה‬
‫‪q0‬‬
‫∆‪├abbab‬‬
‫ימינה‬
‫‪q1‬‬
‫∆‪├abbab‬‬
‫ימינה‬
‫‪q0‬‬
‫∆‪├abbab‬‬
‫ימינה‬
‫‪q1‬‬
‫∆‪├abbab‬‬
‫ימינה‬
‫‪q0‬‬
‫∆‪├abbab‬‬
‫שמאלה‬
‫‪q1‬‬
‫∆‪├abbab‬‬
‫שמאלה‬
‫‪q2‬‬
‫∆‪├abbab‬‬
‫שמאלה‬
‫‪q2‬‬
‫∆∆‪├abba‬‬
‫שמאלה‬
‫‪q2‬‬
‫∆∆∆‪├abb‬‬
‫שמאלה‬
‫‪q2‬‬
‫∆∆∆∆‪├ab‬‬
‫שמאלה‬
‫‪q2‬‬
‫∆∆∆∆∆‪├a‬‬
‫שמאלה‬
‫‪q2‬‬
‫∆∆∆∆∆∆├‬
‫ימינה‬
‫‪q3‬‬
‫∆∆∆∆∆∆├‬
‫שמאל ‪b/‬‬
‫שמאל ‪a/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫‪q3‬‬
‫ימין ├‪├ /‬‬
‫‪q2‬‬
‫שמאל ‪/‬‬
‫‪q0‬‬
‫‪q1‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪/‬‬
‫‪q4‬‬
‫© כל הזכויות שמורות‬
‫‪158‬‬
‫מכונת טיורינג‬
‫בנה מכונת טיורינג המבצעת חלוקה בשלוש עבור מספר אונרי‬
‫‪q4‬‬
‫שמאל ‪c/Z‬‬
‫‪Z/Z‬‬
‫‪b‬‬
‫שמאל‬
‫‪/‬‬
‫‪b‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪X /X‬‬
‫ש‬
‫מ‬
‫א‬
‫ל‬
‫ימין ‪Z/Z‬‬
‫שמאל ‪Y/Y‬‬
‫ימין ‪b/b‬‬
‫‪q3‬‬
‫שמאל ‪a/a‬‬
‫‪q1‬‬
‫‪b/Y‬‬
‫‪q‬‬
‫ימי‬
‫‪2‬‬
‫ן‬
‫‪q5‬‬
‫‪/‬‬
‫י‬
‫‪q0‬‬
‫מ‬
‫מכונת‬
‫‪a‬‬
‫מ‬
‫ימין ‪a/a‬‬
‫כ‬
‫טיורינג‬
‫‪/‬‬
‫י‬
‫ו‬
‫‪X‬‬
‫ן‬
‫הרעיון‪ :‬תחילה נשים ‪ $‬לאחר כל ה ‪1-‬ים‪ .‬לאחר מכן נעבור ונחליף כל ‪ 1‬ל ‪ .x‬על כל שלושה ‪-1‬ים נשים אחד‬
‫נ‬
‫בסוף‪,‬‬
‫ת‬
‫י‬
‫רעיון מסובך ומיותר‪ :‬לבעור ולהחליף כל שלישי ל ‪ x‬ואז על כל ‪ x‬לשים ‪ 1‬בסוף‪.‬‬
‫מ‬
‫ט‬
‫י‬
‫י‬
‫ן‬
‫ו‬
‫ר‬
‫י‬
‫נ‬
‫ג‬
‫© כל הזכויות שמורות‬
‫‪159‬‬
‫מכונת טיורינג‬
‫דף תרגילים מספר ‪-2‬בנה מכונת טיורינג‬
‫‪.1‬‬
‫בנה מכונת טיורינג לשפה הבאה‪L={anbncm|m>=n} :‬‬
‫‪.2‬‬
‫בנה מכונת טיורינג לשפה הבאה‪L={ anbnc2n |n>=0} :‬‬
‫‪.3‬‬
‫בנה מכונת טיורינג לשפה הבאה‪L={anbncm|n>=m} :‬‬
‫‪.4‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל הא"ב }‪ {a,b,c‬ובודקת האם היא שייכת לשפה ‪.L‬‬
‫{ ‪ m‬היא שארית החלוקה של ‪ n‬ב – ‪, 2‬‬
‫‪.5‬‬
‫‪n>=0‬‬
‫| ‪L={ anb2ncm‬‬
‫בנה מכונת טיורינג לשפה הבאה מעל {‪:}a,b‬מילה שייכת לשפה אם היא ריקה‪ ,‬או שהיא מכילה‬
‫לפחות ‪ b‬אחת וגם מתחילה ומסתיימת בדיוק באותו רצף של אותיות ‪ a‬למשל‪:‬‬
‫‪aabababbaa‬‬
‫‪abbaba‬‬
‫‪babbb‬‬
‫‪.6‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל הא"ב{‪ }a,b‬ומחזירה אותה מילה הפוכה תחומה בסימני ‪.$‬‬
‫‪.7‬‬
‫נתונה על הסרט מילה מעל הא"ב{‪ }a,b‬יש לכתוב באונרית את מספר ה‪ a-‬המופעים במילה תחום‬
‫בסימני ‪$‬‬
‫‪.8‬‬
‫בנה מוכנת טיורינג המקבלת מילה מעל א"ב {‪ }a,b‬ומחזירה את ההפרש בין מספר ‪ a‬ומספר ה‪ b-‬בין‬
‫תחום ‪.$‬‬
‫‪.9‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל א"ב {‪ } a,b‬ובודק אם המילה היא באורך זוגי ומסתיימת ב‪-‬‬
‫‪,aa‬אם כך המכונה מקבלת אותה‪,‬אחרת יש למחוק את המילה מהסרט‪.‬‬
‫‪.10‬‬
‫נתונה על הסרט מספר ‪ X‬באונרית יש לכתוב על הסרט ‪ X+1‬תחום בין ‪.$‬‬
‫‪.11‬‬
‫נתונה על הסרט מספרים ‪ X,Y‬באונרית מופרדים ע"י ‪,#‬יש לכתוב על הסרט ‪ X+Y+1‬באונרית‬
‫תחום בין סימני ‪.$‬‬
‫‪.12‬‬
‫נתונה על הסרט מספרים ‪ X,Y‬באונרית מופרדים ע"י ‪,#‬יש לכתוב על הסרט ‪ X-Y‬באונרית תחום‬
‫בין סימני ‪(X>=Y)$‬‬
‫‪.13‬‬
‫נתונה על הסרט מספרים ‪ X,Y‬באונרית מופרדים ע"י ‪,#‬יש לכתוב על הסרט‬
‫‪ X DIV Y‬באונרית תחום בין סימני ‪(Y≠0)$‬‬
‫‪.14‬‬
‫נתונה על הסרט מספרים ‪ X,Y‬באונרית מופרדים ע"י ‪,#‬יש לכתוב על הסרט ‪ X % Y‬באונרית תחום‬
‫בין סימני ‪(Y≠0)$‬‬
‫‪.15‬‬
‫נתונה על הסרט מילה מהשפה }‪ L={ anbm |n>=m‬יש לכתוב על הסרט ‪ n-m‬באונרית תחום בין‬
‫סימני ‪$‬‬
‫‪.16‬‬
‫בנה מכונת טיורינג המחשבת את הפונקציה‪ f(x,y,z)=x+y-z:‬כאשר ‪ x,y,z‬מספרים חיוביים‪.‬‬
‫התוצאה תהיה בין סימני ‪$‬‬
‫‪.17‬‬
‫בנה מכונת טיורינג המחשבת את הפונקציה‪f(x)=3x :‬‬
‫‪.18‬‬
‫בנה מכונת טיורינג המחשבת את הפונקציה ‪) f(x)=x / 2‬הערך השלם(‬
‫‪.19‬‬
‫בנה מכונת טיורינג המחשבת את הפונקציה )‪f(x,y)=(x*y‬‬
‫‪.20‬‬
‫בנה מכונת טיורינג המחשבת את הפונקציה ‪f(x,y)=(x+y)2‬‬
‫© כל הזכויות שמורות‬
‫‪160‬‬
‫מכונת טיורינג‬
‫‪ 1‬פתרון‬
‫ימין ‪Y/Y‬‬
‫ימין ‪/‬‬
‫ימין ‪c/Z‬‬
‫ימין ‪c/Z‬‬
‫ימין ‪Y/Y‬‬
‫‪q6‬‬
‫ימין ‪Z/Z‬‬
‫מכונת טיורינג‬
‫© כל הזכויות שמורות‬
‫‪161‬‬
‫בנה מכונת טיורינג לשפה הבאה‪:‬‬
‫‪n>=0‬‬
‫‪L= anbnc2n‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Z/Z‬‬
‫ימין ‪b/b‬‬
‫‪q4‬‬
‫שמאל ‪c/Z‬‬
‫‪q3‬‬
‫שמאל ‪c/Z‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/Y‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪q0‬‬
‫ימין ‪a/X‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪/‬‬
‫שמאל ‪`Z/Z‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫‪q5‬‬
‫‪q4‬‬
‫ימין ‪/‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪Z/Z‬‬
‫בנה מכונת טיורינג לשפה הבאה‪:‬‬
‫‪m>=n‬‬
‫‪L= anbncm‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Z/Z‬‬
‫ימין ‪b/b‬‬
‫‪q3‬‬
‫שמאל ‪c/Z‬‬
‫‪q2‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/Y‬‬
‫‪q1‬‬
‫ימין ‪a/X‬‬
‫ימין ‪/‬‬
‫שמאל ‪`Z/Z‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫© כל הזכויות שמורות‬
‫‪q5‬‬
‫‪q0‬‬
‫ימין ‪Y/Y‬‬
‫‪q4‬‬
‫ימין ‪/‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪Z/Z‬‬
‫ימין ‪c/Z‬‬
‫‪162‬‬
‫מכונת טיורינג‬
‫בנה מכונת טיורינג לשפה הבאה‪:‬‬
‫‪n>=m‬‬
‫‪L= anbncm‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Z/Z‬‬
‫ימין ‪b/b‬‬
‫שמאל ‪c/Z‬‬
‫‪q3‬‬
‫שמאל ‪/‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/Y‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪q0‬‬
‫ימין ‪a/X‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪/‬‬
‫שמאל ‪`Z/Z‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫‪q5‬‬
‫‪q4‬‬
‫ימין ‪/‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪Z/Z‬‬
‫בנה מכונת טיורינג המקבלת את כל המילים מעל א"ב {‪ } a,b‬שיש בהן לפחות ‪ a‬אחד ולכל היותר ‪b‬‬
‫אחד‪.‬‬
‫אם יש יותר מ ‪ b‬אחד‪ ,‬המכונה לא תעצור‪.‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫ימין ‪q1 a/a‬‬
‫‪q3‬‬
‫ימין ‪b/b‬‬
‫ימין ‪/‬‬
‫ימין ‪/‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫‪q4‬‬
‫‪q5‬‬
‫‪q0‬‬
‫ימין ‪/‬‬
‫ימין ‪/‬‬
‫ימין ‪a/a‬‬
‫‪q2‬‬
‫‪q4‬‬
‫ימין ‪b/b‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫ימין ‪a/a‬‬
‫© כל הזכויות שמורות‬
‫‪163‬‬
‫מכונת טיורינג‬
‫דף תרגילים מספר ‪-19‬נתונה מכונת טיורינג‬
‫מהי השפה המתקבלת על ידי מכונת טיורינג‬
‫ימין ‪b/b ,‬‬
‫תרגיל ‪1‬‬
‫נתונה מכונת טיורינג ‪,‬מעל הא"ב {‪:}a,b,c‬‬
‫ימין ‪a/a ,‬‬
‫‪q2‬‬
‫ימין ‪a/a ,‬‬
‫‪q1‬‬
‫‪q0‬‬
‫ימין‪c/c,‬‬
‫ימין ‪a/a ,‬‬
‫‪q5‬‬
‫שמאל ‪/,‬‬
‫‪q4‬‬
‫ימין ‪b/b ,‬‬
‫‪q3‬‬
‫ימין‪a/a ,‬‬
‫ימין‪a/a ,‬‬
‫ימין‪b/b ,‬‬
‫‪q6‬‬
‫ימין‪c/c ,‬‬
‫ימין‪c/c ,‬‬
‫ימין‪b/b ,‬‬
‫ימין‪/,‬‬
‫שמאל ‪/,‬‬
‫‪q10‬‬
‫ימין ‪a/a ,‬‬
‫‪q9‬‬
‫ימין‪c/c,‬‬
‫‪q8‬‬
‫שמאל‪a/a,‬‬
‫‪q7‬‬
‫הצג את תהליך חישוב של המכונה על כל אחת מהמילים הבאות‪abac , cabc , bca, ba :‬‬
‫‪ .1.1‬תאר את קבוצת המילים מעל הא"ב {‪ }a,b,c‬עבורן המכונה לא עוצרת‪.‬‬
‫‪ .1.2‬מהי השפה המתקבלת על‪-‬ידי מכונה זו?‬
‫תרגיל ‪2‬‬
‫ימין ‪a /a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪c/c‬‬
‫נתונה מכונת טיורינג ‪,‬מעל הא"ב {‪:}a,b,c‬‬
‫מה מבצעת המכונה?‬
‫‪q7‬‬
‫ימין ‪a /a‬‬
‫ימין ‪b/a‬‬
‫ימין ‪c/a‬‬
‫‪q4‬‬
‫שמאל ‪/,‬‬
‫‪q5‬‬
‫‪q8‬‬
‫שמאל ‪/,‬‬
‫שמאל ‪/,‬‬
‫‪q1‬‬
‫ימין ‪a /a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪c/c‬‬
‫ימין ‪a /b‬‬
‫ימין ‪b/b‬‬
‫ימין ‪c/b‬‬
‫שמאל ‪/,‬‬
‫ימין ‪a /c‬‬
‫ימין ‪b/c‬‬
‫ימין ‪c/c‬‬
‫שמאל ‪/,‬‬
‫‪q5‬‬
‫ימין ‪a/a‬‬
‫‪q2‬‬
‫ימין ‪b/b‬‬
‫ימין ‪c/c‬‬
‫שמאל ‪/,‬‬
‫‪q9‬‬
‫© כל הזכויות שמורות‬
‫‪q6‬‬
‫‪164‬‬
‫‪q3‬‬
‫ימין ‪a /a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪c/c‬‬
‫מכונת טיורינג‬
‫‪q0‬‬
‫תרגיל ‪3‬‬
‫מה מבצעת מכונת טיורינג הבאה?‬
‫ימין ‪1/1‬‬
‫ימין ‪1/1‬‬
‫ימין ‪/$‬‬
‫ימין ‪1/1‬‬
‫ימין ‪/$‬‬
‫ימין ‪/1‬‬
‫ימין ‪/$‬‬
‫ימין ‪/1‬‬
‫ימין ‪/$‬‬
‫תרגיל ‪4‬‬
‫מה מבצעת מכונת טיורינג הבאה מעל }‪?{a,b‬‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫ימין‪X/X,‬‬
‫ימין‪$/$,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫שמאל‪∆/a,‬‬
‫‪q2‬‬
‫‪q4‬‬
‫ימין ‪a/X,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫שמאל‪X/X,‬‬
‫שמאל ‪$/$,‬‬
‫‪q1‬‬
‫שמאל‪∆/$,‬‬
‫‪q0‬‬
‫שמאל ‪$/$,‬‬
‫‪q4‬‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫שמאל‪∆/b,‬‬
‫‪q3‬‬
‫ימין ‪b/X,‬‬
‫ימין‪X/X,‬‬
‫ימין‪$/$,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫ימין ‪├/├,‬‬
‫‪q6‬‬
‫מכונת טיורינג‬
‫© כל הזכויות שמורות‬
‫‪165‬‬
‫כפל ‪x>0 y>0 f(x,y)=x*y‬‬
‫∆∆∆‪├1111111#111$‬‬
‫‪ x‬ו ‪ y‬אונריים ומופרדים ב ‪ #‬ובסוף סימן ‪$‬‬
‫ימין ‪Y/Y‬‬
‫שמאל ‪1/1‬‬
‫שמאל ‪$/$‬‬
‫ימין ‪1/1‬‬
‫ימין ‪$/$‬‬
‫שמאל ‪∆/1‬‬
‫ימין ‪1/1‬‬
‫ימין ‪1/Y‬‬
‫ימין ‪1/X‬‬
‫ימין ‪#/#‬‬
‫שמאל ‪$/$‬‬
‫ימין ‪#/#‬‬
‫ימין ‪X/X‬‬
‫שמאל ‪∆/$‬‬
‫ימין ‪1/1‬‬
‫שמאל ‪Y/1‬‬
‫שמאל ‪1/1‬‬
‫שמאל ‪#/#‬‬
‫פתרון ל ‪9‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל א"ב {‪ } a,b‬ובודקת אם המילה היא‪:‬‬
‫באורך זוגי ומסתיימת ב‪aa -‬‬
‫אם כך המכונה מקבלת אותה‪,‬אחרת יש למחוק את המילה מהסרט‪.‬‬
‫הרעיון‪ :‬בדיקת זוגיות תחילה ולאחר מכן בדיקה ששני האחרונים ‪.a‬‬
‫באם לא זוגי או אין שני ‪ a‬ים הולכים לסוף וחזורים תוך מחיקה‪.‬‬
‫‪a/‬‬
‫שמאל‬
‫‪b/‬‬
‫שמאל‬
‫‪q3‬‬
‫ימין ├‪├/‬‬
‫‪q2‬‬
‫שמאל ‪/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫‪q1‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪b/b‬‬
‫‪q0‬‬
‫שמאל ‪/‬‬
‫‪q5‬‬
‫ימין ‪b/b‬‬
‫‪q5‬‬
‫‪q4‬‬
‫שמאל ‪a/a‬‬
‫שמאל ‪a/a‬‬
‫‪q6‬‬
‫© כל הזכויות שמורות‬
‫‪166‬‬
‫מכונת טיורינג‬
‫פתרון שגוי ראשון‬
‫‪a/‬‬
‫שמאל‬
‫‪b/‬‬
‫שמאל‬
‫‪q3‬‬
‫ימין ├‪├/‬‬
‫‪q2‬‬
‫שמאל ‪/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫‪q1‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫שמאל ‪a/a‬‬
‫‪q0‬‬
‫שמאל ‪/‬‬
‫שמאל ‪a/a‬‬
‫‪q4‬‬
‫‪q5‬‬
‫פתרון שגוי שני‬
‫‪a/‬‬
‫שמאל‬
‫‪b/‬‬
‫שמאל‬
‫‪q3‬‬
‫ימין ├‪├/‬‬
‫‪q2‬‬
‫שמאל ‪/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫‪q1‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫‪q0‬‬
‫שמאל ‪/‬‬
‫‪b/‬‬
‫שמאל‬
‫‪b/‬‬
‫שמאל‬
‫‪q6‬‬
‫שמאל ‪a/a‬‬
‫© כל הזכויות שמורות‬
‫‪167‬‬
‫‪q4‬‬
‫‪q5‬‬
‫שמאל ‪a/a‬‬
‫מכונת טיורינג‬
‫בנה מכונה השמה בסוף הסרט ‪a‬ים כמספר ה ‪a‬ים במילה ולאחריהם ‪b‬ים‬
‫כמספר ה ‪b‬ים במילה תחומים בסימן דולר‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫שמאל ‪$/$,‬‬
‫ימין ‪$/$,‬‬
‫ימין‪b/b,‬‬
‫שמאל‪∆/a,‬‬
‫‪q3‬‬
‫‪q4‬‬
‫ימין ‪a/X‬‬
‫‪q2‬‬
‫שמאל ‪$/$,‬‬
‫ימין‪X/X,‬‬
‫ימין‪b/b,‬‬
‫‪q5‬‬
‫ימין ‪a/a‬‬
‫ימין ‪$/$,‬‬
‫‪q8‬‬
‫ימין ‪b/Y‬‬
‫‪q6‬‬
‫ימין‪X/X,‬‬
‫ימין ‪$/$,‬‬
‫ימין ‪Y/Y‬‬
‫‪q9‬‬
‫ימין‪∆/$,‬‬
‫© כל הזכויות שמורות‬
‫שמאל ‪X/X,‬‬
‫שמאל ‪b/b,‬‬
‫ימין ‪├/├,‬‬
‫שמאל‪∆/b,‬‬
‫‪q7‬‬
‫ימין ‪├/├,‬‬
‫‪q1‬‬
‫שמאל‪∆/$,‬‬
‫‪q0‬‬
‫שמאל ‪$/$,‬‬
‫ימין ‪X/X‬‬
‫שמאל ‪X/X‬‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫‪168‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫מכונת טיורינג‬
‫בנה מכונה השמה בסוף הסרט ‪b‬ים כמספר ה ‪a‬ים במילה ולאחריהם ‪a‬ים‬
‫כמספר ה ‪b‬ים במילה תחומים בסימן דולר)דומה למכונה שמעליה(‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫שמאל ‪$/$,‬‬
‫ימין ‪$/$,‬‬
‫ימין‪b/b,‬‬
‫‪q3‬‬
‫‪q2‬‬
‫שמאל‪∆/b,‬‬
‫‪q4‬‬
‫ימין ‪a/X‬‬
‫שמאל ‪$/$,‬‬
‫ימין‪X/X,‬‬
‫ימין‪b/b,‬‬
‫‪q5‬‬
‫ימין ‪a/a‬‬
‫ימין ‪$/$,‬‬
‫‪q8‬‬
‫ימין ‪b/Y‬‬
‫‪q6‬‬
‫ימין‪X/X,‬‬
‫ימין ‪$/$,‬‬
‫ימין ‪Y/Y‬‬
‫ימין‪∆/$,‬‬
‫© כל הזכויות שמורות‬
‫שמאל ‪X/X,‬‬
‫שמאל ‪b/b,‬‬
‫ימין ‪├/├,‬‬
‫שמאל‪∆/a,‬‬
‫‪q7‬‬
‫ימין ‪├/├,‬‬
‫‪q1‬‬
‫שמאל‪∆/$,‬‬
‫שמאל ‪$/$,‬‬
‫ימין ‪X/X‬‬
‫שמאל ‪X/X‬‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫שמאל‪a/a,‬‬
‫שמאל‪b/b,‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫‪169‬‬
‫‪q9‬‬
‫ימין‪a/a,‬‬
‫ימין‪b/b,‬‬
‫מכונת טיורינג‬
‫‪q0‬‬
‫תבניות במכונת טיורינג‬
‫הוספת דולר בסוף מילה‬
‫מחיקה מילה‬
‫ימין ‪a/‬‬
‫ימין ‪b/‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪a/a‬‬
‫שמאל ‪a/a‬‬
‫ימין ‪/‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫‪/$‬‬
‫ימין ├‪├/‬‬
‫ימין ├‪├/‬‬
‫שמאל‬
‫שמאל ‪/‬‬
‫)כמובן שאם נמצאים על תחילת המילה אזי אין צורך‬
‫בהליכה שמאלה (‬
‫"הליכה לא עוצרת"‬
‫)נעה סביב רווח ראשון(‬
‫"הליכה לא עוצרת"‬
‫)הליכה לאינסוף(‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/b‬‬
‫ימין ‪/‬‬
‫ימין ‪/‬‬
‫שמאל ‪/‬‬
‫על כל ‪ 1‬עד הסימן ‪ $‬הפיכה ל ‪ Y‬והוספת ‪ 1‬בסוף‬
‫ימין ‪Y/Y‬‬
‫שמאל ‪1/1‬‬
‫שמאל ‪$/$‬‬
‫ימין ‪1/1‬‬
‫ימין ‪$/$‬‬
‫שמאל ‪∆/1‬‬
‫© כל הזכויות שמורות‬
‫ימין ‪1/Y‬‬
‫‪170‬‬
‫מכונת טיורינג‬
‫הערות למגן ולבגרות‪-‬דפי סיכום‬
‫אס"ד=שפה רגולרית‬
‫‪ .1‬בדוק מהי המילה הקצרה ביותר המתקבלת בשפה והתחל ממנה את בנית האוטומט‪.‬‬
‫‪ .2‬בדוק האם מילים שאמורות להתקבל מתקבלות אך בדוק גם האם מילים שלא אמורות להתקבל לא‬
‫מתקבלות‪.‬‬
‫‪ .3‬שפה שניתן לבנות לה אוטומט סופי הינה שפה רגולרית‪.‬‬
‫‪ .4‬ראה כי הינך מבין מהו ‪ :‬משלים היפוך חיתוך איחוד שרשור הכלה וחיסור שפות‪.‬‬
‫‪ .5‬אם יש תנאי או‪/‬גם והינך מתקשה לבנות את האוטומט העזר בטכניקה של אוטומט מכפלה‪.‬‬
‫סגירות שפות רגולריות‬
‫השפות הרגולריות סגורות ל משלים היפוך חיתוך איחוד שרשור‪.‬‬
‫‪ .6‬שרשור שפה ריקה לכל שפה שהיא יוצר שפה ריקה‪.‬‬
‫‪ .7‬שרשור מילה ריקה לכל שפה ‪ L‬נותנת ‪. L‬‬
‫‪ .8‬נא להבדיל בין שרשור שפה לשפה לשרשור מילה בשפה לאותה מילה בשפה‪.‬‬
‫‪ .9‬כשנאמר תאר מה השפה הנוצרת יש לרשום זאת באופן הפשוט והברור ביותר‪.‬‬
‫‪ .10‬ב ‪ L‬או ב ‪ ) L‬משלים של ‪ ( L‬חייבת להופיע המילה הריקה‪.‬‬
‫‪ L U L .11‬הינו אוסף כל המילים האפשריות‪.‬‬
‫תבנית להוכחת רגולריות של שפה הבנויה מתנאים מורכבים‬
‫נתונה השפה ‪ L‬מעל הא"ב { } המקיימת את התנאים הבאים‪" :‬התנאים"‬
‫הוכח שהשפה רגולרית‪.‬‬
‫הוכחה‬
‫ננגדיר את השפות הבאות ונבנה אוטומט לכל שפה‬
‫=‪ L1‬הינה שפה מעל }{ המקיימת את תנאי א‬
‫=‪ L2‬הינה שפה מעל }{ המקיימת את תנאי ב‬
‫=‪ L3‬הינה שפה מעל }{ המקיימת את תנאי ג‬
‫********‬
‫‪L3…….‬‬
‫פעולה ‪ L2‬פעולה ‪L=L1‬‬
‫)במילה פעולה אנו מתכוונים לחיתוך או איחוד או משלים או שרשור או היפוך(‬
‫אנו רואים כי ניתן לבטא את ‪ L‬בעזרת השפות שבנינו‪.‬‬
‫מסגירות משפחת השפות הרגולריות לפעולות החיתוך‪ ,‬איחוד‪ ,‬שרשור‪ ,‬משלים והיפוך‬
‫נובע ש ‪ L‬רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪171‬‬
‫דפי סיכום‬
‫תבנית הוכחה לשפה אי רגולרית‬
‫} {=‪L‬‬
‫הוכח שהשפה אינה רגולרית‬
‫הוכחה‬
‫הוכחה בדרך השלילה‪.‬‬
‫נניח שהשפה רגולרית וקיים אוטומט סופי דטרמיניסטי ‪ A‬הבונה אותה‪.‬‬
‫)בחלק מהמקרים ניתן לבחור בשלב זה תת קבוצה(‬
‫בואו ונבחן את הקבוצה האינסופית הבאה‪:‬‬
‫}‪ W = {w1 , w2 , w3 ,...‬התחלות של מילים בשפה ‪.L‬‬
‫כיוון ש ‪ W‬אינסופית חייבים להיות בה לפחות שתי מילים שונות‬
‫‪wj , wi‬‬
‫‪wi‬‬
‫כך ש‪ ( =,≠,<,>) i ? J -‬מתוך הקבוצה ‪ W‬המגיעות לאותו מצב שאם לא‬
‫כן אזי היה צורך באינסוף מצבים‪.‬‬
‫‪q0‬‬
‫נסמן את המצב המשותף של שתי המילים ב ‪ q1‬באוטומט‪.‬‬
‫‪q1‬‬
‫‪wj‬‬
‫המילה ‪ wi‬שייכת לשפה לכן‬
‫‪ q2‬מצב מקבל והמילה ‪wiw‬‬
‫מתקבלת‪.‬‬
‫יוצא שגם ‪wj w -‬‬
‫מתקבלת‬
‫בשפה )המסלול מ ‪ q1‬ל ‪ q2‬משותף לשתי המילים(‪ ,‬וזה בניגוד לכללי‪/‬חוקי השפה‪.‬‬
‫‪wi‬‬
‫‪q2‬‬
‫‪w‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪w2‬‬
‫לכן ההנחה שהנחנו ששתי המילים מגיעות למצב משותף אינה נכונה ‪ ,‬אלא כל מילה מגיעה למצב אחר‪.‬‬
‫ומאחר והקבוצה ‪ W‬היא אינסופית יוצא שכל מילה מגיע למצב אחר ‪ .‬ומכאן שיש אינסוף מצבים ב‪, A -‬‬
‫בניגוד להגדרת אוטומט סופי‪.‬‬
‫לכן ההנחה שקיים אוטומט סופי הבונה את השפה ‪ L‬אינה נכונה‪ ,‬והשפה אינה רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪172‬‬
‫דפי סיכום‬
‫אוטומט מחסנית=שפה חופשית הקשר‬
‫‪ .12‬שפה שניתן לבנות לה אוטומט מחסנית הינה חופשית הקשר‪.‬‬
‫‪ .13‬ניתן להכניס למחסנית יותר מתו אחד להוציא מותר רק אחד‪.‬‬
‫‪ .14‬כל שפה רגולרית הינה גם חופשית הקשר‪.‬‬
‫‪ .15‬המחסנית לא חייבת להיות ריקה כאשר המילה מתקבלת‪.‬‬
‫‪ .16‬כוחו של אוטומט מחסנית לא דטרמיניסטי רב יותר מכוחו של אוטומט מחסנית דטרמיניסטי‪.‬‬
‫‪.17‬‬
‫‪a nb m‬‬
‫‪n,m0‬‬
‫אין פירושו ש ‪ n‬צריך להיות שונה מ ‪m‬‬
‫‪ .18‬משפחת השפות חופשיות ההקשר סגורה תחת הפעולות איחוד‪ ,‬שירשור‪ ,‬היפוך ‪,‬חיתוך עם שפה‬
‫רגולרית‪.‬‬
‫‪ .19‬כאשר בחזקה יש סימן מינוס יש לבצע הצבה‪ .‬דוגמה‪ anbn-mcm :‬נציב ‪ k=n-m‬מכאן נובע ‪ n=k+m‬ונקבל‬
‫‪ ak+mbkcm‬ואת זה פותרים כרגיל‪.‬‬
‫תבנית להוכחת שפה חופשית הקשר הבנויה מתנאים מורכבים‬
‫נתונה השפה ‪ L‬מעל הא"ב { } המקיימת את התנאים הבאים‪" :‬התנאים"‬
‫הוכח שהשפה חופשית הקשר‪.‬‬
‫הוכחה‬
‫ננגדיר את השפות הבאות ונבנה אוטומט מחסנית לכל שפה‬
‫=‪ L1‬הינה שפה מעל }{ המקיימת את תנאי א‬
‫=‪ L2‬הינה שפה מעל }{ המקיימת את תנאי ב‬
‫=‪ L3‬הינה שפה מעל }{ המקיימת את תנאי ג‬
‫*‬
‫*‬
‫‪L3…….‬‬
‫פעולה ‪ L2‬פעולה ‪L=L1‬‬
‫)במילה פעולה אנו מתכוונים לאיחוד או שרשור או היפוך או חיתוך עם שפה רגולרית(‬
‫אנו רואים כי ניתן לבטא את ‪ L‬בעזרת השפות שבנינו‪.‬‬
‫מסגירות משפחת השפות חופשיות ההקשר לפעולות האיחוד‪ ,‬שרשור והיפוך‬
‫נובע ש ‪ L‬חופשית הקשר‬
‫© כל הזכויות שמורות‬
‫‪173‬‬
‫דפי סיכום‬
‫מכונת טיורינג‬
‫‪ .20‬ראה כי הינך מבין מהי מכונת טיורינג שאינה נעצרת‪.‬‬
‫‪ .21‬לכל שפה רגולרית או שפה חופשית הקשר ניתן לבנות מכונת טיורינג‪.‬‬
‫‪ .22‬לא ניתן לשנות את סימן ראש הסרט )הפעולה היחידה המותרת על ראש הסרט הינה ימינה ├ ‪)├ /‬‬
‫‪ .23‬מצב מקבל לפי תוכנית הלימודים קיימת מוסכמה שבכל מכונת טיורינג יש מצב מקבל‪:‬‬
‫באם המכונה בודקת האם מילה שייכת לשפה הרי מצב מקבל == אכן המילה משתייכת לשפה‪.‬‬
‫למשל האם המילה ‪ aabbcc‬שייכת לשפה ‪anbncn‬‬
‫באם המכונה מבצעת משהו למשל אם אורך המילה איזוגי מוסיפה ‪ a‬בסוף המילה אזי מצב מקבל == סיימנו את‬
‫המשימה ובצענו אותה בהצלחה‪.‬‬
‫בהמשך יש שאלות דוגמה לנושאים שונים‬
‫© כל הזכויות שמורות‬
‫‪174‬‬
‫דפי סיכום‬
‫אס"ד=שפה רגולרית‬
‫בנה אוטומט מעל המספרים ‪ 0‬עד ‪ 9‬המקבל את כל המספרים המתחלקים ב ‪ 5‬ללא שארית‬
‫(דוגמה ‪)010 125‬‬
‫‪0,5‬‬
‫‪0,5‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪1,2,3,4,6,7,8,9‬‬
‫‪1,2,3,4,6,7,8,9‬‬
‫אוטומט לא דטרמיניסטי‬
‫לכל אוטומט לא דטרמיניסטי ניתן לבנות אוטומט דטרמיניסטי‬
‫אוטומט לא דטרמיניסטי מעל }‪ {01,2,‬של המילים שהאות לפני האחרונה ‪1‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫אוטומט לא דטרמיניסטי מעל }‪ {01,2,‬של המילים המסתיימות ב ‪10‬‬
‫‪0,1,2‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫אוטומט לא דטרמיניסטי מעל }‪ {01,2,‬של המילים המכילות ‪111‬‬
‫‪0,1,2‬‬
‫‪0,1,2‬‬
‫‪q3‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪q0‬‬
‫דפי סיכום‬
‫© כל הזכויות שמורות‬
‫‪175‬‬
‫אוטומט מכפלה (חתולים כלבים ועכברים)‬
‫בתהלוכה שבה משתתפים עכברים חתולים וכלבים מתקיימים החוקים הבאים‪.‬‬
‫התהלוכה מתחילה בכלב‪.‬‬
‫אסור חתול שמשמאלו וימינו יהיו כלבים‪.‬‬
‫בנה אוטומט סופי מתאים‪.‬‬
‫חייבת להתחיל בכלב‬
‫אסור חתול בין שני כלבים‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪q6‬‬
‫חתול‬
‫עכבר‬
‫כלב‬
‫‪q5‬‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫כלב‬
‫חתול‬
‫כלב‬
‫‪q4‬‬
‫‪q3‬‬
‫‪q1‬‬
‫כלב‬
‫‪q0‬‬
‫עכבר‬
‫חתול‬
‫עכבר‬
‫חתול‬
‫עכבר‬
‫‪q2‬‬
‫בנית הטבלה‬
‫עכבר‬
‫‪q2 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫חתול‬
‫כלב‬
‫‪q2 q3‬‬
‫‪q1 q5‬‬
‫‪q1 q3‬‬
‫‪q1 q3‬‬
‫‪q1 q4‬‬
‫‪q1 q4‬‬
‫‪q1 q6‬‬
‫‪q1 q4‬‬
‫‪q0 q3‬‬
‫‪q1 q4‬‬
‫‪q1 q5‬‬
‫‪q1 q3‬‬
‫האוטמט‬
‫כלב‬
‫‪14‬‬
‫כלב‬
‫עכבר כלב חתול‬
‫‪13‬‬
‫חתול‬
‫עכבר‬
‫‪15‬‬
‫חתול‬
‫עכבר‬
‫© כל הזכויות שמורות‬
‫‪03‬‬
‫חתול‬
‫עכבר‬
‫כלב‬
‫‪2,3‬‬
‫‪1,6‬‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫‪176‬‬
‫דפי סיכום‬
‫עכבר‬
‫חתול‬
‫כלב‬
‫הוכח שהשפה ‪ L‬מעל }‪ {a,b,c‬שבה כל מילה (מתחילה ב ‪ a‬או‬
‫מסתיימת ב ‪ ) c‬ואינה מכילה את הרצף ‪ bb‬רגולרית‪.‬‬
‫פתרון‬
‫נגדיר את השפות הבאות ונבנה אוטומט לכל שפה‪.‬‬
‫‪ L1‬כל המילים המתחילות ב ‪a‬‬
‫‪ L2‬כל המילים המסתיימות ב ‪c‬‬
‫‪ L3‬כל המילים המכילות ‪bb‬‬
‫‪ L1‬כל המילים המתחילות ב ‪a‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪b,c‬‬
‫‪ L2‬כל המילים המסתיימות ב ‪c‬‬
‫‪a,b,c‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫‪ L3‬כל המילים המכילות ‪bb‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a,c‬‬
‫‪a,b,c‬‬
‫השפה המבוקשת ‪ L‬הינה‬
‫‪L  ( L1  L2)  L3‬‬
‫מסגירות משפחת השפות הרגולריות לפעולת החיתוך‪,‬איחוד‪,‬משלים )*( נובע ש ‪ L‬רגולרית‬
‫* אם משתמשים גם בשרשור אז יש להוסיף את המילה שרשור‪.‬‬
‫* אם משתמשים גם בהיפוך אז יש להוסיף את המילה היפוך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪177‬‬
‫דפי סיכום‬
‫‪a,c‬‬
‫אוטומט מחסנית=שפה חופשית הקשר‬
‫(שפה חופשית הקשר נקראת גם שפה חסרת הקשר)‬
‫‪L=an+1b3n n0‬‬
‫בנה אוטומט מחסנית לשפה‬
‫נציב את ה ‪ n‬הנמוך ביותר ונקבל את‬
‫המילה ‪ a‬מכאן נובע‬
‫המילה הקצרה ביותר ‪a‬‬
‫הרעיון‪:‬‬
‫על ה ‪ a‬הראשונה לא נבצע מאומה‬
‫על כל ‪ a‬נוסף נדחוף ‪AAA‬‬
‫על כל ‪ b‬נשלוף ‪A‬‬
‫דחוף ‪aA | AAA‬‬
‫ללש |┴‪a‬‬
‫דחוף ‪a┴ | SAA‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bS|S‬‬
‫שלוף ‪bA | A‬‬
‫הוכח שהשפה ‪ L‬מעל }‪L=anbmckczdz {a,b,c,d‬‬
‫‪n,m,k,z>0,k≥n+m‬‬
‫חופשית הקשר‪.‬‬
‫נגדיר את השפות הבאות ונבנה אוטומט מחסנית לכל שפה‪.‬‬
‫‪n m k‬‬
‫‪b c‬‬
‫‪L2=c d‬‬
‫‪n,m,k>0,k≥n+m‬‬
‫‪L1=a‬‬
‫‪z z‬‬
‫‪z>0‬‬
‫ללש|┴‪c‬‬
‫דחוף ‪aA| A‬‬
‫דחוף ‪bA| A‬‬
‫שלוף ‪cA|A‬‬
‫שלוף ‪cS|S‬‬
‫שלוף ‪cA|A‬‬
‫דחוף ‪aS | A‬‬
‫‪Q1‬‬
‫שלוף ‪bS|S‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪a┴ | S‬‬
‫שלוף ‪bA| A‬‬
‫‪q2‬‬
‫דחוף ‪A┴| S‬‬
‫‪L2‬‬
‫‪q0‬‬
‫שלוף ‪bS| S‬‬
‫‪q3‬‬
‫‪L=L1*L2‬‬
‫מסגירות משפחת השפות חופשיות ההקשר לפעולת השרשור נובע ש ‪ L‬חופשית הקשר‪.‬‬
‫© כל הזכויות שמורות‬
‫‪L1‬‬
‫‪178‬‬
‫דפי סיכום‬
‫מכונת טיורינג‬
‫בנה מכונת טיורינג הבודקת האם מילה שייכת לשפה }‪L={ L=anbnck |k>=n‬‬
‫ימין ‪X /X‬‬
‫ימין ‪Z/Z‬‬
‫ימין ‪b/b‬‬
‫‪q3‬‬
‫שמאל ‪c/Z‬‬
‫‪q2‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪a/a‬‬
‫ימין ‪b/Y‬‬
‫‪q1‬‬
‫ימין ‪a/X‬‬
‫‪q0‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪/‬‬
‫שמאל ‪Z/Z‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪Y/Y‬‬
‫שמאל ‪a/a‬‬
‫‪q5‬‬
‫‪q4‬‬
‫ימין ‪/‬‬
‫ימין ‪c/Z‬‬
‫ימין ‪Y/Y‬‬
‫ימין ‪c/Z‬‬
‫© כל הזכויות שמורות‬
‫‪179‬‬
‫‪q6‬‬
‫ימין ‪Z/Z‬‬
‫דפי סיכום‬
‫בנה מכונת טיורינג המבצעת ‪ x f(x)=2x‬מספר אונרי‬
‫∆‪├111‬‬
‫הקלט הינו במבנה הבא‬
‫הרעיון ‪ :‬תחילה לשים ‪ $‬לאחר ה ‪...111‬‬
‫לאחר מכן על כל אחד שנהפוך אותו ל ‪ X‬נחליף ‪ 2‬רווחים ל ‪ 2‬אחדים‬
‫לבסוף נוסיף ‪$‬‬
‫המטרה ‪ :‬לקבל תוצאה תחומה בין שני סימני דולר‬
‫‪$111111$‬‬
‫מקרים שכדאי לבדוק ‪ x :‬שווה לאפס‪.‬‬
‫ימין ‪X/X‬‬
‫שמאל ‪$/$‬‬
‫שמאל ‪1/1‬‬
‫שמאל ‪∆/1‬‬
‫הוספת ‪ $‬בסוף המילה‬
‫ימין ‪$/$‬‬
‫ימין ‪1/1‬‬
‫ימין ‪∆/1‬‬
‫שמאל ‪1/1‬‬
‫ימין ‪1/X‬‬
‫ימין ├‪├/‬‬
‫ימין ‪$/$‬‬
‫החלפת ‪ 2‬רווחים ל ‪ 2‬אחדים‬
‫ימין ‪∆/$‬‬
‫ימין ‪1/1‬‬
‫הוספת ‪ $‬בסוף המילה‬
‫© כל הזכויות שמורות‬
‫‪180‬‬
‫דפי סיכום‬
‫ימין ‪1/1‬‬
‫שמאל ‪∆/$‬‬
‫סוגי שאלות (לא מלא)‬
‫‪ .1‬שפה רגולרית‬
‫‪ .1.1‬אוטומט סופי דטרמיניסטי‬
‫‪ .1.2‬אוטומט לא מלא‬
‫‪ .1.3‬אוטומט לא דטרמיניסטי‬
‫‪ .1.4‬הוכחת רגולריות בעזרת חוקי סגירות שפות רגולריות‪.‬‬
‫‪ .1.5‬ציור אוטומט‪/‬תאור אוטומט בעזרת טבלה‬
‫‪ .1.6‬מה עושה אוטומט נתון‬
‫‪ .1.7‬שקילות אוטומטים‬
‫‪ .1.8‬אוטומט מכפלה ככלי לפירוק בעיה לתתי בעיות והוכחת סגירות חיתוך ומשלים‬
‫‪ .2‬שפה חופשית הקשר‬
‫‪ .2.1‬אוטומט מחסנית‬
‫‪ .2.2‬אוטומט מחסנית לא דטרמיניסטי‬
‫‪ .2.3‬מה עושה אוטומט מחסנית נתון‬
‫‪ .2.4‬הוכחת שפה חופשיתסגירות שפות חופשיות הקשר‬
‫‪ .3‬מכונת טיורינג‬
‫‪ .3.1‬בנית מכונה לבדיקת תקינות שפה‬
‫‪ .3.2‬מכונה המבצעת פונקציה‬
‫‪ .3.3‬מה עושה מכונת טיורינג נתונה‬
‫‪ .3.4‬מעקב‬
‫© כל הזכויות שמורות‬
‫‪181‬‬
‫כללי‬
‫בגרויות‬
‫מהבגרויות הושמטו החלקים שאינם שייכים לתוכנית הלימודים החדשה‬
‫תשמ"ז‬
‫תאר באמצעות גרף וטבלה אוטומט סופי דטרמיניסטי שיקבל את כל המחרוזות מעל לא"ב )‪ (a,b,c‬המקיימות את שני‬
‫התנאים הבאים‪:‬‬
‫‪‬‬
‫מופיע בהו ‪ abaab‬כתת מחרוזת‪.‬‬
‫‪‬‬
‫הן אינן מסתיימות ב ‪.c‬‬
‫לדוגמא ‪acabaabcab :‬‬
‫לא תתקבלנה‬
‫תתקבל ‪aaaacb abaabc‬‬
‫תחילה נבנה את השרשרת המובילה למצב מקבל‪.‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫נשלים את האוטומט‬
‫‪b‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪q5‬‬
‫‪c‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪b,c‬‬
‫‪a‬‬
‫‪c‬‬
‫‪q0‬‬
‫‪a,b‬‬
‫‪b,c‬‬
‫‪c‬‬
‫‪q6‬‬
‫‪c‬‬
‫‪c‬‬
‫את טבלה עליך לרשום‪.‬‬
‫© כל הזכויות שמורות‬
‫‪182‬‬
‫בגרויות‬
‫טיורינג‬
‫תשמ"ח‬
‫תאר באמצעות גרף אוטומט סופי דטרמיניסטי שיקבל את כל המחרוזות מעל לא"ב {‪ }0,1‬המקיימת את שני‬
‫התנאים ‪:‬‬
‫‪‬‬
‫מופיעה בהן ‪ 000‬כתת מחרוזת בדיוק פעם אחת‪.‬‬
‫‪‬‬
‫אין בהן כלל מופעים של ‪ 00‬פרט לאלה שבמופע של ‪.000‬‬
‫‪‬‬
‫דגמה‪:‬‬
‫ו ‪000111101‬‬
‫ו ‪100011001‬‬
‫המחרוזות ‪0110100011101‬‬
‫‪0101011‬‬
‫המחרוזות‬
‫תתקבלנה‬
‫לא תתקבלנה‬
‫פתרון‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0,1‬‬
‫תשמ"ח‬
‫‪1 0 1‬‬
‫‪0‬‬
‫‪M1‬‬
‫‪0‬‬
‫‪1 0 1‬‬
‫‪M1‬‬
‫‪S0 S2 S2 1 0‬‬
‫‪S0 S2 S2 1 0‬‬
‫‪S1 S2 S2 0 0‬‬
‫‪S1 S2 S2 0 0‬‬
‫‪S2 S0 S0 1 0‬‬
‫‪S2 S0 S0 1 0‬‬
‫‪S3 S0 S0 0 0‬‬
‫‪S4 S1 S1 0 0‬‬
‫א‪ .‬שרטט גרף מצבים של האוטומטים ‪ . M1 M2‬האם יש קשר מיוחד בין שני האוטומטים‪ ?.‬הסבר‪.‬‬
‫© כל הזכויות שמורות‬
‫‪183‬‬
‫בגרויות‬
‫טיורינג‬
‫תשמ"ט‬
‫תאר באמצעות גרף אוטומט סופי דטרמיניסטי שיקבל את כל המחרוזות מעל ל א"ב {‪{a,b,c‬‬
‫המקיימות את התנאי הבא ‪:‬‬
‫יש במחרוזת ‪ 2‬מופעים עוקבים של ‪ bc‬שביניהם אין יותר ממופע אחד של‬
‫‪ a‬דוגמה‪bccbcacabbca :‬‬
‫‪ cabbcacabcabc‬מתקבלים ‪babcaabbacbcc abcacabcabaabc‬‬
‫‪a,b,c‬‬
‫לא תתקבלנה‬
‫‪b‬‬
‫‪a,c‬‬
‫‪b‬‬
‫‪c‬‬
‫‪b‬‬
‫‪c‬‬
‫‪a‬‬
‫‪c‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫© כל הזכויות שמורות‬
‫‪184‬‬
‫בגרויות‬
‫טיורינג‬
‫תשן‬
‫א‪ .‬תאר במילים את השפה המוגדרת על ידי האוטומט הבא‪:‬‬
‫‪a‬‬
‫‪b‬‬
‫‪S1‬‬
‫‪S0‬‬
‫‪ S0‬מקבל‬
‫‪S1‬‬
‫‪S0‬‬
‫‪ S1‬מקבל‬
‫‪S2‬‬
‫‪S2‬‬
‫‪S2‬‬
‫תשנב‬
‫‪b‬‬
‫‪b‬‬
‫א‪ .‬תאר במילים מהי השפה המתקבלת על ידי האוטומט הבא‪:‬‬
‫‪a‬‬
‫ב‪ .‬רשום אוטומט סופי דטרמיניסטי‪ ,‬שיקבל את כל המחרוזות‬
‫מעל ה א"ב } ‪ { a,b‬המכילות ‪ aa‬או ‪bb‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫פתרון‬
‫א‪ .‬המילים המתקבלות ‪ :‬כל המילים שמספר ‪ a‬ים שארית ‪ 3‬שווה ‪.0‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪185‬‬
‫‪b‬‬
‫‪b‬‬
‫בגרויות‬
‫טיורינג‬
‫תשנג‬
‫א‪ .‬בנה אוטומט סופי דטרמיניסטי‪ ,‬המקבל את אוסף המחרוזות מעל }‪ {0,1‬המתחילות ומסתיימות ב ‪0‬‬
‫ומכילות מספר זוגי של ‪ 1‬ים‪ 0 ) .‬פעמים הוא מספר זוגי(‪.‬‬
‫פתרון‬
‫א‪ .‬האוטומט‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0,1‬‬
‫תשנד‬
‫א‪ .‬בנה אוטומט סופי דטרמיניסטי המקבל את אוסף כל המילים מעל ה א"ב{‪ {a,b,c‬שבהן מופיע גם ‪ a‬וגם ‪. b‬‬
‫פתרון‬
‫האוטומט‬
‫‪a,c‬‬
‫‪c‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a,b,c‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b,c‬‬
‫תשנ"ה‬
‫את כל המחרוזות מעל }‪ {a,b‬ניתן לחלק לשתי קבוצות זרות זו לזו שתיקראנה "שפה א" ו "שפה ב"‪ .‬לפניך‬
‫אוטומט שמקבל את "שפה א"‬
‫‪a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫א‪ .‬תאר מילולית מהי "שפה א"‪.‬‬
‫ב‪ .‬בנה אוטומט סופי דטרמיניסטי המקבל את "שפה ב"‬
‫פתרון‬
‫א‪ .‬השפה מקבלת כל מילה שאין בה ‪b 2‬ים ברצף ומסתיימת ב ‪.a‬‬
‫‪a,b‬‬
‫‪a‬‬
‫ב‪ .‬מצב מקבל הופך ללא מקבל ולהפך‪.‬‬
‫‪b‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪186‬‬
‫בגרויות‬
‫טיורינג‬
‫‪a‬‬
‫תשנ"ט ‪22‬‬
‫א‪ .‬בנה אוטומט סופי דטרמיניסטי‪ ,‬המקבל את אוסף המילים מעל הא"ב }‪ {a,b‬ובהן לפחות שני ‪ a‬ולכל‬
‫היותר ‪ b‬אחד‪.‬‬
‫‪a‬‬
‫פתרון‬
‫‪a‬‬
‫א‪ .‬האוטומט הלא מלא‪:‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫תש"ס‬
‫תש"ס ‪24‬‬
‫האם השפה שלפניך היא רגולרית? הוכח‬
‫}‪ k i,j,k ≥0‬היא השארית המתקבלת מחלוקת ‪ i‬בשלוש | ‪L={aibjck‬‬
‫תש"ס ‪25‬‬
‫האם השפה שלפניך חופשית הקשר? הוכח‬
‫}‪i,j ≥1‬‬
‫‪ i‬זוגי‬
‫‪ j‬אי זוגי | ‪L={aibjci/2‬‬
‫תש"ס ‪26‬‬
‫‪ M‬אוטומט סופי דטרמיניסטי לא מלא‪ .‬נסמן ב ‪ L‬את השפה המתקבלת על ידי ‪ .M‬נבנה אוטומט '‪ M‬מתוך ‪M‬‬
‫באופן הזה‪ :‬האוטומט '‪ M‬יהיה זהה לאוטומט ‪ M‬אבל כל מצב שהוא מצב מקבל של ‪ M‬יהפוך למצב שאינו‬
‫מקבל ב '‪ M‬וכל מצב שאינו מקבל ב ‪ M‬יהפוך למצב מקבל ב '‪.M‬‬
‫נסמן ב '‪ L‬את השפה המתקבלת על ידי '‪.M‬‬
‫א‪ .‬האם '‪ L‬מוכל שווה למשלים של ‪ ?L‬נמק‪.‬‬
‫ב‪ .‬האם משלים של ‪ L‬מוכל שווה ל '‪ ? L‬נמק‪.‬‬
‫ג‪ .‬האם '‪ L‬שווה ‪ ?L‬נמק‪.‬‬
‫© כל הזכויות שמורות‬
‫‪187‬‬
‫בגרויות‬
‫טיורינג‬
‫תש"ס ‪27‬‬
‫‪ M‬מכונת טיורינג‪ .‬א"ב הקלט הוא }‪ .{a,b‬א"ב המכונה הוא ‪ .Ø‬קבוצת המצבים הינה }‪.{q0,q1,q2‬‬
‫המצב ההתחלתי הינו ‪ .q0‬קבוצת המצבים המקבלים הינה }‪.{q2‬‬
‫קבוצת המעברים הינה‪:‬‬
‫}ימין‪{q0,a,q0,a,‬‬
‫}ימין‪{q0,b,q0,b,‬‬
‫}שמאל‪{q0,∆,q1,∆,‬‬
‫}שמאל‪{q1,a,q1,∆,‬‬
‫}ימין‪{q1,b,q1,b,‬‬
‫} שמאל‪{q1, ∆,q0, ∆,‬‬
‫} ימין‪{q1, ├,q2,├,‬‬
‫א‪ .‬לפניך שתי מילים‪aaaa abbaa :‬‬
‫קבע עבור כל מילה אם היא מתקבלת על ידי המכונה ‪?M‬‬
‫א‪ .‬מהי השפה המתקבלת על ידי המכונה ‪?M‬‬
‫ב‪ .‬האם המכונה עוצרת לכל מילת קלט? אם כן – נמק‪ ,‬אם לא‪-‬בנה מכונת טיורינג שתעצור לכל קלט ותקבל‬
‫אותה השפה‪.‬‬
‫תשס"א‬
‫תשס"א ‪11‬‬
‫בנה אוטומט סופי דטרמיניסטי עבור השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫}‪L={aibjak | i,j,k >0, i % 2 =0, ( j+k) % 2=1‬‬
‫פתרון‬
‫‪a,b‬‬
‫האוטומט‪:‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪188‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"א ‪13‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫{ ‪L= { an+kbncf | 0< n,k,f‬‬
‫הוכח שהשפה ‪ L‬חופשית הקשר‪.‬‬
‫פתרון‬
‫על מנת להוכיח שהשפה חופשית הקשר צריך לבנות לה אוטומט מחסנית או לפרק אותה לשפות ולהראות‬
‫בניה שלה על פי החוקים‪ .‬אנו פשוט נבנה אוטומט מחסנית‪.‬‬
‫ללש |‪cA‬‬
‫ללש |‪cS‬‬
‫שלוף ‪bA|A‬‬
‫‪q3‬‬
‫ללש |‪cA‬‬
‫ללש |‪cS‬‬
‫דחוף ‪aA| A‬‬
‫שלוף ‪bA|A‬‬
‫‪q2‬‬
‫דחוף ‪a┴| S‬‬
‫‪q1‬‬
‫‪q0‬‬
‫מספר ה ‪a‬ים לפחות ‪.2‬‬
‫תשס"א ‪14‬‬
‫קבע לכל אחת מהשפות אם היא רגולרית או לא רגולרית‪:‬‬
‫{ ‪ W‬ו ‪ X‬מילים מעל הא"ב }‪| {a‬‬
‫)‪L1= { WcXcR(W‬‬
‫{ ‪ W‬ו ‪ X‬מילים מעל הא"ב }‪| {a,b‬‬
‫)‪L2= { WcXcR(W‬‬
‫{ ‪ W‬ו ‪ X‬מילים מעל הא"ב }‪L3= { WR(W)cXR(X) | {a‬‬
‫{ ‪ W‬ו ‪ X‬מילים מעל הא"ב }‪L4= { WR(W)cXR(X) | {a,b‬‬
‫{ ‪ W‬ו ‪ X‬מילים מעל הא"ב }‪| {a‬‬
‫‪L5= { WcR(W)cW‬‬
‫א‪ .‬העתק את שמות השפות ‪ L1‬עד ‪ L5‬למחברתך ורשום ליד כל שפה האם היא רגולרית‪ ,‬חופשית‬
‫הקשר ולא רגולרית‪ ,‬אינה חופשית הקשר‪.‬‬
‫ב‪ .‬מבין שפות אלה בחר אחת שהיא חופשית הקשר ולא רגולרית והוכח שהשפה בחרת חופשית‬
‫הקשר‪ .‬אם יש יותר משפה אחת כזו בחר באחת מהן כרצונך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪189‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"א ‪15‬‬
‫התבונן בשפות שלפניך‪:‬‬
‫‪n,m ≥0‬‬
‫|‬
‫‪L1 = {anbm‬‬
‫‪ k‬היא השארית המתקבלת מחלוקת ‪ n‬ב ‪,3‬‬
‫‪ t‬היא השארית המתקבלת מחלוקת ‪ m‬ב ‪,3‬‬
‫} ‪k>t‬‬
‫|‬
‫‪n,m ≥0‬‬
‫‪L2 = {anbman‬‬
‫‪ k‬היא השארית המתקבלת מחלוקת ‪ n‬ב ‪,3‬‬
‫‪ t‬היא השארית המתקבלת מחלוקת ‪ m‬ב ‪,3‬‬
‫} ‪k=t‬‬
‫‪n,m ≥0‬‬
‫‪m ≥n‬‬
‫|‬
‫‪L3 = {anbm‬‬
‫‪ k‬היא השארית המתקבלת מחלוקת ‪ n‬ב ‪,3‬‬
‫‪ t‬היא השארית המתקבלת מחלוקת ‪ m‬ב ‪,3‬‬
‫} ‪k=t‬‬
‫}‪ m‬זוגי‬
‫‪ n‬אי זוגי‬
‫‪n,m ≥0‬‬
‫|‬
‫‪L4 = {anbman‬‬
‫ג‪ .‬העתק את שמות השפות ‪ L1‬עד ‪ L4‬למחברתך ורשום ליד כל שפה האם היא רגולרית או אינה‬
‫רגולרי‪.‬‬
‫ד‪ .‬מבין שפות אלה בחר אחת שאינה רגולרית והוכח שאינה רגולרית‪ .‬אם יש יותר משפה אחת כזו‬
‫בחר באחת מהן כרצונך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪190‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"א ‪16‬‬
‫נתונה השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫‪ j+k‬אי זוגי ‪L= { aibjak | 0< i,j ,‬‬
‫{ ‪ i‬זוגי‬
‫הוכח שהשפה ‪ L‬רגולרית בהסתמך על כך שהשפות ‪ L1-L6‬רגולריות‬
‫{ ‪L1= { ai | 0< i‬‬
‫{ ‪L2= { bi | 0< i‬‬
‫{ ‪ w‬מכילה מספר זוגי של אותיות ‪ a‬ומספר זוגי של אותיות ‪L3= { w | b‬‬
‫{ ‪ w‬מכילה מספר אי‪-‬זוגי של אותיות ‪ a‬ומספר אי‪-‬זוגי של אותיות ‪L4= { w | b‬‬
‫{ ‪ w‬מכילה מספר זוגי של אותיות ‪ a‬ומספר אי‪-‬זוגי של אותיות ‪L5= { w | b‬‬
‫{ ‪ w‬מכילה מספר אי‪-‬זוגי של אותיות ‪ a‬ומספר זוגי של אותיות ‪L6= { w | b‬‬
‫אין חובה להשתמש בכל השפות האלה אך אין להשתמש בשפות שאינן מוזכרות‪.‬‬
‫הפתרון‬
‫{‬
‫))‪L= { (L1∩L3) * (((L2*L1) ∩(L3υL6‬‬
‫תשס"ב ‪13‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫{ ‪ k‬מתחלק ב ‪ 3‬ללא שארית‪L= { ambnck | 0<m , m<n , k=n-m ,‬‬
‫הוכח שהשפה ‪ L‬הינה חופשית הקשר)בנה אוטומט מחסנית שיקבל את השפה ‪.( L‬‬
‫פתרון (חלקי‪-‬השלם)‬
‫נתון ‪k=n-m‬‬
‫נעביר אגף ונקבל ‪ m+k=n‬נציב ונקבל‬
‫‪L= ambm+kck= ambmbkck‬‬
‫‪ m<n‬גורר שקיים לפחות ‪ c‬אחד שאז מספר ה ‪b‬ים יהיה גדול ממספר ה ‪a‬ים‪.‬‬
‫‪ 0 < m‬גורר שקיים לפחות ‪ a‬אחד ‪.‬‬
‫© כל הזכויות שמורות‬
‫‪191‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ב ‪14‬‬
‫לפניך מכונת טיורינג‪ .‬המכונה מקבלת כנתונים שני מספרים אי‪-‬שליליים)יתכן ‪ (0‬הכתובים באונארית‬
‫בהתאם לשיטת הרישום המקובלת‪.‬‬
‫ה‪ .‬מה יכיל הסרט לאחר מעבר על קלט של שני המספרים ‪ 2‬ואחריו ‪ ?3‬הראה מעקב אחר סרט‬
‫המכונה עד עצירתה‪.‬‬
‫ו‪ .‬מהי הפונקציה שהמכונה מחשבת? הסבר‪.‬‬
‫ז‪ .‬האם המכונה מחשבת את הפונקציה עבור כל קלט של זוג מספרים אי‪-‬שליליים)יתכן ‪ ?(0‬נמק‪.‬‬
‫שמאל ‪1/1‬‬
‫‪q5‬‬
‫ימין ‪1/1‬‬
‫שמאל ‪1/$‬‬
‫‪q4‬‬
‫שמאל ∆‪1/‬‬
‫‪q3‬‬
‫שמאל ∆‪∆/‬‬
‫ימין ├‪├/‬‬
‫‪q2‬‬
‫ימין ‪#/1‬‬
‫‪q0‬‬
‫ימין ‪ 1/1‬ימין ‪1/1‬‬
‫‪q1‬‬
‫‪q8‬‬
‫∆‬
‫ימין ‪1/$‬‬
‫‪q7‬‬
‫ימין ∆‪1/‬‬
‫‪q6‬‬
‫תשס"ב ‪15‬‬
‫נתונות שתי השפות ‪ T,L‬מעל הא"ב }‪.{a,b‬‬
‫‪ L‬אוסף המילים המתחילות באות ‪.a‬‬
‫‪ T‬אוסף המילים המתחילות ומסתיימות באותה אות כולל המילה הריקה‪.‬‬
‫לפניך שלוש טענות‪ .‬קבע לגבי כל אחת מהן אם היא נכונה או שלא ונמק‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪ (T  T ) L ababaab Є.1‬כן שרשור המילה הריקה )שייך ל ‪ (T‬ל מילה שלנו ששייכת ל ‪ T‬וגם מתחילה ב ‪a‬‬
‫‪.‬‬
‫‪T  T  T .2‬‬
‫‪.3‬‬
‫לא כי שרשור ‪ aa‬עם ‪ bb‬נותן מילה שלא מתחילמ ומסתיימת באותה האות‪.‬‬
‫)‪R(L) ≥ (L∩T‬‬
‫© כל הזכויות שמורות‬
‫‪192‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ב ‪16‬‬
‫נתונות ארבע השפות ‪L1-L4‬‬
‫} ‪L1= { cnbn+1 | n≥ 0‬‬
‫} שארית החלוקה של ‪ n‬בשלוש שווה ‪L2= { cnbn+1 | n≥ 0 , 2‬‬
‫} שארית החלוקה של ‪ n‬בשלוש שונה מ ‪L3= { cnbn+1 | n≥ 0 , 2‬‬
‫}מילים מעל הא"ב }‪ {a,b,#‬המתחילות ומסתיימות ב ‪L4= { #‬‬
‫נגדיר את שלוש השפות הבאות ‪: L5,L6,L7‬‬
‫‪.1‬‬
‫‪L5= L2∩L3‬‬
‫‪.2‬‬
‫‪L6= L42‬‬
‫‪.3‬‬
‫‪L7= L1*L2‬‬
‫עבור כל אחת מהשפות ענה על שני הסעיפים א' ו ב'‪.‬‬
‫א‪.‬‬
‫הצג את השפה הפשוטה ביותר האפשרית‪.‬‬
‫ב‪.‬‬
‫קבע אם השפה "רגולרית" או "חופשית הקשר" ולא רגולרית או "אינה חופשית הקשר" ונמק את‬
‫תשובתך‪.‬‬
‫פתרון‬
‫‪.1‬‬
‫רגולרית‪.‬‬
‫‪.2‬‬
‫רגולרית‪.‬‬
‫‪.3‬‬
‫חופשית הקשר‪.‬‬
‫© כל הזכויות שמורות‬
‫‪193‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ג ‪11‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫=‪L‬‬
‫אוסף כל המילים שבהן המספר הכולל של אותיות ‪ b‬במילה מתחלק ב ‪ 3‬בלי שארית‪,‬‬
‫וגם המספר הכולל של אותיות ‪ c‬מתחלק ב ‪ 2‬ללא שארית‪.‬‬
‫בנה אוטומט סופי דטרמיניסטי שיקבל את השפה ‪. L‬‬
‫‪a‬‬
‫פתרון‬
‫‪11‬‬
‫ספרה שמאלית=שארית חלוקת ‪ b‬ב ‪3‬‬
‫‪c c‬‬
‫ספרה ימנית = שארית חלוקת ‪ c‬ב ‪2‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪10‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪20‬‬
‫‪a‬‬
‫‪00‬‬
‫‪b‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪c‬‬
‫‪c‬‬
‫‪21‬‬
‫‪01‬‬
‫‪b‬‬
‫תשס"ג ‪12‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫השפה ‪ L‬כוללת מילים הבנויות מרצף של תת‪-‬מילים במבנה‪ ambm-1c :‬כאשר ‪. m2‬‬
‫מילה בשפה ‪ L‬יכולה לכלול תת‪-‬מילים שה‪ m‬בהן שונה ‪ .‬המילה הריקה אינה כלולה בשפה‪.‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪. L‬‬
‫פתרון‬
‫שלוף ‪bA|A‬‬
‫דחוף ‪aA|A‬‬
‫שלוף ‪bA|A‬‬
‫דחוף ‪a┴|A‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪c‬‬
‫ללש |┴‪a‬‬
‫© כל הזכויות שמורות‬
‫‪194‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ג ‪13‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫אוסף כל המילים שבהן מספר ה ‪ a‬ים מתחלק ב ‪ 2‬ללא שארית וגם הרצף ‪ aba‬מופיע במילה‪.‬‬
‫הוכח שהשפה רגולרית‪.‬‬
‫‪a,b‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪,b‬‬
‫‪,b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪ L1‬שפה המכילה ‪ aba‬רגולרית )בנינו אוטומט סופי לא דטרמיניסטי(‬
‫‪ L2‬שפה שבה מספר ה ‪ a‬ים זוגי‪) .‬בנינו אוטומט סופי דטרמיניסטי(‬
‫השפה המבוקשת ‪ L‬הינה חיתוך של ‪ L1‬ו ‪ L2‬ומחוקי הסגירות נובע שגם היא רגולרית‪.‬‬
‫© כל הזכויות שמורות‬
‫‪195‬‬
‫‪L1‬‬
‫בגרויות‬
‫טיורינג‬
‫‪L2‬‬
‫תשס"ג ‪14‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪. {a,b,c‬‬
‫השפה ‪ L‬כוללת מילים הבנויות מרצף של תת מילים במבנה ‪ anbn-1c‬כאשר ‪ .m≥2‬מילה בשפה ‪ L‬יכולה לכלול‬
‫תת מילים שה ‪ m‬בהן שונה‪ .‬המילה הריקה אינה כלולה בשפה‪.‬‬
‫דוגמאות של מילים בשפה ‪aaaabbbcaabc aaaaabbbbc‬‬
‫‪aabcaabcaabc‬‬
‫הוכח שהשפה הינה חופשית הקשר‪.‬‬
‫תשס"ג ‪15‬‬
‫נתונות חמשת השפות ‪L1-L5‬‬
‫} ‪L1= { anb2a2n | n≥ 1‬‬
‫} ‪L2= { a2nbna2 | n≥ 1‬‬
‫} ‪L3= { a2nb2a2 | n≥ 1‬‬
‫} ‪L4= { anb2nan | n≥ 1‬‬
‫} ‪L5= { a2b2na2m | n,m≥ 1‬‬
‫א‪ .‬עבור כל אחת מהשפות קבע אם השפה "רגולרית" או "חופשית הקשר" ולא רגולרית‬
‫או "אינה חופשית הקשר" ונמק את תשובתך‪.‬‬
‫ב‪ .‬מבין השפות קבע אחת שאינה רגולרית והוכח שהיא אינה רגולרית‪.‬‬
‫תשס"ג ‪16‬‬
‫נתונות ארבעת השפות ‪ L1-L4‬מעל הא"ב }‪{a,b‬‬
‫} אוסף כל המילים בהן מספר ה ‪ a‬ב ‪ w‬זוגי | ‪L1= { w‬‬
‫} אוסף כל המילים בהן מספר ה ‪ a‬ב ‪ w‬אי‪-‬זוגי | ‪L2= { w‬‬
‫} ‪L3= { anbm | n,m ≥ 0‬‬
‫} ‪L4= { bnam | n,m ≥ 0‬‬
‫לפניך חמש טענות‪ .‬קבע לכל אחת מהם אם היא נכונה או לא ונמק את קביעתך‪.‬‬
‫)‪aba Є (L1∩L2‬‬
‫משלים )‪L2 = ( L1‬‬
‫} ‪ n,m n,m ≥ 0‬זוגי | ‪L1∩L2∩L3={ anbm‬‬
‫}‪L3∩L4={ε‬‬
‫} ‪L3*L4={ anbn+mam | n,m ≥ 0‬‬
‫© כל הזכויות שמורות‬
‫‪196‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ד ‪13‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫השפה ‪ L‬כוללת מילים המתחילות ב ‪ b‬ומסתיימות ב ‪ b‬מספר ה ‪ a‬ים זוגי ויש להן לפחות ‪ c‬אחד‪.‬‬
‫בנה אסד מתאים‬
‫הפתרון‪:‬‬
‫‪c‬‬
‫‪q7‬‬
‫‪a‬‬
‫‪c b‬‬
‫‪q6‬‬
‫‪b‬‬
‫‪b,c‬‬
‫‪q5‬‬
‫‪b‬‬
‫‪a‬‬
‫‪c‬‬
‫‪a,b,c‬‬
‫‪a‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪1‬‬
‫‪c‬‬
‫‪c‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪q1‬‬
‫‪197‬‬
‫‪a,c‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪b‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ד ‪14‬‬
‫נגדיר פעולה חדשה על השפות ‪ La Lb Lc‬באופן הזה‪:‬‬
‫)‪ La#(Lb,Lc‬היא קבוצת כל המילים הנמצאות ב ‪ La‬אך לא נמצאות ‪ Lb‬וגם לא נמצאות ב ‪.Lc‬‬
‫א‪ .‬לפניך שלוש שפות ‪ L1,L2,L3‬מעל הא"ב }‪{a,b‬‬
‫} ‪L1= { anbman | n,m > 0‬‬
‫} מספר אותיות ‪ a‬שונה ממספר אותיות ‪L2= {b‬‬
‫} מספר אותיות ‪ b‬הוא אי‪-‬זוגי{ =‪L3‬‬
‫‪(1‬‬
‫תן דוגמה למילה באורך גדול מ ‪ 4‬השייכת לשפה )‪ .L1#(L2,L3‬הסבר מדוע המילה שייכת לשפה זו‪.‬‬
‫‪(2‬‬
‫תן מילה באורך ‪ 4‬לפחות שאינה שייכת לשפה )‪ . L1#(L2,L3‬הסבר מדוע אינה שייכת לשפה זו‪.‬‬
‫‪(3‬‬
‫תאר את אוסף המילים בשפה )‪L1#(L2,L3‬מעל הא"ב }‪. {a,b‬‬
‫ב‪.‬‬
‫נתון כי ‪ La Lb Lc‬הן שפות רגולריות‪.‬‬
‫הוכח שהשפה )‪ La#(Lb,Lc‬היא רגולרית‪.‬‬
‫תשס"ד ‪15‬‬
‫נתונות שלושת השפות ‪L1-L3‬‬
‫} ‪L1= { anbn | n> 0‬‬
‫} ‪L2= { anbndakbk | n,k≥ 0‬‬
‫} כל המילים מעל }‪ {a,b‬המכילות את הרצף ‪L3= {ba‬‬
‫לפניך חמש טענות‪:‬‬
‫‪aaaabbbb Є L1*L1‬‬
‫)‪R(L1)*d*R(L1) < R(L2‬‬
‫}‪L1∩L2=(L2 υ L3)∩ {d‬‬
‫‪L1=R(L3)∩L1‬‬
‫משלים ‪ L3‬מוכל ב ‪L1‬‬
‫קבע לכל אחת מהטענות אם היא נכונה או לא ונמק את קביעתך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪198‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ד ‪16‬‬
‫בנה מכונת טיורינג שעל סרט הזיכרון שלה תהיה מילת קלט לא ריקה מעל הא"ב }‪ . {a,b‬המכונה תכתוב את‬
‫האות האחרונה במילה במקום האות הראשונה‪ .‬כל האותיות האחרות לא ישתנו‪.‬‬
‫לדוגמה בעבור סרט הזיכרון שלהלן לפני תחילת פעולתה‪:‬‬
‫‪...‬‬
‫‪‬‬
‫‪‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫├‬
‫סרט הזיכרון בסוף הפעולה יראה‪:‬‬
‫‪...‬‬
‫‪‬‬
‫‪‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫├‬
‫שמאל ‪a/a ,‬‬
‫שמאל ‪b/b ,‬‬
‫ימין ‪a/a ,‬‬
‫‪q5‬‬
‫ימין ‪a/b ,‬‬
‫‪q4‬‬
‫ימין ‪├/├ ,‬‬
‫ימין ‪b/b ,‬‬
‫‪q2‬‬
‫שמאל ‪b/b ,‬‬
‫‪q1‬‬
‫‪q7‬‬
‫ימין ‪b/a ,‬‬
‫‪q6‬‬
‫ימין ‪├/├ ,‬‬
‫שמאל ‪/ ,‬‬
‫‪q0‬‬
‫שמאל ‪a/a ,‬‬
‫‪q3‬‬
‫שמאל ‪a/a ,‬‬
‫שמאל ‪b/b ,‬‬
‫© כל הזכויות שמורות‬
‫‪199‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ה ‪13‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫{‪ m+n‬זוגי ‪L= {ambnan |n,m >0‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫שלוף ‪aA|A‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫שלוף ‪aA|A‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫דחוף ‪b┴| S‬‬
‫שלוף ‪ aS|S‬שלוף ‪aS|S‬‬
‫דחוף ‪b┴| S‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪a‬‬
‫)גרסה שונה במעט לשאלה שלעיל(‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫{‪ m+n‬זוגי ‪L= {ambnan |n >0 m≥0‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫שלוף ‪aA|A‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫שלוף ‪aA|A‬‬
‫דחוף ‪bA| A‬‬
‫דחוף ‪bS| A‬‬
‫שלוף ‪aS|S‬‬
‫דחוף ‪b┴| S‬‬
‫דחוף ‪b┴| S‬‬
‫ללש |┴‪a‬‬
‫ללש |┴‪a‬‬
‫© כל הזכויות שמורות‬
‫‪200‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ה ‪14‬‬
‫בנה מכונת טיורינג שתתקבל כקלט מילה מעל הא"ב }‪{a,b,c‬‬
‫המכונה תבדוק אם לפני כל אות ‪ a‬יש ‪ c‬אחד לפחות‪ .‬אם כן המכונה תעצור במצב מקבל‪ ,‬אם לא המכונה לא‬
‫תעצור‪ .‬אם הקלט הוא המילה הריקה המכונה תעצור במצב מקבל‪.‬‬
‫תשס"ה ‪15‬‬
‫נתונות שלוש השפות ‪L1-L3‬‬
‫} ‪| n≥ 0‬‬
‫} ‪ n‬זוגי‬
‫‪n n+2‬‬
‫‪L1= { a b‬‬
‫‪L2= { anbm | n,m≥ 1‬‬
‫} ‪L3= { a2nbn+3 | n≥ 0‬‬
‫א‪ .‬עבור כל אחת מהשפות קבע אם השפה "רגולרית" או "אינה רגולרית"‪ .‬נמק את קביעותיך‪.‬‬
‫ב‪ .‬מהי השפה ‪ ? L1∩L2‬נמק‪.‬‬
‫ג‪ .‬האם מספר ה ‪ b‬ים במילה שייכת ל )‪ L2*R(L2‬הוא זוגי? נמק‪.‬‬
‫ד‪ .‬קבע לכל אחת מהמילים הבאות אם היא שייכת לשפה ‪)∩L3‬משלים ‪(L1‬‬
‫‪w1=aaaabbbbb‬‬
‫‪w2=bbb‬‬
‫© כל הזכויות שמורות‬
‫‪201‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ה ‪16‬‬
‫ללימודים במכללה מסוימת מתקבלים תלמידים על פי ציוניהם בבחינות הבגרות‪.‬‬
‫הקריטריונים לקבלה ללימודים במכללה הם אלה‪:‬‬
‫תעודת בגרות ובה לפחות ‪ 5‬מקצועות‪.‬‬
‫הציונים במתמטיקה‬
‫הציונים במתמטיקה אנגלית ומקצוע נוסף צריכים להיות גבוהים מ ‪83‬‬
‫כל הציונים חייבים להיות גבוהים מ ‪.74‬‬
‫במכללה מקודדים את הציונים באופן הבא‪:‬‬
‫‪A: 100-95‬‬
‫‪B: 94-85‬‬
‫‪C: 84-75‬‬
‫‪D: 74-55‬‬
‫האותיות המיצגות את הציונים מוקלדות כמחרוזת משמאל לימין באופן הזה‪:‬‬
‫האות הראשונה שמוקלדת מייצגת ציון במתמטיקה‪.‬‬
‫האות השנייה שמוקלדת מייצגת ציון באנגלית‪.‬‬
‫לאחר מכן מוקלדות האותיות המייצגות את שאר הציונים‪.‬‬
‫א‪ .‬לפניך ‪ 5‬מחרוזות‪ .‬קבע לכל אחת אם התלמיד יתקבל או לא יתקבל ללימודים במכללה‪ .‬נמק את‬
‫קביעותיך‪.‬‬
‫‪.a‬‬
‫‪AACCCCBBCA‬‬
‫‪ABABDBB .b‬‬
‫‪BBBBBBA .c‬‬
‫‪AAAA .d‬‬
‫‪AACCCC .e‬‬
‫ב‪ .‬בנה אס"ד מתאים‪.‬‬
‫© כל הזכויות שמורות‬
‫‪202‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ו ‪13‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫{‪ k‬היא השארית מחלוקת ‪ n‬ב ‪L= {(ab)nan+2ck|n>0 2‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪L‬‬
‫שלוף |‪aA‬‬
‫ללש |┴‪c‬‬
‫ללש |┴‪a‬‬
‫שלוף |‪aA‬‬
‫ללש |‪aA‬‬
‫דחוף ‪bA|A‬‬
‫דחוף ‪b┴|A‬‬
‫ללש |┴‪a‬‬
‫ללש |‪aA‬‬
‫דחוף ‪bA|A‬‬
‫שלוף |‪aA‬‬
‫ללש |┴‪a‬‬
‫שלוף |‪aA‬‬
‫© כל הזכויות שמורות‬
‫‪203‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ו ‪14‬‬
‫לפניך ארבעת השפות מעל הא"ב }‪{a,b‬‬
‫‪L1= {aibk|i,k≥0‬‬
‫{ ‪ i+k‬מתחלק בשלוש ללא שארית‬
‫‪L2= {aibkai|i,k≥0‬‬
‫{ ‪ i‬השארית המתקבלת בחלוקת ‪ k‬בשלוש‬
‫{ ‪ i‬מתחלק בשלוש ללא שארית‪ k,‬מתחלק בשלוש ללא שארית ‪L3= {aibk|i,k≥0‬‬
‫‪L4= {aib3iak|i,k≥0‬‬
‫{ ‪ k‬מתחלק בשלוש ללא שארית‬
‫א‪ .‬לכל אחת מהמילים הבאות קבע לאיזו שפה או שפות היא משתייכת?‬
‫נמק קביעותיך‪.‬‬
‫‪w1=aaa .a‬‬
‫‪w2=abbbaaa .b‬‬
‫ב‪ .‬לכל אחת מהשפות ‪ L1‬עד ‪ L4‬קבע באם היא רגולרית? נמק קביעותיך‪.‬‬
‫פתרון‬
‫א‪ W1 .‬משתייכת לשפות )‪L3(k=0 i=3) L4(i=0‬‬
‫)‪L1(i=3 k=0‬‬
‫‪ W2‬משתייכת לשפות‪L4‬‬
‫תשס"ו ‪15‬‬
‫לפניך השפות ‪ L1 L2 L3‬מעל הא"ב }‪{a,b,c‬‬
‫‪L1= {cibkak|i,k≥0‬‬
‫{‬
‫{ ‪ w‬מילה מעל הא"ב }‪L2= }w*R(w) {a,b,c‬‬
‫‪L3= {aibick ||i,k≥0‬‬
‫{‬
‫א‪ .‬בעבור כל אחת מהשפות הבאות‬
‫‪L1∩ L3 (1‬‬
‫‪L2∩ L3 (2‬‬
‫רשום מילה לא ריקה השייכת לשפה שהאורך שלה הוא הקצר ביותר‪.‬‬
‫הסבר מדוע היא שייכת לשפה ומדוע היא המילה הלא ריקה הקצרה ביותר‪.‬‬
‫ב‪ .‬מהי השפה ‪ .(L1*L3)∩L2‬נמק‪.‬‬
‫ג‪ .‬לכל אחד מסעיפים הבאים קבע אם הוא נכון או לא נכון‪ .‬נמק את קביעותיך‪.‬‬
‫‪R(L2)=L2 (1‬‬
‫‪R(L1)=L3 (2‬‬
‫© כל הזכויות שמורות‬
‫‪204‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ו ‪16‬‬
‫מכונת הגרלות מגרילה בכל פעם ספרה אחת מבין הספרות ‪. 0,1,2‬‬
‫רצף הגרלות חוקי מקיים את שלושת התנאים הבאים‪:‬‬
‫הוגרלה לפחות ספרה אחת‪.‬‬
‫מספר ספרות ה ‪ 0‬שהוגרלו ‪ +‬מספר ספרות ה ‪ 1‬שהוגרלו הוא זוגי‪.‬‬
‫אם הוגרלה הספרה ‪ 2‬היא לא הוגרלה מיד לאחר ספרה ‪. 2‬‬
‫דוגמה לרצפים חוקיים‪021211020 , 1010 , 1112111 :‬‬
‫דוגמה לרצפים לא חוקיים‪02211020 , 01010 , 111 :‬‬
‫בנה אוטומט סופי דטרמיניסטי שיבדוק אם רצף הגרלות הוא חוקי‪.‬‬
‫© כל הזכויות שמורות‬
‫‪205‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ז ‪13‬‬
‫בעבור כל אות בא"ב }‪ {0,1‬נגדיר פעולת "ניגוד" שמסומנת באופן הבא‪:‬‬
‫~‬
‫~‬
‫‪10‬‬
‫‪0 1‬‬
‫הניגוד של מילה ריקה הינה מילה ריקה‪.‬‬
‫הניגוד של מילה כלשהי הינה הפיכת ‪ 0‬ל ‪ 1‬ו ‪ 1‬ל ‪. 0‬‬
‫דוגמה ‪ :‬אם ‪ w‬שווה ‪ 10010‬אזי הניגוד שלה הינו ‪01101 :‬‬
‫בעבור שפה כלשהי ‪ L‬מעל }‪ {0,1‬נגדיר את השפות ‪ L1 L2 L3‬באופן הבא‪:‬‬
‫}‪L1 = { ~w | w Є L‬‬
‫}‪L2 = { R(w) | w Є L‬‬
‫}‪L3 = {w*R(w) | w Є L‬‬
‫‪(1‬‬
‫בעבור כל אחת משהפות הבאות רשום את השפות המתאימות ‪L1 L2 L3‬‬
‫‪L= {0n | n≥0‬‬
‫{‬
‫{ ‪ w‬מילה מעל הא"ב }‪{0,1‬‬
‫{ ‪n,k≥ 0‬‬
‫| ‪L= {0w0‬‬
‫| ‪L= {0n (01)k‬‬
‫‪(2‬‬
‫‪ .a‬רשום שפה לא ריקה ‪ L‬שבעבורה מתקיים ‪L1=L‬‬
‫‪ .b‬רשום שפה לא ריקה ‪ L‬שבעבורה מתקיים ‪ L1=L2‬וגם ‪L≠L1‬‬
‫תשס"ז ‪14‬‬
‫לפניך חמשת השפות מעל הא"ב }‪{a,b‬‬
‫{‬
‫‪L1= {abn| n≥0‬‬
‫{‬
‫‪L2= {anbm| n,m≥0 n≠m‬‬
‫{‬
‫‪L3= {bmanbm| n,m≥0‬‬
‫{‬
‫‪L4= {abnbma| n,m≥0 n≠m‬‬
‫{‬
‫‪L5= {abnbma| n,m>0 n>m‬‬
‫ג‪.‬‬
‫רשום מילה שנמצאת ב )‪ L1*R(L1‬ולא נמצאת ב ‪ . L5‬נמק תשובתך‪.‬‬
‫ד‪.‬‬
‫רשום מילה הנמצאת בשפה ‪ L4‬ולא נמצאת בשפה ‪ . L5‬נמק תשובתך‪.‬‬
‫ה‪.‬‬
‫רשום מילה שנמצאת ב )‪ L2*R(L2‬ולא נמצאת ב ‪ . L5‬נמק תשובתך‪.‬‬
‫ו‪.‬‬
‫רשום מילה שנמצאת ב ‪ L3‬ולא נמצאת בשפה )‪ .L2*R(L2‬נמק תשובתך‪.‬‬
‫ז‪.‬‬
‫האם ‪ L5‬שווה )‪ . R(L5‬נמק תשובתך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪206‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ז ‪15‬‬
‫בנה מכונת טיורינג שתחשב את הפונקציה שלפניך‪:‬‬
‫{ שארית החלוקה של ‪ x‬בשלוש ‪,‬‬
‫‪F(x) = { x≥0‬‬
‫המכונה תקלוט מספר אונרי הרשום על הסרט על ידי ‪ x‬תווים של ‪ 1‬ותרשום על הסרט כפלט‬
‫ותרשום על הסרט כפלט את הערך המחושב על ידי הפונקציה כמספר אונרי המופיע בין שני‬
‫סימני ‪ . $‬הפלט יכול להיכתב בכל מקום על פני הסרט‪.‬‬
‫‪q6‬‬
‫ימין ‪/$,‬‬
‫ימין ‪/1,‬‬
‫‪q4‬‬
‫‪q5‬‬
‫ימין ‪/$,‬‬
‫ימין ‪/1,‬‬
‫‪q3‬‬
‫ימין ‪/$,‬‬
‫ימין ‪1/1 ,‬‬
‫ימין ‪1/1 ,‬‬
‫‪q1‬‬
‫‪q2‬‬
‫ימין ‪/$,‬‬
‫‪q0‬‬
‫ימין ‪1/1 ,‬‬
‫תשס"ז ‪16‬‬
‫‪(1‬‬
‫בנה אוטומט סופי דטרמיניסטי מעל הא"ב }‪ {a,b‬המקבל את כל המילים שיש בהן‬
‫הרצף ‪. aba‬‬
‫‪(2‬‬
‫בנה אוטומט סופי דטרמיניסטי מעל הא"ב }‪ {a,b‬המקבל את כל המילים שאין בהן‬
‫הרצף ‪. bab‬‬
‫‪(3‬‬
‫בנה אוטומט סופי דטרמיניסטי מעל הא"ב }‪ {a,b‬המקבל את כל המילים שיש בהן‬
‫הרצף ‪ aba‬ואין בהן הרצף ‪. bab‬‬
‫© כל הזכויות שמורות‬
‫‪207‬‬
‫בגרויות‬
‫טיורינג‬
‫פתרון‬
‫מופיע ‪aba‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫לא מופיע ‪bab‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫מופיע ‪ aba‬וגם לא מופיע ‪bab‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a,b‬‬
‫© כל הזכויות שמורות‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪208‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ח ‪13‬‬
‫נתונה מחרוזת אינסופית ‪…3123123123123….‬‬
‫א‪ .‬בנה אוטומט סופי דטרמיניסטי מעל הא"ב }‪ {1,2,3‬המקבל את כל המילים באורך אי‪-‬זוגי‬
‫שכל אחת מהן היא תת‪-‬מחרוזת של המחרוזת הנתונה‪.‬‬
‫המילים‪ 212 2312:‬לא יתקבלו‪.‬‬
‫למשל ‪ 23123 123 :‬יתקבלו‪.‬‬
‫ב‪ .‬בנה אוטומט סופי דטרמיניסטי מעל הא"ב }‪ {1,2,3‬המקבל את כל המילים שהן באורך אי‪-‬‬
‫זוגי וסדר הספרות בהן הוא כמו הסדר במחרוזת הנתונה אך הספרה ‪ 1‬יכולה לחזור כמה‬
‫פעמים ברצף‪.‬‬
‫לדוגמה‪ 3112311 31231 31123 :‬יתקבלו‪.‬‬
‫‪1‬‬
‫‪3‬‬
‫‪3‬‬
‫‪1‬‬
‫‪2‬‬
‫פתרון א‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪1‬‬
‫‪3‬‬
‫‪1‬‬
‫‪1‬‬
‫פתרון ב‬
‫‪2‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫© כל הזכויות שמורות‬
‫‪209‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ח ‪14‬‬
‫בעבור אות ‪ k‬ומילה ‪ w‬הסימון )‪ #k(w‬הוא מספר המופעים של האות ‪ k‬במילה ‪. w‬‬
‫לפניך השפות ‪ L1-L5‬מעל הא"ב }‪{0,1‬‬
‫}‪| |w| >5‬‬
‫‪L1= {w‬‬
‫}‪| #1(w) <5‬‬
‫‪L2= {w‬‬
‫}‪| #1(w)=5 , #0(w)=5‬‬
‫‪L3= {w‬‬
‫})‪| #1(w) = #0(w‬‬
‫‪L4= {w‬‬
‫‪| w=xxy‬‬
‫‪L5= {w‬‬
‫} ‪ y,x‬מילים לא ריקות מעל {‪0<|x|<5 }0,1‬‬
‫א‪ .‬רשום מילה השייכת ל ‪ L4‬ולא שייכת לשפה ‪ . L3‬נמק תשובתך‪.‬‬
‫‪01‬‬
‫ב‪ .‬רשום מילה השייכת ל ‪ L1‬ולא שייכת לשפה ‪ . L2‬נמק תשובתך‪.‬‬
‫‪111111‬‬
‫ג‪ .‬רשום מילה השייכת ל ‪ L5‬ולא שייכת לשפה ‪ . L2‬נמק תשובתך‪.‬‬
‫‪1110111011‬‬
‫ד‪ .‬הגדר כל אחת מהשפות הבאות‪:‬‬
‫‪2 .a‬‬
‫} ‪| #1(w)≥5‬‬
‫‪{w‬‬
‫_‬
‫‪L .b‬‬
‫‪3‬‬
‫}‪| #1(w)≠5 } υ {w | #0(w) ≠5‬‬
‫ה‪ .‬לכל אחת מהטענות הבאות נמק מדוע איננה נכונה‪:‬‬
‫‪L1∩L2=Ø .a‬‬
‫_‬
‫‪ 3 L .b‬מוכל ב‬
‫‪L4*L4≠L4 .c‬‬
‫המילה ‪ 110000‬מופיעה בשתיהן‬
‫_‬
‫‪4L‬‬
‫כי המילה הריקה מתקבלת ב ‪ L4‬ולכן ‪...‬‬
‫‪L5∩L3=Ø .d‬‬
‫© כל הזכויות שמורות‬
‫‪210‬‬
‫בגרויות‬
‫טיורינג‬
‫‪{w‬‬
‫תשס"ח ‪15‬‬
‫נגדיר את השפה ‪ L1‬מעל הא"ב }‪{a,c‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬‬
‫}‪L1= {cnan+2|n>0‬‬
‫}‪L= {w1 w2 w3…… wkbk | k>0 wi Є L1‬‬
‫לדוגמה ‪ :‬המילה ‪ caaaccaaaacaaabbb‬היא מילה ב ‪ L‬כאשר ‪ k=3‬וכן‬
‫‪W1= caaa w2=ccaaaa w3=caaa‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫הרעיון‪ :‬על כל ‪ c‬נכניס ‪ C‬על כל ‪ a‬נוציא ‪ C‬על ה ‪ a‬הראשון ללש ועל ה ‪ a‬השני נכניס ‪B‬‬
‫על כל ‪ b‬נשלוף ‪. B‬‬
‫דחוף ‪cA | A‬‬
‫שלוף ‪bB |B‬‬
‫שלוף ‪bS|S‬‬
‫שלוף ‪aA | A‬‬
‫שלוף ‪bB|B‬‬
‫ללש |‪aS‬‬
‫ללש |‪aS‬‬
‫ללש |‪aB‬‬
‫ללש |‪aB‬‬
‫שלוף ‪bS|S‬‬
‫© כל הזכויות שמורות‬
‫דחוף ‪c┴ |SA‬‬
‫שלוף ‪bA| A‬‬
‫דחוף ‪cC|BA‬‬
‫דחוף ‪cS|BA‬‬
‫‪211‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ח ‪16‬‬
‫כלבים חתולים ועכברים ‪ ...‬ראה אוטומט מכפלה‪.‬‬
‫תשס"ט ‪13‬‬
‫בתרגיל זו שני סעיפים א ו ב שאין קשר ביניהם‪ .‬ענה על שניהם‪.‬‬
‫א‪ .‬לפניך אוטומט סופי ;‬
‫‪a‬‬
‫‪a‬‬
‫‪q4‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q5‬‬
‫‪5 a,b‬‬
‫‪q2‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q6‬‬
‫‪a‬‬
‫‪q7‬‬
‫‪q0‬‬
‫‪q8‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q9‬‬
‫‪0‬‬
‫‪b‬‬
‫‪a‬‬
‫קבע לכל אחת מהמילים שלפניך אם היא מתקבלת על ידי האוטומט‪.‬‬
‫אם המילה מתקבלת על ידי האוטומט רשום מסלול מקבל בעבור מילה זו‪.‬‬
‫‪babbaaa‬‬
‫‪aababaaa‬‬
‫‪aaabbba‬‬
‫כתוב את כל המילים הקצרות ביותר המתקבלות על ידי האוטומט‪.‬‬
‫ב‪ .‬נתונות השפות הבאות מעל הא"ב }‪{a,b‬‬
‫{ ‪L1={ an bk n≠k n,k ≥ 0‬‬
‫{ ‪L2={ bi aj n≠k i ≥ 0 , j ≥ 1‬‬
‫האם ‪ L1 ∩ L2‬רגולרית? נמק את תשובתך‪.‬‬
‫© כל הזכויות שמורות‬
‫‪212‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ט ‪14‬‬
‫‪.1‬‬
‫מילה באורך ‪ 3‬תיקרא פלינדרום באורך ‪ 3‬אם התו הראשון במילה זהה לתו האחרון במילה‪ .‬לדוגמה‪:‬‬
‫המילה ‪ aba‬היא פלינדרום באורך ‪.3‬‬
‫לפניך השפה ‪ L‬מעל ה א"ב }‪{a,b‬‬
‫{היא שרשור של ‪ 0‬או יותר פלינדרומים באורך ‪L={w | 3‬‬
‫לדוגמה ‪:‬‬
‫המילה ‪ babbbbaba‬שייכת ל ‪L‬‬
‫המילה ‪ bababb‬לא שייכת ל ‪L‬‬
‫לפניך ציור חלקי של אס"ד המקבל את השפה ‪.L‬‬
‫‪q2‬‬
‫‪q1 b‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪q3‬‬
‫‪a‬‬
‫‪q4‬‬
‫‪q5 a‬‬
‫‪0‬‬
‫הציור מכיל את כל המצבים של האוטומט‪.‬‬
‫העתק למחברתך את הציור והשלם אותו כך שיקבל את השפה ‪L‬‬
‫עליך להשלים את המעברים החסרים ואת סימני הקלט החסרים ולסמן את המצב המקבל‪/‬מצבים מקבלים‪.‬‬
‫שים לב‪ :‬אין להוסיף מצבים לאוטומט או להוריד מצבים‪.‬‬
‫‪.2‬‬
‫מהי השפה }‪? {L ∩ (aab)n n ≥ 0‬‬
‫© כל הזכויות שמורות‬
‫‪213‬‬
‫בגרויות‬
‫טיורינג‬
‫תשס"ט ‪15‬‬
‫*‬
‫נגדיר ∑ כאוסף כל המילים מעל א"ב נתון‪ ,‬כולל המילה הריקה‪.‬‬
‫בעבור שפה ‪ L‬כלשהי נגדיר ‪:‬‬
‫*‬
‫} ∑ ‪Init(L) = {u | uv Є L u,v Є‬‬
‫*‬
‫} ∑ ‪Fin(L) = {v | uv Є L u,v Є‬‬
‫= )‪Min(L‬‬
‫‪wЄL‬‬
‫ובעבור כל ‪ w1 w2‬המקיימות‬
‫‪ w=w1.w2‬ו ‪ w2‬אינה ריקה‬
‫‪ w1‬אינה שייכת ל ‪L‬‬
‫לפניך ‪ 5‬שפות מעל ה א"ב }‪{0,1‬‬
‫א‪.‬‬
‫מהי השפה‬
‫‪? L1 ∩ L2‬‬
‫ב‪.‬‬
‫מהי השפה‬
‫)‪? Init (L3‬‬
‫ג‪.‬‬
‫מהי השפה‬
‫)‪? Fin(L3‬‬
‫ד‪.‬‬
‫האם‬
‫)‪?0011 Є Min(L4‬‬
‫ה‪.‬‬
‫האם‬
‫)‪?0011 Є Min(L5‬‬
‫ו‪.‬‬
‫האם‬
‫© כל הזכויות שמורות‬
‫}‪|n≥1 k≥0‬‬
‫‪L1={ 0n 1n 0k 1k‬‬
‫}‪|n≥0 k≥0‬‬
‫‪n‬‬
‫‪L2={ 0 1‬‬
‫}‪|i≥0‬‬
‫‪L3={ 0i 1i‬‬
‫}‪| k≥i≥0‬‬
‫‪L4={ 0i 1k‬‬
‫}‪| i≥k≥0‬‬
‫‪L5={ 0i 1k‬‬
‫‪ L4 ∩ L5‬רגולרית ?‬
‫‪214‬‬
‫בגרויות‬
‫טיורינג‬
‫‪k‬‬
‫תשס"ט ‪16‬‬
‫לפניך מכונת טיורינג המחשבת פונקציה )‪ . f(x‬המכונה מקבלת כקלט מספר ‪ x‬גדול מ ‪ 0‬שלם הרשום על הסרט‬
‫כמספר אונרי על ידי ‪ x‬תווים של ‪ 1‬ואחריהם הסימן ‪.$‬‬
‫לדוגמה בעבור ‪ x=4‬יהיה סרט הזיכרון לפני תחילת החישוב‪:‬‬
‫‪...‬‬
‫‪‬‬
‫‪‬‬
‫‪$‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫├‬
‫המכונה רושמת את תוצאת החישוב של )‪ f(x‬על הסרט כמספר אונרי‪ ,‬מיד אחרי הסימן ‪.+‬‬
‫‪q1‬‬
‫ימין ‪$/1 ,‬‬
‫ימין ‪1/1 ,‬‬
‫‪q0‬‬
‫ימין ‪1/1 ,‬‬
‫שמאל ‪$/$,‬‬
‫‪q3‬‬
‫‪q2‬‬
‫שמאל ‪/$,‬‬
‫שמאל‪1/1,‬‬
‫ימין ‪├/├,‬‬
‫‪q4‬‬
‫א‪.‬‬
‫מה יכיל הסרט לאחר חישוב )‪? f(5‬‬
‫את הערך ‪6‬‬
‫ב‪.‬‬
‫מה יכיל הסרט לאחר חישוב )‪? f(6‬‬
‫את הערך ‪6‬‬
‫ג‪.‬‬
‫מהי הפונקציה )‪ f(x‬שהמכונה מחשבת ? ‪ +1‬למספר אי זוגי ועצירה על תחילת המספר‪.‬‬
‫© כל הזכויות שמורות‬
‫‪215‬‬
‫בגרויות‬
‫טיורינג‬
‫תש"ע ‪13‬‬
‫לפניך שלוש שפות ‪ L1-L3‬מעל הא"ב }‪{a,b‬‬
‫‪L1= {anbn-1| n≥1‬‬
‫{‬
‫{ שארית החלוקה של ‪ k‬ב ‪ 2‬שונה משארית החלוקה של ‪ n‬ב ‪2‬‬
‫{ ‪ i‬מתחלק בשלוש ללא שארית‪ k,‬מתחלק בשלוש ללא שארית‬
‫‪L2= {anbk|n≥0,k>0‬‬
‫‪L3= {akb2m | k,m ≥0‬‬
‫א‪ .‬לכל אחת מהשפות קבע אם היא רגולרית או אינה רגולרי‪ .‬אם היא רגולרית בנה אס"ד מתאים ואם אינה‬
‫רגולרית נמק את קביעותיך‪.‬‬
‫ב‪ .‬לפניך השפות ‪ L4,L5‬מעל הא"ב }‪{a,b‬‬
‫{‬
‫‪L4= {anbn-1| n≥1‬‬
‫‪ n‬אי זוגי‬
‫)‪L5= L1*R(L4‬‬
‫מהי ‪L5‬‬
‫תש"ע ‪14‬‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{0,$‬‬
‫‪i‬‬
‫‪i‬‬
‫‪i‬‬
‫{‪ k≥1‬לכל ‪ m‬בין ‪ 1‬ל ‪ 0 ≥ im j‬ו ‪ im‬מתחלק ב ‪ 3‬ללא שארית ‪L= {03$0 1$0 2$...0 j$ |n≥1‬‬
‫א‪ .‬כתוב את המילה הקצרה ביותר בשפה ‪.L‬‬
‫ב‪.‬‬
‫בנה אס"ד לשפה ‪.L‬‬
‫© כל הזכויות שמורות‬
‫‪216‬‬
‫בגרויות‬
‫טיורינג‬
‫תש"ע ‪15‬‬
‫א‪ .‬לפניך אוטומט סופי לא דטרמיניסטי‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪0,1‬‬
‫‪Q‬‬
‫‪0,1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫א‪.‬‬
‫קבע לכל אחת משלושת המילים הבאות האם היא מתקבלת בשפה או שלא‪.‬‬
‫ב‪.‬‬
‫אם המילה מתקבלת רשום מסלול עבור מילה זו‪.‬‬
‫‪001001 .a‬‬
‫‪01010 .b‬‬
‫‪0101 .c‬‬
‫ג‪.‬‬
‫מהו האורך המינימאלי של מילה המתקבלת על ידי האוטומט‪ .‬תן דוגמה למילה כזו‪.‬‬
‫ד‪.‬‬
‫מהו האורך המקסימלי של מילה המתקבלת על ידי האוטומט‪ .‬תן דוגמה למילה כזו‪.‬‬
‫ה‪.‬‬
‫מהי השפה המוגדרת על ידי האוטומט?‬
‫© כל הזכויות שמורות‬
‫‪217‬‬
‫בגרויות‬
‫טיורינג‬
‫לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫הרצף ‪ aaa‬מופיע בדיוק פעם אחת ‪ .‬אין בה מופעים של הרצף ‪ aa‬פרט לאלה שב ‪ aaa‬ואין בה רצף של ‪ a‬ים‬
‫שאורכו גדול מ ‪.3‬‬
‫לדוגמה ‪:‬‬
‫‪ ababbaaabba‬שייך לשפה‬
‫‪ aaabbbabbab‬שייך לשפה‬
‫‪ abaaabbaabba‬לא שייך לשפה‬
‫לפניך שרטוט חלקי של אס"ד המקבל את השפה ‪L‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫השרטוט מכיל את כל המצבים של האוטומט‪.‬‬
‫עליך להשלים את האוטומט ולסמן מה המצב המקבל‪.‬‬
‫הפתרון‪:‬‬
‫‪b‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫© כל הזכויות שמורות‬
‫‪218‬‬
‫בגרויות‬
‫טיורינג‬
‫תש"ע ‪16‬‬
‫נתונה מכונת טיורינג המחשבת את הפונקציה )‪.min(x,y‬‬
‫המכונה מקבלת שני מספרים אונריים המופרדים ב ‪ #‬והפלט ירשם כמספר אונרי בין שני סימני ‪ .$‬במהלך‬
‫הפעולה המכונה יכולה להעזר בסימנים ‪ .a,b‬לפניך סרטוט חלקי של המכונה‬
‫שמאל‪1/1,‬‬
‫ימין‪a/a,‬‬
‫שמאל‪#/#,‬‬
‫שמאל‪b/b,‬‬
‫ימין‪1/1,‬‬
‫ימין‪b/b,‬‬
‫שמאל‪1/b,‬‬
‫‪Q‬‬
‫ימין‪1/a,‬‬
‫‪1‬‬
‫ימין‪#/$,‬‬
‫שמאל‪b/1,‬‬
‫ימין‪∆/$,‬‬
‫ימין‪b/b,‬‬
‫ימין‪1/$,‬‬
‫א‪ .‬בסרטוט יש ‪ 3‬מעברים המסומנים באותיות א‪,‬ב‪,‬ג‪ .‬העתק למחברתך את הסרטוט והשלם את שלושת‬
‫המעברים‪.‬‬
‫ב‪ .‬הראה את תהליך החישוב עבור ‪ . x=1 y=1‬בכל שלב רשום את מצב הסרט היכן נמצא ראש המכונה‬
‫ובאיזה מצב המכונה נמצאת‪.‬‬
‫© כל הזכויות שמורות‬
‫‪219‬‬
‫בגרויות‬
‫טיורינג‬
L1= {cnan+2|n>0}
L= {w1 w2 w3…… wkbk | k>0 wi Є L1}
{a,c} ‫ מעל הא"ב‬L1 ‫נגדיר את השפה‬
{a,b,c} ‫ מעל הא"ב‬L ‫לפניך השפה‬
‫מקורות‬
‫חומר בקורס‬
http://cs.haifa.ac.il/courses/compilers/tutorials/Winter09_T01.pdf
‫משרד החינוך‬-‫תוכנית הלימודים במודלים‬
http://www.csit.org.il/default.aspx?MenuShow=DOCS&Doc_ID=58
220
‫© כל הזכויות שמורות‬
‫מבחן מספר ‪( 1‬תיכון בליך)‬
‫‪.1‬‬
‫כתוב אוטומט לא דטרמיניסטי שמקבל את כל המילים השייכות לשפה ‪.L‬‬
‫} ‪L= {an W bm | n>0, m= n%2‬‬
‫כאשר ‪ W‬מילה מעל הא"ב }‪ {a,b,c‬המתחילה ב – ‪ b‬מסתיימת ב – ‪ c‬ומכילה עד פעם אחת )או לא מכילה‬
‫בכלל‪ ,‬או מכילה פעם אחת( את האות ‪.a‬‬
‫דוגמאות למילה בשפה ‪:L‬‬
‫‪aaaaabcaccb‬‬
‫‪.2‬‬
‫האם השפה הבאה רגולרית? הוכח‪.‬‬
‫שפה מעל הא"ב {‪ }a,b,c‬שמקיימת את התנאים הבאים‪:‬‬
‫מכילה מס' אותיות זוגי וגם כל אות מופיעה לפחות פעם אחת במילה‬
‫או‬
‫לא מכילה אף אות ברצף וגם האות הראשונה היא גם האות האחרונה והיא מופיעה במילה עד ‪ 4‬פעמים )כולל‬
‫המופע הראשון והאחרון(‪.‬‬
‫© כל הזכויות שמורות‬
‫‪221‬‬
‫‪ .3‬לפניך חמש השפות ‪ L1-L5‬מעל הא"ב }‪ . {a , b‬תיכון בליך‬
‫} אוסף כל המילים שבהן מספר האותיות ב‪ w -‬אי זוגי ‪L1 = { w /‬‬
‫} ‪L2 = { w / |w| % 3 = 2‬‬
‫} ‪L3 = { anb3n / n  0‬‬
‫} אוסף כל המילים שבהן מספר האותיות ב‪ w -‬זוגי ‪L4 = { w /‬‬
‫} ‪L5= {an bn+1 cm | n>=0, m=n%3‬‬
‫מהן השפות הבאות?‬
‫‪L6= L5  L1‬‬
‫‪L7 = L3  L2‬‬
‫‪L8 = L3  L4‬‬
‫‪L9 = L1  L2‬‬
‫‪L10= L3  L1‬‬
‫)‪L11 = L32 . R(L5‬‬
‫‪ L6‬פיתרון‬
‫ב ‪ L5‬כפי שרואים מהמילים המתקבלות בשפה מספר ה איים ‪ +‬מספר ה ביים תמיד אי זוגי לכן‬
‫צריך שמספר ה סיים יהיה זוגי‬
‫‪L5 = b abbc aabbbcc aaabbbb aaaabbbbbc‬‬
‫ולכן המילים המתאימות הינן‬
‫‪ a0+3k b1+3k‬ו ‪k>=0 a2+3k b3+3k cc‬‬
‫‪.4‬‬
‫בנה מכונת טיורינג המקבלת מילה מעל הא"ב }‪ {a,b,c‬ובודקת האם היא שייכת לשפה ‪.L‬‬
‫{ ‪ m‬היא שארית החלוקה של ‪ n‬ב – ‪, 2‬‬
‫© כל הזכויות שמורות‬
‫‪222‬‬
‫‪n>=0‬‬
‫| ‪L={an b2n cm‬‬
‫פרק שני‬
‫)‪ 50‬נקודות( תיכון אלון רמת השרון‬
‫בפרק זה שאלות ממסלולים שונים בחר במסלול שלמדת )מודלים חישוביים( וענה על השאלות על פי‬
‫ההוראות המתייחסות לאותו מסלול‪.‬‬
‫מודלים חישוביים‬
‫ענה על שתיים מהשאלות ‪) 5-8‬לכל שאלה ‪ 25‬נקודות(‬
‫שאלה ‪5‬‬
‫לפניך הגדרה לשפה ‪ L‬מעל הא"ב ‪:  x, y, z‬‬
‫}‪L {xn y k z | n  0, k  0, n  k / 3‬‬
‫כאשר הסימון ‪ k / 3‬מציין את תוצאת מנת החלוקה השלמה של ‪ k‬ב‪ ,3-‬לדוגמה‪:‬‬
‫‪5 / 3 1‬‬
‫‪6/3 2‬‬
‫‪2/30‬‬
‫‪1/ 3  0‬‬
‫דוגמאות למילים השייכות לשפה ‪. yz, yyz , xyyyyyz , xxyyyyyyz : L‬‬
‫א‪ .‬רשום דוגמה למילה באורך ‪ ,5‬השייכת לשפה ‪. L‬‬
‫ב‪ .‬הוכח כי השפה ‪ L‬היא חופשית הקשר על‪-‬ידי בניית אוטומט מחסנית דטרמיניסטי עבור השפה‪.‬‬
‫ג‪ .‬הגדר את השפה המתקבלת על ‪ -‬ידי הפעולה הבאה‪:‬‬
‫}‪L {xn y k | n  0, k  0, n  k / 3‬‬
‫שאלה ‪6‬‬
‫לפניך הגדרות לחמש שפות ‪ L1 , L2 , L3 , L4 , L5‬כולן מעל הא"ב ‪: a, b‬‬
‫) ‪ } (k  s  t‬זוגי ‪L1 {ak bs at | k , t  0, s  0,‬‬
‫}‪L2  {am | m  0‬‬
‫}‪L3 {bn | n  0‬‬
‫‪ } w‬היא מילה שאורכה זוגי | ‪L4  {w‬‬
‫)‪ } (2k  s‬זוגי ‪L5 {ak bs ak | k  0, s  0,‬‬
‫א‪ .‬הוכח ששלוש השפות ‪ L2 , L3 , L4‬הן רגולריות על ‪ -‬ידי בניית אוטומט סופי דטרמיניסטי מלא לכל‬
‫אחת מהן‪.‬‬
‫ב‪ .‬הוכח שהשפה ‪ L1‬היא רגולרית על ‪ -‬ידי שימוש בתכונות הסגירות של משפחת השפות הרגולריות‪:‬‬
‫הסתמך על כך שהשפות ‪ L2 , L 3, L4‬הן רגולריות כתוצאה מההוכחה בסעיף א'‪ ,‬והגדר באמצעותן את‬
‫השפה ‪ L1‬תוך שילוב פעולות שפה מתאימות‪ .‬הסבר ונמק את דרך ההוכחה‪.‬‬
‫ג‪ .‬לפניך שתי טענות‪ .‬קבע ונמק לגבי כל אחת מהן אם היא נכונה או שאינה נכונה‪:‬‬
‫)‪L5  L1 (1‬‬
‫)‪ (2‬השפה ‪ L5‬היא חופשית הקשר ורגולרית‬
‫שאלה ‪7‬‬
‫לפניך הגדרה לשפה ‪ L1‬מעל הא"ב ‪: a, b‬‬
‫© כל הזכויות שמורות‬
‫‪223‬‬
‫‪ } w‬היא מילה שבה מספר המופעים של הרצף ‪ ab‬שווה למספר המופעים של הרצף ‪L1 {w | ba‬‬
‫לדוגמה‪:‬‬
‫המילים ‪  , aaa, b, aababa, baabab‬שייכות לשפה ‪. L1‬‬
‫המילים ‪ baa, aababb, baababa‬לא שייכות לשפה ‪. L1‬‬
‫לפניך תרשים חלקי של אוטומט סופי דטרמיניסטי מלא המקבל את השפה ‪: L1‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪b‬‬
‫‪q2‬‬
‫התרשים מכיל את כל המצבים של האוטומט עבור השפה‪.‬‬
‫א‪ .‬העתק את תרשים האוטומט הנתון‪ ,‬והשלם אותו כך שיקבל את השפה ‪: L1‬‬
‫יש להשלים בתרשים האוטומט את המעברים החסרים ואת סימני הקלט החסרים‪ ,‬ולסמן בו את‬
‫המצב המקבל או המצבים המקבלים‪ .‬אין להוסיף מצבים לאוטומט‪ ,‬ואין להוריד ממנו מצבים‪.‬‬
‫ב‪ .‬לפניך הגדרה לשפה ‪ , L2‬שפה נוספת מעל הא"ב ‪: a, b‬‬
‫‪ } w‬היא מילה המתחילה ומסתיימת באותה אות | ‪L2  {w‬‬
‫קבע ונמק האם ‪. L1 L2‬‬
‫ג‪ .‬לפניך שלוש טענות לגבי שתי השפות הנתונות ‪ . L1 , L2‬קבע ונמק לגבי כל אחת מהן אם היא נכונה או‬
‫שאינה נכונה‪:‬‬
‫)‪(1‬‬
‫‪R( L1 )  L1‬‬
‫)‪(2‬‬
‫‪{ai | i  0} {bi | i  0}  L2‬‬
‫)‪(3‬‬
‫‪L1  L2  ‬‬
‫© כל הזכויות שמורות‬
‫‪224‬‬
‫שאלה ‪8‬‬
‫נבנתה מכונת טיורינג הפועלת על מילת קלט ‪ w‬מעל הא"ב ‪ , 0,1‬ומחשבת עבורה את פעולת ההיפוך )‪. R( w‬‬
‫המכונה מקבלת את מילת הקלט ‪ , w‬הרשומה על הסרט בין התו ├ שמשמאל למילה לבין התו ‪ ‬שמימין‬
‫למילה‪ .‬פלט המכונה הוא המילה ההפוכה )‪ , R( w‬הנרשמת על הסרט מימין לתו ‪ $‬שנמצא גם הוא מימין‬
‫לסופה של מילת הקלט ‪ . w‬במהלך פעולת החישוב המכונה יכולה להיעזר בתו ‪.X‬‬
‫לדוגמה עבור מילת הקלט ‪ ,011‬לפני ביצוע הפעולה סרט המכונה ייראה כך )אותיות מילת הקלט מודגשות(‪:‬‬
‫‪...‬‬
‫∆‬
‫∆‬
‫∆‬
‫∆‬
‫∆‬
‫‪1‬‬
‫‪1‬‬
‫├‬
‫‪0‬‬
‫ולאחר ביצוע הפעולה סרט המכונה ייראה כך )אותיות מילת הפלט מודגשות(‪:‬‬
‫‪...‬‬
‫∆‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪X‬‬
‫‪$‬‬
‫‪X‬‬
‫‪X‬‬
‫├‬
‫הערה‪ :‬הסימן ‪ . . .‬מציין רצף אינסופי של תאים המכילים את התו ∆ ‪.‬‬
‫לפניך תרשים חלקי של המכונה שנבנתה‪:‬‬
‫‪X/X,‬‬
‫‪$/$,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪q2‬‬
‫‪q4‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪X/X,‬‬
‫‪0/X,‬‬
‫‪q1‬‬
‫‪/$,‬‬
‫‪q0‬‬
‫‪$/$,‬‬
‫‪1/X,‬‬
‫‪q5‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪q3‬‬
‫‪q6‬‬
‫‪X/X,‬‬
‫‪$/$,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫א‪ .‬בתרשים יש ארבעה מעברים המסומנים באותיות א‪-‬ד‪ .‬במעברים אלה חסרים סימני הקלט‬
‫וההוראות‪ .‬העתק למחברתך את התרשים‪ ,‬והשלם בו את ארבעת המעברים החסרים‪ ,‬כך שהמכונה‬
‫תחשב את פעולת ההיפוך )‪ R( w‬עבור מילת קלט ‪. w‬‬
‫ב‪ .‬עקוב אחר ביצוע פעולת המכונה על מילת הקלט ‪ ,0‬והראה את מהלך המעקב באופן הבא‪ :‬בכל שלב‬
‫של פעולת המכונה רשום את תכולת הסרט‪ ,‬סמן היכן בסרט נמצא ראש המכונה‪ ,‬ורשום באיזה מצב‬
‫מבין המצבים ‪ q0  q6‬נמצאת המכונה‪.‬‬
‫בהצלחה!‬
‫© כל הזכויות שמורות‬
‫‪225‬‬
‫פתרון מודלים חישוביים ‪ -‬מתכונת ‪2012‬‬
‫שאלה ‪5‬‬
‫א‪ .‬דוגמה למילה באורך ‪ ,5‬השייכת לשפה ‪. xyyyz : L‬‬
‫ב‪ .‬נוכיח כי השפה ‪ L‬היא חופשית הקשר ע"י בניית אוטומט מחסנית דטרמיניסטי עבורה‪:‬‬
‫‪x ,S/X‬‬
‫‪x , / S‬‬
‫‪y,X/‬‬
‫‪y,S/‬‬
‫‪q2‬‬
‫‪y,X/‬‬
‫‪y,S/‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪y,X/‬‬
‫‪y,S/‬‬
‫‪y,X/X‬‬
‫‪y,S/S‬‬
‫‪y, /‬‬
‫‪y, /‬‬
‫‪q3‬‬
‫‪q4‬‬
‫‪z, /‬‬
‫‪z, /‬‬
‫‪y, /‬‬
‫‪z, /‬‬
‫‪q5‬‬
‫‪q6‬‬
‫ג‪ .‬השפה המתקבלת ע"י הפעולה היא שפה ריקה‪. L {xn y k | n  0, k  0, n  k / 3}   :‬‬
‫קים פתרון נוסף לאוטומט מחסנית‬
‫© כל הזכויות שמורות‬
‫‪226‬‬
‫שאלה ‪6‬‬
‫א‪ .‬נוכיח כי שלוש השפות ‪ L2 , L3 , L4‬הן רגולריות ע"י בניית אוטומט סופי דטרמיניסטי מלא לכל אחת מהן‪:‬‬
‫אוטומט סופי דטרמיניסטי מלא עבור }‪: L2  {a m | m  0‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪q0‬‬
‫אוטומט סופי דטרמיניסטי מלא עבור }‪: L3 {bn | n  0‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪a,b‬‬
‫אוטומט סופי דטרמיניסטי מלא עבור ‪ } w‬היא מילה שאורכה זוגי | ‪: L4  {w‬‬
‫‪a,b‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪a,b‬‬
‫ב‪ .‬נוכיח כי השפה ‪ L1‬היא רגולרית ע"י שימוש בתכונות הסגירות של משפחת השפות הרגולריות‪ .‬נסתמך על‬
‫כך שהשפות ‪ L2 , L3 , L4‬הן רגולריות כתוצאה מההוכחה בסעיף א'‪ ,‬ונגדיר באמצעותן את השפה ‪ L1‬תוך שילוב‬
‫הפעולות שרשור וחיתוך באופן הבא‪. L1  ( L2  L3  L2 )  L4 :‬‬
‫לפיכך‪ L1 ,‬שפה רגולרית‪ ,‬מכיוון שנבנית מהשפות הרגולריות ‪ , L2 , L3 , L4‬ומכיוון שמשפחת השפות‬
‫הרגולריות סגורה תחת פעולות שרשור וחיתוך‪.‬‬
‫ג‪ .‬קביעת נכונות שתי טענות‪:‬‬
‫)‪ (1‬הטענה ‪ L5  L1‬נכונה‪ ,‬מכיוון שכל מילה השייכת לשפה ‪ L5‬שייכת גם לשפה ‪ . L1‬השפה ‪ L5‬היא למעשה‬
‫מקרה פרטי של השפה ‪ , L1‬שעבורו ‪ , t  k‬ומשמעותו היא שמספר מופעי האות ‪ a‬לפני רצף האותיות ‪b‬‬
‫במילה שווה למספר מופעי האות ‪ a‬לאחר רצף האותיות ‪ b‬במילה‪.‬‬
‫© כל הזכויות שמורות‬
‫‪227‬‬
‫)‪ (2‬הטענה‪" :‬השפה ‪ L5‬היא חופשית הקשר ורגולרית" אינה נכונה‪ .‬אומנם‪ ,‬השפה היא חופשית הקשר‪ ,‬מכיוון‬
‫שניתן לבנות לה אוטומט מחסנית‪ ,‬אך היא אינה רגולרית‪ ,‬מכיוון שקיימת תלות כמותית אינסופית של שיוויון‬
‫בין ‪ 2‬חלקים במילה‪ :‬מספר מופעי האות ‪ a‬לפני רצף האותיות ‪ b‬שווה למספר מופעי האות ‪ a‬לאחר רצף‬
‫האותיות ‪ . b‬לפיכך‪ ,‬לא ניתן לבנות לשפה אוטומט בעל מספר סופי של מצבים‪ ,‬ולכן היא אינה רגולרית‪.‬‬
‫שאלה ‪7‬‬
‫א‪ .‬השלמת תרשים אוטומט סופי דטרמיניסטי מלא המקבל את השפה ‪: L1‬‬
‫‪a‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q3‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪q4‬‬
‫‪b‬‬
‫‪q2‬‬
‫ב‪ . L1 L2 .‬כל מילה השייכת לשפה ‪ L1‬שייכת גם לשפה ‪ , L2‬ולהפך‪ ,‬כל מילה השייכת לשפה ‪ L2‬שייכת גם‬
‫לשפה ‪ . L1‬וזאת משום שכל מילה שבה מספר המופעים של הרצף ‪ ab‬שווה למספר המופעים של הרצף ‪, ba‬‬
‫היא מתחילה ומסתיימת באותה אות‪ ,‬ולהפך‪ ,‬בכל מילה‪ ,‬המתחילה ומסתיימת באותה אות‪ ,‬מספר המופעים‬
‫של הרצף ‪ ab‬שווה למספר המופעים של הרצף ‪. ba‬‬
‫ג‪ .‬קביעת נכונות שלוש טענות‪:‬‬
‫)‪ (1‬הטענה ‪ R( L1 )  L1‬נכונה‪ ,‬מכיוון שאם במילה מספר המופעים של הרצף ‪ ab‬שווה למספר המופעים של‬
‫הרצף ‪ , ba‬אז גם כאשר מפעילים על המילה פעולת היפוך‪ ,‬עדיין השיוויון בין כמות רצפי ‪ ab, ba‬במילה‬
‫נשמר‪ .‬לכן‪ ,‬שפת ההיפוך של השפה ‪ , L1‬במקרה זה‪ ,‬זהה לשפה עצמה‪.‬‬
‫)‪ (2‬הטענה ‪ {ai | i  0} {bi | i  0}  L2‬נכונה‪ ,‬מכיוון שמילים באורך חיובי‪ ,‬המכילות רק אות א"ב אחת‬
‫‪ a‬או ‪ , b‬הן מתחילות ומסתיימות באותה אות‪ ,‬שזוהי למעשה הגדרת השפה ‪. L2‬‬
‫)‪ (3‬הטענה ‪ L1  L2  ‬אינה נכונה‪ .‬מסעיף ב' ‪ , L1 L2‬לכן ‪ , L1  L2  L1  L1‬כמו ‪ -‬כן מתקיים‬
‫‪ , L1  L1  ‬מכיוון ששפה ושפה משלימה לה אינן מכילות מילים משותפות‪ ,‬ולכן חיתוכם הוא כן השפה‬
‫הריקה‪.‬‬
‫© כל הזכויות שמורות‬
‫‪228‬‬
‫שאלה ‪8‬‬
‫א‪ .‬תרשים המכונה המלא לאחר השלמת ארבעת המעברים החסרים א‪-‬ד‪:‬‬
‫‪X/X,‬‬
‫‪$/$,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪/0,‬‬
‫‪q4‬‬
‫‪q2‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪X/X,‬‬
‫‪0/X,‬‬
‫‪$/$,‬‬
‫‪/$,‬‬
‫‪q1‬‬
‫‪$/$,‬‬
‫‪q5‬‬
‫‪/1,‬‬
‫‪1/X,‬‬
‫‪├/├,‬‬
‫‪q3‬‬
‫‪q6‬‬
‫‪X/X,‬‬
‫‪$/$,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫‪0/0,‬‬
‫‪1/1,‬‬
‫ב‪ .‬מעקב אחר ביצוע פעולת המכונה על מילת הקלט ‪:0‬‬
‫⋯‬
‫∆‬
‫∆‬
‫∆‬
‫∆‬
‫⋯‬
‫∆‬
‫∆‬
‫∆‬
‫∆‬
‫⋯‬
‫∆‬
‫∆‬
‫∆‬
‫‪$‬‬
‫⋯‬
‫∆‬
‫∆‬
‫∆‬
‫‪$‬‬
‫⋯‬
‫∆‬
‫∆‬
‫∆‬
‫‪0‬‬
‫├‬
‫↑‬
‫‪q0‬‬
‫‪0‬‬
‫├‬
‫↑‬
‫‪q0‬‬
‫‪0‬‬
‫├‬
‫↑‬
‫‪q1‬‬
‫‪X‬‬
‫├‬
‫↑‬
‫‪q2‬‬
‫© כל הזכויות שמורות‬
‫‪229‬‬
‫‪$‬‬
‫‪X‬‬
‫├‬
‫‪q0‬‬
‫↑‬
‫‪q2‬‬
‫⋯‬
‫∆‬
‫∆‬
‫‪0‬‬
‫⋯‬
‫∆‬
‫∆‬
‫‪0‬‬
‫‪$‬‬
‫⋯‬
‫∆‬
‫∆‬
‫‪0‬‬
‫‪$‬‬
‫‪X‬‬
‫⋯‬
‫∆‬
‫∆‬
‫‪0‬‬
‫‪$‬‬
‫‪X‬‬
‫‪$‬‬
‫‪X‬‬
‫├‬
‫↑‬
‫‪q4‬‬
‫‪X‬‬
‫├‬
‫↑‬
‫‪q1‬‬
‫├‬
‫↑‬
‫‪q1‬‬
‫↑‬
‫‪q6‬‬
‫© כל הזכויות שמורות‬
‫‪230‬‬
‫├‬
‫מבחן בגרות ‪2011‬‬
‫‪ .13‬לפניך השפה ‪ L‬מעל הא"ב }‪: {a,b,c‬‬
‫}‪| n>0, k>0‬‬
‫א‪.‬‬
‫כתוב את המילה הקצרה ביותר בשפה ‪. L‬‬
‫ב‪.‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪. L‬‬
‫‪L= {anb3k+1ck‬‬
‫‪ .14‬בשאלה זו שני סעיפים א' ו ב' שאינם תלויים זה בזה‪ .‬ענה על שניהם‪.‬‬
‫א‪ .‬לפניך השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫}התו האחרון של ‪ w‬מופיע בכל המילה מספר זוגי של פעמים ‪| |w|>0‬‬
‫לדוגמה ‪ :‬המילה ‪ abaabbab‬שייכת לשפה‪.‬‬
‫המילה ‪ abbabaa‬שייכת לשפה‪.‬‬
‫המילה ‪ babbaba‬לא שייכת לשפה‪.‬‬
‫לפניך סרטוט חלקי של אוטומט סופי דטרמיניסטי המקבל את ‪.L‬‬
‫בסרטוט חסרים מעברים וסימני קלט‪.‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪q6‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪q5‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q2‬‬
‫הסרטוט מכיל את כל המצבים של האוטומט ואת כל המצבים המקבלים‪.‬‬
‫העתק למחברתך את הסרטוט והשלם אותו כך שיקבל את השפה ‪. L‬‬
‫עליך להשלים את המעברים החסרים ואת סימני הקלט החסרים‪.‬‬
‫שים לב‪ :‬אין להוסיף מצבים לאוטומט‪ ,‬ואין להוריד ממנו מצבים‪.‬‬
‫© כל הזכויות שמורות‬
‫‪231‬‬
‫‪L= {w‬‬
‫ב‪.‬‬
‫לפניך אוטומט סופי דטרמיניסטי המקבל את השפה ‪ L‬מעל הא"ב }‪: {a,b‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪q4‬‬
‫‪a‬‬
‫‪q1‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q3‬‬
‫קבע לכל אחת מארבעת המילים שלפניך אם היא מתקבלת על ידי האוטומט ‪ .‬אם המילה מתקבלת רשום‬
‫את המסלול המקבל בעבור מילה זו‪.‬‬
‫‪aaba (1‬‬
‫‪bbaabb (2‬‬
‫‪abaa (3‬‬
‫‪bb (4‬‬
‫מהי השפה ‪ L‬המוגדרת על ידי האוטומט?‬
‫‪ .15‬לפניך השפה ‪ L‬מעל הא"ב }‪{0,1,2‬‬
‫}‪| n>k≥0‬‬
‫‪L= {0n1k2‬‬
‫הוכח כי ‪ L‬אינה רגולרית‪.‬‬
‫נתונה השפה ‪ L1‬מעל הא"ב }‪{1,2‬‬
‫}‪| n≥0‬‬
‫מהי השפה ‪ L1∩L‬נמק‪.‬‬
‫© כל הזכויות שמורות‬
‫‪232‬‬
‫‪L1= {1n2‬‬
‫מבחן בגרות ‪2012‬‬
‫‪ .14‬בשאלה זו שני סעיפים א' ו ב' שאינם תלויים זה בזה‪ .‬ענה על שניהם‪.‬‬
‫א‪ .‬לפניך השפה ‪ L‬מעך הא"ב }‪: {0,1‬‬
‫{אוסף כל המילים המסתיימות ב ‪ 100‬או ב ‪ 101‬או ב ‪ 110‬או ב ‪ 111‬או ב ‪ 10‬או ב ‪L= }11‬‬
‫לפניך סרטוט חלקי של אוטומט סופי דטרמיניסטי המקבל את ‪.L‬‬
‫בסרטוט חסרים מעברים וסימני קלט‪.‬‬
‫‪q4‬‬
‫‪q3‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪q0‬‬
‫הסרטוט מכיל את כל המצבים של האוטומט ואת כל המצבים המקבלים‪.‬‬
‫העתק למחברתך את הסרטוט והשלם אותו כך שיקבל את השפה ‪. L‬‬
‫עליך להשלים את המעברים החסרים ואת סימני הקלט החסרים‪.‬‬
‫שים לב‪ :‬אין להוסיף מצבים לאוטומט‪ ,‬ואין להוריד ממנו מצבים‪.‬‬
‫ג‪ .‬לפניך אוטומט סופי דטרמיניסטי המקבל את השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a,b‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b b‬‬
‫‪a‬‬
‫‪q3‬‬
‫‪ .1‬כתוב מילה באורך מינימלי המתקבלת על ידי האוטומט‪.‬‬
‫‪ .2‬כתוב מילה המתחילה ב ‪ a‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪.‬‬
‫‪ .3‬כתוב מילה המתחילה ב ‪ b‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪.‬‬
‫‪ .4‬מהי השפה ‪ L‬המתקבלת על ידי האוטומט? התייחס למילים המתחילות ב ‪ a‬ומילים המתחילות ב ‪.b‬‬
‫© כל הזכויות שמורות‬
‫‪233‬‬
‫‪ .15‬לפניך השפה ‪ L‬מעל הא"ב }‪{a,b,c‬בנה אוטומט מחסנית לשפה הבאה ‪:‬‬
‫‪L= {(aba)nc(bab)2n+1‬‬
‫}‪|n>0‬‬
‫בנה אוטומט מחסנית שיקבל את השפה ‪.L‬‬
‫‪ .16‬בשאלה זו שלושה סעיפים שאינם תלויים זה בזה‪ .‬ענה על כל הסעיפים‪.‬‬
‫א‪.‬‬
‫לפניך השפות ‪ L1 , L2‬מעל הא"ב }‪:{a,b,c‬‬
‫‪i‬‬
‫}‪|n≥1‬‬
‫‪L1= {anbncn‬‬
‫}‪|m≥1‬‬
‫‪L2= {am‬‬
‫‪j‬‬
‫נתונות שתי מילים ב ‪ w2= a w1= a L2‬כך ש ‪i≠j‬‬
‫מצא מילה ‪ w‬כך שיתקיים ‪:‬‬
‫‪w1 w Є L1‬‬
‫‪w2 w Є L1‬‬
‫ב‪.‬‬
‫לפניך השפות ‪ L1 , L2‬מעל הא"ב }‪:{a,b‬‬
‫{‪ v‬היא מילה מתוך אוסף כל המילים מעל הא"ב }‪ {a,b‬כולל המילה הריקה |‪v v‬‬
‫‪L2= { amb‬‬
‫}‪m≥1‬‬
‫‪i‬‬
‫{ =‪L1‬‬
‫‪j‬‬
‫נתונות שתי מילים ב ‪ w2= a b w1= a b L2‬כך ש ‪i≠j‬‬
‫מצא מילה ‪ w‬כך שיתקיים ‪:‬‬
‫‪w1 w Є L1‬‬
‫‪w2 w Є L1‬‬
‫‪a‬‬
‫לפניך אוטומט סופי דטרמיניסטי‪:‬‬
‫ג‪.‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫לכל אחת מהטענות הבאות קבע אם היא נכונה או אינה נכונה‪.‬‬
‫אם הטענה אינה נכונה כתוב מילה המפריכה אותה‪.‬‬
‫‪.i‬‬
‫שפת האוטומט היא אוסף כל המילים מעל הא"ב }‪ {a,b‬שבהן כל פעם שמופיעה ‪b‬‬
‫מופיעה אחריה ‪.a‬‬
‫‪.ii‬‬
‫שפת האוטומט היא אוסף כל המילים מעל הא"ב }‪ {a,b‬המסתיימות ב ‪ a‬או ב ‪.b‬‬
‫‪.iii‬‬
‫שפת האוטומט היא אוסף כל המילים מעל הא"ב }‪ {a,b‬שאין בהן שני ‪b‬ים רצופים‪.‬‬
‫© כל הזכויות שמורות‬
‫‪234‬‬
‫‪ .17‬לפניך מכונת טיורינג‪.‬‬
‫על סרט הקלט של המכונה רשומה מילה מהצורה }‪ [#an?bm |n,m >0‬וראש המכונה מצביע על התו ?‬
‫לדוגמה עבור ‪ n=3‬ו ‪ m=1‬הסרט יראה‬
‫‪# a a a ? b #‬‬
‫שמאל ?‪?/‬‬
‫שמאל ‪b/b‬‬
‫שמאל ‪a/a‬‬
‫‪q0‬‬
‫ימין ‪# / #‬‬
‫‪q1‬‬
‫שמאל ‪b / #‬‬
‫שמאל ‪? / b‬‬
‫ימין ‪a / #‬‬
‫ימין ‪? / a‬‬
‫‪q4‬‬
‫‪0‬‬
‫ימין ?‪?/‬‬
‫ימין ‪b/b‬‬
‫ימין ‪a/a‬‬
‫‪q3‬‬
‫שמאל ‪# / #‬‬
‫‪q2‬‬
‫‪ .i‬הראה את מסלול החישוב של המכונה בעבור הקלט המופיע בדוגמה‪ ,‬וציין את פלט‬
‫המכונה‪ .‬בכל שלב רשום את מצב הסרט‪ ,‬סמן היכן נמצא ראש המכונה‪ ,‬ורשום באיזה מן‬
‫המצבים המכונה נמצאת‪.‬‬
‫‪ .ii‬כתוב את התו שירשם במקום התו ? בעבור הקלט ‪#aa?bb#‬‬
‫‪ .iii‬מה מבצעת המכונה?‬
‫© כל הזכויות שמורות‬
‫‪235‬‬
‫פתרון מבחן בגרות ‪2012‬‬
‫‪ .13‬בשאלה זו שני סעיפים א' ו ב' שאינם תלויים זה בזה‪ .‬ענה על שניהם‪.‬‬
‫א‪ .‬לפניך השפה ‪ L‬מעך הא"ב }‪: {0,1‬‬
‫{אוסף כל המילים המסתיימות ב ‪ 100‬או ב ‪ 101‬או ב ‪ 110‬או ב ‪ 111‬או ב ‪ 10‬או ב ‪L= }11‬‬
‫לפניך סרטוט חלקי של אוטומט סופי דטרמיניסטי המקבל את ‪.L‬‬
‫בסרטוט חסרים מעברים וסימני קלט‪.‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q4‬‬
‫‪q3‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q2‬‬
‫‪1‬‬
‫‪q1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪q0‬‬
‫הסרטוט מכיל את כל המצבים של האוטומט ואת כל המצבים המקבלים‪.‬‬
‫העתק למחברתך את הסרטוט והשלם אותו כך שיקבל את השפה ‪. L‬‬
‫עליך להשלים את המעברים החסרים ואת סימני הקלט החסרים‪.‬‬
‫שים לב‪ :‬אין להוסיף מצבים לאוטומט‪ ,‬ואין להוריד ממנו מצבים‪.‬‬
‫ד‪ .‬לפניך אוטומט סופי דטרמיניסטי המקבל את השפה ‪ L‬מעל הא"ב }‪{a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪a‬‬
‫‪q0‬‬
‫‪b‬‬
‫‪a‬‬
‫‪b‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪a‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪b‬‬
‫‪b b‬‬
‫‪q3‬‬
‫‪ ab‬או ‪bb‬‬
‫‪ .1‬כתוב מילה באורך מינימלי המתקבלת על ידי האוטומט‪.‬‬
‫‪ .2‬כתוב מילה המתחילה ב ‪ a‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪abbb .‬‬
‫‪ .3‬כתוב מילה המתחילה ב ‪ b‬שאורכה גדול מ ‪ 3‬ומתקבלת על ידי האוטומט‪bbbb .‬‬
‫‪ .4‬מהי השפה ‪ L‬המתקבלת על ידי האוטומט? התייחס למילים המתחילות ב ‪ a‬ומילים המתחילות ב ‪.b‬‬
‫‪n‬‬
‫מתחילות ב ‪ a‬ואורכן זוגי או מתחיל ב ‪ b‬אורכן זוגי ומכילות רק ‪ n b ) b‬זוגי(‬
‫© כל הזכויות שמורות‬
‫‪236‬‬
‫‪ .14‬בנה אוטומט מחסנית לשפה הבאה ‪:‬‬
‫‪L= {(aba)nc(bab)2n+1‬‬
‫}‪|n>0‬‬
‫ניתן לפתור במספר דרכים‬
‫דרך א ‪ :‬על כל ‪ aba‬נדחוף ‪ AA‬למחסנית על ה ‪ c‬ללש על כל ‪ bab‬נשלוף ‪ A‬על ה‪ bab‬האחרון ללש‪.‬‬
‫|‬
‫ללש‬
‫ללש‬
‫|‬
‫‪aA‬‬
‫דחוף ‪a┴| AA‬‬
‫דחוף ‪aA| AA‬‬
‫‪bA‬‬
‫ללש |‪cA‬‬
‫ללש‬
‫|‬
‫ללש‬
‫ללש‬
‫┴‪b‬‬
‫|‬
‫|‬
‫ללש‬
‫ללש‬
‫‪aA‬‬
‫┴‪a‬‬
‫|‬
‫|‬
‫‪bA‬‬
‫┴‪b‬‬
‫שלוף ‪bA | A‬‬
‫דרך ב ‪ :‬על ה ‪ aba‬הראשון נדחוף ‪ SAA‬על כל ‪ aba‬נוסף נדחוף ‪ AA‬על ה ‪ c‬ללש על כל ‪ bab‬נשלוף ‪ A‬על‬
‫ה‪ bab‬נשלוף ‪.S‬‬
‫ללש‬
‫ללש‬
‫|‬
‫|‬
‫‪aA‬‬
‫‪bA‬‬
‫דחוף ‪a┴| SAA‬‬
‫דחוף ‪aA| AA‬‬
‫ללש‬
‫ללש‬
‫ללש‬
‫שלוף ‪bS |S‬‬
‫|‬
‫|‬
‫‪aA‬‬
‫‪aS‬‬
‫שלוף ‪bA | A‬‬
‫© כל הזכויות שמורות‬
‫‪237‬‬
‫ללש‬
‫ללש‬
‫|‬
‫|‬
‫‪bA‬‬
‫‪bS‬‬
‫|‬
‫‪cA‬‬
‫דרך ג ‪ :‬דרך זו הינה מרובת מצבים אך פשוטה‪.‬‬
‫דחוף ‪aA| AA‬‬
‫דחוף ‪a┴| SAA‬‬
‫ללש‬
‫|‬
‫‪bA‬‬
‫ללש‬
‫|‬
‫ללש‬
‫|‬
‫‪aA‬‬
‫ללש‬
‫ללש‬
‫|‬
‫‪aA‬‬
‫|‬
‫‪cA‬‬
‫‪bA‬‬
‫ללש‬
‫|‬
‫שלוף ‪bA | A‬‬
‫© כל הזכויות שמורות‬
‫ללש‬
‫|‬
‫┴‪b‬‬
‫|ללש |┴‪a‬‬
‫‪238‬‬
‫‪bS‬‬
‫ללש‬
‫|‬
‫‪aS‬‬
‫שלוף ‪bS |S‬‬
‫‪ .15‬בשאלה זו שלושה סעיפים שאינם תלויים זה בזה‪ .‬ענה על כל הסעיפים‪.‬‬
‫א‪.‬‬
‫לפניך השפות ‪ L1 , L2‬מעל הא"ב }‪:{a,b,c‬‬
‫‪i‬‬
‫}‪|n≥1‬‬
‫‪2. L1= {anbncn‬‬
‫}‪|m≥1‬‬
‫‪3. L2= {am‬‬
‫‪j‬‬
‫נתונות שתי מילים ב ‪ w2= a w1= a L2‬כך ש ‪i≠j‬‬
‫מצא מילה ‪ w‬כך שיתקיים ‪:‬‬
‫‪w1 w Є L1‬‬
‫‪w2 w Є L1‬‬
‫‪I I‬‬
‫‪j I I‬‬
‫‪I I I‬‬
‫‪ W=b c‬ואז ‪ a b c‬שייך ל ‪ L1‬ו ‪ a b c‬אינו שייך ל ‪L1‬‬
‫א‪.‬‬
‫לפניך השפות ‪ L1 , L2‬מעל הא"ב }‪:{a,b‬‬
‫{‪ v‬היא מילה מתוך אוסף כל המילים מעל הא"ב }‪ {a,b‬כולל המילה הריקה |‪v v‬‬
‫‪L2= { amb‬‬
‫}‪m≥1‬‬
‫‪i‬‬
‫{ =‪L1‬‬
‫‪j‬‬
‫נתונות שתי מילים ב ‪ w2= a b w1= a b L2‬כך ש ‪i≠j‬‬
‫מצא מילה ‪ w‬כך שיתקיים ‪:‬‬
‫‪w1 w Є L1‬‬
‫‪w2 w Є L1‬‬
‫‪I‬‬
‫‪I‬‬
‫‪j‬‬
‫‪I‬‬
‫‪I‬‬
‫‪ W=a b‬ואז ‪ a ba b‬שייך ל ‪ L1‬ו ‪ a ba b‬אינו שייך ל ‪L1‬‬
‫‪a‬‬
‫ב‪.‬‬
‫לפניך אוטומט סופי דטרמיניסטי‪:‬‬
‫‪a,b‬‬
‫‪b‬‬
‫‪b‬‬
‫‪a‬‬
‫לכל אחת מהטענות הבאות קבע אם היא נכונה או אינה נכונה‪.‬‬
‫אם הטענה אינה נכונה כתוב מילה המפריכה אותה‪.‬‬
‫‪.iv‬‬
‫שפת האוטומט היא אוסף כל המילים מעל הא"ב }‪ {a,b‬שבהן כל פעם שמופיעה ‪b‬‬
‫מופיעה אחריה ‪ .a‬אינו נכון ‪ b‬מתקבל‪.‬‬
‫‪.v‬‬
‫שפת האוטומט היא אוסף כל המילים מעל הא"ב }‪ {a,b‬המסתיימות ב ‪ a‬או ב ‪.b‬‬
‫אינו נכון ‪ bb‬אינו מתקבל והוא מסתיים ב ‪.b‬‬
‫‪.vi‬‬
‫שפת האוטומט היא אוסף כל המילים מעל הא"ב }‪ {a,b‬שאין בהן שני ‪b‬ים רצופים‪ .‬נכון‬
‫© כל הזכויות שמורות‬
‫‪239‬‬
‫‪.16‬‬
‫א‪.‬‬
‫מצב הסרט )צהוב=ראש‬
‫המכונה(‬
‫מצב‬
‫‪? b #‬‬
‫‪# a a a‬‬
‫‪q0‬‬
‫‪? b #‬‬
‫‪# a a a‬‬
‫‪q0‬‬
‫‪? b #‬‬
‫‪# a a a‬‬
‫‪q0‬‬
‫‪? b #‬‬
‫‪# a a a‬‬
‫‪q0‬‬
‫‪? b #‬‬
‫‪# a a a‬‬
‫‪q0‬‬
‫‪? b #‬‬
‫‪# a a a‬‬
‫‪q1‬‬
‫‪? b #‬‬
‫‪# # a a‬‬
‫‪q2‬‬
‫‪? b #‬‬
‫‪# # a a‬‬
‫‪q2‬‬
‫‪? b #‬‬
‫‪# # a a‬‬
‫‪q2‬‬
‫‪? b #‬‬
‫‪# # a a‬‬
‫‪q2‬‬
‫‪? b #‬‬
‫‪# # a a‬‬
‫‪q2‬‬
‫‪? b #‬‬
‫‪# # a a‬‬
‫‪q3‬‬
‫‪? # #‬‬
‫‪# # a a‬‬
‫‪q0‬‬
‫‪? # #‬‬
‫‪# # a a‬‬
‫‪q0‬‬
‫‪? # #‬‬
‫‪# # a a‬‬
‫‪q0‬‬
‫‪? # #‬‬
‫‪# # a a‬‬
‫‪q0‬‬
‫‪? # #‬‬
‫‪# # a a‬‬
‫‪q1‬‬
‫‪? # #‬‬
‫‪# # # a‬‬
‫‪q2‬‬
‫‪? # #‬‬
‫‪# # # a‬‬
‫‪q2‬‬
‫‪? # #‬‬
‫‪# # # a‬‬
‫‪q2‬‬
‫‪? # #‬‬
‫‪# # # a‬‬
‫‪q3‬‬
‫‪# # # a A # #‬‬
‫‪q4‬‬
‫ב‪ .‬על הסרט ירשם ‪B‬‬
‫ג‪ .‬המכונה בודקת אם מספר ה ‪ a‬גדול ממספר ה ‪ .b‬אם כן תרשום ‪ A‬אחרת תרשום ‪B‬‬
‫© כל הזכויות שמורות‬
‫‪240‬‬
‫פרק שני )‪ 50‬נקודות( אלון רמת השרון‬
‫ענה על ‪ 2‬מבין השאלות ‪13-16‬‬
‫שאלה ‪:13‬‬
‫א‪ .‬השפה ‪ L‬היא שפת כל המילים מעל ה‪-‬א"ב }‪ {0,1,2‬שמופיע בהן הרצף ‪ ,012‬כך שלפניו לא מופיעה‬
‫כלל האות ‪ , 2‬ואחריו מופיעה האות ‪ 2‬בדיוק פעמיים‪) .‬הספרה ‪ 2‬מופיעה בדיוק ‪ 3‬פעמים במילה(‬
‫מילים בשפה‪1012012002 ,000121122 :‬‬
‫לפניך אוטומט סופי דטרמיניסטי מלא חלקי שבונה את השפה ‪.L‬‬
‫הוסף קשתות חסרות‪ ,‬וסמני קלט חסרים‪) .‬העתק את האוטומט למחברתך והשלם את החסר(‬
‫אין להוסיף מצבים נוספים‪.‬‬
‫‪0‬‬
‫‪2‬‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪0‬‬
‫‪2‬‬
‫ב‪ .‬בנה אוטומט סופי דטרמיניסטי מעל הא"ב }‪ {a,b,c‬המקבל את המילים הבאות‪:‬‬
‫אחרי כל מופע של האות ‪ b‬מופיע הרצף ‪ , aac‬מספר ה‪ a -‬לפני האות ‪ b‬הוא זוגי‪.‬‬
‫מילה בשפה‪aca ,caacaabacaaca :‬‬
‫© כל הזכויות שמורות‬
‫‪241‬‬
‫שאלה ‪:14‬‬
‫בנה אוטומט מחסנית עבור השפה‪:‬‬
‫}‪L  {a 2m b n c k | m  0, n  m, k  n  m, k %3  0‬‬
‫מילים בשפה‪ . a 2 b 4 c 3 , a10b14c 9  a 25b14c 9 :‬מילה לא בשפה ‪a 2 b 3 c 2‬‬
‫שאלה ‪:15‬‬
‫נתונות השפות הבאות ‪:‬‬
‫}‪L1= {an(ab)mak | k,n>=0; m>0;nk‬‬
‫}‪L2= {anbm(ab)n+m | n,m>0‬‬
‫{‪ w, |w|%2=0‬מעל הא"ב {‪,}a,b‬מתחילה ב‪ a-‬ומסתיימת ב‪L3 = }w | b-‬‬
‫} ‪L4= {ck abnamb2man b2k+1 | k>=0, n, m>0‬‬
‫א‪ .‬מהי השפה ‪ ? L1L3‬האם השפה רגולרית‪ ,‬או לא ? הוכח תשובתך‪.‬‬
‫ב‪ .‬טענה‪ R(L2)R(L3)= R(L2) :‬הוכח או הפרך‪.‬‬
‫ג‪ .‬איזו טענה נכונה? ‪ L2L3‬או ‪ L3L2‬או לא זה ולא זה‪ ,‬נמק‪  ) .‬חלקי או שווה(‬
‫ד‪ .‬מהי השפה ‪ ? L4L3‬והוכח שהיא חופשית הקשר‪.‬‬
‫שאלה ‪:16‬‬
‫תהיינה השפות ‪ L1‬ו‪ L2 -‬מעל הא"ב }‪ .{a,b‬נתון ש‪ L1 -‬רגולרית ו‪ L2-‬אינה רגולרית‬
‫נסמן ב‪ * -‬את שפת כל המלים מעל הא"ב }‪.{a,b‬‬
‫לגבי כל אחת משלוש השפות קבע האם היא בהכרח רגולרית‪ ,‬לפעמים רגולרית‪,‬‬
‫או אף‪-‬פעם לא רגולרית‪.‬‬
‫אם התשובה היא בהכרח רגולרית או אף‪-‬פעם לא רגולרית – הוכח זאת‪.‬‬
‫אם התשובה היא לפעמים רגולרית – אז תן שתי דוגמאות ל‪ L1-‬ו‪ L2-‬כך שפעם אחת התוצאה‬
‫רגולרית ופעם שניה התוצאה לא רגולרית‪.‬‬
‫א‪.‬‬
‫)‪L=L1· R(L1‬‬
‫ב‪.‬‬
‫*‬
‫*‬
‫ג‪.‬‬
‫*‬
‫*‬
‫) ‪L=R( -L1)(L2-‬‬
‫ד‪.‬‬
‫‪L=L2-L1‬‬
‫) ‪L=R( -L1)(L1-‬‬
‫הערה ‪ :‬הפרש השפות ‪ L2-L1‬הוא אוסף כל האיברים שנמצאים ב‪ L2 -‬ולא ב‪. L1 -‬‬
‫© כל הזכויות שמורות‬
‫‪242‬‬
‫‪ 2014‬מגן אלון‬
‫בחר ‪ 2‬מתוך ‪ 4‬השאלות הבאות‬
‫‪ .1‬נתונות ארבע השפות הבאות‪) :‬כל השפות מעל ‪(a,b,c‬‬
‫‪n+k ≤ 10‬‬
‫‪L1= an bk‬‬
‫‪n,k ≥ 0‬‬
‫‪L2= an bn ck‬‬
‫‪x,y ≥ 0 z=x+y‬‬
‫‪L3= ax by cz‬‬
‫‪x≠y‬‬
‫‪L4= ax by‬‬
‫אילו מהשפות רגולרית ואילו לא?‬
‫הגדר בקצרה עד כמה שניתן את השפות הבאות‬
‫‪1) L1∩L2‬‬
‫‪2) L2∩L3‬‬
‫‪3) R(L4)*L1‬‬
‫‪4) L 4 ∩L2‬‬
‫פתרון‬
‫א‪ .‬רק ‪ L1‬רגולרית‪.‬‬
‫ב‪ .1 .‬המילה הריקה ‪ab aabb aaabbb aaaabbbb aaaaabbbbb‬‬
‫‪n ≥ 0 anbnc2n . 2‬‬
‫‪b y ax bz . 3‬‬
‫‪L2 .4‬‬
‫© כל הזכויות שמורות‬
‫‪243‬‬
‫‪ .2‬נתון אוטומט המחסנית הבא ‪:‬‬
‫דחוף ‪aA | AAA‬‬
‫שלוף ‪bA | A‬‬
‫שלוף ‪bS|S‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q2‬‬
‫דחוף ‪a┴ | SAA‬‬
‫דחוף ‪a┴ | SAA‬‬
‫א‪ .‬מה המילה הקצרה ביותר המתקבלת‪.‬‬
‫)‪(2‬‬
‫ב‪ .‬עבור כל אחת מהמילים הבאות רשום האם מתקבלת או לא‪.‬‬
‫)‪(8‬‬
‫‪ababbbbb‬‬
‫‪abbbbabb‬‬
‫‪baaa‬‬
‫‪abbabbbb‬‬
‫ג‪ .‬בצע מעקב אחר המילה הראשונה‪.‬‬
‫‪ababbbbb‬‬
‫ד‪ .‬הגדר את השפה המתקבלת‪.‬‬
‫)‪(12‬‬
‫פתרון‬
‫א‪ .‬המילה הריקה‪.‬‬
‫ב‪ ababbbbb .‬מתקבל‬
‫‪ abbbbabb‬לא מתקבל‬
‫‪baaa‬‬
‫לא מתקבל‬
‫‪ abbabbbb‬מתקבל‬
‫ג‪ .‬מעקב פשוט‬
‫ד‪ .‬מילה מעל }‪{a,b‬‬
‫ואסור שבכל רישא של מילה‬
‫כך ש )‪#b ( w) =*3 #a ( w‬‬
‫)‪3* #a (w) < #b (w‬‬
‫‪ .3‬בנה אס"ד לשפה הבאה‪:‬‬
‫© כל הזכויות שמורות‬
‫)‪(3‬‬
‫‪244‬‬
‫שפה מעל ה א"ב}‪n,k,z≥0 azdbnck {a,b,c,d‬‬
‫שארית חלוקת ‪ z+n+k‬בשלוש שווה ‪.1‬‬
‫‪q6‬‬
‫‪c‬‬
‫‪q5‬‬
‫‪c‬‬
‫‪d‬‬
‫‪b‬‬
‫‪q1‬‬
‫‪c‬‬
‫‪a‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q0‬‬
‫‪a‬‬
‫‪q5‬‬
‫‪q2‬‬
‫‪b‬‬
‫‪d‬‬
‫‪c‬‬
‫‪q3‬‬
‫‪c‬‬
‫‪q1‬‬
‫© כל הזכויות שמורות‬
‫‪d‬‬
‫‪q4‬‬
‫‪245‬‬
‫‪ .4‬בנה מכונת טיורינג המקבלת סרט שעליו אותיות ‪ a‬או ‪ b‬ומחזירה בסופו מספר אונרי‬
‫המייצג את מספר הרצפים של ‪a‬ים שעל הסרט‪.‬‬
‫דוגמה עבור ‪├ baaabbaaaaaba‬‬
‫הסרט יראה לאחר ביצוע הפעולה ‪├ baaabbaaaaaba111‬‬
‫הפתרון‬
‫ימינה ‪X/X‬‬
‫שמאלה‬
‫‪1/1‬‬
‫‪b/b‬‬
‫‪a/a‬‬
‫שמאלה‬
‫שמאלה‬
‫ימינה ‪1/1‬‬
‫ימינה ‪b/b‬‬
‫ימינה ‪a/a‬‬
‫‪a/a‬‬
‫ימינה ‪b/b‬‬
‫ימינה‬
‫‪b/b‬‬
‫שמאלה ‪∆/1‬‬
‫ימינה ‪a/X‬‬
‫שמאלה‬
‫שמאלה‬
‫‪1/1‬‬
‫ימינה ‪a/a‬‬
‫שמאלה ‪∆/1‬‬
‫© כל הזכויות שמורות‬
‫‪246‬‬
‫שמאלה ‪1/1‬‬
‫שמאלה ∆‪∆/‬‬