Машината на Мур е крайна машина, в която следващото състояние се определя от текущото състояние и текущия входен символ. Изходният символ в даден момент зависи само от текущото състояние на машината. Машината на Мур може да бъде описана с 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:
Диаграмата на състоянието за Moore Machine е
Преходната таблица за Moore Machine е:
java има следващ
В горната машина на Мур изходът е представен с всяко входно състояние, разделено с /. Изходната дължина за машина на Мур е по-голяма от входната с 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 | q2 | q1 | q2 | q2 |
Изход | 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. За други низове изходът ще бъде ° С.
масив в java
Частичната диаграма ще бъде:
Сега ще вмъкнем възможностите за 0 и 1 за всяко състояние. Така машината на Мур става:
Пример 4:
Конструирайте машина на Мур, която определя дали въведен низ съдържа четен или нечетен брой 1. Машината трябва да даде 1 като изход, ако четен брой 1 има в низа и 0 в противен случай.
Решение:
Машината на Мур ще бъде:
Това е необходимата машина на Мур. В тази машина състояние q1 приема нечетен брой 1, а състояние q0 приема четен брой 1. Няма ограничение за броя на нулите. Следователно за 0 вход може да се приложи самоконтур и в двете състояния.
jframe
Пример 5:
Проектирайте машина на Мур с входна азбука {0, 1} и изходна азбука {Y, N}, която произвежда Y като изход, ако входната последователност съдържа 1010 като подниз, в противен случай тя произвежда N като изход.
Решение:
Машината на Мур ще бъде: