问题很简单直接:对于固定的,大小为n(即n个状态)的DFA接受多少种(不同的)语言?我将正式声明:
将DFA定义为,其中一切正常,而δ :Q × Σ → Q是(可能是部分)函数。我们需要建立这一点,因为有时仅将全部功能视为有效。
对于每一个,定义(等价)关系〜Ñ该组所有的DFA的如:甲〜Ñ 乙如果| A | = | B | = n并且L (A)= L (B)。
现在的问题是,那么:对于给定的,什么是指数〜ň?也就是说,集合{ L (A)∣ A 是 n 的DFA } 的大小是 多少?
即使是一个总函数,似乎也不是一件容易的事(至少对我而言)。该图可能未连接,并且包含初始状态的连接组件中的状态可能都被接受,因此,例如,有许多大小为n的图都接受∑ ∗。与空语言和其他最小DFA少于n个状态的语言的其他琐碎组合相同。
(幼稚的)递归似乎也不起作用。如果我们采用大小为的DFA 并添加一个新状态,那么,如果我们要保持确定性并使新图连接起来(以试图避免琐碎的情况),我们必须删除过渡以连接新状态,但是在这种情况下,我们可能会丢失原始语言。
有什么想法吗?
注意。我用正式声明又没有先前分散注意力的要素再次更新了这个问题。
只是为了澄清一下:您的意思是“一种语言可以使用个状态定义多少种语言?”,如果存在一个包含n个状态的DFA,则使用n个状态定义一种语言。另外,对于正则表达式,正则表达式“ a * aaaaaa”肯定具有> 1个串联,但是DFA仅需要一个状态(如果需要单独的接收器,则需要两个状态),不是吗?
—
Evgenij Thorstensen
抱歉:对于正则表达式示例,它应为“ a a a a a *”,因为它允许任何数字。
—
Evgenij Thorstensen
的定义似乎与“点深度”(dot-depth)概念非常相关,只是该概念通常应用于无星星的语言(可能是由于@Evgenij Thorstensen概述的原因)。
—
mhum 2011年
琐碎的观察:个状态可用于定义至少2 n种不同的语言。
—
Evgenij Thorstensen
我们可以得到多一点点,所以似乎确定。但正状态自动机的数目是围绕Ñ Ç Ñ 2 Ñ = 2 ç Ñ 登录Ñ + Ñ = 2 Θ (Ñ 登录Ñ )(假设|Σ | = C ^)。我们可以得到2 ω (ñ )?
—
卡夫