Autòmat per subprocessos

En teoria d'autòmats, un autòmat per subprocessos és un tipus estès d'una màquina d'estats finita que reconeix un llenguatge lleugerament sensible al context.[1]

Definició formal

Un autòmat per subprocessos és:

  • un conjunt N {\displaystyle N} d'estats
  • un conjunt Σ {\displaystyle \Sigma } de símbols terminals
  • un estat inicial A S N {\displaystyle A_{S}\in N}
  • un estat final A F N {\displaystyle A_{F}\in N}
  • un conjunt de camins U {\displaystyle U}
  • una funció parcial σ : N U {\displaystyle \sigma :N\to U^{\perp }} on U = U { }  per ⊥∉ U {\displaystyle U^{\perp }=U\{\perp \}{\text{ per}}\perp \notin U}
  • un conjunt finit de transicions Θ {\displaystyle \Theta }

Un camí u 1 . . . u n U {\displaystyle u_{1}...u_{n}\in U} és una cadena de components de camí u i U {\displaystyle u_{i}\in U} , on n pot ser 0, i el camí buit es denomina ϵ {\displaystyle \epsilon } . Un subprocés te la forma u 1 . . . u n : A {\displaystyle u_{1}...u_{n}:A} on u 1 . . . u n U {\displaystyle u_{1}...u_{n}\in U} és un camí i A N {\displaystyle A\in N} és un estat. Un magatzem d'estats S {\displaystyle S} és un conjunt finit de camins, que es pot veure com una funció parcial de U {\displaystyle U^{*}} cap a N {\displaystyle N} tal que d o m ( S ) {\displaystyle dom(S)} és tancat pel prefix.

Una configuració per un autòmat per subprocessos és una tripleta l , p , S {\displaystyle \langle l,p,S\rangle } on l denota la posició actual de la cadena d'entrada, p és el subprocés actiu i S és el magatzem de subprocessos que conte p. La configuració inicial és 0 , ϵ , { ϵ : A S } {\displaystyle \langle 0,\epsilon ,\{\epsilon :A_{S}\}\rangle } . La configuració final és n , u , { ϵ : A S , u : A F } {\displaystyle \langle n,u,\{\epsilon :A_{S},u:A_{F}\}\rangle } on n és la longitud de la cadena d'entrada i u abrevia σ ( A S ) {\displaystyle \sigma (A_{S})} . Una transició del conjunt Θ {\displaystyle \Theta } pot ser de les formes següents i canvia la configuració de la següent manera:

  • SWAP B a C {\displaystyle B\rightarrow _{a}C} : consumeix el símbol d'entrada a i canvia l'estat del subprocés actiu de l , p , S { p : B } {\displaystyle \langle l,p,S\cup \{p:B\}\rangle } a l + 1 , p , S { p : C } {\displaystyle \langle l+1,p,S\cup \{p:C\}\rangle }
  • SWAP B ϵ C {\displaystyle B\rightarrow _{\epsilon }C} : similar que l'anterior però no consumeix el símbol d'entrada a i canvia l'estat del subprocés actiu de l , p , S { p : B } {\displaystyle \langle l,p,S\cup \{p:B\}\rangle } a l , p , S { p : C } {\displaystyle \langle l,p,S\cup \{p:C\}\rangle }
  • PUSH C: crea un nou subprocés i suspèn el seu subprocés pare, canvia l'estat: l , p , S { p : B } {\displaystyle \langle l,p,S\cup \{p:B\}\rangle } a l , p , S { p : B , p u : C } {\displaystyle \langle l,p,S\cup \{p:B,pu:C\}\rangle } on u = σ ( B ) {\displaystyle u=\sigma (B)} i p u d o m ( S ) {\displaystyle pu\notin dom(S)}
  • POP [B]C: finalitza el procés actiu retornant el control al seu subprocés pare, canvia l'estat l , p u , S { p : B , p u : C } {\displaystyle \langle l,pu,S\cup \{p:B,pu:C\}\rangle } a l , p , S { p : C } {\displaystyle \langle l,p,S\cup \{p:C\}\rangle } on σ ( C ) =⊥ {\displaystyle \sigma (C)=\perp } i p u d o m ( S ) {\displaystyle pu\notin dom(S)}
  • SPUSH [C] D: reactiva un subprocés suspès del subprocés actiu, canvia l'estat l , p , S { p : B , p u : C } {\displaystyle \langle l,p,S\cup \{p:B,pu:C\}\rangle } a l , p u , S { p : B , p u : D } {\displaystyle \langle l,pu,S\cup \{p:B,pu:D\}\rangle } on u = σ ( B ) {\displaystyle u=\sigma (B)}
  • SPOP [B] D: reactiva el procés pare del subprocés actiu, canvia l'estat l , p u , S { p : B , p u : C } {\displaystyle \langle l,pu,S\cup \{p:B,pu:C\}\rangle } a l , p , S { p : D , p u : C } {\displaystyle \langle l,p,S\cup \{p:D,pu:C\}\rangle } on σ ( C ) =⊥ {\displaystyle \sigma (C)=\perp }

Es pot provar que σ ( B ) = u {\displaystyle \sigma (B)=u} per les transicions POP i SPOP i σ ( C ) =⊥ {\displaystyle \sigma (C)=\perp } per les transicions PUSH.

Una cadena d'entrada s'accepta per l'autòmat si hi ha una seqüència que canvia la configuració de l'estat inicial fins a l'estat final.

Referències

  1. Villemonte de la Clergerie, Éric «Parsing Mildly Context-sensitive Languages with Thread Automata». COLING '02 Proceedings of the 19th international conference on Computational linguistics.. Association for Computational Linguistics [Stroudsburg, PA, USA], 2002, pàg. 1–7. DOI: 10.3115/1072228.1072256.
  • 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.