אוטומטים ושפות פורמליות/תכונות של שפות רגולריות/משפט מיהיל-נרוד

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

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

רקע[עריכה]

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

יחס שקילות[עריכה]

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

יחס R מעל קבוצה A נקרא יחס שקילות אם הוא מקיים את התכונות הבאות:

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

מחלקות שקילות[עריכה]

דוגמא למחלקות שקילות של עיגול. כל מחלקת שקילות מסומנת בצבע אחד. שתי נקודות בעלות אותו הצבע נמצאות באותה מחלקת שקילות.

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

בנוסף, בהינתן חלוקה של הקבוצה, ניתן לבנות יחס שקילות כך שכל זוג איברים נמצא ביחס שקילות אם ורק אם שני האיברים היו באותה קבוצה בחלוקה.

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

משפט מיהיל-נרוד[עריכה]

מבוא ורעיון כללי[עריכה]

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

הגדרה[עריכה]

לכל שפה נגדיר את היחס המוגדר מעל באופן הבא:
אם"ם לכל מילה מתקיים אחד מהבאים:

  1. המילים ו- שייכות שתיהן ל-, או
  2. המילים ו- שתיהן אינן שייכות ל-.

אם קיימת מילה כך שאחת מהמילים בשפה והשניה אינה בשפה, נכנה את מילה מפרידה, ונובע ש- ו- אינן באותה מחלקת שקילות, .

משפט: משפט מיהיל-נרוד[עריכה]

מספר המצבים באוטומט (סופי דטרמיניסטי) המינימלי אשר מקבל את L הוא כמספר מחלקות השקילות של .


כתוצאה ממשפט זה, אם קיימות אינסוף מחלקות שקילות, אזי לא קיים אוטומט סופי המקבל את L, כלומר, במקרה זה L היא שפה לא-רגולרית.

הוכחת המשפט[עריכה]

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

האוטומט מוגדר באופן הבא:

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

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

טענה: טענת עזר[עריכה]

לאחר עיבוד המילה , האוטומט נמצא במצב .


הוכחה: נוכיח באינדוקציה על אורך המילה .

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


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

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

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

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

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



הפרק הקודם:
למת הניפוח לשפות רגולריות
משפט מיהיל-נרוד הפרק הבא:
ביטויים רגולריים