משפט מייהיל-נרוד מסביר איך להבין שפות רגולריות בעזרת חלוקה של מילים לקבוצות. השם מגיע מאניל נרוד וג'ון מייהיל.
נגדיר יחס שקילות. יחס שקילות הוא דרך לחלק מילים לקבוצות לפי התנהגותן. שתי מילים x ו-y שייכות לאותה קבוצה אם לכל מילה z, ההוספה של z אל x ואל y מחזירה תוצאה שתקבע אם הן בשפה או לא.
מילה שמפרידה בין x ל-y נקראת זנב מפריד. זנב מפריד מבדיל בין שתי מילים.
המשפט אומר: אם יש רק מספר סופי של קבוצות כאלה, אז יש מכונה פשוטה עם אותו מספר מצבים שמקבלת את השפה. אם יש אינסוף קבוצות, לא קיימת מכונה כזאת והשפה אינה רגולרית.
השפה של כל המילים שאורכן זוגי מתחלקת לשתי קבוצות: זוגיות ואי-זוגיות. זו הסיבה שמכונה מינימלית לשפה זו צריכה רק שני מצבים. המצב ההתחלתי הוא גם מקבל.
השפה L = {a^n b^n} לא רגולרית. ניתן להראות שיש לה אינסוף קבוצות. ניקח את המילים a, a^2, a^3, ... . לכל שני מספרים שונים m ו-n, המילה b^n תפריד בין a^n ל-a^m. כך אין חיבור קבוצות סופי.
אם יש סופי קבוצות, בונים מכונה שהמצבים שלה הם הקבוצות האלה. כשקוראים מילה w המכונה מגיעה לקבוצה של w. כך המכונה מקבלת בדיוק את המילים שבשפה. כדי להראות שמספר המצבים מינימלי, משווים לקבוצות שהמכונה נותנת בעצמה. הקבוצות האלו צריכות להיות חלוקות דק יותר או שוות למה שקיבלנו קודם, ולכן לא ניתן למצוא מכונה קטנה יותר.
נגדיר יחס שקילות. יחס שקילות הוא דרך לחלק מילים לקבוצות לפי התנהגותן. שתי מילים x ו-y שייכות לאותה קבוצה אם לכל מילה z, ההוספה של z אל x ואל y מחזירה תוצאה שתקבע אם הן בשפה או לא.
מילה שמפרידה בין x ל-y נקראת זנב מפריד. זנב מפריד מבדיל בין שתי מילים.
המשפט אומר: אם יש רק מספר סופי של קבוצות כאלה, אז יש מכונה פשוטה עם אותו מספר מצבים שמקבלת את השפה. אם יש אינסוף קבוצות, לא קיימת מכונה כזאת והשפה אינה רגולרית.
השפה של כל המילים שאורכן זוגי מתחלקת לשתי קבוצות: זוגיות ואי-זוגיות. זו הסיבה שמכונה מינימלית לשפה זו צריכה רק שני מצבים. המצב ההתחלתי הוא גם מקבל.
השפה L = {a^n b^n} לא רגולרית. ניתן להראות שיש לה אינסוף קבוצות. ניקח את המילים a, a^2, a^3, ... . לכל שני מספרים שונים m ו-n, המילה b^n תפריד בין a^n ל-a^m. כך אין חיבור קבוצות סופי.
אם יש סופי קבוצות, בונים מכונה שהמצבים שלה הם הקבוצות האלה. כשקוראים מילה w המכונה מגיעה לקבוצה של w. כך המכונה מקבלת בדיוק את המילים שבשפה. כדי להראות שמספר המצבים מינימלי, משווים לקבוצות שהמכונה נותנת בעצמה. הקבוצות האלו צריכות להיות חלוקות דק יותר או שוות למה שקיבלנו קודם, ולכן לא ניתן למצוא מכונה קטנה יותר.
עדיין אין תגובות. היה הראשון להגיב!
תגובות גולשים