Autòmat amb pila

Lògica combinacionalAutòmat finitAutòmat amb pilaMàquina de TuringTeoria d'autòmats
Classes d'autòmates

Un autòmat amb pila és un tipus d'autòmat que utilitza una pila.

Aquests autòmats s'utilitzen en teoria de la computabilitat i són més potents que un autòmat finit però menys capaços que una Màquina de Turing.[1] Si en tot moment només és possible una i només una transició, llavors l'autòmat és un autòmat amb pila determinista. En altre cas, és diu que l'autòmat és un autòmat amb pila general o no determinista.

Els llenguatges que reconeixen els autòmats amb pila pertanyen al grup dels llenguatges lliures del context en la Jerarquia de Chomsky.[2]

Definició formal

Formalment, un autòmat amb pila es pot descriure com una sèptupla M = ( S , Σ , Γ , δ , s , Z , F ) {\displaystyle M=(S,\Sigma ,\Gamma ,\delta ,s,Z,F)} on:

  • S {\displaystyle S} és un conjunt finit d'estats.
  • Σ {\displaystyle \Sigma } i Γ {\displaystyle \Gamma } són alfabets (símbols d'entrada i de la pila respectivament)
  • δ : S × ( Σ { ϵ } ) × Γ P ( S × Γ ) {\displaystyle \delta :S\times (\Sigma \cup \{\epsilon \})\times \Gamma \rightarrow {\mathcal {P}}(S\times \Gamma ^{*})}
  • s S {\displaystyle s\in S} és l'estat inicial
  • Z   Γ {\displaystyle Z\ \in \Gamma } és el símbol inicial de la pila
  • F S {\displaystyle F\subseteq S} és un conjunt d'estats d'acceptació o finals

La interpretació de δ ( q , a , b ) = { ( q 1 , γ 1 ) , ( q 2 , γ 2 ) , , ( q n , γ n ) } {\displaystyle \delta (q,a,b)=\{(q_{1},\gamma _{1}),(q_{2},\gamma _{2}),\ldots ,(q_{n},\gamma _{n})\}} , amb q , q i S , a ( Σ { ϵ } ) , b Γ {\displaystyle q,q_{i}\in S,a\in (\Sigma \cup \{\epsilon \}),b\in \Gamma } , y γ i Γ {\displaystyle \gamma _{i}\in \Gamma ^{*}} és la següent:

Quan l'estat de l'autòmat és q {\displaystyle q} , el símbol que el cap lector està inspeccionant en aquell moment es a {\displaystyle a} , i a dalt de la pila trobem el símbol b {\displaystyle b} , es fan les següents accions:

  • Si a Σ {\displaystyle a\in \Sigma } , és a dir, no és la cadena buida, el cap lector avança una posició per inspeccionar el següent símbol
  • S'elimina el símbol b {\displaystyle b} de la pila de l'autòmat
  • Es seleccionen un parell ( q i , γ i ) {\displaystyle (q_{i},\gamma _{i})} d'entre els existents en la definició de δ ( q , a , b ) {\displaystyle \delta (q,a,b)} , la funció de transició del autòmat
  • S'apila la cadena γ i = c 1 c 2 c k {\displaystyle \gamma _{i}=c_{1}c_{2}\ldots c_{k}} , amb c i Γ {\displaystyle c_{i}\in \Gamma } a la pila del autòmat, quedant el símbol c k {\displaystyle c_{k}} a dalt de la pila
  • Es canvia el control de l'autòmat a l'estat q i {\displaystyle q_{i}}

Referències

  1. Hopcroft, J.E.; Ullman, J.D. «Nonerasing stack automata». Journal of Computer and System Sciences, 1, 2, pàg. 166–186. DOI: 10.1016/s0022-0000(67)80013-8.
  2. 1939-, Hopcroft, John E.,. Introduction to automata theory, languages, and computation. Reading, Mass.: Addison-Wesley, 1979. ISBN 020102988X. 
  • Vegeu aquesta plantilla
Jerarquia de ChomskyGramàtiquesLlenguatgesMàquines abstractes
  • Tipus-0
  • Tipus-1
  • Tipus-2
  • Tipus-3
Cada categoria de llenguatges, excepte aquells marcats per *, és un subconjunt de la categoria superior. Qualsevol llenguatge en aquesta categoria es genera per una gramàtica i per un autòmat de la categoria de la mateixa línia.