WikiDer > Ichki stek avtomati
Yilda avtomatlar nazariyasi, a joylashtirilgan stek avtomati a cheklangan avtomat foydalanish mumkin bo'lgan suyakka qo'shimcha stack bo'lishi mumkin bo'lgan ma'lumotlarni o'z ichiga olgan.[1] A kabi stek avtomat, joylashtirilgan stek avtomati stakka ko'tarilishi yoki tushishi va joriy belgini o'qishi mumkin; Bundan tashqari, u har qanday joyda yangi stak yaratishi, shu bilan ishlashi, oxir-oqibat uni yo'q qilishi va eski stakada ishlashni davom ettirishi mumkin. Shunday qilib, steklar o'zboshimchalik chuqurligiga rekursiv tarzda joylashtirilishi mumkin; ammo, avtomat har doim faqat ichki to'plamda ishlaydi.
Ichki stek avtomati anni tanib olishga qodir indekslangan til,[2] va aslida indekslangan tillar sinfi aynan bir tomonlama qabul qilingan tillar sinfidir noaniq joylashtirilgan stek avtomatlari.[1][3]
Ichki stek avtomatlari bilan aralashmaslik kerak o'rnatilgan pastga tushirish avtomatlarikamroq hisoblash qobiliyatiga ega bo'lgan.[iqtibos kerak]
Rasmiy ta'rif
Avtomat
A (noaniq ikki tomonlama) ichki o'rnatilgan stek avtomat - bu gorizontal gQ, Σ, Γ, δ,q0,Z0,F,[,],]⟩ Qaerda
- Q, Σ va Γ navbati bilan bo'sh bo'lmagan sonli holatlar to'plami, kirish belgilari va stek belgilari,
 - [,] va ] Σ ∪ Γ tarkibida bo'lmagan alohida maxsus belgilar,
- [kirish satri uchun ham (sub) stack qatori uchun chap endmarker sifatida ishlatiladi,
 - ] ushbu satrlar uchun o'ng endmarker sifatida ishlatiladi,
 - ] butun stekni bildiruvchi qatorning yakuniy endmarkeri sifatida ishlatiladi.[1-eslatma]
 
 - Kengaytirilgan kirish alfaviti Σ '= Σ ∪ {[,]}, kengaytirilgan stek alifbesi Γ' = Γ ∪ {]} va kirish yo'nalishlarining to'plami bilan belgilanadi D. = {-1,0,+1}.
 - δ, cheklangan boshqaruv - bu xaritalash Q × Σ '× (Γ' ∪ [Γ '∪ {], []}) ning cheklangan kichik to'plamlariga Q × D. × ([Γ.)* ∪ D.), shunday qilib δ xaritalar[2-eslatma]
 
| Q × Σ '× [Γ | ning kichik to'plamlariga Q × D. × [Γ* | (pastga tushirish rejimi), | |
| Q × Σ '× Γ' | ning kichik to'plamlariga Q × D. × D. | (o'qish rejimi), | |
| Q × Σ '× [Γ' | ning kichik to'plamlariga Q × D. × {+1} | (o'qish rejimi), | |
| Q × Σ '× {]} | ning kichik to'plamlariga Q × D. × {-1} | (o'qish rejimi), | |
| Q × Σ '× (Γ' ∪ [Γ ') | ning kichik to'plamlariga Q × D. × [Γ*] | (stek yaratish rejimi) va | |
| Q × Σ '× {[]} | ning kichik to'plamlariga Q × D. × {ε}, | (to'plamni yo'q qilish rejimi), | 
- Norasmiy ravishda, (pastki) stekning yuqori belgisi va oldingi "[" chap endmarker bilan bitta belgi sifatida qaraladi;[4] keyin o'qiydi
- hozirgi holat,
 - joriy kirish belgisi va
 - joriy stek belgisi,
 
 - va natijalar
- keyingi davlat,
 - kirishda harakatlanish yo'nalishi va
 - stekda harakatlanish yo'nalishi yoki eng yuqori stek belgisini almashtirish uchun belgilar qatori.
 
 
- q0 ∈ Q dastlabki holat,
 - Z0 ∈ Γ - bu dastlabki to'plam belgisi,
 - F ⊆ Q yakuniy holatlar to'plamidir.
 
Konfiguratsiya
A konfiguratsiya, yoki lahzali tavsif bunday avtomat uchdan iborat ⟨q,[a1a2...amen...an-1], [Z1X2...Xj...Xm-1]⟩, Qaerda
- q ∈ Q hozirgi holat,
 - [a1a2...amen...an-1] bu kirish satri; qulaylik uchun, a0 = [va an =] aniqlandi[3-eslatma] Kirishdagi joriy holat, ya'ni. men 0 with bilan men ≤ n, tegishli belgining ostiga chizish bilan belgilanadi.
 - [Z1X2...Xj...Xm-1] stack, shu jumladan substacks; qulaylik uchun, X1 = [Z1 [4-eslatma] va Xm = ] belgilanadi. Yig'indagi hozirgi holat, ya'ni. j 1 with bilan j ≤ m, tegishli belgining ostiga chizish bilan belgilanadi.
 
Misol
Misol yugurish (kirish satri ko'rsatilmagan):
| Amal | Qadam | Yig'ma | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1: | [a | b | [k | ] | [p | ] | v | ] | |||||
| substack yaratish | 2: | [a | b | [k | ] | [p | [r | s | ] | ] | v | ] | |
| pop | 3: | [a | b | [k | ] | [p | [s | ] | ] | v | ] | ||
| pop | 4: | [a | b | [k | ] | [p | [] | ] | v | ] | |||
| substackni yo'q qilish | 5: | [a | b | [k | ] | [p | ] | v | ] | ||||
| pastga harakatlaning | 6: | [a | b | [k | ] | [p | ] | v | ] | ||||
| yuqoriga harakatlanmoq | 7: | [a | b | [k | ] | [p | ] | v | ] | ||||
| yuqoriga harakatlanmoq | 8: | [a | b | [k | ] | [p | ] | v | ] | ||||
| Durang | 9: | [a | b | [k | ] | [n | o | p | ] | v | ] | ||
Xususiyatlari
Avtomatlarga kiritilgan ma'lumotni qayta o'qishga ruxsat berilganda (""ikki tomonlama avtomatlar"), ichki stacklar oddiy stacklarga nisbatan qo'shimcha tilni aniqlash qobiliyatlarini keltirib chiqarmaydi.[5]
Gilman va Shapiro ularni hal qilish uchun ichki o'rnatilgan stek avtomatlaridan foydalanganlar so'z muammosi albatta guruhlar.[6]
Izohlar
- ^ Aho dastlab "[", "]" va "o'rniga" $ "," ¢ "va" # "ni ishlatgan.]"navbati bilan. Qarang Aho (1969), s.385 p.
 - ^ Birgalikda joylashishni bildiradi mag'lubiyat (to'plam) birikmasi, va belgilangan birlashishga qaraganda yuqori majburiy ustuvorlikka ega ∪. Masalan, [Γ '«[» bilan boshlanib, Γ' dan boshlab barcha uzunlikdagi 2 qatorlarning to'plamini bildiradi.
 - ^ Aho dastlab chap va o'ng stek markerini ishlatgan, ya'ni. $ va ¢, navbati bilan o'ng va chap kirish belgisi sifatida.
 - ^ A (pastki) stekning yuqori belgisi va oldingi oldingi ["belgi bilan bitta belgi sifatida qaraladi.
 
Adabiyotlar
- ^ a b Aho, Alfred V. (1969 yil iyul). "Nested Stack Automata". ACM jurnali. 16 (3): 383–406. doi:10.1145/321526.321529. S2CID 685569.
 - ^ Ishtirokchi, Barbara; Elis ter Meulen; Robert E. Uoll (1990). Tilshunoslikda matematik usullar. Kluwer Academic Publishers. pp.536–542. ISBN 978-90-277-2245-4.
 - ^ John E. Hopcroft, Jeffrey D. Ullman (1979). Avtomatika nazariyasi, tillar va hisoblash bilan tanishish. Addison-Uesli. ISBN 0-201-02988-X. Bu erda: s.390
 - ^ Aho (1969), s.385 yuqori
 - ^ Beeri, C. (1975 yil iyun). "Ikki tomonlama joylashtirilgan stek avtomatlari ikki tomonlama stek avtomatlariga teng". Kompyuter va tizim fanlari jurnali. 10 (3): 317–339. doi:10.1016 / s0022-0000 (75) 80004-3.
 - ^ Shapiro, Robert Gilman Maykl (1998 yil 4-dekabr). So'z muammosi ichki stack avtomat tomonidan hal qilingan guruhlarda (Texnik hisobot). arXiv:matematik / 9812028. CiteSeerX 10.1.1.236.2029. S2CID 12716492.