“经典有理关系对复合封闭,因此两台一向有限状态转导器可以有效合成为一台。函数型有理传导、sequential/subsequential 函数与 regular functions 也各自在相…”
形式陈述 ​
有限状态转导器把有限状态自动机的边从“只读一个标号”扩展为“读取输入片段并写出输出片段”。一种不偏向确定或非确定版本的定义是六元组
其中
边
本页约定输出只在边上发生;初始输出或终态输出可用新初态、新终态及
直觉
接受器只回答“这个字是否合格”,转导器还要留下一个结果。沿路径想象两卷纸带:输入卷轴按边标签被取走,输出卷轴按同一顺序不断接长。若每一步都消费输入,固定机器的输出长度至多随输入线性增长;一条边还能写出多个字符,所以输出长度不必等于输入长度。允许空输入边后,这个线性上界可能失效,必须另外检查静默环。
真正需要先分清的是“机器有几条运行”和“一个输入有几个输出”。非确定机器可以有多条成功路径;若这些路径全写出同一个字,关系仍是函数。反过来,只要两条成功路径给同一输入写出不同结果,语义便是多值关系。确定性、无歧义性与函数性因而是三个不同层次。
边上允许空输入会带来静默计算。有限状态不等于每个输入只有有限个输出:若某条成功运行经过环
例子与边界
设输入为十六进制字符,目标是输出便于朗读的符号名。一个确定转导器可在唯一状态
把 A7F 的运行逐步产生 A-name、seven、foxtrot,最终输出 A-namesevenfoxtrot。输出没有隐含分隔符;若应用要求空格,空格必须明确写进相应边的输出字。
再加入两条从 A 的边,分别输出 a 与 ā,输入 A7 就对应 aseven 和 āseven 两个结果。这不是“机器随机选一个答案”的概率语义,而是关系中同时包含两对。若两条边都输出 a,机器仍有两条运行,关系却恢复单值。
当输入字母表至少含两个可区分符号时,一向有限状态转导器不能实现任意长字的反转。读到前缀时若立即输出,未来字符会出现在错误一侧;若一直等待,又必须在有限状态中保存任意长前缀。单字母表上的反转就是恒等函数,不能充当这个不可实现性的见证;固定最大长度、允许读头回退或使用字符串寄存器也会越过上述论证的边界。类似地,边标签有限并不自动保证实时性:
推论与应用
有限状态转导器统一了字符转义、词形分析、拼写变体、协议字段改写和语音前端中的许多有限记忆转换。设计时应先写清语义是关系还是偏函数,再选择确定、非确定、双向或寄存器实现;否则“同一输入出现两条路径”很容易被误判成错误,或把真正的多值输出遗漏掉。
正规化可把每条长输入标签拆成逐字边,并用新状态串联;长输出标签可以保留为常量块,也能逐字符拆开。该变换改变状态和边的数量,不改变
从图谱角度,本页只给共同接口。非确定有限状态转导器把关系语义正规化,Mealy 与 Moore 机器固定每步输出时机,sequential 与 subsequential 模型要求输入确定,而双向和流式模型改变了可利用的信息范围。它们共享有限控制,却没有共享同一表达能力或同一判定边界。
参考资料
- Jean Berstel, Transductions and Context-Free Languages, Teubner, 1979, Chapter III, §6, “Transducers.”
- Jacques Sakarovitch, Elements of Automata Theory, Cambridge University Press, 2009, Chapter IV, “The Richness of Transducers,” §1.
- Mehryar Mohri, “Finite-State Transducers in Language and Speech Processing,” Computational Linguistics 23(2), 1997, §§2–3.