在计算理论中,Mealy 机是基于它的当前状态和输入生成输出的有限状态自动机(更精确的叫有限状态变换器)。这意味着它的状态图将为每个转移边包括输入和输出二者。与输出只依赖于机器当前状态的Moore有限状态机不同,它的输出与当前状态和输入都有关。但是对于每个 Mealy 机都有一个等价的 Moore 机,该等价的 Moore 机的状态数量上限是所对应 Mealy 机状态数量和输出数量的乘积加1 (|S'|=|S|*|Λ|+1)。
Mealy 机的名字来自这个概念的提出者,在1951年写了《A Method for Synthesizing Sequential Circuits》的状态机的先驱 G. H. Mealy。
Mealy 机提供了密码机的一个根本的数学模型。例如考虑拉丁字母表的输入和输出,一个 Mealy 机可以被设计用来把给定字母的字符串(一序列输入)处理成密码字符串(一序列输出)。但是,尽管你可能使用 Mealy 模型来描述恩尼格玛密码机,状态图对于提供设计复杂密码机的灵活方式而言太复杂了。
Mealy 状态机与Moore有限状态机不同,Mealy有限状态机的输出不单与当前状态有关,而且与输入信号的当前值有关。Mealy有限状态机的输出直接受输入信号的当前值影响,而输入信号可能在一个时钟周期内任意时刻变化,这使得Mealy有限状态机对输入的响应发生在当前时钟周期,比Moore有限状态机对输入信号的响应要早一个周期。因此,输入信号的噪声可能影响在输出的信号。
形式定义
Mealy 机是6-元组 (S, S0, Σ, Λ, T, G),构成自:
状态的有限集合 (S)
开始状态(也叫做初始状态) S0,它是 (S) 的元素
叫做输入字母表的有限集合 (Σ)
叫做输出字母表的有限集合 (Λ)
转移函数 (T : S × Σ → S)
输出函数 (G : S × Σ → Λ)