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
d'estats - un conjunt
de símbols terminals - un estat inicial
![{\displaystyle A_{S}\in N}](https://wikimedia.org/api/rest_v1/media/math/render/svg/29c594c1a850d6802a02c89cf7437e0b9c637365)
- un estat final
![{\displaystyle A_{F}\in N}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0f9fea000037281000707b1f78df4cb8c57a944a)
- un conjunt de camins
![{\displaystyle U}](https://wikimedia.org/api/rest_v1/media/math/render/svg/458a728f53b9a0274f059cd695e067c430956025)
- una funció parcial
on ![{\displaystyle U^{\perp }=U\{\perp \}{\text{ per}}\perp \notin U}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a850058b4b8a5f67d44a7671dd3a4d96d9fead89)
- un conjunt finit de transicions
![{\displaystyle \Theta }](https://wikimedia.org/api/rest_v1/media/math/render/svg/bc927b19f46d005b4720db7a0f96cd5b6f1a0d9b)
Un camí
és una cadena de components de camí
, on n pot ser 0, i el camí buit es denomina
. Un subprocés te la forma
on
és un camí i
és un estat. Un magatzem d'estats
és un conjunt finit de camins, que es pot veure com una funció parcial de
cap a
tal que
és tancat pel prefix.
Una configuració per un autòmat per subprocessos és una tripleta
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
. La configuració final és
on n és la longitud de la cadena d'entrada i u abrevia
. Una transició del conjunt
pot ser de les formes següents i canvia la configuració de la següent manera:
- SWAP
: consumeix el símbol d'entrada a i canvia l'estat del subprocés actiu de
a ![{\displaystyle \langle l+1,p,S\cup \{p:C\}\rangle }](https://wikimedia.org/api/rest_v1/media/math/render/svg/81ece6762f8e1b4201fe9fad7dba2897edccd1e3)
- SWAP
: similar que l'anterior però no consumeix el símbol d'entrada a i canvia l'estat del subprocés actiu de
a ![{\displaystyle \langle l,p,S\cup \{p:C\}\rangle }](https://wikimedia.org/api/rest_v1/media/math/render/svg/cdb4bcd0a17dcceeb7208d9db5e3bdfad41f2508)
- PUSH C: crea un nou subprocés i suspèn el seu subprocés pare, canvia l'estat:
a
on
i ![{\displaystyle pu\notin dom(S)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11429c15013afe2dfce8a22dd450a2942056a0db)
- POP [B]C: finalitza el procés actiu retornant el control al seu subprocés pare, canvia l'estat
a
on
i ![{\displaystyle pu\notin dom(S)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11429c15013afe2dfce8a22dd450a2942056a0db)
- SPUSH [C] D: reactiva un subprocés suspès del subprocés actiu, canvia l'estat
a
on ![{\displaystyle u=\sigma (B)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7a99eeea98dad501987cd048a452dc8a67506378)
- SPOP [B] D: reactiva el procés pare del subprocés actiu, canvia l'estat
a
on ![{\displaystyle \sigma (C)=\perp }](https://wikimedia.org/api/rest_v1/media/math/render/svg/cdcba5cdbf5a0461513de9dbd3cb8118378a823f)
Es pot provar que
per les transicions POP i SPOP i
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
- ↑ 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.
|
---|
|
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. |