Automat zásobníku stromů - Tree stack automaton
Automat zásobníku stromů[A] (množné číslo: automaty zásobníku stromů) je a formalismus uvažováno v teorie automatů. Je to konečný stavový automat s další schopností manipulovat a strom -tvarovaná zásobník. Je to automat s úložištěm[2] jehož úložiště zhruba připomíná konfigurace a automat závitů. Omezená třída automatů zásobníku stromů přesně rozpozná jazyky generováno více bezkontextové gramatiky[3] (nebo lineární bezkontextové přepisovací systémy ).
Definice
Stoh stromů

Pro konečnou a neprázdnou množinu Γ, a zásobník stromů přes Γ je n-tice (t, str) kde
- t je částečná funkce od řetězců kladných celých čísel po množinu Γ ∪ {@} s předpona -Zavřeno[b] doména (volala strom),
- @ (volala dolní symbol) není v Γ a objeví se přesně v kořenovém adresáři t, a
- str je prvek domény t (volala ukazatel zásobníku).
Sada všech stromů se hromadí Γ je označen TS (Γ).
Sada predikáty na TS (Γ), označeno Před (Γ), obsahuje následující unární predikáty:
- skutečný což platí pro jakýkoli zásobník stromů Γ,
- dno což platí pro hromádky stromů, jejichž ukazatel zásobníku ukazuje na dolní symbol, a
- rovná se(y) což platí pro nějaký stromový stack (t, str) -li t(str) = y,
pro každého y ∈ Γ.
Sada instrukce na TS (Γ), označeno Instr (Γ), obsahuje následující dílčí funkce:
- id: TS (Γ) → TS (Γ) na kterém je funkce identity TS (Γ),
- tlačitn,y: TS (Γ) → TS (Γ) který přidává pro daný stromový zásobník (t,str) pár (pn ↦ y) ke stromu t a nastaví ukazatel zásobníku na pn (tj. tlačí y do n-té dítě pozice) pokud pn dosud není doménou domény t,
- nahorun: TS (Γ) → TS (Γ) který nahradí aktuální ukazatel zásobníku str podle pn (tj. přesune ukazatel zásobníku na n-té dítě pozice) pokud pn je v doméně t,
- dolů: TS (Γ) → TS (Γ) který odstraní poslední symbol z ukazatele zásobníku (tj. přesune ukazatel zásobníku na nadřazenou pozici) a
- soubory: TS (Γ) → TS (Γ) který nahradí symbol aktuálně pod ukazatelem zásobníku za y,
pro každé kladné celé číslo n a každý y ∈ Γ.
![]() Ilustrace ID instrukce na zásobníku stromu | ![]() Ilustrace instrukce push na stromě | ![]() Ilustrace pokynů nahoru a dolů na hromádce stromů | ![]() Ilustrace instrukční sady na zásobníku stromů |
Stromové automaty
A automat zásobníku stromů je n-tice A = (Q, Γ, Σ, qi, δ, QF) kde
- Q, Γ, a Σ jsou konečné množiny (jejichž prvky se nazývají státy, symboly zásobníku, a vstupní symboly, v uvedeném pořadí),
- qi ∈ Q (dále jen počáteční stav),
- δ ⊆ploutev. Q × (Σ ∪ {ε}) × Před (Γ) × Instr (Γ) × Q (jehož prvky se nazývají přechody), a
- QF ⊆ TS (Γ) (jehož prvky se nazývají konečné stavy).
A konfigurace A je n-tice (q, C, w) kde
- q je stát ( aktuální stav),
- C je zásobník stromů ( aktuální zásobník stromů), a
- w je slovo Σ (dále jen zbývající slovo ke čtení).
Přechod τ = (q1, u, str, F, q2) je použitelný do konfigurace (q, C, w) -li
- q1 = q,
- str je pravda na C,
- F je definováno pro C, a
- u je předpona w.
The přechodový vztah A je binární relace ⊢ o konfiguracích A to je spojení všech vztahů ⊢τ pro přechod τ = (q1, u, str, F, q2) kde kdykoli τ platí pro (q, C, w), my máme (q, C, w) ⊢τ (q2, F(C), proti) a proti se získává z w odstraněním předpony u.
The jazyk A je množina všech slov w pro které existuje nějaký stát q ∈ QF a nějaký stromový stoh C takhle (qi, Ci, w) ⊢* (q, C, ε) kde
- ⊢* je reflexní přechodné uzavření z ⊢ a
- Ci = (ti, ε) takhle ti přiřazuje pro ε symbol @ a není definováno jinak.
Související formalizmy
Stromové automaty jsou ekvivalentní Turingovy stroje.
Volá se automat zásobníku stromů k-omezený pro nějaké kladné přirozené číslo k pokud během libovolného běhu automatu je přístupná maximálně libovolná poloha zásobníku stromů k krát zdola.
1-omezené automaty zásobníku stromů jsou ekvivalentní pushdown automaty a proto také bezkontextové gramatiky.k-omezené automaty zásobníku stromů jsou ekvivalentní lineární bezkontextové přepisovací systémy a nanejvýš několik bezkontextových gramatik fan-out k (pro každé kladné celé číslo k).[3]
Poznámky
Reference
- ^ Golubski, Wolfgang a Lippe, Wolfram-M. (1990). Stromové automaty. Sborník z 15. symposia o matematických základech informatiky (MFCS 1990). Lecture Notes in Computer Science, Vol. 452, strany 313–321, doi: 10,1007 / BFb0029624.
- ^ Scott, Dana (1967). Několik definičních návrhů pro teorii automatů. Journal of Computer and System Sciences, sv. 1 (2), strany 187–212, doi: 10,1016 / s0022-0000 (67) 80014-x.
- ^ A b Denkinger, Tobias (2016). Charakterizace automatů pro více jazyků bez kontextu. Sborník příspěvků z 20. mezinárodní konference o vývoji v teorii jazyků (DLT 2016). Lecture Notes in Computer Science, Vol. 9840, strany 138–150, doi: 10.1007 / 978-3-662-53132-7_12.