Tout problème résolu par un automate fini est en P

8

Après ma classe de théorie du calcul aujourd'hui, cette question m'est venue à l'esprit: si un problème peut être résolu par un automate fini, ce problème appartient à P.

Je pense que c'est vrai, puisque les automates reconnaissent des langages très simples, donc tous ces langages auraient des algorithmes polynomiaux pour les résoudre. Ainsi, est-il vrai que tout problème résolu par un automate fini est en P?

Sisyphe
la source

Réponses:

15

Oui c'est vrai. En termes de classes de complexité,

REGP,
REGest la classe des langages réguliers (c'est-à-dire les problèmes qui peuvent être résolus par un automate fini). Plus précisement,
(*)REGDTIME(n),
et DTIME(n) est un sous-ensemble strict de P par le théorème de la hiérarchie du temps.

La preuve de (*) est la suivante: pour tout problème dans REG, il existe un DFA qui le résout. Convertissez ce DFA en une machine Turing avec les mêmes états et la même fonction de transition, qui se déplace toujours vers la droite jusqu'à ce qu'elle voit un blanc, puis accepte ou rejette. Cette machine de Turing s'arrête toujours dans le temps exactementn.


Il convient également de mentionner que

REG=DSPACE(0)=DSPACE(k)
pour toute constante fixe k.
6005
la source
7

Oui c'est vrai. Pour chaque problème de ce type, il existe un DFA qui décide de la langue, et la vérification si un mot est accepté par un DFA peut facilement être effectuée en temps linéaire dans la longueur du mot.

Pontus
la source