Considérons un automate fini non déterministe et une fonction . De plus, nous définissons .
Analysons maintenant la déclaration suivante:
Si , alors .
Il est facile de montrer que pour c'est vrai, donc si les automates produisent chaque mot avec une longueur jusqu'à , alors il produit .
Mais est-il toujours valable si est un polynôme?
Sinon, à quoi pourrait ressembler une construction d'un NFA pour un polynôme , st ?
Réponses:
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 1 … p 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.
la source
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.
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
Pour chaque , nous allons construire un langage de reconnaissance NFA , où est la séquence suivante (prenez par exemple):n Σ∗−{sn} sn n=3
L'idée est que nous pouvons construire un NFA se compose de cinq parties;
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:
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.n−1 n−2
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:
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/75 2n
la source