多少DFA接受两个给定的字符串?


28

固定整数和字母。将定义为具有起始状态1的个状态上所有有限状态自动机的集合。我们正在考虑所有 DFA(不仅是连接的,最小的或非退化的)。因此,。Σ = { 0 1 } d ˚F Ñ ñ | D F A n | = n 2 n 2 nnΣ={0,1}DFA(n)n|DFA(n)|=n2n2n

现在考虑两个串,并确定是的元素的数量该接受两个和。 ķ X ÿ d ˚F Ñ x,yΣK(x,y)DFA(n) ÿxy

问题:计算的复杂度是多少?K(x,y)

这个问题对机器学习有影响。

编辑:现在有一个悬赏在这个问题上,我想在公式上要更精确一点。对于,令为自动机的集合,如上所定义。对于,定义是自动机的数目该接受两个和。问题:可以在时间计算吗?d ˚F Ñ ñ 2 Ñ 2 Ñ X ÿ { 0 1 } * ķ ÑX ÿ d ˚F Ñ n1DFA(n)n2n2nx,y{0,1}Kn(x,y)DFA(n) y K nx y p o l y n | x || y |xyKn(x,y)poly(n,|x|,|y|)


2
如果您固定DFA而不固定最终状态,那么它要么将x和y映射到相同的状态,在这种情况下,唯一的约束是该状态必须是最终状态,或者将它们映射到两个不同的状态,在这种情况下唯一的限制是它们都必须是最终的。因此,我将您的问题改写为“有多少DFA将x和y映射到不同的状态?”。
2011年

3
Aryeh,您能解释一下计数吗?我无法得到因子。补充:糟糕,我忘了指定最终状态。无论如何,为了别人,这是计数的方法。对于每种状态,指定输入和;占。指定最终状态集;那是。2 n 0 1 n 2 n 2 nn2n2n2n01n2n2n
Srivatsan Narayanan

2
确实,我不在乎x以外的字符串会发生什么y。我想有人需要一定数量的积分才能开始赏金吗?
Aryeh

4
接受y的最小自动机只有一个状态,所以我认为它的信息量不大……xy
Aryeh

3
这是一个想法:我们只需要知道在xy上处于相同状态的状态DFA 的数量即可。假设此数字为mM为DFA的总数,即 M = n 2 n 2 n。那么答案是1nxymMM=n2n2n12m+14(Mm)mxyx=0ab=1bl0 a 1 b mmax{a,b}0a1bm

Answers:


1

因此,问题很简短,但非常有趣。我想输入的值是一元的,和的二进制(否则,我们会遇到问题,正如Kai的答案所指出的那样)。X ÿnxy

首先,如果您有兴趣大致了解,则可以生成一些随机DFA,这将为您(whp)提供一个很好的近似值。(我想知道这个复杂性类是否有名称。)K(x,y)

那么知道恰恰是一个棘手的问题。正如a3_nm和Kaveh在评论中所指出的,这个问题等同于确定和进入相同状态的自动机的数量。我将用表示它们进入相同状态的概率。x y pK(x,y)xyp

更新:我在这里写的一些东西是不正确的,现在我将其修复。

很容易看到。我们有相等性,如果的全为0,而的全为零(除了最后一位为1),还有其他情况吗?我不知道。例如,如果是空字符串且,则。X Ŷ X Ŷ = 00 p = Ñ + 1p1/nxyxy=00p=n+1(n1)n

为了简化问题,我什至开始考虑如果和为一元会发生什么。如果两者都至少为并且它们的差可被整除,则。一元版本有简单的公式吗?y n n p = 1xynn!p=1


我已经澄清了这个问题-需要算法(或从某些已知的难题中减少)。在介绍此内核的论文中采用了采样近似值:portal.acm.org/citation.cfm?id=1577108poly(n,|x|,|y|)
Aryeh

2
至于一元版本:只有多项式的状态一元自动机,所以我敢打赌,有一种用于计算的多时算法。K nx y nKn(x,y)
Aryeh

确实,一元版本是可计算的,这是绝对正确的。我仍然想知道给定x和y的公式有多简单。
domotorp 2011年

您使用的归约方法有很多错误:x和y可能被同一自动机接受,并以完全不同的状态结束,实际上,它们可能仅在路径中共享起始状态,这对于所有字符串都是正确的。
amnn

@amnn:我写这篇文章已经三年了,但是答案的第三段不能解释为什么我只处理以相同状态结尾的问题吗?
domotorp

0

我可能很想念这一点,但您指出是固定的,因此可以将所有该大小的DFA视为预先计算并以易于模拟的格式存储。计算如下:ķnK

在输入,,其中Ÿ X Y ^ ∈ Σ *xyx,yΣ

  1. 存储和ÿxy
  2. 将计数器初始化为0c0
  3. 对于您的 DFA中的每一个n2n2n
  4. 一种。在两个单词上模拟它(此步骤为O(|xy|)

    b。如果两个模拟运行都接受,则增加c

  5. 输出c

总之,该计算具有线性复杂度。对于答案完全不同。K(n,x,y)


3
显然,尝试所有机器都可以。Aryeh想知道是否存在多项式时间算法或其他结果。
列夫·雷津

严格来说,这是输入中的多项式时间,如果n不属于输入,那就是Kai所说的。但是问题显然不同。
domotorp 2011年

4
哦,我懂了。我认为那不是他所说的“ fix 。我认为对问题的自然解释是不能轻视它的。n
列夫·雷津

1
是的,谢谢你指出漏洞,凯。已修复:)
Aryeh
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.