נזכיר שזו מתארת את פונקציית המעברים כלומר בהנתן מצב וקלט, הפלט יהיה המצב החדש ולכן התשובה זה .
נזכיר שזאת היא הפעלה פונקציית המצבים על המחרוזת לפי הסדר. כלומר וממשיכים כעת להפעיל את פונקציית המצבים על עם האות הבאה, הלוא היא . וכן הלאה. לכן התוצאה תהיה .
כדי להבין מה שפת האוטומט מומלץ להבין איך מגיעים עם הקלט הקצר ביותר למצב מקבל, ומשם לפתח את זה. כעת, נשים לב ששפת האוטומט על הקלט הכי קצר הוא או זה רמז שיעזור לנו להבין משם מה קורה. סך הכל נקבל ששפת האוטומט תהיה
נזכיר שבאוטומט מכפלה לחיתוך קבוצת המצבים היא קבוצה של זוגות סדורים כך שאיבר אחד בזוג יהיה מאוטומט A והאיבר השני בזוג יהיה מאוטומט . זאת בעייה קומבינטורית פשוטה, נקבל שיש סך הכל במקרה זה 12 אפשרויות לזוגות.
גם כאן קבוצת המצבים המקבלים היא זוג סדור ולכן יש 2 מצבים מקבלים אפשריים.
בגדול הטכניקה עבור אופרטורים כאלה על שפות האוטומט הוא אותו דבר, בנייה של זוג סדור, ההבדל היחיד הוא רק בקבוצת המצבים המקבלים.
סך הכל במקרה זה קבוצת המצבים המקבלים תהיה
כלומר יש סך הכל , ֿ עבור צד שמאל של האיחוד ו עבור צד ימין. אלה לא קבוצות זרות אבל יש להן רק שתי איברים משותפים אחד לכן סך הכל יהיו מצבים מקבלים.
לאוטומט אין מצבים מקבלים בכלל ולפי הגדרת זוג סדור . לכן יש 0 מצבים מקבלים באוטומט המכפלה לחיתוך.
האוטומט שבנינו פה הוא הרחבה של האוטומט שכן המצבים המקבלים של שניהם זהים. עם זאת, ניתן לראות שבסך הכל יש פה שרשור לשפת שכן ההבדל היחיד הוא שנוצר מצב התחלתי חדש שכל עוד יש נשארים בו ורק שובר אותו ונכנס ל . סה״כ
כעת נשים לב שאנחנו מתחילים בתוך מצב ששייך ל ולכן אין שום משמעות למצב ההתחלתי ולכל המעברים הבאים לידי ביטוי באמצעותו. סך הכל השפה תהיה .
כעת המצב ההתחלתי של הוא מצב התחלתי בעצמו. כלומר השפה תהיה
נשים לב, הסיבה שלא איחדנו פשוט את הסגור קלין על עם שפת האוטומט היא שבאופן של איחוד לא ניתן להגדיר מילים שמתחילות ב ומסתיימות באיזשהי מילה השייכת לשפת האוטומט .
לא נכון, מספיק להגדיר שהמצב ההתחלתי הוא מצב מקבל. למעשה זהו תנאי הכרחי ומספיק. כלומר אם המחרוזת הריקה היא בשפת האוטומט (כאשר הוא סופי דטרמיניסטי) זה בהכרח אומר שהמצב ההתחלתי הוא מצב מקבל והפוך.
כמובן שלא נכון
נכון ההגדרה של אוטומט סופי דטרמיניסטי היא חמישייה סדורה שאחד האיברים בה הוא המצב ההתחלתי. בהגדרה חייב להיות אחד כזה.
לא נכון למשל אוטומט המתאר את .
לא נכון קצת לא אינטואיטיבי אבל ניתן לבנות אוטומט עם שני מצבים מקבלים ולאחד מהם לא ניתן להגיע כלל.
נכון זה אומר למעשה שחייב להיות מצב שתוקע אותנו מלהגיע אי פעם למצב מקבל באוטומט. למשל, אוטומט מעל המקבל רק את המחרוזת . כיוון שבהגדרה של אוטומט סופי דטרמיניסטי, חייב להגדיר מסלול עבור כל קלט, אנחנו נצטרך להגדיר שעבור או עבור לאחר שנשלח כבר פעם אחת, האוטומט ייכנס למסלול שלא יגיע למצב מקבל לעולם.
הפרכה אותו א״ב כמו מקודם רק שהפעם שפת האוטומט תהיה . גם במצב זה הקלט ישלח אותנו למצב תקוע. למרות שהשפה היא אינסופית.
נכון המקרה הקצה היחיד הוא המחרוזת הריקה אבל בתרחיש זה עדיין מתקיים התנאי יהיה מצב אחד יותר מאורך המחרוזת.
אוטומט סופי לא דטרמיניסטי
נשים לב שבאוטומט סופי לא דטרמינסטי, פונקציית המעברים היא לקבוצת החזקה של קבוצת המצבים כי כל קלט יכול להחזיר כמה מצבים.
והסגור קלין על פונקציית המעברים היא זהה במשמעותה למה שאמרנו על סגור קלין על פונקציית המעברים באוטומט סופי דטרמינסטי. פשוט קריאה של מחרוזת ולא תו.
כאן יתקיים ש
באותו אופן יתקיים ש
כן אם נעשה מעבר אפסילון ל ואז נקרא .
לא
לא
נזכיר שאוטומט למשלים זה אותו אוטומט בידיוק עם המצבים המקבלים ההפוכים לכן יהיה מצב מקבל וזהו תנאי הכרחי ומספיק בשביל שאפסילון תהיה שייכת לשפת האוטומט. חשוב לשים לב שכאן אפסילון זה המחרוזת הריקה ולא המעבר אפסילון
עוד משהו שחשוב לשים לב אליו לפי מה שאמרתי למעלה, אם שפה מסויימת היא רגולרית אז המשלים של אותה שפה היא רגולרית גם כן כרגע הראתי איך לבנות לה אוטומט.
(שפה L הינה שפה רגולרית אם קיים אוטומט סופי דטרמיניסטי A המקיים L(A) = L)
אלגוריתם ההמרה באופן כללי אומר להוסיף מעברים במקום איפה שיש מעברי אפסילון כלומר. אם יש מעבר אפסילון בין ל אז אנחנו נלך ל ונוסיף ממנו את המעברים המתאימים ל . המעברים המתאימים הם המעברים מ ל . זה אפשרי בגלל המודול הלא דטרמינסטי.
(נזכיר את ההגדרה של שהיא קבוצת כל המצבים שניתן להגיע אליהם מ ללא קריאת קלט). כעת נזכיר שמה שמשתנה באלגוריתם ההמרה הוא פונקצייה המצבים והמצבים ההתחלתיים , המצבים ההתחלתיים החדשים יהיו המצב ההתחלתי הקודם וכל מה שניתן להגיע אליו מהמצב ההתחלתי ללא קריאת קלט.
זה עובד כי באופן לא מפתיע מכיל את עצמו.
לכן אלו הם הרכיבים היחידים שמשתנים.
נשים לב שהמודל הלא דטרמינסטי יכול להכיל מספר מצבים התחלתיים או מצב התחלתי אחד , עם זאת המצבים האלה שקולים כיוון שאפשר פשוט ליצור מצב התחלתי בודד ובאופן לא דטרמינסטי עם מעברי אפסילון ליצור מעברים למצבים החדשים
לפי אלגוריתם המעבר יהיו מעברים סך הכל.
נזכיר מהו אלגוריתם ההמרה מאוטומט לא דטרמינסטי לאוטומט דטרמינסטי
החמישייה החדשה של האוטומט הדטרמיניסטי נראת כך
נשים לב שכעת מצב הוא קבוצה . לכן המצב ההתחלתי מייצג את קבוצת המצבים ההתחלתיים של האוטומט הלא דטרמינסטי.
לפי מה שאמרנו זאת קבוצת החזקה של קבוצת המצבים לכן מצבים. כמה מצבים מקבלים?
לפי מה שאמרנו זה יהיה כל הקבוצות שמכילות בתוכן את . סך הכל בנוסף למצבים המקבלים הרגילים מתווספים עוד 3 (זאת בעייה קומבינטורית וקל להוכיח אותה). לכן מצבים מקבלים.
לא נכון כדי שמילה לא תהיה בשפה המקבלת אוטומט לא דטרמינסטי צריך שלא תהיה בכלל קריאה של המילה שתגיע למצב מקבל. מנגד כדי שמילה תהיה בשפה מספיק שתהיה קריאה אחת שמגיעה למצב שכזה.
לא נכון, יש שקילות בין המודל הדטרמינסטי למודל הלא דטרמינסטי.
נכון כמו שאמרנו, תמיד יחיל את .
נכון. נובע ישירות מאלגוריתם ההמרה הנ״ל.
התהליך שהאוטומט עושה, הינו באופן הבא, האוטומט מבצע את כל המעברים הרגילים של עד הגעה למצב מקבל. שם באופן לא דטמינסטי על הקלט מחליט האם להמשיך לעבור במצבים של הראשון או לעבור ל . כיוון שהמעבר הזה הוא על הקלט בלבד, אין מדובר באיחוד של השפות אלא בשרשור שלהן. כמו כן נשים לב שהמצבים המקבלים של . הם המצבים המקבלים של בלבד. כלומר, על מנת להגיע למצב מקבל באוטומט החדש המודל הלא דטרמינסטי חייב להכנס למעברים של האוטומט . סך הכל שפת האוטומט תהיה
כעת האי דטרמיניזם בא לידי ביטוי במעבר אפסילוני, כלומר אין פה שרשור של , עם זאת זה נראה כאילו מעבר האפסילון עובר לאן ש היה עובר מקריאת הקלט במצב ההתחלתי, כלומר פוסחת על הקלט הזה. כלומר השמטנו את האות מהקלט שהיה מגיע למצב מקבל ב . ובכתיב מתמטי
מילת המפתח כאן היא או . ברגע שאומרים דבר כזה, הכי קל יהיו לבנות שתי אוטומטים דטרמינסטים לכל אחד מהאפשרויות, ולחבר בינהם עם מצב התחלתי חדש ומעברי אפסילון. זה בידיוק מה שעשינו למעלה. האוטומט העליון מ הוא דטרמינסטי לשפת כל המילים ש מופיע בהן והאוטומט התחתון מ הוא דטרמינסטי לשפת כל המילים שהן באורך אי זוגי. מחבר בינהן עם שתי מעברי אפסילון.
א תכונה זו עבדה רק באוטומט סופי דטרמינסטי מהסיבה הפשוטה שהמודל הלא דטרמינסטי לא מבטיח שאם קלט לא מגיע למצב מקבל הוא שייך לשפת המשלים. יכול להיות מספר מעברים לכל קלט גם כזה שבשפה וגם כזה שלא.
הכי קל יהיה להדגים את זה עם אוטומט שמקבל את השפה כאשר .
לפי מה שאמרנו מקודם . אם נהפוך את המצבים המקבלים על פניו, השפה המקבלת את האוטומט אמור להיות המילה הריקה. אך זה לא המצב.
ב לא ייתכן. האוטומט המשלים הוא גם כן אוטומט סופי. לפי מה שהראנו לכל אוטומט סופי לא דטרמינסטי ישנו אוטומט סופי דטרמינסטי שקול. אטען טענה חזקה יותר: אם הוא אוטומט סופי לא דיטרמינסטי ו הוא האוטומט הסופי הדטרמינסטי השקול. אז יהיה האוטומט הדטרמינסטי השקול היא .
הוכחה יהי שפה רגולרית. קיים לה אוטומט סופי דטרמינסטי ובאופן שקול קיים אוטומט סופי לא דטרמינסטי המקבל אותה נסמנו . כעת נבין מה רוצים מאיתנו בתרגיל. רוצים את היכולת בסופו של דבר, להשמיט אות ממחרוזת ששייכת לשפה אבל לאפשר לה עדיין שייכת לשפת האוטומט החדש. לשם כך נשאלת השאלה אולי אפשר לבנות מעברי אפסילון בין המצבים עצמם באוטומט הלא דטרמינסטי שהגדרנו. אבל זה יהיה בעייתי כיוון שהמצב המקבל עדיין יאפשר את המילים בשלמותן בעוד ש dropout לא מאפשר. לכן מה שנעשה הוא נשכפל את כל המצבים בידיוק כפי שהם ונייצר קבוצת מצבים חדשה.
כאשר . כעת נוכל לחבר בין כל מעבר לעוקב המשוכפל שלו במעבר אפסילון למשל אם יש מעבר מ ל נגדיר מעבר אפסילון מ ל . מעבר לזה המעברים בתוך יהיו זהים למעברים ב כלומר עבור קלט אם אני במצב השייך לשכפול נזוז לעוקב בשכפול אחרת נזוז רגיל.
המצב ההתחלתי נשאר אותו דבר והמצב המקבל יהיה המצב המקבל בקבוצב כלומר אותם מצבים מקבלים רק בשכפול. ככה באופן לא דטרמינסטי נדלג מתישהו על קלט בודד ואז נשאר בתוך המצבים המשוכפלים. באופן פורמלי נגדיר את החמיישה הבאה עבור (את קבוצת המצבים הגדרנו למעלה אז אדלג עליה).
תהי שפה רגולרית. אז קיים לה אוטומט סופי דטרמינסטי המקבל אותה (בכוונה אני בוחר במודל הדטרמינסטי הפעם). נסמנו . נגדיר את האוטומט הלא דטרמינטי באופן הבא
במילים פשוט אפשרנו לכל המילים להיות באופן לא דרטמינטי , חלק מכל המעברים שהיו באוטומט הדטרמינסטי שהגדרנו. זה למה בחרתי במודל הדטרמינסטי הפעם, כי בהכרח במודל זה יש לכל אות מעבר. כעת לקחנו את המעבר הזה ואפשרנו אותו לכל האותיות בשפה. באופן זה נבטיח שכשנגיע למצב מקבל זה יכול להיות עם כל המחרוזות האפשריות שיהיו באותו הגודל.
נרצה לבנות מעין אוטומט מכפלה לא דטרמינסטי. קבוצת המצבים תהיה המכפלה הקרטזית של כל הצירופים האפשריים של המצבים מ ו . קבוצת המצבים המקבלים גם כן תהיה המכפלה הקרטזית של קבוצת המצבים המקבלים . פונקציית מעברים תהיה פונקצייה שבהינתן קלט מפעילה אותו כמו שהיה מופעל באוטומט של אבל באופן לא דטרמינסטי בוחרת אות אקראית ומתקדמת באוטומט של . נשים לב שנגיע למצב מקבל רק אם המילה שייכת ל וגם קיימת מילה ב באותו האורך כלומר המצבים המקבלים הם .