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

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש
שגיאה ביצירת תמונה ממוזערת:
האוטומט הנוכחי הוא אוטומט סופי לא דטרמיניסטי (אסל"ד). אם אנו נמצאים במצב Q1 ומגיעה הספרה 1 האוטומט יכול לעבור למצב Q2 או למצב Q4. אותו הדבר לגבי קליטת הספרה 0 - האוטומט יכול לבחור לעבור או למצב Q6 או למצב Q8. עצם כך שהאוטומט הוא אוטומט סופי לא מלא (אסל"מ) נובעת מכך שביתר המצבים, מלבד המצב ההתחלתי Q0, אין התייחסות לכל אות קלט מא"ב האוטומט. לפיכך, אם נמצאים במצב Q2 ומגיעה הספרה 0 האוטומט "לא יודע" לאין ללכת והוא נתקע. ההיתקעות משמעה שהמילה (הקלט) לא מתקבלת על ידי האוטומט. אותה מילה (10) הייתה מתקבלת לו היה קיים מסלול חישוב כלשהו שסיומו היה מוביל למצב מקבל

אוטומט סופי לא דטרמיניסטי הוא מודל מתמטי המהווה הכללה של אוטומט סופי דטרמיניסטי[1] בכך שהוא מאפשר בחירה בין מספר דרכי פעולה עבור קלט נתון, בניגוד לדרך הפעולה היחידה אליה מחויב אוטומט דטרמיניסטי. המודל הוצג לראשונה על ידי מיכאל רבין ודנה סקוט במאמר מ-1959.

ההכללה של האוטומט הסופי הדטרמיניסטי מתבטאת בשלוש הרחבות עיקריות:

  1. עבור כל מצב של האוטומט ואות קלט נתונה, האוטומט הלא דטרמיניסטי יכול לעבור למספר מצבים, ולא למצב יחיד כאוטומט הדטרמיניסטי.
  2. לאוטומט מוספת האפשרות של "מסע הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \varepsilon} " - מעבר ממצב אחד למשנהו מבלי שתיקלט אות קלט כלשהי.
  3. לאוטומט מוספת האפשרות לבחור בין מספר מצבים התחלתיים.

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

מהות אי הדטרמיניזם

ישנן שלוש דרכים עיקריות להבין את היכולות האי דטרמיניסטיות של האוטומט הלא דטרמיניסטי.

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

הגדרה פורמלית

קובץ:Nuvola apps edu mathematics blue-p.svg

בערך זה
נעשה שימוש
בסימנים מוסכמים
מתחום המתמטיקה.
להבהרת הסימנים
ראו סימון מתמטי.


אוטומט סופי לא דטרמיניסטי הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ A} מוגדר באמצעות החמישייה הסדורה הבאה:

כאשר:

  • הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \Sigma} היא (קבוצת) א"ב הקלט. כל איבר בקבוצה זו מכונה "אות".
  • הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Q} היא קבוצה סופית של מצבים. כל מצב בקבוצה זו הוא, בהכרח, אחד מהשניים: "מצב מקבל" או "מצב לא מקבל".
  • הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Q_0} היא קבוצת המצבים ההתחלתיים של האוטומט (מהם מתחיל החישוב), הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Q_0\subseteq Q } .
  • הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ F} היא קבוצת מצבים מקבלים, הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ F\subseteq Q} . מצב מקבל הוא מצב שמסמן שהאוטומט מחזיר תשובה חיובית. כלומר: אם בסוף הקלט האוטומט נמצא במצב מקבל, זה אומר שהקלט הוא מילה בשפה של האסל"ד.
  • הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \delta} היא פונקציית המעברים, הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \delta: Q\times \Sigma\cup\left\{\varepsilon\right\}\rarr P(Q) } (לכל מצב ואות קלט או המילה הריקה מותאמת קבוצה של מצבים, שאליהם יכול האוטומט לעבור. כלומר, לא מותאם (בהכרח) רק מצב אחד ויחיד – וזו הסיבה העיקרית, שאוטומט זה אינו דטרמיניסטי).

השפה שאותה מזהה האוטומט מוגדרת כאוסף המילים, עבורן קיים מסלול חישוב של האוטומט שמסתיים במצב מקבל. בניסוח פורמלי, הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ L(A)=\left\{w\in\Sigma^*|\delta(Q_0,w)\cap F\ne\emptyset\right\}} , כאשר כאן הפענוח נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \delta} היא ההרחבה הטבעית של פונקציית המעברים עבור מילים וקבוצות של מצבים.

שקילות לאוטומט סופי דטרמיניסטי

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

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

ראו גם

לקריאה נוספת

הערות שוליים

  1. ^ ההכללה המדוברת, איננה הכללה מתמטית במובנה הרגיל, אלא הכללה רק מבחינה טכנית (כתיבה) ופילוסופית (זווית ראייה / הסתכלות), באפשרויות הנוספות: לאפיין, לייצג ולחשב אוטומט. אוטומט סופי לא דטרמיניסטי (אסל"ד) שקול לחלוטין לאוטומט סופי דטרמיניסטי (אס"ד) (מבחינת כוח ויכולת החישוב)!