В теории вычислений автомат Мили — это конечный автомат , выходные значения которого определяются как его текущим состоянием , так и текущими входами. Это контрастирует с автоматом Мура , выходные значения которого определяются исключительно его текущим состоянием. Автомат Мили — это детерминированный конечный преобразователь : для каждого состояния и входа возможен максимум один переход.
Машина Мили названа в честь Джорджа Х. Мили , который представил эту концепцию в статье 1955 года «Метод синтеза последовательных цепей». [1]
Автомат Мили представляет собой 6-кортеж, состоящий из следующих элементов:
В некоторых формулировках функции перехода и выхода объединены в одну функцию .
«Эволюция во времени» реализуется в этой абстракции посредством того, что конечный автомат обращается к изменяющемуся во времени входному символу в дискретные «такты таймера» и реагирует в соответствии со своей внутренней конфигурацией в эти идеализированные моменты, или же посредством того, что конечный автомат ждет следующего входного символа (как в FIFO) и реагирует всякий раз, когда он поступает.
Диаграмма состояний автомата Мили связывает выходное значение с каждым переходным ребром, в отличие от диаграммы состояний автомата Мура, которая связывает выходное значение с каждым состоянием.
Когда входной и выходной алфавиты являются Σ , можно также связать с автоматом Мили ориентированный граф Helix [ требуется пояснение ] ( S × Σ, ( x , i ) → ( T ( x , i ), G ( x , i ))) . [2] Этот граф имеет в качестве вершин пары состояний и букв, каждый узел имеет исходящую степень один, а преемник ( x , i ) является следующим состоянием автомата и буквой, которую автомат выводит, когда он находится в состоянии x и читает букву i . Этот граф является объединением непересекающихся циклов, если автомат является двуобратимым [ требуется определение ] .
Простая машина Мили имеет один вход и один выход. Каждое ребро перехода помечено значением входа (показано красным) и значением выхода (показано синим). Машина запускается в состоянии S i . (В этом примере выход представляет собой исключающее ИЛИ двух последних входных значений; таким образом, машина реализует детектор краев, выводя 1 каждый раз, когда вход переключается, и 0 в противном случае.)
Более сложные машины Мили могут иметь как несколько входов, так и несколько выходов. [ необходима цитата ]
Машины Мили предоставляют элементарную математическую модель для шифровальных машин. Если рассматривать входной и выходной алфавит , например, латинский алфавит , то можно спроектировать машину Мили, которая, имея строку букв (последовательность входов), может преобразовать ее в зашифрованную строку (последовательность выходов). Однако, хотя модель Мили можно использовать для описания Энигмы , диаграмма состояний будет слишком сложной, чтобы обеспечить осуществимые средства проектирования сложных шифровальных машин.
Машины Мура/Мили — это DFA , которые также имеют выход в любой такт часов. Современные процессоры, компьютеры, сотовые телефоны, цифровые часы и базовые электронные устройства/машины имеют своего рода конечный автомат для управления.
Простые программные системы, особенно те, которые могут быть представлены с использованием регулярных выражений , могут быть смоделированы как конечные автоматы. Существует много таких простых систем, таких как торговые автоматы или базовая электроника.
Найдя пересечение двух конечных автоматов, можно очень просто спроектировать параллельные системы , которые обмениваются сообщениями, например. Например, светофор — это система, которая состоит из нескольких подсистем, таких как различные светофоры, которые работают одновременно.
Некоторые примеры приложений: