IFT313 Introduction aux langages formels

Slides:



Advertisements
Présentations similaires
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Advertisements

IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
Volée 1316 S3 Cours No 2_3 : Le nombre en 1-2H. Les fonctions du nombre  Dénombrer, énumérer, décrire une collection. Aspect cardinal  Dater, classer,
Cours COMPOSANTES DES VECTEURS Dimitri Zuchowski et Marc-Élie Lapointe.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
Sommaire : I.Introduction II.Fibre optique (pr é sentation g é n é ral de la fibre) III.Les techniques de transmissions -Multiplexage temporelle (TDM)
Calcul de probabilités
Fonctions et composants électroniques élémentaires
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
16 Apprendre à rédiger Voici l’énoncé d’un exercice et un guide (en orange) ; ce guide vous aide : pour rédiger la solution détaillée ; pour retrouver.
Calcul et interprétation de taux de variation
FAIRE UNE DEMANDE DE SUBVENTION SUR E-SUBVENTION
Étude de la fonction f(x) = x² avec Cabri Géomètre II Plus
Valeurs de toutes les différences observables sous H0
Exposé : Les arbres phylogénétiques
Première partie : La droite de budget
IFT 702 – Planification en intelligence artificielle Langage PDDL
IFT313 Introduction aux langages formels
Besoin d’une volontaire pour lancer un volant de Badminton !
1.3 COORDONNÉES DES POINTS
Lois fondamentales de l'algèbre de Boole
Premier objectif : définir un acide et une base :
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Les opérations sur les nombres
IFT 615 – Intelligence artificielle Recherche heuristique
chapitre 1 : Généralités sur les Fonctions.
Principes de programmation (suite)
Fonctions logiques et algèbre booléenne
Semaine #4 INF130 par Frédérick Henri.
Le choix optimal.
Tableau de bord des risques
Régularité et algèbre 3.1 L’élève doit pouvoir explorer des relations : a) à partir de suites non numériques à motif croissant impliquant les notions d’aire.
Information, Communication, Calcul
Albrecht Dürer Et son carré magique.
1.2 dénombrement cours 2.
IFT313 IFT313 Introduction aux langages formels Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Introduction aux langages formels
POL1803: Analyse des techniques quantitatives
Ondes électromagnétique dans la matière
Chapitre 3 : Caractéristiques de tendance centrale
Energie ??? Première approche d’une notion terriblement abstraite mais bigrement utile !!!! 09/11/2018 sr.
Thème Sujet à développer
CRITERES DE QUALITE 1) PRECISION 2) RAPIDITE 3) AMORTISSEMENT
SIMPLIFICATION D’UNE RACINE CARREE.
Cycle, Cocycle, Arbre et Arborescence
NUMERATION et REPRESENTATION DES NOMBRES
B.Shishedjiev - Informatique
4°) Intervalle de fluctuation :
Lois de Probabilité Discrètes
Lois de Probabilité Discrètes
Présentation des outils de recherche d’informations scientifiques
IFT313 Introduction aux langages formels
Université de la méditerranée
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
PARCOURSUP, c’est quoi ? Plateforme d’admission en 1ère année dans l’enseignement supérieur C’est une obligation de l’utiliser pour la plupart des formations.
Elections professionnelles 2018 Réunion organisations syndicales 17 janvier 2017 Bureau du statut général et du dialogue social SE1.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Écriture d’un texte ou d’un discours
Sigle optionnel en français FBD
Présentation projet de fin d’études
Elections locales probabilistes
LES TROIS ETATS DE LA MATIERE
Dérivation – Fonctions cosinus et sinus
Transcription de la présentation:

IFT313 Introduction aux langages formels Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313 Lemme de l’étoile

Sujets Propriétés des langages réguliers, dont le lemme de l’étoile (ou pumping theorem en anglais), parfois appelé aussi théorème du gonflement. IFT313 © Froduald Kabanza

Objectifs Connaître les propriétés des langages réguliers, dont le lemme de l’étoile Pouvoir appliquer le lemme de l’étoile pour prouver que certains langages sont non réguliers IFT313 © Froduald Kabanza

Références [1] Sudkamp, T. A.. Languages and Machines. Third Edition Edition. Addison-Wesley, 2005. Sections 6.5 à 6.7. [3] Wolper, P. Introduction à la calculabilité, 3è édition. Dunod, 2006 Section 3.5 IFT313 © Froduald Kabanza

Au-delà des langages réguliers Les langages réguliers forme une classe très intéressante, mais tous les langages ne sont certainement pas réguliers. Pour établir que certains langages ne sont pas réguliers, nous allons caractériser les langages réguliers en observant certaines propriétés de base, pour aboutir finalement à une propriété dite le lemme de l’étoile. Exemple : tentative de représenter une expression arithmétique contenant des parenthèses complétement balancées par une expression régulières comme 6 (pas de parenthèsse) (1+20) (1 + (20 + 5)) Dans JLEX on peut utiliser des abréviations (macros) digits = [0-9]+ sum = (digits ``+``)* digits Cela représenterait des sommes de la forme 1+20+5 Tentons maintenant de représentée une expression avec des parenthèses balancées:   digits = [0-9]+ sum = expr ``+`` expr expr = ``(`` sum ``) `` | digits Mais ceci n’est pas légal dans JFLEX, on ne peut pas avoir des abréviations récursives. En fait, ceci n’est pas une expression régulière. Un AFN ne peut pas reconnaître un tel langage. Un AFN de N états sera capable de reconnaître seulement une expression avec N parenthèses. C’est tout ce qu’il peut mémoriser. Donc, clairement, le langage formé des expressions arithmétiques ayant des parenthèses balancées n’est pas un langage régulier. En fait, la tentative que je viens de donner est une notation pour une grammaire hors contexte comme on le verra plus tard. IFT313 © Froduald Kabanza

Observations de base Tous les langages finis (comportant un nombre fini de mots) sont réguliers. En effet, si un langage contient les mots {w1, …, wk}, il est décrit par l’expression régulière w1|…| wk.. L’expression décrit une union finie des mots du langage. Un langage non régulier doit donc forcément comporter un nombre infini de mots. Par contre, l’inverse n’est pas vrai. Par exemple, le langage décrit par l’expression a* est régulier, mais contient un nombre infini de mots. IFT313 © Froduald Kabanza

Observations de base Si un langage comporte un nombre infini de mots, il n’y a pas de borne à la taille de mots faisant parti du langage. En effet, supposons qu’il y ait une borne n à cette taille. L’alphabet Σ sur lequel est construit le langage comporte un nombre fixé de symboles, soit k. Donc le nombre de mots de longeur inférieur à n est 1 mot de longeur 0 + k mots de longeur 1 + k2 mots de longeur 2 + kn mots de longeur n = 𝑘 𝑛+1 −1 𝑘−1 et est donc fini. IFT313 © Froduald Kabanza

Observations de base Tout langage régulier est accepté par un automate fini comportant un nombre fixé d’états, soit n. En effet, nous avons vu la construction d’un automate fini correspondant à une expression régulière. La preuve a été laissée comme exercice. Voir [Wolper, Pierre. Introduction à la calculabilité, 3è édition. Dunod, 2006] IFT313 © Froduald Kabanza

Observations de base Considérons un langage régulier infini et un automate à n états acceptant ce langage. Pour tout mot de longueur supérieure à n accepté par l’automate, l’exécution de l’automate sur ce mot doit passer par un même état sk au moins deux fois avec une partie non vide du mots séparant les deux passages. Par conséquent, si x, u, et y sont les mots représentés par la figure précédente, tous les mots de la forme xu*y sont accepté par l’automate et font partie du langage. s sk sf x u y IFT313 © Froduald Kabanza

Observations de base s sk sf x u y Par conséquent, si x, u, et y sont les mots représentés par la figure précédente, tous les mots de la forme xu*y sont accepté par l’automate et font partie du langage Autrement dit, pour tout mot suffisamment long d'un langage régulier infini, il y a une partie du mot qui peut être répétée un nombre arbitraire de fois, de sorte que chacun des mots produits est encore dans le langage. C-à.-d., tout mot suffisamment long du langage peut être gonflé par la répétition d’une de ses parties pour obtenir un autre mot du langage. C’est ce que l’on appelle le théorème du gonflement (pumping theorem) ou encore le lemme de l’étoile. s sk sf x u y IFT313 © Froduald Kabanza

Lemme de l’étoile Soit L un langage régulier infini sur l’alphabet Σ. Alors , il existe x, u, y ϵ Σ*, avec u≠ε, tels que xuny ϵ L, ∀ 𝑛≥0. Preuve : découle des observations précédentes. Corrolaire: Soit L un langage régulier infini sur l’alphabet Σ et soit w ϵ L tel que |w| ≥ |S| où S est l’ensemble des états d’un automate déterministe acceptant L. Alors , il existe x, u, y ϵ Σ*, avec u≠ε, tels que |xu |≤ |S| et, ∀ 𝑛≥0, xuny ϵ L. Dans le corrolaire, l’automate pourrait être aussi non deterministe pourvu qu’il ne contienne pas de transition sur des mots de longueur supérieure à 1 IFT313 © Froduald Kabanza

Application du lemme de l’étoile Le langage anbn n’est pas régulier. Pour le démontrer, il suffit d’établir qu’il n’est pas possible de trouver des mots x, u, y, tels que xuky ϵ anbn ∀ 𝑘≥0 Supposons l’existence de tels x, u, y et voyons ce que pourrait être u. u ϵ a* : impossible, car si on répète u (en appliquant le lemme de l’étoile), le nombre de a ne sera plus égal au nombre de b. u ϵ b* : impossible, pour une raison similaire au cas précédent. u est un mot différent de a* ou b*: impossible, car dans ce cas une occurrence de b précèdera une occurrence de a dans uk. Donc, le lemme de l’étoile n’est pas valide pour le langage anbn , par conséquent ce langage n’est pas régulier. Comme exercice : utiliser le lemme de l’étoile pour prouver que le langage formé d’expressions arithmétiques avec des parenthèses complétement balancées n’est pas régulier. IFT313 © Froduald Kabanza

Résumé Les langages réguliers forme une classe très intéressante, mais tous les langages ne sont certainement pas réguliers. Le lemme de l’étoile stipule que tout mot suffisamment long d'un langage régulier infini peut être gonflé, au sens qu'une partie centrale du mot peut être répétée un nombre arbitraire de fois, et que chacun des mots produits est encore dans le langage. En appliquant ce lemme, vous pouvez démontrer que certains langages ne sont pas réguliers. IFT313 © Froduald Kabanza

Prochaine leçon Grammaires. IFT313 © Froduald Kabanza