Interaktionsnetze

Aus testwiki
Version vom 16. März 2025, 16:05 Uhr von imported>Aka (zu großen Zeilenabstand entfernt, Links normiert, Kleinkram)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Vorlage:QS-Antrag

Interaktionsnetze sind ein graphisches Berechnungsmodell, das 1990 vom französischen Mathematiker Yves Lafont[1] als Verallgemeinerung der Beweisstrukturen der linearen Logik entwickelt wurde.

Ein Interaktionsnetzsystem wird durch eine Menge von Agententypen und eine Menge von Interaktionsregeln spezifiziert. Interaktionsnetze sind ein inhärent verteiltes Berechnungsmodell, da Berechnungen gleichzeitig in vielen Teilen eines Interaktionsnetzes stattfinden können, ohne dass eine Synchronisation erforderlich ist. Letzteres wird durch die starke Konfluenz-Eigenschaft der Reduktion in diesem Berechnungsmodell garantiert. Dadurch bieten Interaktionsnetze eine natürliche Sprache für massive Parallelität. Sie bilden das Fundament vieler Implementierungen des Lambda-Kalküls, wie etwa effizienter geschlossener Reduktion[2] und optimaler Reduktion im Sinne von Lévy, wie in Lambdascope.[3]

Definitionen

Interaktionsnetze sind ungerichtete Graphen mit beschrifteten Knoten. Die Knoten werden auch Agenten genannt.

Ein Agent vom Typ α mit Stelligkeit ar(α)=n0 besitzt einen Hauptport und n Nebenports. Jeder Port kann mit höchstens einer Kante verbunden sein, und jede Kante verbindet genau zwei Ports. Nicht mit einer Kante verbundene Ports werden als freie Ports bezeichnet.[1] Die Menge aller freien Ports bildet die Schnittstelle eines Interaktionsnetzes. Alle Agententypen gehören zu einer Menge Σ, die als Signatur bezeichnet wird.

Ein Interaktionsnetz, das ausschließlich aus Kanten besteht, wird als Verdrahtung ("Wiring") bezeichnet und üblicherweise mit ω notiert. Ein Baum t mit Wurzel x wird induktiv entweder als einzelne Kante x definiert oder als Agent α mit seinem freien Hauptport x sowie seinen Nebenports xi, die mit den Wurzeln anderer Bäume ti verbunden sind.

Graphisch lassen sich die primitiven Strukturen von Interaktionsnetzen wie folgt darstellen:

Fehler beim Erstellen des Vorschaubildes:

Wenn zwei Agenten über ihre Hauptports miteinander verbunden sind, bilden sie ein aktives Paar. Für aktive Paare können Interaktionsregeln definiert werden, die beschreiben, wie das aktive Paar umgeschrieben wird. Ein Interaktionsnetz ohne aktive Paare befindet sich in Normalform. Eine Signatur Σ (mit einer darauf definierten Abbildung ar:Σ) zusammen mit einer Menge von Interaktionsregeln für Agenten αΣ bildet ein Interaktionssystem.

Interaktionskalkül

Die textuelle Repräsentation von Interaktionsnetzwerken wird als Interaktionskalkül bezeichnet[4] und kann als Programmiersprache betrachtet werden.

Im Interaktionskalkül entsprechen induktiv definierte Bäume Termen der Form t::=α(t1,,tn) | x, wobei x als Name bezeichnet wird.

Jedes Interaktionsnetz N kann unter Verwendung der zuvor definierten Verdrahtungs- und Baumprimitive wie folgt in ein äquivalentes Netz umgeschrieben werden:

Interaction Net as Configuration

Im Interaktionskalkül beschreibt eine Konfiguration eine "Momentaufnahme" eines Interaktionsnetzes.

Eine Konfiguration im Interaktionskalkül hat die Form:

ct1,,tm | v1=w1,,vn=wn

und besteht aus zwei Teilen:

  1. Schnittstelle (links vom Trennstrich): Eine geordnete Liste von Termen t1,...,tm, die die "externen Anschlüsse" des Netzes darstellen.
  2. Gleichungen (rechts vom Trennstrich): Eine ungeordnete Multimenge von Gleichungen v1=w1,,vn=wn, die die internen Verbindungen des Netzes darstelle. Wie zuvor beschrieben, meint ω hierbei eine Verdrahtung. Wichtig ist, dass jeder Name in der Verdrahtung genau zweimal vorkommen muss.

Genau wie im Lambda-Kalkül sind im Interaktionskalkül die Konzepte der α-Konversion und der Substitution natürlich auf Konfigurationen definiert. Insbesondere können beide Vorkommen eines Namens durch einen neuen Namen ersetzt werden, sofern dieser nicht bereits in der gegebenen Konfiguration vorkommt. Konfigurationen werden bis auf α-Konversion als äquivalent betrachtet.

Die Substitution t[x:=u] ist das Ergebnis des Ersetzens des Namens x in einem Term t durch einen anderen Term u, sofern x genau einmal im Term t vorkommt.

Jede Interaktionsregel kann wie folgt graphisch dargestellt werden:

Interaction Rule

Hier werden α,βΣ, sowie das Interaktionsnetz N in der Mitte, durch die Nutzung von Verdrahtungs- und Baumprimitiven in ein equivalentes Netz umgeschrieben, um sie mittels Lafonts Notation im Interaktionskalkül als α[v1,,vm]β[w1,,wn] darzustellen.

Wenn α[v1,,vm]β[w1,,wn], dann wird die Reduktion t | α(t1,,tm)=β(u1,,un),Δt | t1=v1,,tm=vm,u1=w1,,un=wn,Δ eine Interaktion genannt.

Hat eine der Gleichungen die Form x=u, so kann eine Indirektion angewandt werden:

t | x=u,Δt[x:=u] | Δ

oder

t | x=u,t=w,Δt | t[x:=u]=w,Δ.

Eine Gleichung der Form x=t heißt Deadlock, wenn der Name x in t vorkommt. Grundsätzlich werden nur Deadlock-freie Interaktionsnetze betrachtet. Gemeinsam definieren Interaktion und Indirektion die Reduktionsrelation auf Konfigurationen. Die Tatsache, dass eine Konfiguration c zu ihrer Normalform c reduziert, wobei keine Gleichungen mehr übrig sind, wird als cc notiert.

Eigenschaften

Interaktionsnetze profitieren von den folgenden Eigenschaften, welche gemeinsam massive Parallelisierung ermöglichen:

  • Lokalität: Nur aktive Paare können ersetzt werden.
  • Linearität: Umformungsregeln können in konstanter Zeit angewendet werden.
  • Starke Konfluenz: Wenn zwei Reduktionen cc1und cc2 existieren, dann gibt es mindestens eine Konfiguration c, sodass c1c und c2c.

Interaktionskombinatoren

Eines der primitivsten Interaktionsysteme, welches immer noch mächtig genug ist, um alle anderen Interaktionsysteme zu simulieren, ist das System der Interaktionskombinatoren.

Die Signatur dieses Systems ist Σ={ϵ,δ,γ}, wobei ar(ϵ)=0 und ar(δ)=ar(γ)=2.

Die Interaktionsregeln lauten:

  • Löschung: ϵα[ϵ,,ϵ]
  • Duplikation: δ[α(x1,,xn),α(y1,,yn)]α[δ(x1,y1),,δ(xn,yn)]
  • Annihilation: δ[x,y]δ[x,y] sowie γ[x,y]γ[y,x] [5]

Die Anwendungen der Löschung und Duplikation sind in (a) und (b) in der folgenden Grafik dargestellt.

Fehler beim Erstellen des Vorschaubildes:

Rechts im Bild ist ein nicht-terminierendes Netz zu sehen, welches durch Anwendung der Interaktionsregeln nach drei Schritten wieder in die ursprüngliche Konfiguration reduziert wird, und somit nie eine Normalform erreichen kann. Diese endlose Sequenz an Reduktionen lautet im Interaktionskalkül folgendermaßen:

 | δ(ϵ,x)=γ(x,ϵ) | ϵ=γ(x1,x2), x=γ(y1,y2), x=δ(x1,y1), ϵ=δ(x2,y2)* | x1=ϵ, x2=ϵ, x=γ(y1,y2), x=δ(x1,y1), x2=ϵ, y2=ϵ* | δ(ϵ,x)=γ(x,ϵ)

Nicht-deterministische Erweiterung

Interaktionsnetze sind im Wesentlichen deterministisch und können nicht direkt verwendet werden, um nicht-deterministische Berechnungen zu modellieren. Um nicht-deterministische Wahl auszudrücken, müssen Interaktionsnetze erweitert werden. Es reicht aus einen einzelnen Agenten, hier "amb"[6] genannt, mit zwei Hauptports und den folgenden Interaktionsregeln einzuführen.

Non-deterministic Agent

Ein solcher Agent repräsentiert Wahl und kann verwendet werden, um jeden anderen Agenten mit einer beliebigen Anzahl von Hauptports zu simulieren. Zum Beispiel ermöglicht er die Definition einer "parallelen oder" (ParallelOr) Operation, die wahr zurückgibt, wenn mindestens eines ihrer Argumente wahr ist – unabhängig davon, welche Berechnung für die anderen Argumente ausgeführt wird.

Siehe auch

Einzelnachweise