Demain c'est ma présentation et je veux clarifier mes concepts…
J'ai lu que dans DFA, "Pour chaque état, la transition sur tous les symboles possibles (alphabet) devrait être définie."
La définition de la transition sur tous les symboles possibles est-elle obligatoire pour chaque état dans DFA? Si ce n'est pas le cas, veuillez donner des exemples?
Réponses:
Un DFA est spécifié par les données suivantes:
Comme vous pouvez le voir sur la signature de , il spécifie une transition à chaque état pour chaque symbole.δ
la source
Supposons qu'un DFA ait été autorisé à avoir des transitions manquantes. Que se passe-t-il si vous rencontrez un symbole qui n'a pas de transtion défini pour lui? Le résultat n'est pas défini. Cela semblerait violer la caractéristique "déterministe" d'un DFA.
Cependant, il est trivial de transformer un DFA aussi incomplet en un DFA complet. Ajoutez simplement un nouvel état,
illegal
et mappez toutes les transitions non définies à l'illegal
état. Enfin, ajoutez des transitions pour chaque symbole de l'illegal
état à lui-même. Cetillegal
état est souvent appelé état récepteur , car une fois que les données tombent dans le récepteur, il n'y a aucun moyen de sortir.Donc, d'un point de vue pratique, c'est un peu théorique, tant que vous avez une façon bien définie de gérer les transitions manquantes.
la source
Un mot est accepté par un NFA s'il a un cycle d'acceptation. Un automate déterministe a au plus un cycle. Un automate complet a au moins un cycle.
Certains auteurs définissent les automates de trim comme ceux dans lesquels chaque état se trouve sur un chemin allant d'un état initial à un état final. Pour certaines langues, vous ne pouvez pas avoir d'automates à la fois ajustés et complets. Dans ces cas, il est commode de garder l'exigence d'exhaustivité hors de la définition de l'automate déterministe.
la source