publicMasters/1-ComputationAndData/6ComputationAndData.md

1.9 KiB

Quelques constructions autour des automates.

Nous avons vu le modèle des automates finis. Nous explorons ici trois techniques.

Complétez l'automate.

Un automate est incomplet si il peut arriver qu'au cours d'un calcul on ne sache pas quoi faire. Ceci correspond dans la table de transition à une case sans prochain état pour une lettre donnée.

Pour le compléter, on ajoute un état poubelle à notre automate. Cet état est un puits dans lequel on reste coincé (toutes transitions sortante reste dans cet été poubelle); et, toute transition manquante devient une transition vers cet état poubelle.

Déterminisation

  • Exemple d-un automate non déterministe à 3 état qui calcule les mots qui commencent et terminent par a et ont au moins deux lettres.
  • Calcul sous forme d'un arbre pour aaa, et aaab
  • Table de transition
  • digression parralèlisme (multi coeurs)
  • digression préemption plusieurs processus (commande top)
  • digression problème mémoire partagée etc
  • retour exemple automate. Super-état. Déterminisation.

Méthode.

  • On part de l'état initial, on note les états accessibles depuis cet état.
  • Si un état n'existe pas, on ajoute le super étart correspondant.
  • Un super-état est acceptant ssi il contient un état acceptant.
  • On arrête la construction quand on ne recontre pas de nouvel état.

Exercice.

On déterminise l'automate non déterministe à 5 états qui acceptent les mots (y compris d'une lettre) qui commencent et terminent par la même lettre.

Donnée du problème : Dessin au tableau

  1. Donnez table de transition
  2. Pourquoi l'automate n'est pas déterministe
  3. Déterminisez l'automate avec la méthode vue en cours.

Correction.

a b c
0 (initial) 1,OK 2,OK 3,OK
1 1,OK 1 1
2 2 2,OK 2
3 3 3 3,OK
OK (acceptant)

Équivalence.