Автомат Мілі

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Діаграма станів для простого автомата Мілі, з одним входом та одним виходом. Кожен перехід відмічений вхідним (червоний) та вихідним (синій) символами. Автомат починає роботу в стані Si. (В цьому прикладі автомат дає на виході XOR, двох останніх вхідних символів, тобто одиничку, якщо останній вхідний символ відрізнявся від попереднього він виводить одиничку. Складніші автомати Мілі можуть мати багато входів та багато виходів.

Автомат Мілі — скінченний автомат, чиї вихідні символи визначаються його станом, та символами на вході (на відміну від автомату Мура, вихідні символи якого визначаються тільки його станом). На ребрах в діаграмі станів позначають вхідні та вихідні символи (а в автоматі Мура вихідні символи позначають на вершинах).

Автомат Мілі названий на честь Джорджа Мілі, який представив ідею в роботі 1955 року, «A Method for Synthesizing Sequential Circuits.»[1]

Автомат Мілі може бути примітивною математичною моделлю шифрувальної машини. Якщо взяти за вхідний та вихідний алфавіти, наприклад, символи латинки, то можна сконструювати автомат Мілі, який буде для кожного вхідного рядка давати на виході зашифровану послідовність. Тим не менш, хоча його й можна використати для опису, наприклад, шифрувальної машини Енігма, діаграма станів буде занадто складною для конструювання відповідного автомата.

Формальне означення

[ред. | ред. код]

Автомат Мілі це шестірка, (S, S0, X, Y, T, G), що складається з:

  • скінченної множини станів (S)
  • початкового (ініціального) стану S0 який є елементом (S)
  • вхідного алфавіту (X)
  • вихідного алфавіту (Y)
  • функції переходів (T : S × X → S) що відображує пару стан, вхідний символ, на інший стан в який здійснюється перехід за цим символом.
  • функції виходів (G : S × X → Y), яка відображає пари стан, вхідний символ, у вихідні символи.

В деяких формулювання функції переходів та виходів об'єднують в одну (T : S × X → S × Y).

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Mealy, George H. (September 1955). A Method for Synthesizing Sequential Circuits. Bell Systems Technical Journal. 34: 1045—1079.

Посилання

[ред. | ред. код]