מכונת מור היא מכונת מצב סופי שבה המצב הבא נקבע על ידי המצב הנוכחי וסמל הקלט הנוכחי. סמל הפלט בזמן נתון תלוי רק במצב הנוכחי של המכונה. ניתן לתאר את מכונת מור על ידי 6 טפולים (Q, q0, ∑, O, δ, λ) כאשר,
Q: finite set of states q0: initial state of machine ∑: finite set of input symbols O: output alphabet δ: transition function where Q × ∑ → Q λ: output function where Q → O
דוגמה 1:
דיאגרמת המצב של מור מאשין היא
טבלת מעבר עבור מור מכונה היא:
oracle sql לא שווה
במכונת מור לעיל, הפלט מיוצג כאשר כל מצב קלט מופרד על ידי /. אורך הפלט של מכונת מור גדול מהקלט ב-1.
קֶלֶט: 010
מַעֲבָר: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
תְפוּקָה: 1110(1 עבור q0, 1 עבור q1, שוב 1 עבור q1, 0 עבור q2)
דוגמה 2:
תכנן מכונת מור כדי ליצור משלים של 1 של מספר בינארי נתון.
פִּתָרוֹן: כדי ליצור משלים של 1 של מספר בינארי נתון ההיגיון הפשוט הוא שאם הקלט הוא 0 אז הפלט יהיה 1 ואם הקלט הוא 1 אז הפלט יהיה 0. זה אומר שיש שלושה מצבים. מדינה אחת היא מצב התחלה. המצב השני נועד לקחת 0 כקלט ומפיק פלט כ-1. המצב השלישי נועד לקחת 1 כקלט והפקת פלט כ-0.
מכאן שמכונת מור תהיה,
לדוגמה, קח מספר בינארי אחד 1011 אז
קֶלֶט | 1 | 0 | 1 | 1 | |
מדינה | q0 | ש2 | ש1 | ש2 | ש2 |
תְפוּקָה | 0 | 0 | 1 | 0 | 0 |
כך נקבל 00100 כמשל 1 של 1011, נוכל להזניח את ה-0 הראשוני והפלט שנקבל הוא 0100 שהוא המשלים של 1 ל-1011. טבלת העסקאות היא כדלקמן:
לפיכך מכונת מור M = (Q, q0, ∑, O, δ, λ); כאשר Q = {q0, q1, q2}, ∑ = {0, 1}, O = {0, 1}. טבלת המעבר מציגה את הפונקציות δ ו- λ.
היגיון העברה לרשום
דוגמה 3:
תכנן מכונת מור עבור רצף קלט בינארי כך שאם יש לו תת-מחרוזת 101, פלט המכונה A, אם לקלט יש תת-מחרוזת 110, הוא מוציא B אחרת הוא מוציא C.
פִּתָרוֹן: לתכנון מכונה כזו, נבדוק שני תנאים, ואלה הם 101 ו-110. אם נקבל 101, הפלט יהיה A, ואם נזהה 110, הפלט יהיה B. עבור מחרוזות אחרות, הפלט יהיה ג.
התרשים החלקי יהיה:
כעת נכניס את האפשרויות של 0 ו-1 עבור כל מצב. כך הופכת מכונת מור:
תו java ל-int
דוגמה 4:
בנו מכונת מור שקובעת אם מחרוזת קלט מכילה מספר זוגי או אי-זוגי של 1. המכונה צריכה לתת 1 כפלט אם יש מספר זוגי של 1 במחרוזת ו-0 אחרת.
פִּתָרוֹן:
מכונת מור תהיה:
זוהי מכונת מור הנדרשת. במכונה זו, מצב q1 מקבל מספר אי זוגי של 1 ומצב q0 מקבל מספר זוגי של 1. אין הגבלה על מספר אפסים. מכאן שעבור קלט 0, ניתן להחיל לולאה עצמית בשני המצבים.
דוגמה 5:
תכנן מכונת מור עם אלפבית הקלט {0, 1} ואות הפלט {Y, N} אשר מייצר Y כפלט אם רצף הקלט מכיל 1010 כמחרוזת משנה אחרת, הוא מייצר N כפלט.
פִּתָרוֹן:
מכונת מור תהיה: