Dyck jazyk
V teoretické informatice , zejména v teorii jazyků , jsou Dyckovy jazyky jednotlivci formálních jazyků . Jazyk Dyck je množina slov v závorkách , přes konečnou abecedu úvodních a závěrečných závorek. Například na dvojici závorek tvořených znaky „ (“ a „ )“ je slovo „ (()) ()“ slovo v dobře závorce, zatímco slovo „ ()) (“ není).
Dyckovy jazyky hrají důležitou roli v teoretické informatice pro charakterizaci algebraických jazyků . Teorém Schützenberger Chomsky říká, v tom smyslu, že jakákoli algebraické jazyk je obraz s abecedním morfismu z průsečíku jednoho jazyka Dyck s racionálním jazykem .
Dyckovy jazyky byly pojmenovány po německém matematikovi Waltherovi von Dyckovi .
Formální definice
Intuitivně je slovo dobře v závorkách , také nazývané Dyckovo slovo , pokud ho lze redukovat na prázdné slovo postupným odstraňováním sousedních dvojic závorek stejného typu. Například v abecedě tvořené písmenem je slovo uvedeno v závorkách, protože
(,[,),]{\ displaystyle (, [,),]}
([()[]])(){\ displaystyle ([() []]) ()}![{\ displaystyle ([() []]) ()}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5a0aed4ba7065a807e7d724b96c361281da0739b)
([()[]])()→([[]])()→([])()→()()→()→ε{\ displaystyle ([() [\,]]) () \ do ([[\,]]) () \ do ([\,]) () \ do () () \ do () \ do \ varepsilon}![{\ displaystyle ([() [\,]]) () \ do ([[\,]]) () \ do ([\,]) () \ do () () \ do () \ do \ varepsilon}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9808f808b8499e61cb77d4f4708e200cab36b363)
.
Uveďme formální definici Dyckova slova. Buď abeceda, nebo disjunktní kopie . Na množině slov o definujeme následující vztah:
NA{\ displaystyle A}
NA¯={Na¯∣Na∈NA}{\ displaystyle {\ bar {A}} = \ {{\ bar {a}} \ uprostřed \ v A \}}
NA{\ displaystyle A}
NA{\ displaystyle A}
(NA∪NA¯)∗{\ displaystyle (A \ cup {\ bar {A}}) ^ {*}}
NA∪NA¯{\ displaystyle A \ cup {\ bar {A}}}![{\ displaystyle A \ cup {\ bar {A}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/416dece6f962588b351352ae21c5801fcfbaab7e)
w→w′{\ displaystyle w \ to w '}![{\ displaystyle w \ to w '}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2036515e4cdf8fa3c5a8d13b9cc491f668386401)
pokud existuje faktorizace jako , s .
w=XNaNa¯y{\ displaystyle w = xa {\ bar {a}} y}
w′=Xy{\ displaystyle w '= xy}
Na∈NA{\ displaystyle a \ v A}![a \ v A](https://wikimedia.org/api/rest_v1/media/math/render/svg/a97387981adb5d65f74518e20b6785a284d7abd5)
Snížení Dyck je tranzitivní uzávěr tohoto vztahu. Slovo Dyck je slovo, který se redukuje na prázdné slovo . Jazyk Dyck na množině slov Dyck.
ε{\ displaystyle \ varepsilon}
NA∪NA¯{\ displaystyle A \ cup {\ bar {A}}}![{\ displaystyle A \ cup {\ bar {A}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/416dece6f962588b351352ae21c5801fcfbaab7e)
Dyckova redukce je konfluentní systém přepisování . Dyckova kongruence je reflexivní, symetrické a přechodné uzavření vztahu.
Vlastnosti
- Zřetězení dvou Dyckových slov je stále Dyckovým slovem, takže Dyckův jazyk je submonoidem volného monoidu .(NA∪NA¯)∗{\ displaystyle (A \ cup {\ bar {A}}) ^ {*}}
![{\ displaystyle (A \ cup {\ bar {A}}) ^ {*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0133f06bf04d1e6b421b848308065ad611e29c70)
- Hlavní slovo Dyck je slovo Dyck, které není spojením několika slov Dyck. Označujeme nebo množinu hlavních Dyckových slov a nebo Dyckův jazyk. Setkáváme se také se zápisem, když abeceda obsahuje písmena.DNA{\ displaystyle D_ {A}}
D{\ displaystyle D}
DNA∗{\ displaystyle D_ {A} ^ {*}}
D∗{\ displaystyle D ^ {*}}
Dne∗{\ displaystyle D_ {n} ^ {*}}
ne{\ displaystyle n}![ne](https://wikimedia.org/api/rest_v1/media/math/render/svg/a601995d55609f2d9f5e233e36fbe9ea26011b3b)
- Sada hlavních slov Dyck je kód bifix (tj. Kód předpony a přípony). Monoidy jsou tedy bezplatné submonoidy .DNA∗{\ displaystyle D_ {A} ^ {*}}
![{\ displaystyle D_ {A} ^ {*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a1ed38b5c435a2e4feb2e589e373067102fdcf94)
- Dyckovy jazyky a nejlepší dyckovské jazyky jsou deterministické algebraické jazyky . Tady je gramatika: Proměnná generuje jazyk Dyck , proměnná generuje jazyk prvních slov Dyck .
S→TS∣εT→NaSNa¯(Na∈NA){\ displaystyle {\ begin {array} {rcl} S & \ to & TS \ mid \ varepsilon \\ T & \ to & aS {\ bar {a}} \ quad (a \ v A) \ end {pole} }}![{\ displaystyle {\ begin {array} {rcl} S & \ to & TS \ mid \ varepsilon \\ T & \ to & aS {\ bar {a}} \ quad (a \ v A) \ end {pole} }}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fb93e2c29da4eef460da7d942cbf304eb7b68a83)
S{\ displaystyle S}
DNA∗{\ displaystyle D_ {A} ^ {*}}
T{\ displaystyle T}
DNA{\ displaystyle D_ {A}}![{\ displaystyle D_ {A}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b78af4a9d2d8aaec85ea4e6b0f997a31def04311)
- Další často se vyskytující gramatika: Proměnná generuje Dyckův jazyk , ale gramatika je nejednoznačná .
S→SS∣εS→NaSNa¯(Na∈NA){\ displaystyle {\ begin {pole} {rcl} S & \ to & SS \ mid \ varepsilon \\ S & \ to & aS {\ bar {a}} \ quad (a \ v A) \ end {pole} }}![{\ displaystyle {\ begin {pole} {rcl} S & \ to & SS \ mid \ varepsilon \\ S & \ to & aS {\ bar {a}} \ quad (a \ v A) \ end {pole} }}](https://wikimedia.org/api/rest_v1/media/math/render/svg/262ae59fa69a0da5fec444f1a33b07c5c053fedb)
S{\ displaystyle S}
DNA∗{\ displaystyle D_ {A} ^ {*}}![{\ displaystyle D_ {A} ^ {*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a1ed38b5c435a2e4feb2e589e373067102fdcf94)
- Věta Chomsky-Schützenberger uvádí, že jakýkoli algebraický jazyk je homomorfní obraz průniku jazyka Dyck s jazykem racionálním.
- Tuto větu lze upřesnit následovně: jakýkoli algebraický jazyk je homomorfní obraz průniku racionálního jazyka a inverzní homomorfní obraz Dyckova jazyka na dvou párech závorek: kde a jsou morfismy a je jazykem racionálním.THE{\ displaystyle L}
![THE](https://wikimedia.org/api/rest_v1/media/math/render/svg/103168b86f781fe6e9a4a87b8ea1cebe0ad4ede8)
THE=h(K.∩G-1(D2∗)){\ displaystyle L = h (K \ cap g ^ {- 1} (D_ {2} ^ {*}))}![{\ displaystyle L = h (K \ cap g ^ {- 1} (D_ {2} ^ {*}))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/be7a3d5c4c7953a744f0ce822509f6f942573198)
h{\ displaystyle h}
G{\ displaystyle g}
K.{\ displaystyle K}![K.](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b76fce82a62ed5461908f0dc8f037de4e3686b0)
- Ekvivalentně toto tvrzení znamená, že jakýkoli algebraický jazyk je obrazem prostřednictvím racionální transdukce nebo že tento jazyk je generátorem racionálního kuželu algebraických jazyků.D2∗{\ displaystyle D_ {2} ^ {*}}
D2∗{\ displaystyle D_ {2} ^ {*}}![D_ {2} ^ {*}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ab92a8450f2efca7832051fde1d0e34d754ac8a0)
- Dyckův jazyk na dvou párech závorek patří do třídy složitosti TC 0 (en) .
- Dyckova slova mají mnoho kombinačních vlastností a charakterizací. Počet slov Dyck na dvojici dlouhých závorek se rovná katalánskému číslu .2ne{\ displaystyle 2n}
VSne{\ displaystyle C_ {n}}![C_ {n}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0301812adb392070d834ca2df4ed97f1cf132f33)
- Syntaktický monoid Dyckova jazyka je bicyklický monoid .
Bilaterální Dyckovy jazyky
Intuitivně je dvoustranné Dyckovo slovo dobře vytvořené slovo symbolů a jejich inverzí, které se zjednodušují, když sousedí, jako ve skupině. Zde se místo toho používá k symbolizaci zadní strany písmene . Oboustranné Dyckovy jazyky, vytvořené z oboustranných Dyckových slov, souvisí s definicí volných skupin .
Na-1Na=1{\ displaystyle a ^ {- 1} a = 1}
Na¯{\ displaystyle {\ bar {a}}}
Na{\ displaystyle a}![Na](https://wikimedia.org/api/rest_v1/media/math/render/svg/ffd2487510aa438433a2579450ab2b3d557e5edc)
Buď abeceda, nebo disjunktní kopie . Zde je kopie dopisu považována za formální opak. Na množině slov dále definujeme redukční vztah následujícím způsobem:
NA{\ displaystyle A}
NA¯={Na¯∣Na∈NA}{\ displaystyle {\ bar {A}} = \ {{\ bar {a}} \ uprostřed \ v A \}}
NA{\ displaystyle A}
NA{\ displaystyle A}
Na¯{\ displaystyle {\ bar {a}}}
Na{\ displaystyle a}
(NA∪NA¯)∗{\ displaystyle (A \ cup {\ bar {A}}) ^ {*}}
NA∪NA¯{\ displaystyle A \ cup {\ bar {A}}}![{\ displaystyle A \ cup {\ bar {A}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/416dece6f962588b351352ae21c5801fcfbaab7e)
w→w′{\ displaystyle w \ to w '}
pokud existuje faktorizace nebo taková , s . Oboustranná Dyckova redukce je přechodným uzavřením tohoto vztahu.
w=XNaNa¯y{\ displaystyle w = xa {\ bar {a}} y}
w=XNa¯Nay{\ displaystyle w = x {\ bar {a}} ay}
w′=Xy{\ displaystyle w '= xy}
Na∈NA{\ displaystyle a \ v A}![a \ v A](https://wikimedia.org/api/rest_v1/media/math/render/svg/a97387981adb5d65f74518e20b6785a284d7abd5)
Například máme
Na¯NaNaNa¯→NaNa¯→ε{\ displaystyle {\ bar {a}} aa {\ bar {a}} \ na {\ bar {a}} \ na \ varepsilon}![{\ displaystyle {\ bar {a}} aa {\ bar {a}} \ na {\ bar {a}} \ na \ varepsilon}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ef89881055314335c43083a6247f3ebf4a9b7e49)
Dvou- jednostranný Dyck slovo je slovo, které redukuje na prázdné slovo . Relační relace definovaná výše je splývající a jakékoli slovo je redukováno na neredukovatelné slovo (tj. Neobsahuje žádný nebo jediný faktor
) . Sada neredukovatelných slov je racionální jazyk . Je v bijekci s volnou skupinou .
ε{\ displaystyle \ varepsilon}
NaNa¯{\ displaystyle a {\ bar {a}}}
Na¯Na{\ displaystyle {\ bar {a}} a}
NA{\ displaystyle A}![NA](https://wikimedia.org/api/rest_v1/media/math/render/svg/7daff47fa58cdfd29dc333def748ff5fa4c923e3)
Jazyk Dyck oboustranné na množině Dyck slov oboustranných.
NA∪NA¯{\ displaystyle A \ cup {\ bar {A}}}![{\ displaystyle A \ cup {\ bar {A}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/416dece6f962588b351352ae21c5801fcfbaab7e)
Vlastnosti
- Bilaterální Dyckovy jazyky jsou algebraické. Zde je gramatika:
S→TS∣εT→NaSNa¯(Na∈NA)T→Na¯SNa(Na∈NA){\ displaystyle {\ begin {array} {rcl} S & \ to & TS \ mid \ varepsilon \\ T & \ to & aS {\ bar {a}} \ quad (a \ v A) \\ T & \ do & {\ bar {a}} Sa \ quad (a \ v A) \ end {pole}}}![{\ displaystyle {\ begin {array} {rcl} S & \ to & TS \ mid \ varepsilon \\ T & \ to & aS {\ bar {a}} \ quad (a \ v A) \\ T & \ do & {\ bar {a}} Sa \ quad (a \ v A) \ end {pole}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d4e1a37f4244da90cd239901e0caaa217e15ca8a)
Tato gramatika je nejednoznačná. Například slovo má následující dvě derivace vlevo :
NaNa¯NaNa¯{\ displaystyle a {\ bar {a}} a {\ bar {a}}}![{\ displaystyle a {\ bar {a}} a {\ bar {a}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/008b5a42c6c3a26229d20e444296e2a10bca7ed2)
S→TS→NaSNa¯S→NaNa¯S→NaNa¯TS→NaNa¯NaSNa¯S→NaNa¯NaNa¯S→NaNa¯NaNa¯S→TS→NaSNa¯S→NaTSNa¯S→NaNa¯SNaNa¯S→NaNa¯NaNa¯S→NaNa¯NaNa¯{\ displaystyle {\ begin {pole} {l} S \ k TS \ k aS {\ bar {a}} S \ k {\ bar {a}} S \ k {\ bar {a}} TS \ do {\ bar {a}} aS {\ bar {a}} S \ do {\ bar {a}} a {\ bar {a}} S \ do {\ bar {a}} a {\ bar {a}} \\ S \ na TS \ na aS {\ bar {a}} S \ na aTS {\ bar {a}} S \ na {\ bar {a}} Sa {\ bar {a} } S \ k {\ bar {a}} a {\ bar {a}} S \ k {\ bar {a}} a {\ bar {a}} \ end {pole}}}![{\ displaystyle {\ begin {pole} {l} S \ k TS \ k aS {\ bar {a}} S \ k {\ bar {a}} S \ k {\ bar {a}} TS \ do {\ bar {a}} aS {\ bar {a}} S \ do {\ bar {a}} a {\ bar {a}} S \ do {\ bar {a}} a {\ bar {a}} \\ S \ na TS \ na aS {\ bar {a}} S \ na aTS {\ bar {a}} S \ na {\ bar {a}} Sa {\ bar {a} } S \ k {\ bar {a}} a {\ bar {a}} S \ k {\ bar {a}} a {\ bar {a}} \ end {pole}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/88b7e0e7bd5099e82e7d304607595b2ff8fc50bb)
Existují jednoznačné gramatiky pro oboustranné jazyky Dyck. Tady je jeden:
S→vs.Svs.vs.¯S(vs.∈NA∪NA¯)Svs.→bSbb¯Svs.(b,vs.∈NA∪NA¯,b≠vs.¯)S→εSvs.→ε(vs.∈NA∪NA¯){\ displaystyle {\ begin {array} {rcl} S & \ to & cS_ {c} {\ bar {c}} S \ quad (c \ v A \ cup {\ bar {A}}) \ \ S_ { c} & \ to & bS_ {b} {\ bar {b}} S_ {c} \ quad (b, c \ v A \ cup {\ bar {A}}, b \ neq {\ bar {c}} ) \\ S & \ to & \ varepsilon \\ S_ {c} & \ to & \ varepsilon \ quad (c \ v A \ cup {\ bar {A}}) \ end {pole}}}![{\ displaystyle {\ begin {array} {rcl} S & \ to & cS_ {c} {\ bar {c}} S \ quad (c \ v A \ cup {\ bar {A}}) \ \ S_ { c} & \ to & bS_ {b} {\ bar {b}} S_ {c} \ quad (b, c \ v A \ cup {\ bar {A}}, b \ neq {\ bar {c}} ) \\ S & \ to & \ varepsilon \\ S_ {c} & \ to & \ varepsilon \ quad (c \ v A \ cup {\ bar {A}}) \ end {pole}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3088cd566ebccd7a52992f3b5deb30d9d40302a4)
V případě, že se abeceda skládá z jednoho písmene , je tato gramatika redukována na:
NA{\ displaystyle A}
Na{\ displaystyle a}![Na](https://wikimedia.org/api/rest_v1/media/math/render/svg/ffd2487510aa438433a2579450ab2b3d557e5edc)
S→NaSNaNa¯S∣Na¯SNa¯NaS∣εSNa→NaSNaNa¯SNa∣εSNa¯→Na¯SNa¯NaSNa¯∣ε{\ displaystyle {\ begin {array} {rcl} S & \ to & aS_ {a} {\ bar {a}} S \ mid {\ bar {a}} S _ {\ bar {a}} aS \ mid \ varepsilon \ \ S_ {a} & \ to & aS_ {a} {\ bar {a}} S_ {a} \ mid \ varepsilon \\ S _ {\ bar {a}} & \ to & {\ bar { a}} S_ {\ bar {a}} aS _ {\ bar {a}} \ mid \ varepsilon \ end {pole}}}![{\ displaystyle {\ begin {array} {rcl} S & \ to & aS_ {a} {\ bar {a}} S \ mid {\ bar {a}} S _ {\ bar {a}} aS \ mid \ varepsilon \ \ S_ {a} & \ to & aS_ {a} {\ bar {a}} S_ {a} \ mid \ varepsilon \\ S _ {\ bar {a}} & \ to & {\ bar { a}} S_ {\ bar {a}} aS _ {\ bar {a}} \ mid \ varepsilon \ end {pole}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/455a1c29c3d78c25cd35249c5340b71c07a40713)
- Věta Chomsky-Schützenberger zůstává v platnosti, i když jsou dyckovské jazyky nahrazeny bilaterálními dyckovými jazyky.
Reference
- Olivier Carton , Formální jazyky, vypočítatelnost a složitost ,2008[ detail vydání ] ( číst online )
- Jean-Michel Autebert , algebraické jazyky , Masson,1987, 278 s. ( ISBN 978-2-225-81087-9 )
-
(en) Wilhelm Magnus , Abraham Karrass a Donald Solitar , teorie kombinatorické skupiny. Prezentace skupin z hlediska generátorů a vztahů , Dover Publications ,2004, 444 s. ( ISBN 0-486-43830-9 , číst online )Dotisk druhého vydání, 1976
Poznámky a odkazy
-
Terminologie „bilaterální“ není častá: v angličtině se často používá „ oboustranná Dyckova slova “. Jacques Labelle ( Quebec Annals of matematické vědy vol. 17, n o 1, 1993) výslovně používá termín "dvoustranný" Jacques Sakarovitch názvem "Dyck slovo" oboustranného slova a "slovo Shamir" slova Dyck. Matematici v kombinatorické grupové teorii znají pouze bilaterální slova a adjektivum vynechávají.
Související články
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">