Conditions d'universalité NFA

28

Considérons un automate fini non déterministe et une fonction . De plus, nous définissons .A=(Q,Σ,δ,q0,F)f(n)Σk=ikΣi

Analysons maintenant la déclaration suivante:

Si , alors .Σf(|Q|)L(A)L(A)=Σ

Il est facile de montrer que pour c'est vrai, donc si les automates produisent chaque mot avec une longueur jusqu'à , alors il produit .f(n)=2n+12|Q|+1Σ

Mais est-il toujours valable si est un polynôme?f

Sinon, à quoi pourrait ressembler une construction d'un NFA pour un polynôme , st ?ApΣp(|Q|)L(A)Σ

Mike B.
la source
Je voudrais donner la prime à une preuve ou à une preuve que f(n)=2no(n) pour le cas |Σ|2 . Et s'il n'y en a pas, je le donnerai à la meilleure construction possible.
Hsien-Chih Chang 張顯 之

Réponses:

22

Pour que l'instruction tienne, f doit croître de façon exponentielle, même avec l'alphabet unaire.

[Edit: L'analyse est légèrement améliorée dans la révision 2.]

Voici un croquis de preuve. Supposons que l'instruction contienne et soit f une fonction telle que tout NFA avec au plus n états qui accepte toutes les chaînes de longueur au plus f ( n ) accepte toutes les chaînes que ce soit. Nous prouverons que pour tout C > 0 et n suffisamment grand , nous avons f ( n )> 2 C ⋅√ n .

Le théorème des nombres premiers implique que pour tout c <lg e et pour des k suffisamment grands , il y a au moins c ⋅2 k / k nombres premiers dans l'intervalle [2 k , 2 k +1 ]. On prend c = 1. Pour un tel k , soit N k = ⌈2 k / k ⌉ et définissons un NFA M k comme suit. Soit p 1 ,…, p N k des nombres premiers distincts dans l'intervalle [2 k , 2 k +1]. Le NFA M k a S k = 1 + p 1 +… + p N k états. Hormis l'état initial, les états sont partitionnés en N k cycles où le i ème cycle a une longueur p i . Dans chaque cycle, tous les états sauf un sont des états acceptés. L'état initial a N k fronts sortants, chacun passant à l'état immédiatement après l'état rejeté dans chaque cycle. Enfin, l'état initial est également accepté.

Soit P k le produit p 1p N k . Il est facile de voir que M k accepte toutes les chaînes de longueur inférieure à P k mais rejette la chaîne de longueur P k . Par conséquent, f ( S k ) ≥ P k .

Notez que S k ≤ 1 + N k ⋅2 k +1 = o (2 2 k ) et que P k ≥ (2 k ) N k ≥ 2 2 k . Le reste est standard.

Tsuyoshi Ito
la source
Quelle est votre conjecture sur la meilleure valeur de ? Dites , ou quelque part entre et ? ff(n)=2n+12n2cn
Hsien-Chih Chang 張顯 之
@ Hsien-Chih: Je me demandais la même chose, et je n'ai aucune conjecture raisonnable. Tout d'abord, il est trivial de voir f (n) ≤2 ^ n (nous n'avons pas besoin de +1) et, bien que j'attende une amélioration linéaire par rapport à cette limite supérieure, je n'ai aucune idée si elle est serrée jusqu'à un facteur constant. (plus)
Tsuyoshi Ito
(suite) Deuxièmement, comme pour la borne inférieure, si je ne me trompe pas, un léger raffinement de l'analyse ci-dessus donne la borne inférieure suivante: pour chaque constante 0 <c < et n suffisamment grand, nous avons . D'autres raffinements sont probablement possibles, mais nous ne pouvons pas obtenir une borne inférieure telle que 2 ^ {n ^ p} pour p> 1/2 si nous utilisons la même construction du NTM. Je pense que c'est une question intéressante de savoir si l'utilisation de la distribution des nombres premiers (comme le PNT) est essentielle pour une construction de mauvais exemples. (plus)1/2f(n)>ecnlnn
Tsuyoshi Ito
(suite) Cependant, si vous êtes intéressé et souhaitez approfondir votre recherche, il est probablement plus sage de rechercher d'abord la documentation. Je ne serai pas surpris si cette réponse ou quelque chose de mieux est déjà apparue dans la littérature.
Tsuyoshi Ito
5
@Tsuyoshi: Chrobak montre qu'un DFA à n états pour une langue unaire peut être simulé par un NFA à états pour . Ainsi votre construction est serrée si la langue est unaire. Voir [Chr86]: cs.ust.hk/mjg_lib/Library/Chro86.pdfm=O(enlogn)
Hsien-Chih Chang 張顯 之
19

EDIT AU 10/12/06:

ok, c'est à peu près la meilleure construction que je puisse obtenir, voir si quelqu'un a de meilleures idées.

Théorème. Pour chaque Il existe un NFA sur les alphabets avec sorte que la chaîne la plus courte qui n'est pas dans soit de longueur .n(5n+12)MΣ|Σ|=5L(M)(2n1)(n+1)+1

Cela nous donnera .f(n)=Ω(2n/5)

La construction est à peu près la même que celle de Shallit , sauf que nous construisons un NFA directement au lieu de représenter d'abord le langage par une expression régulière. Laisser

Σ={[00],[01],[10],[11],} .

Pour chaque , nous allons construire un langage de reconnaissance NFA , où est la séquence suivante (prenez par exemple):nΣ{sn}snn=3

s3=[00][00][01][00][01][10][11][11][01] .

L'idée est que nous pouvons construire un NFA se compose de cinq parties;

  • un démarreur , qui garantit que la chaîne commence par ;[00][00][01]
  • un terminateur , qui garantit que la chaîne se termine par ;[11][11][01]
  • un compteur , qui maintient le nombre de symboles entre deux comme ;n
  • un vérificateur d'add-one , qui garantit que seuls les symboles de la forme apparaissent; enfin,xx+1
  • un vérificateur cohérent , qui garantit que seuls les symboles de la forme peuvent apparaître simultanément.xyyz

Notez que nous voulons accepter au lieu de , donc une fois que nous découvrons que la séquence d'entrée désobéit à l'un des comportements ci-dessus, nous acceptons la séquence immédiatement. Sinon aprèsétapes, la NFA sera dans le seul état de rejet possible. Et si la séquence est plus longue que, la NFA accepte également. Ainsi, tout NFA remplit les cinq conditions ci-dessus ne rejettera que .Σ{sn}{sn}|sn||sn|sn

Il peut être facile de vérifier directement la figure suivante au lieu d'une preuve rigoureuse:

NFA pour rejet de s_n

Nous commençons à l'état supérieur gauche. La première partie est le démarreur et le compteur, puis le vérificateur cohérent, le terminateur, enfin le vérificateur add-one. Tout l'arc sans noeuds terminaux pointe vers l'état en bas à droite, qui est un accepteur de tous les temps. Certains bords ne sont pas étiquetés par manque d'espace, mais ils peuvent être récupérés facilement. Une ligne en pointillés représente une séquence de états avec arêtes.n1n2

Nous pouvons (douloureusement) vérifier que le NFA rejette uniquement, car il suit les cinq règles ci-dessus. Ainsi, un NFA -état avec a été construit, ce qui satisfait l'exigence du théorème.sn(5n+12)|Σ|=5

S'il y a un manque de clarté / problème avec la construction, veuillez laisser un commentaire et je vais essayer de l'expliquer / le corriger.


Cette question a été étudiée par Jeffrey O. Shallit et al., Et en effet la valeur optimale de est toujours ouverte pour . (Quant à la langue unaire, voir les commentaires dans la réponse de Tsuyoshi )f(n)|Σ|>1

À la page 46-51 de son exposé sur l'universalité , il a fourni une construction telle que:

Théorème. Pour pour certains assez grands, il existe un NFA sur les alphabets binaires de telle sorte que la chaîne la plus courte qui n'est pas dans soit de longueur pour .nNNnML(M)Ω(2cn)c=1/75

Ainsi, la valeur optimale pour se situe entre et . Je ne sais pas si le résultat de Shallit s'est amélioré ces dernières années.f(n)2n/752n

Hsien-Chih Chang 張顯 之
la source
Je joue avec le travail de Shallit, j'espère obtenir une meilleure limite beaucoup près de . Leur construction semble intéressante, en spécifiant une séquence de longueur qui ne peut pas être représentée par une expression régulière "courte" de longueur , et chaque expression régulière de longueur peut être décrit par un NFA de taille . Actuellement, je suis capable de laisser , mais une idée plus intelligente doit se rapprocher de . 2nΩ^(2n)cn+o(n)f(n)f(n)+1c222n
Hsien-Chih Chang 張顯 之
2
Je ne pense pas que cela donne d'autres informations pour étudier ce problème, mais la référence scientifique appropriée pour le discours de Shallit est: K. Ellul, B. Krawetz, J. Shallit, M. Wang: Expressions régulières: nouveaux résultats et problèmes ouverts. Journal of Automata, Languages ​​and Combinatorics 10 (4): 407-437 (2005)
Hermann Gruber
@Hermann: Merci pour la référence, actuellement je ne peux pas accéder au papier, mais je vais trouver un moyen de le faire.
Hsien-Chih Chang 張顯 之
Je pense qu'en utilisant le compteur, nous pouvons remplacer le démarreur et le terminateur par une petite machine à 2 états. Donc, cela réduit encore la taille de NFA à . 3n+O(1)
Hsien-Chih Chang 張顯 之
1
La version préimprimée de l'auteur du document JALC noté est ici: cs.uwaterloo.ca/~shallit/Papers/re3.pdf La reliure et la preuve sont les mêmes dans la version imprimée.
Hermann Gruber