Articulo de referencia

Máquina de estados finitos comunicante

En informática , una máquina de estados finitos comunicante es una máquina de estados finitos etiquetada con operaciones de "recepción" y "envío" sobre un conjunto de canales. F...

En informática , una máquina de estados finitos comunicante es una máquina de estados finitos etiquetada con operaciones de "recepción" y "envío" sobre un conjunto de canales. Fueron introducidas por Brand y Zafiropulo [ 1 ] y pueden utilizarse como modelo de procesos concurrentes , como las redes de Petri . Las máquinas de estados finitos comunicantes se utilizan con frecuencia para modelar protocolos de comunicación , ya que permiten detectar errores importantes en el diseño de protocolos, como la acotación, los interbloqueos y las recepciones no especificadas [ 2 ] .

La ventaja de comunicar máquinas de estados finitos radica en que permiten definir muchas propiedades en los protocolos de comunicación, más allá de la mera detección de dichas propiedades. Esta ventaja elimina la necesidad de asistencia humana o restricciones en generalidad. [ 1 ]

Las máquinas de estados finitos comunicantes pueden ser más potentes que las máquinas de estados finitos en situaciones donde el retardo de propagación no es despreciable (de modo que varios mensajes pueden estar en tránsito al mismo tiempo) y en situaciones donde es natural describir a las partes del protocolo y al medio de comunicación como entidades separadas. [ 1 ]

Máquina de estados jerárquica comunicante

Las máquinas de estados jerárquicas son máquinas de estados finitos cuyos estados pueden ser otras máquinas. Dado que una máquina de estados finitos comunicante se caracteriza por la concurrencia, el rasgo más notable en una máquina de estados jerárquica comunicante es la coexistencia de jerarquía y concurrencia. Esto se considera muy adecuado, ya que implica una interacción más fuerte dentro de la máquina.

Sin embargo, se demostró que la coexistencia de jerarquía y concurrencia intrínsecamente conlleva un costo para la inclusión de lenguajes, la equivalencia de lenguajes y toda la universalidad. [ 3 ]

Definición

Protocolo

Para un entero positivo arbitrarionorte{\displaystyle N}, un protocolo [ 1 ] : 3 connorte{\displaystyle N}El/los proceso(s) es(son) cuádruple(s){(Si)i=1norte, (oi)i=1norte, (METROi,j)i,j=1norte, (sdodo)i=1norte}{\displaystyle \{(S_{i})_{i=1}^{N},\ (o_{i})_{i=1}^{N},\ (M_{i,j})_{i,j=1}^{N},\ ({\mathtt {succ}})_{i=1}^{N}\}}con:

  • (Si)i=1norte{\displaystyle (S_{i})_{i=1}^{N}}, una secuencia denorte{\displaystyle N}conjuntos finitos disjuntos. Cada conjunto se utiliza para representar un proceso, y cada elemento deSi{\displaystyle S_{i}}representa un posible estado de lai{\displaystyle i}-º proceso.
  • (oi)i=1norte{\displaystyle (o_{i})_{i=1}^{N}}(conoiSi{\displaystyle o_{i}\in S_{i}}), una secuencia que representa el estado inicial de cada proceso.
  • (METROi,j)i,j=1norte{\displaystyle (M_{i,j})_{i,j=1}^{N}}, una secuencia finita denorte2{\displaystyle N^{2}}conjuntos finitos disjuntos tales que cada conjuntoMETROi,j{\displaystyle M_{i,j}}representa los posibles mensajes que pueden enviarse desde el procesoi{\displaystyle i}procesarj{\displaystyle j}. Sii=j{\displaystyle i=j}, entoncesMETROi,j{\displaystyle M_{i,j}}está vacío.
  • (sdodo)i=1norte:Si×j=1norte(METROj,i[+]METROi,j[])Si{\displaystyle ({\mathtt {succ}})_{i=1}^{N}:S_{i}\times \bigcup _{j=1}^{N}\left(M_{j,i}^{[+]}\cup M_{i,j}^{[-]}\right)\mapsto S_{i}}es una secuencia de funciones de transición. Cada función modela la transición que se puede tomar al emitir o recibir cualquier mensaje. Con respecto al procesoi{\displaystyle i}, el símbolo[+]{\displaystyle [+]}se utiliza para anotar un mensaje que se puede recibir y[]{\displaystyle [-]}un mensaje que se puede enviar.

Estado global

Un estado global es un parS,do{\displaystyle \langle S,C\rangle }dónde

  • S=(s1,...,snorte){\displaystyle S=(s_{1},...,s_{N})}es una colección ordenada de estados tal que cadasi{\displaystyle s_{i}}representa un estado de lai{\displaystyle i}-º proceso.
  • do{\displaystyle C}es unnorte×norte{\displaystyle N\times N}matriz tal que cadadoi,jdo{\displaystyle c_{i,j}\in C}es una subsecuencia deMETROi,j{\displaystyle M_{i,j}}.

El estado global inicial es un parO,mi{\displaystyle \langle O,\mathrm {E} \rangle }dónde

  • O=(o1,...,onorte){\displaystyle O=(o_{1},...,o_{N})}
  • mi{\displaystyle \mathrm {E} }se define como unnorte×norte{\displaystyle N\times N}matriz tal que para todoi,j{1,...,norte}{\displaystyle i,j\in \{1,...,N\}},mii,j{\displaystyle E_{i,j}}es igual a la palabra vacía,ϵ{\displaystyle \epsilon }.

Paso

Existen dos tipos de pasos: pasos en los que se reciben mensajes y pasos en los que se envían mensajes.

Un paso en el que elj{\displaystyle j}El proceso recibe un mensaje enviado previamente por eli{\displaystyle i}El proceso -ésimo es un par de la forma (s1,,sj,,snorte),(do1,1do1,nortemetroi,jdoi,jdonorte,1donorte,norte)(s1,,sj,,snorte),(do1,1do1,nortedoi,jdonorte,1donorte,norte){\displaystyle \left\langle (s_{1},\dots ,s_{j},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\dots &m_{i,j}c_{i,j}&\dots \\\dots &\dots &\dots \\c_{n,1}&\dots &c_{n,n}\end{array}}\right)\right\rangle \vdash \left\langle (s_{1},\dots ,s'_{j},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\dots &c_{i,j}&\dots \\\dots &\dots &\dots \\c_{n,1}&\dots &c_{n,n}\end{array}}\right)\right\rangle }cuandosdodoi(sj,+metroi,j)=sj{\displaystyle {\mathtt {succ}}_{i}(s_{j},+m_{i,j})=s'_{j}}, conmetroi,jMETROi,j{\displaystyle m'_{i,j}\in M_{i,j}}. De manera similar, un par en el que se envía un mensaje por eli{\displaystyle i}-º proceso alj{\displaystyle j}-el uno es un par de la forma (s1,,si,,snorte),(do1,1do1,nortedoi,jdonorte,1donorte,norte)(s1,,si,,snorte),(do1,1do1,nortemetroi,jdoi,jdonorte,1donorte,norte){\displaystyle \left\langle (s_{1},\dots ,s_{i},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\dots &c_{i,j}&\dots \\\dots &\dots &\dots \\c_{n,1}&\dots &c_{n,n}\end{array}}\right)\right\rangle \vdash \left\langle (s_{1},\dots ,s'_{i},\dots ,s_{n}),\left({\begin{array}{lll}c_{1,1}&\dots &c_{1,n}\\\dots &\dots &\dots \\\dots &m_{i,j}c_{i,j}&\dots \\\dots &\dots &\dots \\c_{n,1}&\dots &c_{n,n}\end{array}}\right)\right\rangle }cuando sdodoi(si,metroi,j)=si{\displaystyle {\mathtt {succ}}_{i}(s_{i},-m_{i,j})=s'_{i}}

Correr

Una ejecución es una secuencia de estados globales tal que un paso relaciona un estado con el siguiente, y tal que el primer estado es el inicial.

Se dice que un estado globalS,do{\displaystyle \langle S,C\rangle }es alcanzable si existe una ejecución que pase por este estado.

Problemas

Se ha demostrado, con la introducción del concepto mismo, que cuando dos máquinas de estados finitos se comunican con un solo tipo de mensaje, se pueden determinar e identificar la acotación, los interbloqueos y el estado de recepción no especificado, mientras que esto no ocurre cuando las máquinas se comunican con dos o más tipos de mensajes. Posteriormente, se ha demostrado además que cuando solo una máquina de estados finitos se comunica con un único tipo de mensaje, mientras que la comunicación de su compañera no está restringida, aún podemos determinar e identificar la acotación, los interbloqueos y el estado de recepción no especificado. [ 2 ]

Se ha demostrado además que cuando la relación de prioridad de mensajes está vacía, se pueden decidir la acotación, los interbloqueos y el estado de recepción no especificado incluso bajo la condición en la que hay dos o más tipos de mensajes en la comunicación entre máquinas de estados finitos. [ 4 ]

La acotación, los interbloqueos y el estado de recepción no especificado son todos decidibles en tiempo polinomial (lo que significa que un problema particular puede resolverse en una cantidad de tiempo manejable, no infinita) ya que los problemas de decisión relacionados con ellos son completos en el espacio logarítmico no determinista. [ 2 ]

Extensiones

Algunas de las extensiones consideradas son:

  • tener una anotación para indicar que algunos estados pueden no recibir ningún mensaje,
  • Los mensajes se reciben en diferentes órdenes, como FILO,
  • Es posible que algunos mensajes se pierdan.

Sistema de canales

Un sistema de canales es esencialmente una versión de una máquina de estados finitos comunicante en la que la máquina no está dividida en procesos distintos. Por lo tanto, existe un único estado de estado y no hay restricciones sobre qué sistema puede leer o escribir en un canal determinado.

Formalmente, dado un protocolo(Si)i=1norte,(oi)i=1norte,(METROi,j)i,j=1norte,(sdodo)i{\displaystyle \langle (S_{i})_{i=1}^{n},(o_{i})_{i=1}^{n},(M_{i,j})_{i,j=1}^{n},({\mathtt {succ}})_{i}\rangle }, su sistema de canales asociado es(Si)i=1norte,(oi)i=1norte,i,j=1norte(METROi,j),Δ{\displaystyle \langle \prod (S_{i})_{i=1}^{n},(o_{i})_{i=1}^{n},\bigcup _{i,j=1}^{n}(M_{i,j}),\Delta \rangle }, dóndeΔ{\displaystyle \Delta }es el conjunto de((s1,,sj,,snorte),¿metroi,j,(s1,,sdodoj(sj,+metroi,j),,snorte){\displaystyle ((s_{1},\dots ,s_{j},\dots ,s_{n}),?m_{i,j},(s_{1},\dots ,{\mathtt {succ}}_{j}(s_{j},+m_{i,j}),\dots ,s_{n})}y de((s1,,si,,snorte),¡metroi,j,(s1,,sdodoi(si,metroi,j),,snorte){\displaystyle ((s_{1},\dots ,s_{i},\dots ,s_{n}),!m_{i,j},(s_{1},\dots ,{\mathtt {succ}}_{i}(s_{i},-m_{i,j}),\dots ,s_{n})}.

Referencias

  1. 1 2 3 4 D. Brand y P. Zafiropulo. Sobre máquinas de estados finitos comunicantes. Journal of the ACM, 30(2):323–342, 1983.
  2. 1 2 3 Rosier, Louis E; Gouda, Mohamed G. Decidiendo el progreso para una clase de máquinas de estados finitos comunicantes. Austin: Universidad de Texas en Austin, 1983.
  3. Alur, Rajeev; Kannan, Sampath; Yannakakis, Mihalis. «Máquinas de estados jerárquicos comunicantes», Autómatas, lenguajes y programación. Praga: ICALP, 1999.
  4. Gouda, Mohamed G; Rosier, Louis E. "Comunicación de máquinas de estados finitos con canales de prioridad", Autómatas, lenguajes y programación. Amberes: ICALP, 1984