Articulo de referencia

Redes de interacción

Las redes de interacción son un modelo gráfico de computación ideado por el matemático francés Yves Lafont en 1989 [ 1 ] como una generalización de las estructuras de prueba de ...

Las redes de interacción son un modelo gráfico de computación ideado por el matemático francés Yves Lafont en 1989 [ 1 ] como una generalización de las estructuras de prueba de la lógica lineal . Un sistema de red de interacción se especifica mediante un conjunto de tipos de agentes y un conjunto de reglas de interacción. Las redes de interacción son un modelo de computación inherentemente distribuido, en el sentido de que las computaciones pueden tener lugar simultáneamente en muchas partes de una red de interacción, y no se requiere sincronización. Esto último está garantizado por la fuerte propiedad de confluencia de la reducción en este modelo de computación. Por lo tanto, las redes de interacción proporcionan un lenguaje natural para el paralelismo masivo. Las redes de interacción son fundamentales para muchas implementaciones del cálculo lambda , como la reducción cerrada eficiente [ 2 ] y Lambdascope óptimo, en el sentido de Lévy. [ 3 ]

Definiciones

Las redes de interacción son estructuras similares a grafos que constan de agentes y aristas .

Un agente de tipoα{\displaystyle \alpha }y con aridadArkansas(α)=norte0{\displaystyle {\text{ar}}(\alpha )=n\geq 0}tiene un puerto principal ynorte{\displaystyle n}Puertos auxiliares . Cualquier puerto puede conectarse a un máximo de una arista. Cualquier arista está conectada a exactamente dos puertos. Los puertos que no están conectados a ninguna arista se denominan puertos libres . Los puertos libres juntos forman la interfaz de una red de interacción. Todos los tipos de agentes pertenecen a un conjunto.Σ{\displaystyle \Sigma }llamada firma .

Una red de interacción que consta únicamente de aristas se llama cableado y generalmente se denota comoω{\displaystyle \omega }Un árbolt{\displaystyle t}con su raízincógnita{\displaystyle x}se define inductivamente como un bordeincógnita{\displaystyle x}o como agenteα{\displaystyle \alpha }con su puerto principal libreincógnita{\displaystyle x}y sus puertos auxiliaresincógnitai{\displaystyle x_{i}}conectado a las raíces de otros árbolesti{\displaystyle t_{i}}.

Gráficamente, las estructuras primitivas de las redes de interacción se pueden representar de la siguiente manera:

Elementos básicos de las redes de interacción

Cuando dos agentes se conectan entre sí mediante sus puertos principales, forman un par activo . Para los pares activos se pueden introducir reglas de interacción que describen cómo el par activo se reescribe en otra red de interacción. Se dice que una red de interacción sin pares activos está en forma normal . Una firmaΣ{\displaystyle \Sigma }(conArkansas:Σnorte{\displaystyle {\text{ar}}:\Sigma \rightarrow \mathbb {N} }definido en él) junto con un conjunto de reglas de interacción definidas para los agentesαΣ{\displaystyle \alpha \in \Sigma }juntos constituyen un sistema de interacción .

cálculo de interacción

La representación textual de las redes de interacción se denomina cálculo de interacción [ 4 ] y puede considerarse como un lenguaje de programación .

Los árboles definidos inductivamente corresponden a términost::=α(t1,,tnorte) | incógnita{\displaystyle t::=\alpha (t_{1},\dots ,t_{n})\ |\ x}en el cálculo de interacción, dondeincógnita{\displaystyle x}se llama nombre .

Cualquier red de interacciónnorte{\displaystyle N}se puede redibujar utilizando las primitivas de cableado y árbol definidas previamente de la siguiente manera:

Red de interacción como configuración

que en el cálculo de interacción corresponde a una configuración

dot1,,tmetro | v1=w1,,vnorte=wnorte{\displaystyle c\equiv \langle t_{1},\dots ,t_{m}\ |\ v_{1}=w_{1},\dots ,v_{n}=w_{n}\rangle },

dóndeti{\displaystyle t_{i}},vi{\displaystyle v_{i}}, ywi{\displaystyle w_{i}}son términos arbitrarios. La secuencia ordenadat1,...,tmetro{\displaystyle t_{1},...,t_{m}}En el lado izquierdo se denomina interfaz , mientras que el lado derecho contiene un multiconjunto no ordenado de ecuaciones.vi=wi{\displaystyle v_{i}=w_{i}}Cableadoω{\displaystyle \omega }se traduce en nombres, y cada nombre debe aparecer exactamente dos veces en una configuración.

Igual que en elλ{\displaystyle \lambda }-cálculo , el cálculo de interacción tiene las nociones deα{\displaystyle \alpha }-conversión y sustitución definidas naturalmente en configuraciones. Específicamente, ambas ocurrencias de cualquier nombre pueden ser reemplazadas por un nuevo nombre si este último no aparece en una configuración dada. Las configuraciones se consideran equivalentes hastaα{\displaystyle \alpha }-conversión. A su vez, sustituciónt[incógnita:=]{\displaystyle t[x:=u]}es el resultado de reemplazar el nombreincógnita{\displaystyle x}en un términot{\displaystyle t}con otro término{\displaystyle u}siincógnita{\displaystyle x}tiene exactamente una aparición en el términot{\displaystyle t}.

Cualquier regla de interacción puede representarse gráficamente de la siguiente manera:

Regla de interacción

dóndeα,βΣ{\displaystyle \alpha ,\beta \in \Sigma }y la red de interacciónnorte{\displaystyle N}en el lado derecho se vuelve a dibujar usando las primitivas de cableado y árbol para traducirlas al cálculo de interacción comoα[v1,,vmetro]β[w1,,wnorte]{\displaystyle \alpha [v_{1},\dots ,v_{m}]\bowtie \beta [w_{1},\dots ,w_{n}]}utilizando la notación de Lafont.

El cálculo de interacción define la reducción en configuraciones con más detalle que el que se observa en la reescritura de grafos definida en redes de interacción. Es decir, siα[v1,,vmetro]β[w1,,wnorte]{\displaystyle \alpha [v_{1},\dots ,v_{m}]\bowtie \beta [w_{1},\dots ,w_{n}]}, la siguiente reducción:

t | α(t1,,tmetro)=β(1,,norte),Δt | t1=v1,,tmetro=vmetro,1=w1,,norte=wnorte,Δ{\displaystyle \langle {\vec {t}}\ |\ \alpha (t_{1},\dots ,t_{m})=\beta (u_{1},\dots ,u_{n}),\Delta \rangle \rightarrow \langle {\vec {t}}\ |\ t_{1}=v_{1},\dots ,t_{m}=v_{m},u_{1}=w_{1},\dots ,u_{n}=w_{n},\Delta \rangle }

se llama interacción . Cuando una de las ecuaciones tiene la forma deincógnita={\displaystyle x=u}, se puede aplicar una indirecta que resulta en la sustitución de la otra ocurrencia del nombreincógnita{\displaystyle x}en algún términot{\displaystyle t}:

t | incógnita=,Δt[incógnita:=] | Δ{\displaystyle \langle \dots t\dots \ |\ x=u,\Delta \rangle \rightarrow \langle \dots t[x:=u]\dots \ |\ \Delta \rangle } o t | incógnita=,t=w,Δt | t[incógnita:=]=w,Δ{\displaystyle \langle {\vec {t}}\ |\ x=u,t=w,\Delta \rangle \rightarrow \langle {\vec {t}}\ |\ t[x:=u]=w,\Delta \rangle }.

Una ecuaciónincógnita=t{\displaystyle x=t}se denomina interbloqueo siincógnita{\displaystyle x}tiene ocurrencia en términost{\displaystyle t}Generalmente, solo se consideran redes de interacción libres de interbloqueos. Juntos, la interacción y la indirección definen la relación de reducción en las configuraciones. El hecho de que la configuracióndo{\displaystyle c}vuelve a su forma normaldo{\displaystyle c'}Sin ecuaciones restantes se denota comododo{\displaystyle c\downarrow c'}.

Propiedades

Las redes de interacción se benefician de las siguientes propiedades:

  • localidad (solo se pueden reescribir los pares activos);
  • linealidad (cada regla de interacción se puede aplicar en tiempo constante);
  • fuerte confluencia también conocida como propiedad de diamante de un paso (sidodo1{\displaystyle c\rightarrow c_{1}}ydodo2{\displaystyle c\rightarrow c_{2}}, entoncesdo1do{\displaystyle c_{1}\rightarrow c'}ydo2do{\displaystyle c_{2}\rightarrow c'}para algunosdo{\displaystyle c'}).

Estas propiedades, en conjunto, permiten un paralelismo masivo.

Combinadores de interacción

Uno de los sistemas de interacción más simples que puede simular cualquier otro sistema de interacción es el de los combinadores de interacción . Su firma esΣ={ϵ,δ,γ}{\displaystyle \Sigma =\{\epsilon,\delta,\gamma \}}conArkansas(ϵ)=0{\displaystyle {\text{ar}}(\epsilon )=0}yArkansas(δ)=Arkansas(γ)=2{\displaystyle {\text{ar}}(\delta )={\text{ar}}(\gamma )=2}. Agenteϵ{\displaystyle \epsilon }puede considerarse como un borrador que elimina recursos;δ{\displaystyle \delta }como duplicador;γ{\displaystyle \gamma }como constructor, tomando dos recursos y devolviendo un tercero, puede representar cualquier cosa desde operaciones binarias, como suma y multiplicación, hasta la aplicación general de funciones en el cálculo lambda, tomando términosF{\displaystyle f}yincógnita{\displaystyle x}producirFincógnita{\displaystyle f\,x}. [ 5 ] Las reglas de interacción para estos agentes son:

  • ϵα[ϵ,,ϵ]{\displaystyle \epsilon \bowtie \alpha [\epsilon ,\dots ,\epsilon ]}llamado borrado ;
  • δ[α(incógnita1,,incógnitanorte),α(y1,,ynorte)]α[δ(incógnita1,y1),,δ(incógnitanorte,ynorte)]{\displaystyle \delta [\alpha (x_{1},\dots ,x_{n}),\alpha (y_{1},\dots ,y_{n})]\bowtie \alpha [\delta (x_{1},y_{1}),\dots ,\delta (x_{n},y_{n})]}llamada duplicación ;
  • δ[incógnita,y]δ[incógnita,y]{\displaystyle \delta [x,y]\bowtie \delta [x,y]}yγ[incógnita,y]γ[y,incógnita]{\displaystyle \gamma [x,y]\bowtie \gamma [y,x]}llamada aniquilación .

Gráficamente, las reglas de borrado y duplicación se pueden representar de la siguiente manera:

Ejemplos de redes de interacción

con un ejemplo de una red de interacción no terminante que se reduce a sí misma. Su secuencia de reducción infinita, partiendo de la configuración correspondiente en el cálculo de interacción, es la siguiente:

 | δ(ϵ,incógnita)=γ(incógnita,ϵ) | ϵ=γ(incógnita1,incógnita2), incógnita=γ(y1,y2), incógnita=δ(incógnita1,y1), ϵ=δ(incógnita2,y2) | incógnita1=ϵ, incógnita2=ϵ, incógnita=γ(y1,y2), incógnita=δ(incógnita1,y1), incógnita2=ϵ, y2=ϵ | δ(ϵ,incógnita)=γ(incógnita,ϵ){\displaystyle {\begin{aligned}&\langle \varnothing \ |\ \delta (\epsilon ,x)=\gamma (x,\epsilon )\rangle \rightarrow \\&\langle \varnothing \ |\ \epsilon =\gamma (x_{1},x_{2}),\ x=\gamma (y_{1},y_{2}),\ x=\delta (x_{1},y_{1}),\ \epsilon =\delta (x_{2},y_{2})\rangle \rightarrow ^{*}\\&\langle \varnothing \ |\ x_{1}=\epsilon ,\ x_{2}=\epsilon ,\ x=\gamma (y_{1},y_{2}),\ x=\delta (x_{1},y_{1}),\ x_{2}=\epsilon ,\ y_{2}=\epsilon \rangle \rightarrow ^{*}\\&\langle \varnothing \ |\ \delta (\epsilon ,x)=\gamma (x,\epsilon )\rangle \rightarrow \dots \end{aligned}}}

Extensión no determinista

Las redes de interacción son esencialmente deterministas y no pueden modelar directamente cálculos no deterministas. Para expresar elecciones no deterministas, es necesario extender las redes de interacción. De hecho, basta con introducir un solo agente.amb{\displaystyle {\text{amb}}}[ 6 ] con dos puertos principales y las siguientes reglas de interacción:

Agente no determinista

Este agente distinguido representa una elección ambigua y puede usarse para simular cualquier otro agente con un número arbitrario de puertos principales. Por ejemplo, permite definir unParalelo o{\displaystyle {\text{ParallelOr}}}Operación booleana que devuelve verdadero si alguno de sus argumentos es verdadero, independientemente del cálculo que se realice en los demás argumentos.

Véase también

Referencias

  1. Lafont, Yves (1989). «Redes de interacción». Actas del 17.º simposio ACM SIGPLAN-SIGACT sobre principios de lenguajes de programación - POPL '90 . ACM. págs. 95–108 . doi : 10.1145/96709.96718 . ISBN  0897913434. S2CID 1165803 . 
  2. Mackie, Ian (2008). "Una implementación de reducción cerrada mediante redes de interacción". Implementación y aplicación de lenguajes funcionales: 20.º simposio internacional . Lecture Notes in Computer Science. Vol. 5836. pp. 43–59 . doi : 10.1007/978-3-642-24452-0_3 . ISBN   978-3-642-24451-3.
  3. ^ van Oostrom, Vicente; van de Looij, Kees-Jan; Zwitserlood, Marijn (2010). "Lambdascope: otra implementación óptima del cálculo lambda" (PDF) . Archivado desde el original (PDF) el 6 de julio de 2017.{{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  4. Fernández, Maribel; Mackie, Ian (1999). «Un cálculo para redes de interacción». Principios y práctica de la programación declarativa . Notas de clase en informática. Vol. 1702. Springer. pp. 170–187 . doi : 10.1007/10704567 . ISBN   978-3-540-66540-3. S2CID 19458687 . 
  5. Lafont, Yves (1997). "Combinadores de interacción" . Información y computación . 137 (1). Academic Press, Inc.: 69– 101. doi : 10.1006/inco.1997.2643 .
  6. Fernández, Maribel; Khalil, Lionel (2003). "Redes de interacción con Amb de McCarthy: propiedades y aplicaciones" . Nordic Journal of Computing . 10 (2): 134– 162.

Lecturas adicionales

  • Asperti, Andrea; Guerrini, Stefano (1998). La implementación óptima de lenguajes de programación funcional . Cambridge Tracts in Theoretical Computer Science. Vol.  45. Cambridge University Press. ISBN 9780521621120.
  • Fernández, Maribel (2009). «Modelos de computación basados ​​en la interacción». Modelos de computación: Una introducción a la teoría de la computabilidad . Springer Science & Business Media. pp. 107–130 . ISBN  9781848824348.
  • de Falco, Marc. "tikz-inet. Un conjunto de macros basadas en tikz para dibujar redes de interacción" .
  • de Falco, Marc. "INL. Laboratorio de Redes de Interacción" .
  • Vilaça, Miguel. "INblobs. Editor e intérprete de Interaction Nets" .
  • Asperti, Andrea. "La máquina de orden superior óptima de Bolonia" . GitHub .
  • Salikhmetov, Anton (22 de marzo de 2018). "Motor JavaScript para redes de interacción" .
  • Salikhmetov, Anton. "Cálculo macro lambda" .
  • Xie, Yuheng. "iNet, un lenguaje y un espacio interactivo para explorar redes de interacción" .