Reonnaissanede motsdanslesgrammaireshors-ontexte
CatalinDima
◮
Algorithmepermettantde vériersi unmotw
=
w1w2. . .
wn estaeptéparunegrammaire.
◮
Congurationsde l'algorithme:ensembled'items
[
i]
X−→ α • β [
j]
,où
◮
X
−→ αβ
estuneprodution,dontlemembredroitestdéoupéendeuxmots,
α · β
.◮
1
≤
i≤
j≤
nsontdesindiesreprésentantlesous-motw i. . .
wjde
w quelaprodutionouranteestenséeproduire.
◮
Le
•
donnelapositionourantedanslemotw jusqu'oùlaprodutionouranteestapabledegénérer w.
◮
L'algorithmefontionneenonstruisantitérativementdesitems,à
partirdelaongurationontenanttouteslesprodutions
S
−→ • α
,jusqu'à equ'uneongurationontenant[
0]
S−→ α • [
n]
soitonstruite.1. Initialisation: Conguration
C
0
=
[
0]
S−→ • α[
0] |
S−→ α ∈
P .2. Leture :Si,dansC
i
onaun item
[
j]
X−→ α •
aβ[
i]
avea=
wi+
1(
(
i+
1)
-ièmelettredumotd'entrée),alorsonrajoutedans Ci+
1l'item
[
j]
X−→ α
a•
aβ [
i+
1]
.3. Prédition:Si,dansC
i
on aunitem
[
j]
X−→ α •
Yβ[
i]
alorsonrajoutedansC
i
tous lesitems
[
i]
Y−→ • γ[
i]
,pourtouteprodutionY
−→ γ ∈
P.4. Complétion: Si,dans C
i
onaun item
[
j]
Y−→ γ • [
i]
alorspourtoutautreitemdelaforme
[
k]
X−→ α •
Yβ[
j]
dans Cj onrajouteaussil'item
[
k]
X−→ α
Y• β [
i]
dans Ci (attentionauxindies!).Grammaire:
E
−→
T|
E+
TT
−→
F|
T∗
FF
−→
a|
b| (
E)
Générationdea
+
b:C
0
C
1
C
2
C
3
[
0]
E→ •
T[
0] [
0]
E→ •
E+
T[
0] [
0]
T→ •
F[
0] [
0]
T→ •
T∗
F[
0] [
0]
F→ •
a[
0] [
0]
F→ •
b[
0] [
0]
F→ • (
E)[
0]
[
0]
F→
a• [
1] [
0]
T→
F• [
1] [
0]
T→
T• ∗
F[
1] [
0]
E→
T• [
1] [
0]
E→
E• +
T[
1]
[
0]
E→
E+ •
T[
2] [
2]
T→ •
F[
2] [
2]
T→ •
T∗
F[
2] [
2]
F→ •
a[
2] [
2]
F→ •
b[
2] [
2]
F→ • (
E)[
2]
[
2]
F→
b• [
3] [
2]
T→
F• [
3] [
2]
T→
T• ∗
F[
3] [
0]
E→
E+
T• [
3]
◮
Dona
+
baepté(ontrouve[
3]
E→
E+
T• [
3]
dansladernièreolonne).◮
Essayeraussiavea
+
b∗
a,
a∗ (
b∗ (
b)),
b+
!◮
Automateàpile:utiliseunemémoireinnie,organiséeàlamanière
d'unepile.
z a
q
b a a b a a
z
x
z
y
◮
Leslettresdu motsontluesde gauheàdroite.◮
Àhaquepas,letopde lapileomptedanslamodiationdel'état
de l'automate.
◮
◮ A = (Q, Σ, Γ, δ,
q0,
Z0,
Qf)
.
◮
Q =ensembled'états.
◮ Σ=alphabetd'entrée(bandedeleture).
◮ Γ=alphabetdepile.
◮
q 0=étatinitial,Q
f
=ensembled'étatsnaux.
◮
Z 0=symboleinitialdans lapile.
◮ δ =relationdetransition:
δ ⊆
Q× Σ ∪ {ε}
× Γ × Γ ∗ ×
Q◮
Unetransitiondans
δ
estun tupleq−−−→
a,
z,γ
r.◮
Sil'automateestdansl'étatq,lalettresouslatêtedeletureesta
etletopdelapileestz,
◮
...alorsonremplaeletopdelapilezparlemot
γ ∈ Γ ∗,
◮
...etonhanged'étatenr.
◮
Uneongurationde l'automate:
(
q,
w, γ) ∈
Q× Σ ∗ × Γ ∗.
◮
Tuple(état,partiedumotpasenorelue,ontenudelapile).
◮
De etteongurationonpeutévoluerdansuneautreen appliquant
une transitionq a
,
z,β
−−−→
r :◮
Silapremièrelettredumotd'entréew esta ,
◮
Etlapremièrelettredumotdepile
γ
estz,◮
Alorsonhanged'étatenr,onboue aetonremplaez par
β
.◮
Onéritalors
(
q,
w=
aw′ , γ =zγ ′ ) ⊢ (
r,
w′ , βγ ′ ).
◮
Congurationinitiale:
(
q0,
w,
Z0)
.◮
Congurationaeptante:
(
r, ε, γ)
aver∈
Qf.◮
Side(
q,
w,
Z0)
on peutfranhirun(
r, ε, γ)
pourr∈
Qf,alorsw◮
Listedetransitions(çane sertplusàriende représenterl'automateommeungraphe...).
q
0 a
,
A,
AA−−−−→
q q−−−−→
a,
A,
AA qq b
,
A,ε
−−−→
r r−−−→
b,
A,ε
r◮
Étatinitialq 0,nal r, symboleinitialde pileA.
◮
Exemple deongurationinitiale :(
q0,
w,
A)
.◮
Exemple detrajetoire=suitedeongurationsreliéespardes
transitions:
(
q0,
aaabb,
A) ⊢ (
q,
aabb,
AA) ⊢ (
q,
abb,
AAA) ⊢ (
q,
bb,
AAAA)
⊢ (
r,
b,
AAA) ⊢ (
r, ε,
AA)
◮
Et dononaepteaaabb!
◮
◮
Exemple detrajetoirenon-aeptante:
(
q0,
abab,
A) ⊢ (
q,
bab,
AA) ⊢ (
r,
ab,
A) 6⊢
◮
... ariln'yapasdetransitionquipuisses'appliquerdansetteonguration!
◮
Même plus,auuneautretrajetoirene peutêtreassoiéeàabab!
Langageaeptéparunautomate
A
:L
(A) =
w
∈ Σ ∗ | (
q0,
w, γ
0) ⊢ (
r, ε,
z)
ongurationaeptanteExemple :
q
0 a
,
A,
AA−−−−→
q q−−−−→
a,
A,
AA qq b
,
A,ε
−−−→
r r−−−→
b,
A,ε
r◮
AutomateàpilepourL
= {
anbm|
n>
m}
◮
Et sionvoulaitexatementL
anbn
= {
anbn|
n∈ N }
?◮
Ilfautavoirboué,quandonentredansl'étatnal,touslesAdans
lapile!
◮
Automateaveε
-transitions:q
0 a
,
Z0,
Z0−−−−−→
A q q−−−−→
a,
A,
AA qq b
,
A,ε
−−−→
r r−−−→
b,
A,ε
rr
ε,
Z0,ε
−−−−→
s q0−−−−→ ε,Z0,ε
s
◮
Et maintenant'estsqui estl'étatnal!
◮
Pasde transitionens!
◮
Donsionaappliquéladernièretransitiondèsledébut,onest
bloquédansuneonguration
(
s,
w, ε)
quin'estpasnale !◮
Onpeutmodierladénitiondel'aeptationparautomateàpile:◮
Onpermetdes'arrêter dansn'importequeétat.
◮
Maisilfautavoirnideparourirlemotd'entrée.
◮
Etaussilapiledevraitêtrevide!
◮
Modions notreexemplepourL
anbn
pourqu'ilfontionnepar
aeptationpar pilevide:
q
0 a
,
A,
AA−−−−→
q q−−−−→
a,
A,
AA qq b
,
A,ε
−−−→
r r−−−→
b,
A,ε
rr
ε,
A,ε
−−−→
s q0−−−→ ε,A,ε
s
◮
Onvoitquele premierAdanslapilene sertpasàompterlesb,
mais pluttpournaliserlatrajetoire.
◮
Théorème:Siunlangageestaeptéparunautomateàpilepar
aeptationsurétats naux,alorsilseraaeptéaussiparun
◮
Théorème:Toutlangagehorsontexteestaeptéparun
automateàpile.Laréiproqueestvraie aussi:toutlangaged'un
automateàpileesthorsontexte.
◮
Assoiationd'un automateàpileàunegrammairehorsontexte:
◮
Lesnonterminauxetlesterminauxformentl'alphabetdelapile.
◮
Chaqueprodutionestsimuléesurlapile.
◮
Unseulétatsut!
◮
Siletopdelapileestunterminala ,ilfautlebouersurlabande
d'entrée.
◮
Si'estunnonterminalX,ilfautfaireune
ε
-transitionquiplaesur lapilelerésultatd'uneprodutiondeX.◮
Aeptationparpilevide.
◮
Exemple degrammaire:
S
−→
ASB| ε
A
−→
aAS|
aB
−→
SbS|
bb◮
Automateassoié:q
ε,
S,
ASB−−−−−→
q q−−−→ ε,S,ε
q
q
ε,
A,
aAS−−−−−→
q q−−−→ ε,A,
a q
q
ε,
B,
SbS−−−−−→
q q−−−−→ ε,B,
bb q
q a
,
a,ε
−−−→
q q−−−→
b,
b,ε
q◮
Symboleinitialdepile:S!
◮
Aeptationde aaabbb:arbresyntaxique,ettrajetoire dans◮
Onpeutdénirdesautomatesdéterministes.◮
Maisilsneserontpaséquivalentsavelesnon-déterministes.◮
Unautomatedéterministegénèreunlangagenon-ambigu.
◮
Etommeilyadeslangagesàambiguitéinhérente,eslangagesne
peuventpasêtreaeptésparuntelautomatedéterministe.
◮
Leproblèmedu langagevideestdéidable(.à.d.ilyades
algorithmes).
◮
Maisvérierqu'unegrammaireaeptetous lesmotssurunalphabetn'estpasdéidable!
◮
L'unionetlaonaténationde deuxlangageshorsontexteesthors
ontexte!(leprouver!)
◮
Maisilexistedeslangageshorsontextedont leomplémentn'est
pasunlangagehorsontexte.
◮
Et aussi,l'intersetiondedeuxlangageshorsontextepeutne pasêtrehorsontexte.
◮
Toutefois,siLesthorsontexteetR estrégulieralorsL
∩
R serahors ontexte
◮
SiLesthorsontexte,alorsilexisteun entiern
0
∈ N
telquetout motdeL(z∈
L)ontenantplusden0lettrespeuts'érirez
=
xyzuv, avelespropriétéssuivantes:1. yu
6= ε
.2. Lerayonhorsontexte xy n
zu n
v estontenudansL:pourtout
n
∈ N
,xy nzu n
v
∈
L.◮
Généralisationdulemmedel'étoiledeslangagesréguliers.◮
S'applique delamêmemanière:
◮
Preuve par rédutionàl'absurde:
1. OnsupposequeLest horsontexteetonprouvequelelemmede
gonementnousamèneàuneontradition.
◮
Commenttrouveruneontradition:◮
Onprendunmotz
∈
Letonledéomposedetoutes lesmanièrespossiblesenz
=
xyzuv.◮
Pourhaquedéomposition,ondevraitprouverquelerayonxy n
zu n
◮
Idée depreuvedu lemme:
◮
Onprendunegrammairepourlelangage.
◮
Onl'amèneàuneformequineontientplusd'
ε
-produtions,nide renommages, ettouslesnonterminauxsontutiles.◮
Onprendn0
=
kard(
N)+
1,oukestlenombredelettresdanslaplusgrandeprodution.
◮
Onprendunmotw ayantplusden0lettres.
◮
Onprendaussiunarbresyntaxiquepourw.
◮
Dufaitduhoixden0,dansl'arbresyntaxiqueildoityavoirun
heminraine
−→
feuillequiaplusden0arêtes.◮
Alorsundesnoeudsdeeheminserepèteetilorrespondàun
nonterminalX!
◮
Onaidentiéunepartiedel'arbrequipeutêtrerépétéeautantde
foixqu'onveuille!
◮
Lafrontièredeettepartiedel'arbre,àgauhedesafeuilleX,forme
lapartiey denotremot,etellededroiteformeu.
◮
Lerestedelafrontiereformex,z etv.
◮
Répéternfoislapartiedel'arbretrouvée,revientàgénérerxy n
zu n
v.
◮
L
anbnn
= {
anbnn|
n∈ N }
.◮
Prenonstoutedéompositiond'un mota n
b n
n
en xyzuv.
◮
Plusieurs aspossibles :
1. y etu neontiennentquedesa .
2. y ontientdesaetu ontientdesb.
3. y ontientdesaetu ontientdes.
4. y etu neontiennentquedesb.
5. y ontientdesbetuontientdes.
6. ....
7. y ontientdesaetdesbet....
◮
Maisilyadeuxtypesde as:
1. Quandlesdeuxmotsy
,
uprennenthaununseultypedelettre.2. Quandundesdeuxmotsy
,
u prenddeuxtypesdelettres.◮
Danshaqueas,ilfautprouverqu'ilexistedesmembresdurayonxy n
zu n
v quinesontpasdans L.
◮
Danstouslesasiionpeutprouverquexyyzuuv=
xy2zu2v n'est◮
L
=
w
∈ {
a,
b,
} ∗ | #
a(
w) = #
b(
w) = #
(
w)
.◮
Aulieud'appliquerlelemmedegonement,onpeututiliseruneidée
vue pourleslangagesréguliers:
◮
SiLétaithorsontexte,alorsL
∩
R seraitaussihorsontextepourtoutlangagerégulierR.
◮
IlnousfautR réguliertelqueL