Fixe un entier et un alphabet . Définissez comme la collection de tous les automates à états finis sur états avec l'état de départ 1. Nous considérons tous les DFA (pas seulement ceux connectés, minimaux ou non dégénérés); ainsi .
Considérons maintenant deux chaînes et définissons comme le nombre d'éléments de qui acceptent à la fois et .
Question: Quelle est la complexité du calcul de ?
Cette question a des implications pour l'apprentissage automatique .
Edit: Maintenant qu'il y a une récompense sur cette question, je suppose qu'un peu plus de précision dans la formulation est de mise. Pour , soit la collection de automates, comme défini ci-dessus. Pour , définissez comme le nombre d'automates dans qui acceptent les deux et . Question: peut-il être calculé en temps ?
Réponses:
La question est donc assez brève mais très intéressante. Je suppose que l'entrée est en unaire et x et y en binaire (ou nous avons des problèmes, comme l'a souligné la réponse de Kai).n X y
Tout d'abord, si vous souhaitez connaître approximativement , vous pouvez simplement générer quelques DFA aléatoires et cela vous donnera (whp) une bonne approximation. (Je me demande si cette classe de complexité a un nom.)K(x,y)
Alors connaître semble précisément être un problème difficile. Comme indiqué dans les commentaires de a3_nm et Kaveh, la question revient à déterminer le nombre d'automates pour lesquels x et y passent au même état. Je dénoterai la probabilité qu'ils passent au même état par p .K(x,y) x y p
Mise à jour: Certaines des choses que j'ai écrites ici n'étaient pas vraies, maintenant je les ai corrigées.
Il est facile de voir que . Nous avons l'égalité, si x est tout 0 et y est tout zéro sauf pour son dernier bit, qui est un 1. Y a-t-il d'autres cas? Je ne sais pas. Si par exemple x est la chaîne vide et , alors .p≥1/n x y x p = n + 1y=00 p=n+1(n−1)n
Pour simplifier le problème, j'ai même commencé à penser à ce qui se passe si et sont unaires. Si les deux sont au moins et que leur différence est divisible par, alors . Existe-t-il une formule simple pour la version unaire?y n n ! p = 1x y n n! p=1
la source
Je peux très bien manquer le point, mais vous avez déclaré que est fixe, donc tous les DFA de cette taille pourraient être considérés comme précalculés et stockés dans un format facilement simulable. Calculez K comme suit:n K
En entrée , y où x , y ∈ Σ ∗x y x,y∈Σ∗
une. simulez-le sur les deux mots (cette étape est )O(|xy|)
b. incrémenter si les deux cycles de simulation acceptentc
Au total, le calcul a une complexité linéaire. La réponse est assez différente pour .K(n,x,y)
la source