大小为


19

问题很简单直接:对于固定的,大小为n(即n个状态)的DFA接受多少种(不同的)语言?我将正式声明:nnn

将DFA定义为,其中一切正常,而δ Q × Σ Q是(可能是部分)函数。我们需要建立这一点,因为有时仅将全部功能视为有效。(Q,Σ,δ,q0,F)δ:Q×ΣQ

对于每一个,定义(等价)关系Ñ该组所有的DFA的如:Ñ 如果| A | = | B | = n并且L A= L Bn1nAnB|A|=|B|=nL(A)=L(B)

现在的问题是,那么:对于给定的,什么是指数ň?也就是说,集合{ L AA  是 n 的DFA } 的大小是 多少?nn{L(A)A is a DFA of size n}

即使是一个总函数,似乎也不是一件容易的事(至少对我而言)。该图可能未连接,并且包含初始状态的连接组件中的状态可能都被接受,因此,例如,有许多大小为n的图都接受。与空语言和其他最小DFA少于n个状态的语言的其他琐碎组合相同。δnΣn

(幼稚的)递归似乎也不起作用。如果我们采用大小为的DFA 并添加一个新状态,那么,如果我们要保持确定性并使新图连接起来(以试图避免琐碎的情况),我们必须删除过渡以连接新状态,但是在这种情况下,我们可能会丢失原始语言。k

有什么想法吗?

注意。我用正式声明又没有先前分散注意力的要素再次更新了这个问题。


只是为了澄清一下:您的意思是“一种语言可以使用个状态定义多少种语言?”,如果存在一个包含n个状态的DFA,则使用n个状态定义一种语言。另外,对于正则表达式,正则表达式“ a * aaaaaa”肯定具有> 1个串联,但是DFA仅需要一个状态(如果需要单独的接收器,则需要两个状态),不是吗?nnn
Evgenij Thorstensen

抱歉:对于正则表达式示例,它应为“ a a a a a *”,因为它允许任何数字。
Evgenij Thorstensen

的定义似乎与“点深度”(dot-depth)概念非常相关,只是该概念通常应用于无星星的语言(可能是由于@Evgenij Thorstensen概述的原因)。c(r)
mhum 2011年

1
琐碎的观察:个状态可用于定义至少2 n种不同的语言。n+12n
Evgenij Thorstensen

2
我们可以得到多一点点,所以似乎确定。但正状态自动机的数目是围绕Ñ Ç Ñ 2 Ñ = 2 ç Ñ 登录Ñ + Ñ = 2 Θ Ñ 登录Ñ (假设|Σ | = C ^)。我们可以得到2 ω ñ 2Ω(n)ncn2n=2cnlogn+n=2Θ(nlogn)|Σ|=c2ω(n)
卡夫

Answers:


20

我认为这个问题以前已经研究过了。Mike Domaratzki撰写了一份有关该领域研究的调查报告:“形式语言的枚举”,Bull。EATCS,第一卷 89(2006年6月),第113-133页:http//www.eatcs.org/images/bulletin/beatcs89.pdf


4
从第120页起,本文确实准确地解决了所提出的问题。它是函数,尽管我没有吸纳所有细节,但本文仍给出了相当严格的界限(接近Kaveh所提到的)。gk(n)
Evgenij Thorstensen

1
确实。那么我们想要的就是,或者通过给定的关系 f kn ,它是在 k个字母上具有 n个状态的成对非同构最小DFA的数量。我也没有详细研究它,但似乎只知道界限,而不是确切数量。gk(n)fk(n)nk
Janoma 2011年

6
g1(n)1n10g2(n)1n6g3(n)1n4
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.