状态复杂性在自动机和常规语言中的重要性?


14

我正在阅读Galina Jiraskova,2009年的“ 常规语言和描述性复杂性的串联 ”,探讨了两种常规语言的串联所引起的状态复杂性(Galina Jiraskova,但我不明白状态复杂性的实际含义是什么) 。让我震惊的第一个琐碎的想法是,更高的复杂度将需要机器更多的时间和空间。它是否正确?还有其他地方与状态复杂性相关且有意义的地方吗?

编辑:在任何接受该语言的确定性有限自动机(dfa)中,常规语言的状态复杂度是状态数最少的状态。常规语言的不确定状态复杂度定义为该语言在任何不确定的有限自动机(nfa)中的状态数最少。


当然可以 编辑了问题!
Airmine 2012年

您正在阅读的论文似乎在某种程度上回答了这个问题...?您能否更详细地引用它,例如标题,最好是pdf链接(如果有)?FSM状态复杂性在许多应用程序中都显示出来,并且也具有理论意义...
vzn 2012年

是的,我确实浏览了本文并浏览了参考文献。找不到与状态复杂性的应用相关的内容。
Airmine

3
几乎所有FSM应用程序(有很多)都必须考虑到非平凡的“大”问题的状态复杂性。例。FSM用于状态为音素的语音识别中,这会导致大型FSM。FSM也广泛用于EE应用中,例如电路等。在那里,具有高复杂度的FSM是“大”电路。然而,在讨论的纸主要看其中上/中的“爆破”或“有效的最小化”(压缩)下界是研究关键性能问题的理论复杂....
VZN

不完全是“实用”,但状态的复杂性起着作用有限自动机的基于多样性的推理由Rivest和Schapire:[会议 ; 杂志 ]。
Neal Young

Answers:


18

状态复杂度实际上是关于对象(在这种情况下为常规语言)的简洁描述,而不是计算复杂度。这个总的话题在文献中被称为“描述复杂性”,其灵感部分源于迈耶和费舍尔(Meyer and Fischer)于1971年发表的经典论文《自动机,文法和形式系统的表达经济》(参见http:// people .csail.mit.edu / meyer / economy-of-description.pdf)。这仍然是一个活跃的领域,每年召开一次会议(DCFS-形式系统的描述性复杂性)。

对于应用程序,在程序基本上依赖于有限状态机(例如解析器)的任何地方,最好使此有限状态机尽可能小。


2
哦好的。因此,从根本上降低状态复杂度有助于实现给定语言的最小表示,而不是使其更易于处理?
Airmine 2012年

而且,由于大多数关于自动机的算法直接取决于状态复杂度,因此,最小化状态通常是出于最小化计算复杂度的目的。
丹尼斯,

9

让我为Jeffrey Shallit的出色回答添加一个具体示例。

假设您想创建一个Scrabble(TM)词典。您可以考虑几种表示字典的方式,例如单词列表,尝试(字母树)或确定性自动机。根据[1],将Trie减少到dawg [= DFA] 可以节省大量空间;节点数从117,150减少到19,853。表示为原始单词列表的词典大约需要780 KB,而我们的dawg可以表示为175 KB。

如您所见,在这种情况下,状态复杂度确实很重要,尤其是如果您想要像作者一样编写高效的程序时。

[1] Appel和雅各布森世界上最快的拼字游戏程序,ACM通讯31,572-578(1988)。


4

可以确定任意确定性上下文无关文法(或等效地确定性下推自动机)是否具有描述相同语言的等效有限状态自动机的证据,基本上证明了描述确定性上下文无关语言的有限自动机的状态复杂性:就确定性自动机而言,这些有限自动机的大小的界限为决策过程的长度提供了界限。

有关详细信息,请参见Leslie G. Valiant撰写的“ 确定性下推自动机的规律性和相关问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.