Langages formels Corrigé Laboratoire 1

Documents pareils
Vers l'ordinateur quantique

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

CH.6 Propriétés des langages non contextuels

Système binaire. Algèbre booléenne

Chapitre 1 : Introduction aux bases de données

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

CRÉER DES LEÇONS AVEC L'ÉDITEUR DU LOGICIEL 1000 MOTS POUR APPRENDRE À LIRE EN FRANÇAIS, ANGLAIS ET ALLEMAND

Pourquoi l apprentissage?

LE PROBLEME DU PLUS COURT CHEMIN

Algorithmes de recherche

LES DÉTERMINANTS DE MATRICES

MODALITÉS DE TRANSFERT

CHAPITRE VIII : Les circuits avec résistances ohmiques

NOTIONS DE PROBABILITÉS

NORME INTERNATIONALE D AUDIT 260 COMMUNICATION DES QUESTIONS SOULEVÉES À L OCCASION DE L AUDIT AUX PERSONNES CONSTITUANT LE GOUVERNEMENT D'ENTREPRISE

Dossier Logique câblée pneumatique

Algorithmes d'apprentissage

GROUPE DE CONFIANCE protection de la personnalité MEDIATION INFORMATIONS

Raisonnement par récurrence Suites numériques

RÉPUBLIQUE ET CANTON DE GENÈVE Echelle des traitements 2015 Valable dès le Office du personnel de l'etat Indexation de 0.

modélisation solide et dessin technique

Les diagrammes de modélisation

Algorithmique avec Algobox

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Loi sur l'archivage (LArch)

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

I. Introduction aux fonctions : les fonctions standards

Conception de circuits numériques et architecture des ordinateurs

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Nous Henri, Grand-Duc de Luxembourg, Duc de Nassau; Arrêtons: Chapitre 1er - De l'agrément et du plan d'activités

Bonifications pour tâches éducatives

Import des utilisateurs depuis Sconet et STSweb - mise à jour du 04/10/06

Cours Informatique Master STEP

BANQUES DE DONNÉES PÉDAGOGIQUES

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

chapitre 4 Nombres de Catalan

De l automatisme à la domotique...

CORRECTION EXERCICES ALGORITHME 1

CODE CIVIL FRANÇAIS (ANTERIEUR A 1960)

Utilisation du tableau de bord

Routeur Wi-Fi N300 (N300R)

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

Baccalauréat technologique

Compte-rendu de projet de Système de gestion de base de données

Paiement de factures aux entreprises créancières RBC Guide du client

OPTIMISATION À UNE VARIABLE

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Oracles Cryptographiques. Trouver une joke de padding

Application 1- VBA : Test de comportements d'investissements

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Le chiffre est le signe, le nombre est la valeur.

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

GESTION DES BONS DE COMMANDE

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Cours 02 : Problème général de la programmation linéaire

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

Chapitre 4 Pierre, papier, ciseaux

Définitions. Numéro à préciser. (Durée : )

RÈGLEMENTS INTÉRIEURS ET DE PROCÉDURE

Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

NOTRE PERE JESUS ME PARLE DE SON PERE. idees-cate

DESCRIPTIF DU DOCUMENT. Déploiement Nouveau système de rémunération au ème salaire

Solicitation No. - N de l'invitation Amd. No. - N de la modif. Buyer ID - Id de l'acheteur /A C71

Hyper-V et SC Virtual Machine Manager sous Windows Server 2008 R2

PLAN DE CLASSIFICATION UNIFORME DES DOCUMENTS DU MSSS

CHAPITRE IX : Les appareils de mesures électriques

ACCORD DE PRÊT. Membre ou Conseil de (ci-après appelé «l'emprunteur»)

Module de mesure de courant pour relais statiques serie HD Module de mesure de courant HD D0340I

Organigramme / Algorigramme Dossier élève 1 SI

XTRADE TRADING CFD EN LIGNE. XTRADE - XFR Financial Ltd. est régulée par la CySEC, Licence CIF no 108/10

Procédure : Sauvegarder un Windows 7 sur un disque réseau

GUIDE DE L'ARCHIVAGE OCTOBRE 2012

L AUTOMATISME LE SIGNAL

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

6 - La conscience est-elle un processus algorithmique?

BULLETIN OFFICIEL DES IMPÔTS

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

IFT1215 Introduction aux systèmes informatiques

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

6. Les différents types de démonstrations

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

REFORME DE LA CATEGORIE B RECLASSEMENT DANS LE NOUVEL ESPACE STATUTAIRE

Une proposition de séquence relative à l étude des sons /an/, /on/ et de leurs graphies. Cadre général

Les différents types de données et leurs opérations de base

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

G.T.I. Windows V1.1 Guide d Utilisation

Algorithmique avec Algobox

NC 35 Norme comptable relative aux états financiers consolidés

Chapitre 7 - Relativité du mouvement

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

LibreOffice Calc : introduction aux tableaux croisés dynamiques

RECOMMANDATION UIT-R SM (Question UIT-R 68/1)

Parc des Bois de Grasse - 1 rue Louison Bobet GRASSE

Université de Lausanne

Dérivation CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES

Transcription:

Langages formels Corrigé Laboratoire 1 Exercice 1 a) b) ER : (a+b)*ba(a+b)* c) ER: a(a+b+c)*bc d) ER: a* + a*ba* + a*ba*ba*b(a+b)* ER: a*ba*ba* e) Lorsqu'il faut construire un automate pour un langage L qui est décrit comme l'union, l'intersection ou la différence de deux autres langages (nommons les L 1 et L 2 ), une méthode formelle permet de trouver aisément l'automate résultant à partir des automates représentants L 1 et L 2. Ici, on peut décrire L 1 et L 2 ainsi: L 1 = { m m ε {a, b} * et m se termine par bab } L 2 = { m m ε {a, b} * et m se termine par bb }

L'automate A 1 correspondant à L 1 est: L'automate A 2 correspondant à L 2 est: Maintenant que l'on connait les 2 automates correspondants aux langages L 1 et L 2, on est prêt à construire l'automate A correspondant au langage L. Essentiellement, chaque état de A correspondra à un état de A 1 et à un état de A 2. L'algorithme permettant de fusionner A 1 et A 2 afin de créer A est le suivant : - Créer un premier état de A correspondant à l'état initial de A 1 et à l'état initial de A 2. Cet état sera l'état initial de A. - Tant qu'il existe des états de A pour lesquels on n'a pas cherché de transition : - Soit E, le prochain état de A qui n'a pas ses transitions. - Soit E 1, l'état correspondant à E dans l'automate A 1. - Soit E 2, l'état correspondant à E dans l'automate A 2. - Pour chaque symbole du vocabulaire : - Soit s le symbole suivant du vocabulaire. - Créer la transition t(e, s) = E', où E' correspond à l'état d'arrivée de la transition t(e 1, s) et de la transition t(e 2, s). - Si E' n'existe pas dans A, ajouter E' à A. - Ajouter à A la transition t(e, s) = E'. Cet algorithme écrit de manière formelle peu sembler un peu complexe, mais l'application est en fait assez simple: 1. L'état initial de A 1 est l'état '1' et l'état initial de A 2 est l'état '5'. On crée donc l'état '1 5' qu'on ajoute au nouvel automate A. L'état '1 5' est l'état initial de A. 2. On a toujours pas trouvé les transitions partant de l'état '1 5'. C'est donc la prochaine étape. Il s'agit d'ajouter une transition pour chaque

symbole du vocabulaire, c'est-à-dire sur les symboles 'a' et 'b'. Pour ce faire il faut se demander: Quel est l'état d'arrivée de la transition sur le symbole 'a' à partir de l'état '1' de l'automate A 1? et Quel est l'état d'arrivée de la transition sur le symbole 'a' à partir de l'état '5' de l'automate A 2?. La réponse à ces deux questions permettra de trouver l'état d'arrivée de la transition sur le symbole 'a' à partir de l'état '1 5' de l'automate A. Dans notre cas, la réponse à la première question est '1' et la réponse à la deuxième question est '5'. L'état d'arrivée de la transition sur 'a' à partir de l'état '1 5' de A est l'état '1 5'. Notez que cette transition boucle donc sur un même état. Maintenant, il faut aussi trouver l'état d'arrivée de la transition sur le symbole 'b'. On se pose à nouveau les mêmes questions, mais en utilisant le symbole 'b'. Cette fois, les réponses sont '2' et '6'. L'état d'arrivée de la transition sur 'b' à partir de l'état '1 5' est donc l'état '2 6'. L'état '2 6' n'existe pas dans A. Il faut donc l'ajouter, en plus de la transition t('1 5', b) = '2 6'. 3. Comme on vient de créer un nouvel état '2 6' pour lequel on a toujours pas cherché les transitions sortantes, il faut refaire le même procédé et se poser les mêmes questions, mais en utilisant l'état '2' de A 1 et l'état '6' de A 2. 4. On continue ainsi jusqu'à obtenir un automate A pour lequel tous les états ont leur transitions sur chaque symbole. L'automate que l'on obtient est le suivant: Cet automate est presque complet, seulement il lui manque ses états finaux. Pour trouver les états finaux, il suffit d'appliquer la règle suivante: - Si l'on cherche à créer un automate acceptant les mots de L 1 ou L 2 (c-a-d L 1 L 2 ), chaque état de A correspondant à un état final de A 1 ou à un état final de A 2 devient un état final. Ici, l'état '2 7' et l'état '4 6' serait dans cette situation. - Si l'on cherche à créer un automate acceptant les mots de L 1 et L 2 (c-a-d L 1 L 2 ), chaque état de A correspondant à un état final de A 1 et à un état final de A 2 devient un état final. Ici, aucun état n'est dans cette situation. (Note: s'il y avait un état '4 7', il serait final). - Si l'on cherche à créer un automate acceptant les mots de L 1 sans les mots de L 2 (c-a-d L 1 - L 2 ), chaque état de A correspondant à la fois à un état final de A 1 et à un état non-final de

A 2 devient un état final. Ici, seul l'état '4 6' serait dans cette situation. Comme l'on cherche à trouver l'automate correspondant à L 1 L 2, l'automate final recherché est le suivant: f) ER : (a+b)*bab + (a+b)*bb = (a+b)*(bab + bb) ER : L'expression régulière pour cet automate est assez complexe et ne sera pas donnée. Cependant, une méthode possible pour trouver l expression régulière serait de donner l expression régulière pour chaque chemin menant à un état final, i.e.: bbb* + bbb*ab* +... Exercice 2 La déterminisation consiste à transformer un automate fini non-déterministe en une version déterministe équivalente (c-a-d un AFD qui accèpte le même langage). Un automate est considéré non-déterministe s'il possède l'une ou l'autre des propriétés suivantes: Contient au moins une transition sur ε Contient au moins un état à partir duquel sort 2 transitions sur le même symbole. On donne l'appelation «non-déterministe» à ce type d'automate, car ces 2 propriétés font en sorte que dans certaines circonstances, on a un choix arbitraire à prendre sur la prochaine action à entreprendre. Pour l'automate de l'exercice #1, celui-ci contient 2 transitions sur ε et 2 transitions sur le symbole 'a' à partir de l'état 3. Il est donc non-déterministe.

Comme un automate non-déterministe permet de faire certains choix sur les transitions à prendre, il est donc possible, pour une même séquence de symboles d'entrée, de se retrouver dans divers états différents. Le processus de déterminisation consiste à prendre chaque ensemble d'état qu'il est possible d'atteindre à un moment précis dans l'automate non-déterministe et de créer pour chacun d'entre eux, un état qui les représente dans l'automate déterministe. La première étape du processus de déterminisation consiste donc à trouver quels sont les états qu'il est possible d'atteindre avant même lire un premier symbole. Cet ensemble contient nécessairement l'état initial i de l'afn, ainsi que tous les états atteignables grâce à des transitions sur ε à partir de i. Cet ensemble d'état devient l'état initial de l'afd que nous cherchons à construire. Nous ajoutons cet état à la liste E' des états de l'afd. À partir de cet ensemble initial d'états, il faut trouver les ensembles d'états que l'on peut atteindre sur chaque symbole du vocabulaire: - Soit E 1, l'ensemble d'états de départ. - Pour chaque symbole s du vocabulaire : - Soit E 2 = {} un ensemble d'états initialement vide. - Pour chaque états e 1 ε E 1 : - Pour chaque transition t(e 1, s) de l'afn : - Soit e 2 = t(e 1, s). //L'état d'arrivée de la transition. - Ajouter e 2 à E 2. - Ajouter aussi à E 2 tous les états qu'il est possible d'atteindre à l'aide d'une ou plusieurs transitions successives sur ε, à partir de e 2. - Ajouter E 2 à la liste E' des états de l'afd. - Ajouter t(e 1, s) = E 2 à la liste des transitions de l'afd. On répète ce processus tant qu'il y a des états dans E' qui n'ont pas été pris en compte. Aussi, n'oubliez pas que par définition, un ensemble ne peut contenir plus d'une fois chaque élément! Voici l'afd résultant pour l'afn du problème, obtenu en utilisant la méthode décrite ci-haut: A' = (E', V', i', t', F), où E' = {A, B, C} //On ne connait la liste des états qu'une fois le processus terminé V' = {a, b} i' = {1, 3} = A t' : t'(a, a) = {3, 4} = B t'(a, b) = {1, 2, 3, 4} = C t'(b, a) = {3, 4} = B t'(b, b) = {1, 3} = A t'(c, a) = {3, 4} = B t'(c, b) = {1, 2, 3, 4} = C F = {C} //Les états finaux sont ceux contenant au moins un état final de l'afn.

Graphiquement, cet automate déterministe est représenté ainsi: Exercice 3 a) Arbre de décomposition : Automate : b) Arbre de décomposition :

Automate : Exercice 4 Pour minimiser un automate, il faut tout d abord : - S assurer qu il est déterministe. - Éliminer les états qui ne sont pas atteignables à partir de l état initial, ainsi que les transitions adjacentes à ces états. - Éliminer les états à partir desquels on ne peut pas atteindre un état final, ainsi que les transitions adjacentes à ces états. Dans le cas de l automate à minimiser pour cet exercice, celui-ci est déjà déterministe. Les états 10 et 11 sont par contre inatteignables à partir de l état initial, et les états 12 et 13 ne mènent à aucun état final. Nous pouvons donc éliminer tout de suite ces états. L étape suivante est de construire ce tableau, en regroupant les états initiaux dans une classe, et les états finaux dans une seconde classe : Comme les états de la classe A n ont pas tous les mêmes états d arrivée pour des transitions sur les mêmes symboles, il faut séparer cette classe en 2 nouvelles classes. On continue ainsi jusqu à ce qu on obtienne un tableau où chaque classe respecte cette condition :

Nous pouvons maintenant créer, à partir du dernier tableau, l automate minimal acceptant le même langage que l automate de l énoncé. Chaque classe correspond à un état de l automate minimal. L état minimal est la classe contenant l état initial de l automate de départ. L état final est la classe contenant les états finaux de l automate initial. Si cette classe avait été séparée en deux ou plusieurs sous-classes durant le processus, alors chacune de ces sous-classes correspondrait à un état final de l automate minimal. Automate minimal :