В чем разница между конечными автоматами типа Мили и Мура?
Мили в/с. Мур
Ответы (6)
В машине Мура произведенный результат связан с текущим состоянием машины и только на ней. Вместо этого в машине Мили он связан как с состоянием, так и с конкретным входом.
С практической точки зрения у вас есть вывод, который помещается в состояния в машине Мура (таким образом, каждое состояние имеет свой вывод), в то время как в последнем у вас есть выводы в переходах (таким образом, вывод определяется из текущего состояния И исходящего перехода )
state -> output
, а в машине Мили — state, input -> output
. Это означает, что если вы взорвете каждое состояние вашей машины Мили, добавив определенные входные данные для каждого исходящего перехода, вы сможете имитировать одно и то же поведение, даже если оно концептуально отличается.
- person Jack; 24.10.2010
Выход машины Мура является функцией только состояния машины, выход машины Мили является функцией состояния машины и ее входов.
Объяснение на примере / Анекдот.
Это, пожалуй, лучше всего проиллюстрировано примером и анекдотом.
Я ненавижу аэропорты и добираться до них, но мне нравится летать в самолете. Есть три различных состояния, в которые я должен войти, прежде чем сесть в самолет:
- Состояние: В такси (событие: затем я оплачиваю проезд и переход к следующему состоянию:)
- Состояние: В зале ожидания (событие: ожидание 2 часа и переход в следующее состояние: )
- Состояние: В самолете
Но каков результат?
В машине Мили предшествующее состояние, из которого вы пришли, имеет значение — как вы куда-то попадаете, очень важно. В машине Мура не имеет значения, как вы попадаете в состояние.
Давайте добавим результат к приведенному выше, чтобы создать представление Мура конечного автомата:
Пример представления Мура конечного автомата:
- Состояние: В такси (событие: оплата проезда и переход в следующее состояние). (Результат: несчастный).
- Состояние: В зале ожидания (событие: подождать 2 часа, а затем перейти в следующее состояние) (результат: недоволен)
- Состояние: в самолете (результат: счастлив).
При представлении Мура результат прикрепляется непосредственно к состоянию. С представлением Мили - конкретный результат / результат зависит от того, откуда вы пришли. Например, если я смогу добраться до самолета без необходимости ловить такси и ждать в зале ожидания, то я буду счастлив. Входы имеют значение. Важно, откуда вы родом. Конечный автомат представления Мили позволяет показать это на диаграмме. Другими словами, вывод/результат отображается ВНЕ состояния во время перехода.
Машины Мура представляют собой дискретные динамические системы, которые можно представить в виде:
x[k+1] = f(x[k], u[k] )
y[k] = g(x[k] )
где x
состояние, u
вход, y
выход, f
описывает отношение перехода (дискретная динамика) и g
выходная карта (здесь маркировка состояния), а k
обозначает время (индекс в последовательности).
Машина Мили имеет несколько более общий вид:
x[k+1] = f(x[k], u[k] )
y[k] = g(x[k], u[k] )
Обратите внимание, что теперь g
больше не является меткой состояния, это метка края.
Они не эквивалентны, в частности, машины Мура строго причинны, а машины Мили — нет.
Дополнительные сведения см. в Lee & Seshia, Introduction to Embedded Systems, LeeSeshia.org, стр. 58.
Moore изменяется только после активного тактового импульса, а Melay изменяется после каждого фронта тактового сигнала ("при изменении внешнего входа")
Вывод машины Мили зависит как от текущего состояния, так и от текущего ввода тогда как вывод Мура зависит только от текущего состояния.
Обычно машина Мили имеет состояние лихорадки, чем машина Мура.
Выходные данные Мили меняются при переходе часов, но выходные данные Мура меняются, как только выполняется логика.
Мили быстрее реагирует на ввод, в то время как вход в систему Мура необходим для декодирования вывода, так как он имеет больше задержек в цепях.