Cours 8 : Automates à double sens, Automates séquentiels

Automates à double sens

Automate Boustrophédon :
B=Q,𝛴{,},I,F,𝛿
  • 𝛿Q×(𝛴{,})×{,}×Q

Configuration :

(u,q,v):u,v(𝛴×𝛴),qQ

C’est une machine de Turing qui n’écrit pas sur son ruban.

Ex :

(u,q,av)(q,a,d,q)(u,q,v)
  • si d=⟶, u=ua,v=v

𝜆00,𝜆01,𝜆11,𝜆10:𝛴2Q×Q wwi,j{0,1},𝜆ji(w)=𝜆ji(w)

Cette relation d’équivalence est une congruence.

Preuve :

Si uu et vv, montrons que

(p,q)Q×Q,(p,q)𝜆01(uv)(p,q)𝜆01(uv)

Il suffit de concaténer les chemins de u (qui sont les mêmes que u) aux chemins de v (qui sont les mêmes que v).

Elle sature L

En effet, si w,w𝛴, et wL on découpe un chemin acceptant en sous-chemins allant d’un bout de la bande à l’autre, et chacun de ces sous-chemins ont un équivalent dans w par congruence, d’où wL aussi.


Normalisation d’automates séquentiels

f:AA

f(a2nb)=(ab)na
%3 1 1 ->1 𝜀 2 2 1->2 a / ab 3 3 1->3 b / a 2->1 a / 𝜀 3->blank2 𝜀
m1=am2=am3=𝜀

(mi : plus long préfixe commun des sorties qu’on peut écrire à partir de l’état i)

Normalisation

%15 blank2 1 1 ->1 m=a 2 2 1->2 a / ba 3 3 1->3 b / 𝜀 2->1 a / 𝜀 3->blank2 𝜀
ia=mi1(ia)mia 1a=m11(1a)m1a=m11(1a)m2=a1(ab)a=ba2a=a1(𝜀)a=𝜀1b=a1(a)𝜀=𝜀

et

m1=𝜀m2=𝜀m3=𝜀

Les sorties sont font plus tôt ⟶ pour écrire la même chose sur la sortie, on lit moins de lettres.


Automates des résiduels pour f(w)=w(ab)1 :

(fonction partielle : elle enlève un suffixe ab si le mot w en a un)

%27 1 fab 2 fa 1->2 a / ab 3 f𝜀 1->3 b / b 2->1 b / 𝜀 2->2 a / a 3->2 a / 𝜀 3->3 b / b
m𝜀={b,a,ab}=𝜀ma=𝜀mab=𝜀

Automates à piles déterministes

L={anbann0}
%41 q_f q_f q_0 q_0 ⊥->q_0 q_0->q_0 a, x/xA q_1 q_1 q_0->q_1 b, x/x q_1->q_f 𝜀, ⊥/𝜀 q_1->q_1 a, A/𝜀

Abréviations :

  • D : déterministe
  • TR : en temps réel = sans 𝜀-transition
  • S : standardisé

%53 blank 1 1 ->1 1->1 ab 2 2 1->2 aba 3 3 1->3 ab 2->1 𝜀 4 4 2->4 b 3->1 𝜀 3->4 ab 4->blank abab 4->2 ab

On veut calculer les mi :

{X1=abX1+abaX1+abX3X2=X1+abX4X3=X1+abX4X4=abX2+abab

  • les Xi sont les mots mi
  • + est l’opération “plus grand préfixe commun” (0 : élément neutre).

On travaille dans le semi-anneau à gauche : kA{0}.

On observe que :

  • u+0=0+u=u
  • u+u=u
  • il y a distributivité à gauche mais par pas à droite : u(v1+v2)=uv1+uv2

    • pas de distributivité à droite (exemple de Maher ) : si v1=a,v2=ab,u=ba : (v1+v2)u=au=abav1u+v2u=aba+abba=ab

On note l’ordre (partiel) préfixe sur k (avec u0 par convention). On l’étend à kn composante par composante.

La multiplication est la concaténation.

https://www.irif.fr/~jep/PDF/Exposes/Sequential.pdf


{X1=aX1+bX2+𝜀X2=bX1+aX2
  • X2=abX1
  • X1=aX1+bX2+𝜀=aX1+babX1+𝜀=(a+bab)X1+𝜀

  • X2=ab(a+bab)

Lemme d’Arden

Soit une équation sur les langages d’inconnue X :

X=KX+L

alors X=KL

Preuve :

Si X est une solution, alors :

X=KX+L{LXKXXKLXX

Donc K2XX, et par récurrence KLX

Réciproquement :

Mq XKL.

Soit w le mot le plus court de XKL.

wLwKX

Donc wuKvX

Comme u𝜀, v est plus court que w, donc vKL, et

wK+LKL

contradiction.


Exemple :

%75 q_0 q_0 blank->q_0 q_2 q_2 q_2->q_2 a, b q_0->q_0 a q_1 q_1 q_0->q_1 b q_1->q_2 b q_1->q_0 a
{L0=aL0+bL1L1=aL0+bL2L2=aL2+bL2+𝜀 L0=(a+ba)bb(a+b)

Donné :

L0=ab(a+b)+ba=aKb(a+b)L L0=aL0+b(a+b)L1=aL0+bL1 L1=(a+b)L1+𝜀
%89 0 0 blank->0 1 1 1->1 a,b 0->1 b 0->0 a

Leave a comment