Академический Документы
Профессиональный Документы
Культура Документы
http://deptinfo.unice.fr/~julia/AL
Evaluation :
Sandrine Julia
( 30 * partiel + 20 * contrôle flash + 50 * exam final ) / 100
1h30 20 mn 1h30
oct. nov. déc.
• codage de l’information
• Introduction à la calculabilité
• spécification des langages de programmation
Wolper, Dunod, 3e édit°, 2006.
à la BU ! • compilation, analyseurs lexicaux
• Logique et automates
• recherche de motifs
Bellot/Sakarovitch, Ellipses, 1998. ✦ dans un texte
X/HLC L/HCX
Calculabilité : A.Church A.Turing
1903-1995 1912-1954
C C C C
X X L
• les mots représentent toutes les instances d’un problème
• un langage regroupe les instances positives du problème C - L
• un automate (ou une autre machine) correspond à un programme. /HLCX HC/LX C/HLX
C -
Contenu du cours
✦ Expressions régulières
✦ Grammaires régulières
✦ Grammaires non-contextuelles
✦ Automates à pile
✦ Langages non-contextuels
✦ Machines de Turing 1 - Langages rationnels
✦ Automates cellulaires et automates finis déterministes
Matériel de base Opérations sur les langages
• symbole, lettre, chiffre, caractère Soit L et M deux langages donnés.
• alphabet : ensemble fini • opérations ensemblistes
mot : concaténation de lettres
• préfixe (propre)
• suffixe (propre) • fermeture de Kleene du langage L : L* = ∪i≥0 Li
• facteur (propre) ✴ on note L+ = ∪i>0 Li
• sous-mot ✴ même si L=∅, L0 = { ε }
• miroir ✴ l’ensemble des mots Σ* est la fermeture de Kleene de l’alphabet Σ
• ordres sur les mots : préfixe, lexicographique, hiérarchique ✴ L* : plus petit langage contenant ε, L et fermé par concaténation.
C = (Σ, Q, δ, q0, F) 0,1 Dans un automate fini non-déterministe (A.F.N.) il peut y avoir
C q2
le choix entre plusieurs chemins lors de la lecture d’un mot.
1
Σ = {0,1} 0 1
Q = {q0,q1,q2}
q0 Pour qu’un mot soit accepté, il suffit que ses lettres
q1 étiquettent un chemin de l’état initial à un état final
(même s’il existe d’autres chemins non réussis).
0
δ = {(q0,0,q1),(q0,1,q0),(q1,0,q2),(q1,1,q1),(q2,0,q2),(q2,1,q2)}
Notez qu’un A.F.D.
q0 est l’état initial A.F.N.
c’est aussi un A.F.N. !
F = {q1}
1 B 1
q0 q1
C reconnaît le langage L(C) décrit par 1*0 1*. A.F.D.
C’est la version complétée l’automate B. 0
Equivalence A.F.N. et A.F.D. Exemple de déterminisation
✦ si l’automate de départ n’est pas déterministe,
q0’= {q0q1} est l’état initial 0 1
on se propose de construire un automate fini déterministe B
qui intègre tous les choix existant dans l’automate de départ 0
D
Q’= { {q0,q1 } , {q1 }} {q0,q1} q0,q1 q1 1
(cf. algorithme de déterminisation)
δ’ = { ( { q0,q1 },0,{ q0,q1 }),
q 0q 1 q1
✦ il resterait à prouver formellement que le nouvel automate B ({ q0,q1 },1,{ q1 } ), {q1} - q1
accepte exactement les mots acceptés par A. ({ q1 },1,{q1 } )
1
F’ = {{ q0q1} ,{q1 } }