Cours 1 : Introduction

Introduction

Automate :

modèle extrêmement réduit de MT : ne peut pas écrire sur le ruban, et va toujours à droite

MAIS : en contrepartie : il y a très peu de propriétés qu’on ne peut pas décider sur les langages rationnels (contrairement aux MT, où Riesz nous condamne)⟶ bonnes propriétés algorithmiques

Langages rationnels = une boîte à outils utilisée en

  • Algorithmique
  • Logique
  • Intelligence artificielle

Différents points de vue équivalents :

  1. Reconnaissance par automates :

    ⟶ opérationnel

  2. Expressions rationnelles :

    ⟶ dénotationnel

  3. Logique :

  • Logique du premier ordre : ensemble des modèles considérés = les mots finis

  • ordre + prédicat unaire ⟶ logique du premier ordre

  • quantification sur les ensembles des propositions ⟶ logique monadique du second ordre : équivalent aux langages rationnels

  1. Algèbre :
  • Reconnaissance par monoïdes finis : homomorphisme entre le monoïde libre et des quotients de monoïde (en fonction des états de l’automate)

NB : points de vue équivalents, mais passer d’une représentation à l’autre : plus ou moins difficile :

Exs :

  • passer d’un automate à une ER : exponentiel
  • passer d’une logique MSO à un automate/ER : tour d’exponentielle

PUIS : extension des langages rationnels qui capturent une classe de langages plus large

Langages Algébriques :

Différents points de vue :

  1. Automates à pile
  2. Grammaires algébriques
  • ex: pour les compilateurs : on écrit une grammaire algébrique, puis traduction en automates à piles

Ex :

Programme en assembleur ⟶ pile d’appels ⟶ se modélise naturellement à l’aide d’automates à pile


Automates finis

%3 q_0 q_0 q_F q_F q_0->q_F a q_F->q_0 a q_F->q_F b
Automate fini (NFA) :

Un tuple 𝒜=Q,𝛴,𝛿,I,F où :

  • Q est un ens. fini d’états
  • 𝛴 un alphabet fini
  • 𝛿Q×(𝛴{𝜀})×Q

    NB : inclure 𝜀 revient à autoriser la MT à rester sur place

  • I,FQ ens. d’états intiaux et finals

Sémantique

Exécution de 𝒜 :

Une séquence q0a1anqn où :

  • i,(qi,ai+1,qi+1)𝛿
Exécution initiale :

q0I

Exécution finale :

qnF

Exécution acceptante :

initiale et finale

Notations :

  • q0a1anqn
  • On étend 𝛿 aux mots : qn𝛿(q0,a1an)
Langage de 𝒜 :
{w𝛴q0I,qfF;q0wqf}
Un automate est sans 𝜀-transitions :

si 𝛿Q×𝛴×Q

Réprésentation : par listes d’adjacences, donc

|𝒜|max(|Q|,|𝛿|)

Lemme : Pour tout NFA, on peut construire un NFA équivalent sans 𝜀-transitions de taille O(n2) en temps O(n2)

Preuve :

Soit 𝒜=Q,𝛴,𝛿,I,F.

On construit 𝒜=Q,𝛴,𝛿,I,F

où :

  • Q=Q
  • I=I
  • F={q𝛿(q,𝜀)F}
  • 𝛿{(q,a,q)q𝛿(q,𝜀);(q,a,q)𝛿}
  1. L(𝒜)=L(𝒜)

Soit w=a1anL(𝒜), ai𝛴{𝜀} accepté par

q0a1anqn

En identifiant les ai=𝜀, et notant par une notation primée les ai=ai𝜀, et les états correspondants.

On trouve dans 𝒜 l’exécution :

q0a1arqr

et w est accepté.

  1. |𝒜|O(|𝒜|2) et peut être construit en O(|𝒜|2)

Pour chaque état, on trouve les états accessibles par une séquence d’𝜀-transitions ⟹ O(n2)

Exemples :

𝛴={1,,n}

Automate 𝒜n qui reconnaît l’ensemble des sous-mots de 1n :

%11 kplus k+1 ⋯2 kplus->⋯2 N N ⋯2->N N 0 0 1 1 0->1 1 2 2 1->2 𝜀 1->2 2 3 3 1->3 𝜀 k k 1->k 𝜀 2->3 3 2->3 𝜀 2->k 𝜀 3->k 𝜀 3->⋯ k->kplus 𝜀 k->kplus k+1 ⋯->k

(avec clôture transitive pour les 𝜀-transitions)

Complexité : n(n1)2

Propriétés de clôture

Prop : Les langages reconnaissables par automates sont fermés par :

  • union (juxtaposition des automates, avec complexité O(n1+n2))
  • concaténation (on lie les états finals du premier aux états initiaux du second par des 𝜀-transitions en passant par un état intermédiaire (complexité O(n1+n2))
  • l’étoile de Kleene (on lie les états finals aux états initiaux par des 𝜀-transitions en passant par un état intermédiaire (complexité O(n))

    • NB : on passe par un état intermédiaire pour ne pas rajouter de boucles supplémentaires à l’intérieur de l’automate

NB : pas fermé par complémentation, si l’automate n’est pas déterministe ET complet.

Déterministe :

q,a,𝛿(q,a)1

Complet :

q,a,𝛿(q,a)1

Pourquoi ça marche avec les automates déterministes complets ?

⟶ car pour tout état q, il existe une unique exécution sur w commençant en a :

|qw||𝛿(q,w)|=1

Si 𝒜 est un DFA complet :

wL(𝒜)q0wF

DONC

Prop : Pour un automate 𝒜, on peut construire un automate reconnaissant 𝛴L(𝒜) de taille O(2|Q||𝛴|) en temps O(2|Q||𝛴|)

Déterminiser l’automate prend un temps exponentiel en le nombre d’états, et il n’y a pas moyen de faire mieux.


  • Intersection :

On n’est pas fou, on ne va le faire en utilisant l’union et la complémentation (complémentation exponentielle !), il y a bien plus efficace avec l’automate produit (coût quadratique, et on ne peut pas faire mieux) :

Q=Q1×Q2,I=I1×I2,F=F1×F2

𝛿{(q1,q2),a,(q1,q2)(q1,a,q1)𝛿1 et (q2,a,q2)𝛿2}{(q1,q2),𝜀,(q1,q2)(q2,𝜀,q2)𝛿2}{(q1,q2),𝜀,(q1,q2)(q1,𝜀,q1)𝛿1}
  • Transposition : en O(n), trivialement

Morphisme :
𝜇:𝛴𝛥

défini sur les générateur 𝜇:𝛴𝛥, puis étendu par propriété universelle en 𝜇:𝛴𝛥


  • Fermeture par morphisme :

    %43 q_0 q_0 q_1 q_1 q_0->q_1 a

    devient

    %47 q_0 q_0 q_0->⋯ 𝜇(a) q_1 q_1 ⋯->q_1
  • Fermeture par morphisme inverses : L𝛥

    𝜇1(L){u𝛴𝜇(u)L}
    %53 q_0 q_0 q_0->⋯ 𝜇(a) q_1 q_1 ⋯->q_1

    devient

    %59 q_0 q_0 q_1 q_1 q_0->q_1 a
    𝛿{(q,a,q)q𝛿(q,𝜇(a))}

    On montre que 𝜇1(L(𝒜))L(𝒜) (l’autre inclusion étant triviale)

  • Shuffle (mélange) :

    uv{u1v1vku2unvnui𝛴,vi𝛴,u=u1un,v=v1vn} LM=uL,vMuv

    Prop : Les langages reconnaissables sont fermés par mélange

    Pour 𝒜1 et 𝒜2, on construit :

    𝒜Q1×Q2,𝛴,𝛿,I1×I2,F1×F2

    𝛿{((q1,q2),a,(q1,q2))a𝛴{𝜀},(q1,a,q1)𝛿1,q2Q}{((q1,q2),a,(q1,q2))a𝛴{𝜀},(q2,a,q2)𝛿2,q1Q}

Expressions rationnelles

Syntaxe :

L’ensemble des expressions rationnelles sur 𝛴 est l’ensemble des termes pour la syntaxe

E:=|𝜀|a𝛴|EE|E+E|E

NB : les opération d’union, de concaténation et l’étoile de Kleene sont aussi appelées “opérations rationnelles”.

Sémantique :

  • L(E)𝛴 est défini inductivement
  • L()
  • L(𝜀){𝜀}
  • L(a){a}
  • L(E1E2)L(E1)L(E1)
  • L(E1+E2)L(E1)L(E1)
  • L(E1)L(E1)

NB :

  • L(𝜀)=L()

  • l’ensemble des langages rationnels est le plus petit ensemble contenant les langages finis sur 𝛴 et fermé par union, concaténation, et étoile de Kleene.

  • Clôture par substitution rationnelle : à chaque lettre on associe une expression rationnelle

    𝜇:𝛴Rat(𝛴)𝜇(𝜀)={𝜀}𝜇(uv)=𝜇(u)𝜇(v)

Théorème de Kleene

Th de Kleene :

Rat(𝛴) lang. déf. par expr. rat=Rec(𝛴) lang. rec. par automates

Rat(𝛴)Rec(𝛴) :

Construction de THOMSON par induction sur E : on obtient un automate standard 𝒜E de taille O(|E|)

automate standard 𝒜E :

|I|=|F|=1, et pas de transition entrantes dans I ni de transition sortante de F

𝒜 :

%63 q_0 q_0 q_f q_f

𝒜𝜀 :

%65 q_0 q_0 q_f q_f q_0->q_f 𝜀

𝒜a :

%69 q_0 q_0 q_f q_f q_0->q_f a

𝒜E1E2 :

%73 q_0 q_0 𝒜_1 𝒜_1 q_0->𝒜_1 𝜀 𝜀 𝒜_1->𝜀 𝒜_2 𝒜_2 𝜀->𝒜_2

𝒜E1+E2 :

%81 q_0 q_0 𝒜_1 𝒜_1 q_0->𝒜_1 q_00 q_00 q_0->q_00 𝜀 q_f q_f 𝒜_1->q_f 𝒜_2 𝒜_2 q_00->𝒜_2 q_ff q_ff 𝒜_2->q_ff q_ff->q_f 𝜀

𝒜E :

%95 q_0 q_0 𝒜_1 𝒜_1 q_0->𝒜_1 q_ff q_ff q_0->q_ff 𝜀 q_f q_f 𝒜_1->q_f q_f->q_0 𝜀 q_f->q_ff 𝜀 q_00 q_00 q_00->q_0 𝜀

On définit la taille alphabétique E d’une ER E par récurrence, de manière naturelle.

  • Construction de Thomson par induction sur E : |Q|O(|E|)
  • Construction de Glushkov : |Q|=E+1
  • Construction d’Antimirov : |Q|E+1
  • Construction d’Hromovic : O(|E|loglog|E|)

Rec(𝛴)Rat(𝛴) :

Construction par élimination d’états : Mc Naughton Yamada :

𝒜=(Q,𝛴,𝛿,I,F)

La matrice d’adjacence donne une table des

Lq,q

  • {a} si (q,a,q)𝛿
  • sinon
  • {𝜀} si q=q

On ordonne les états de 1 à |Q|

Lq,q(k){a1an𝛴qa1q1anq;i,qik} L(𝒜)=qI,qFLq,q|Q|

Montrons que les langages Lq,q(k) sont rationnels.

Par réc sur k, le cas de base étant trivial.

Lq,q(k+1)=Lq,q(k)Lq,k+1(k)(Lk+1,k+1(k))Lk+1,q(k)

Cette construction se fait en 2O(|Q|)

Sk=maxq,q|Lq,q(k)|S03Sk+14Sk+4

Exemple :

On va construire un automate tel qu’il n’y a pas d’ER de taille inférieure à 2𝛺(|Q|)

Automate 𝒜n avec :

𝛴n{ai,j1i,jn}Qn=1,nIn=Fn={1}𝛿n={(i,ai,j)1i,jn}

Relations rationnelles

Transducteur fini :

un tuple 𝜏Q,𝛴,𝛥,𝛿,I,F, où :

  • Q ens. fini d’états
  • 𝛴,𝛥 alphabets finis
  • 𝛿Q×𝛴×𝛥×Q fini
  • I,FQ ens. intiaux et finals

Sémantique :

Une exécution sur (w,w)𝛴×𝛥

n;

  • w=u1u2un𝛴

  • w=v1v2vn𝛥

Exécution acceptante :

si q0I, qnF

La relation définie par 𝜏 est

R(𝜏)={(w,w)𝛿(q0,w,w)F𝛴×𝛥}

Exs :

Relation identité :

%109 q_0 q_0 q_0->q_0 a,a

Relation L×{𝜀} :

On remplace les transitions étiquetées par a dans l’automate d’origine et on les étiquette par (a,𝜀)

Relation R𝜇{(u,𝜇(u))u𝛴} :

%113 q_0 q_0 q_0->q_0 a,𝜇(a)

Relation R1{(w,w)(w,w)R} :

On remplace les transitions étiquetées par (w,w) dans le transducteur d’origine et on les étiquette par (w,w)

Th : Les langages rationnels sont fermés par relations rationnelles.

Preuve :

Soit 𝒜 tq L(𝒜)=L

et 𝜏 tq R(𝜏)=R

on construit 𝒜 tq

L(𝒜)=R(L)={wwL;(w,w)R}

Lemme : R=R(𝜏), où

𝛿Q×𝛴×{𝜀}×QQ×{𝜀}×𝛥×Q

Dém : trivial

NB : Pour R(𝛴), il suffit d’oublier la première composante dans le transducteur d’origine.

Q=Q1×Q2,I=I1×I2,F=F1×F2

𝛿={(q1,q2),𝜀,(q1,q2)a𝛴;(q1,a,q1)𝛿1,(q2,a,𝜀,q2)𝛿2}{(q1,q2),b,(q1,q2)(q2,𝜀,b,q2)𝛿2}

ça généralise ce qu’on a fait précédemment.

Leave a comment