פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון הדרוש למימוש המכונה גדל עם מספר מצביו (אם n הוא log 2 רכיבי זיכרון), צמצום מספר המצבים יביא למימוש זול מספר המצבים, נדרשים n יותר ויאפשר השוואה בין מכונות. המטרה: בהנתן מכונה סופית, מצא מכונה המבצעת אותה משימה בדיוק (עבור כל קלט תפיק אותו פלט) בעלת מינימום מספר מצבים. 1 הגדרה: מצבים בני-הפרדה שני מצבים S i ו- של מכונה M נקראים בני-הפרדה,(distinguishable) אם קיימת סדרת כניסה אחת לפחות (סדרת-הפרדה) של M, המספקת יציאות שונות עבור המצבים ההתחלתיים S i ו- S. j הגדרה: מצבים k -בני-הפרדה שני מצבים ) i S ו- ( ייקראו k בני-הפרדה,(k-distinguishable) אם קיימת עבורם סדרת הפרדה באורך k. 2 1
:M1 דוגמה: נתונה המכונה,0,1,0,0,0,1,0,0,0,1,0,0 הם 1 - בני-הפרדה, שכן תחת הקלט 1 תפיק M1 פלט 1 ממצב ופלט 0 ממצב. (,) 3,0,1,0,0,0,1 (,) הם 3 בני הפר דה:,0,0,0,0,1,0 אין אף סדרה באורך 2 המפרידה בין מצבים אלה, אך הסדרה 111 נותנת יציאה 100 מ-, ו- 101 מ-. זו סדרת ההפרדה היחידה באורך 3. 4 2
הגדרה: S ו- S של מכונה M נקראים שקולים (equivalent) אם כל סדרת- שני מצבים j i כניסה אפשרית של M מפיקה אותה סדרת יציאה, בין אם המצב ההתחלתי הוא או. S i נסמן Si S i הוא יחס שקילות. יחס שקילות מקיים את שלוש התכונות הבאות: (1) רפלקסיביות Si S i (2) סימטריות S i S j S j S i (3) טרנזיטיביות Si, Sk Si Sk 5 יחס שקילות מחלק קבוצה (במקרה זה קבוצת המצבים של המכונה) למחלקות שקילות. כל חברי אותה מחלקה שקולים זה לזה, ואינם שקולים לאף חבר של אף מחלקה אחרת. איחוד כל המחלקות נותן את כל הקבוצה, וחיתוך כל שתי מחלקות הוא כמובן קבוצה ריקה (כלומר המחלקות זרות הדדית). Si ו- שקולים S i ו- אינם בני-הפרדה. נגדיר גם: אינם ו- מצבים הם k -שקולים ו- k בני-הפרדה S i Si k -שקילות אף הוא יחס שקילות, ומתקיים: S i ו- שקולים ו- k שקולים לכל k S i 6 3
r < k שקולים לכל r וכן מתק יים: ו- k -שקולים i S ו- S i M 1 את הגדרת השקילות ניתן להרחיב לשני מצבים S i ו- ו- עם אותו אלפאבית כניסה. משתי מכונות שונות M 2 7 האלגוריתם של Moore לצמצום מכונה,0,0,0,0,0,0,1,0,1,0,1,0 0 שקולים o ( ) () () נפתח בקבוצת כל המצבים, שהם למצבים 1 שקולים ()() נבצע חלוקה על o המצבים ב- () נותנים אותה יציאה (0) עבור כניסה 0, ואותה יציאה (1) עבור כניסה 1. כמו כן, המצבים ב- () נותנים אותה יציאה (0) עבור כניסה 0 או 1. לכן כל המצבים ב- () הם 1 בני- הפרדה מהמצבים ב-.() סדרת ההפרדה היא 1X. החלוקה החדשה היא מחלקה מחלקה ( )( ) 1 8 4
מצב 0 -עוקב (0-successor) של S i המצב שעוברים אליו מ- S i בגין כניסה 0. מצב X -עוקב (X-successor) של מצב S i מצב שניתן להגיע אליו מ- S i תחת סדרת הכניסה X.,0,0,0,0,0,0,1,0,1,0,1,0 המשך האלגוריתם (לכל שלב החל מהשני והלאה): נמצא את מחלקות המצבים ה- k -שקולים, שהם: (k-1) שקולים; גם המצבים העוקבים שלהם (בהתאמה) הינם (1-k) שקולים. נקבל חלוקה שהיא עידון של 1 (כלומר לא ניתן לאחד מחלקות קודמות או לערבב ביניהם; מותר רק לפצל מחלקות): () () () () () ()() 9,0,1,0,0,0,1,0,0,0,1,0,0 2 ( ) ( ) ( ) ולכן: סדרת הפרדה היא 11X. כך נמשיך הלאה: 3 4 ( ) ( ) ( ) ( ) ( )( )( )( ) עד אשר k + 1 k ("תנאי עצירה"). k תיקרא חלוקת השקילות. 10 5
משפט: חלוקת השקילות k היא יחידה. S i הוכחה: בשלילה, נניח כי קיימות שתי חלוקות שקילות a ו- b שונות זו מזו. כי אז, קיימים שני מצבים S i ו- הנמצאים באותה מחלקה בחלוקה אחת (נניח ( a ובמחלקות שונות בחלוקה האחרת (נניח ). b מהחלוקה b נובע כי קיימת סדרת כניסה המפרידה בין S i ו-. מכאן ש- ו- אינם יכולים להיות באותה מחלקה ב-. a 11 משפט (תכונת העצירה של אלגוריתם :(Moore אם S i ו- שני מצבים בני-הפרדה במכונה M בעלת n מצבים, כי אז קיימת סדרת-הפרדה באורך של 1 n לכל היותר. מחלקה אחת יותר מ- j מכילה (לפחות) הוכחה: באלגוריתם של,Moore אם, i < j המשפט נובע מכך שמספר המחלקות הוא n לכל היותר. (פרט לצעד האחרון). i 12 6
שקילות בין מכונות הגדרה: שתי מכונות M ו-' M תיקראנה שקולות אם לכל מצב ב- M קיים מצב שקול מתאים ב- 'M, ולהיפך. המושג שקילות בין מצבים הוא כמו במכונה בודדת: משני מצבים שקולים תתקבל אותה סדרת פלט תחת אותה סדרת קלט. בהינתן מכונה M, נמצא מכונה *M השקולה ל- M ובעלת מספר מצבים מינימלי. *M תיקרא הצורה המינימלית, או המצומצמת, של.M כל מצב במכונה *M יתאים למחלקת שקילות של מצבים בחלוקת השקילות של M, כיוון שחלוקת השקילות יחידה, ולכן לא ייתכן כי מצב ב- *M יהיה שקול לשני מצבים לא-שקולים ב- M! 13 נחזור למכונהM1 :,0,0,0,0,0,1,0,1,0,1,0,0 14 7
נחליף כל מצב בטבלת המצבים במחלקת השקילות שלו: () () (),0 (),1 (),0 (),0 רואים שיש שתי שורות מיותרות. נכנה את מחלקות השקילות כדלקמן: 3 α β γ δ ( )( )( )( ) () () () () (),0 (),0 (),0 (),0 (),1 (),0 (),1 (),0 15 * ונקבל את טבלת המצבים הבאה עבור : M 1 () α β,0 γ 1, * המכונה M 1 שקולה למכונה. M 1 () β α,0 δ 1, () γ δ,0 γ,0 () δ γ,0 α,0 16 8
דוגמה נוספת- מכונה M2:,0,0,0,0 G,0 G,0,1 G,0,0,0 0/1 G,0,0,0 G,0 17 סדרת חלוקות השקילות היא (בכל שלב מצויינת גם סדרת ההפרדה): o 1 ( G ) o ( G ) ( ) o 2 ( ) ( G )( ) 1 ( )( ) ( G )( ) 1 ( ) ( )( )( G )( ) ( )( )( )( G( ) ) 3 4 5,0,0,0,0,0 G,0 G,0,0 G,1,0,0,0,0 G,0 18 9
* מכונה מצומצמת : M 2 () α ε,0 δ,0 () β ε,0 γ,0 () γ δ,0 α,0 (G) δ γ,0 δ,0 () ε β,1 γ,0 19 α ε δ β γ שתי מכונות זהות הנבדלות רק בשמות המצבים נקראות איזומורפיות (שוות צורה). כדי לוודא ששתי מכונות הן איזומורפיות זו לזו נגדיר צורה סטנדרטית או קנונית, בה נתחיל ממצב כלשהו ושמות המצבים ייקבעו לפי סדר הופעתם. אם למשל נבחר את האותיות,,,, במקום האותיות α,ε,δ,β,γ בהתאמה, נקבל מכונה איזומורפית לראשונה:,0,0,1,0,0,0,0,0,0,0 0/1 20 10