Skip to content

étude des langages et automates finis, en se basant sur le langage de programmation Python.

Notifications You must be signed in to change notification settings

slylyes/Projet-Automates

Repository files navigation

Projet Automates by Lyes SID ALI

1. Présentation du projet :

Ce projet a pour but d'étudier les langages et les automates finis, à travers divers opérations qu'on peut effectuer sur des automates.

2. Environnement technique :

Le projet est réalisé sous forme d'un fichier Jupyter Notebook en utilisant le langage de programmation python. Pour simplifier les fonctions présentées dans le projet, on fait de la programmation orientée objet avec python, afin de pouvoir mieux manipuler les objets qui representent un automate (Transition, Etat, Automate).

3. Etapes du projet :

Dans le fichier jupyter, on peut voir que le projet se compose en 5 parties différentes : _Présentation : Une présentations des classes State, Transition et Automate, et explication des attributs et méthodes de chacune de ces classes. Il est impératif de comprendre comment fonctionnent ces 3 classes car elles seront au coeur de toute la suite du projet. _Prise en main : Dans cette partie on va commencer à créer des automates en utilisant différentes façons (à partir d'un ensemble de transitions, d'un fichier...etc). _Test et complétion : Des exercices de base de manipulation des automates, quelques fonctions qui vont servir pour la suite ainsi que des fonctions qui permettent de savoir si un automate est complet où détérministe, sinon le compléter. _Détérminisation : Dans la précédente partie on a écrit une fonction qui permet de savoir si un automate est détérministe ou non, maintenant on s'intersse à une fonction qui permet de créer un nouvel automate détérministe à partir d'un automate non détérministe, en prenant soin de vérifier tout les cas possibles. _Construction : Cette partie est un peu plus technique que les précédentes car il faut savoir traduire un algorithme mathématique en langage python, en construisant des automates à partir de différentes opérations telles que le complémentaire, l'intersection, l'union...etc.

4. Conclusion :

ce projet m'a permis de développer ma façon de reflechir, en schématisant un problème informatique où un algorithme, et de concevoir une première idée pour ecrire cet algorithme dans le corps d'une fonction python. C'est aussi un bel exemple de mélange entre programmation orientée objet et de programmation fonctionnelle.

About

étude des langages et automates finis, en se basant sur le langage de programmation Python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published