maths-pour-info-tp-automate/README.md

1.9 KiB

Mathématiques pour l'informatique - L3.APP.RI.MPI.TP

Adam BELGHITH, Alexandre CHEN, Tunui FRANKEN, Thomas JUBAULT

Travail à effectuer

  1. lecture d'un automate décrit dans un fichier .txt et représentation en mémoire
  2. affichage de l'automate sous forme d'une table des transitions, en indiquant les états initiaux et terminaux
  3. vérification des propriétés déterministe ou non, complet ou non de l'automate
  4. reconnaissance de mots
  5. standardisation et ajout / élimination du mot vide
  6. passage au langage complémentaire

Caractéristiques des automates

  • les états sont représentés par des nombres consécutifs, à partir de 0 (0 à 4 pour 5 états)
  • les symboles de l'alphabet sont des lettres consécutives, à partir de a (a, b, c pour 3 symboles)

Usage

Le programme est découpé en modules. Le point d'entrée du programme est launch_automate.py.

$ ./launch_automate.py --help
PS C:\> py launch_automate.py --help

Ajout d'automates

Il est possible d'ajouter des automates dans le dossier automates, au format .txt. Dans ce cas, utiliser les commentaires dans les autres fichiers d'automates pour respecter le format.

Reconnaissance de mots

La reconnaissance de mots peut se faire de deux façons :

  • en fournissant un fichier à lire, qui contient le mot à reconnaître
  • en tapant le mot au clavier, si la commande est lancée sans fichier contenant un mot à reconnaître

Le mot vide est un mot valable, il peut être fourni dans un fichier vide, ou bien en appuyant sur Entrée directement au clavier.

Des fichiers de test sont dans le dossier words. Leur titre devrait être explicatif.

Graphes des états des automates

Les graphes sont générés automatiquement en LaTeX.
Dans certains cas la disposition des états peut être mauvaise, il faut alors retoucher le fichier .tex à la main.

Merci à https://latexdraw.com/automata-diagrams-in-latex/