Browser?
Zur Interpretation systemischer Modelle auf Computern werden meist Gleichungslöser auf Gleichungssysteme (z.B. ökologische Weltmodelle) angesetzt. Die Ergebnisse sind genau, auf Kosten der Anschaulichkeit. Grafische Simulatoren lassen die Abläufe dagegen optisch verfolgen.
Die gängigsten Modelle arbeiten mit gerichteten „Flüssen”: Darin haben die Operatoren Anschlüsse, die jeweils entweder Eingangs- oder Ausgangsflüsse festlegen. Die von mir gewählte alternative Methode fasst die Verbindungen zwischen den Operationsknoten dagegen als multidirektional auf, ähnlich der mehrseitigen Ausbreitung von Druck-Impulsen in einem Röhrensystem, ausgelöst durch Stellräder.
Erinnert sei auch an den MONIAC-Analogcomputer, den A.W.H. Phillips (1914-1975) als Student 1949 für Keynesianische Simulationen (mit einer Genauigkeit von 2%!) für 12 ökonomische Institute baute (Gegner belächelten das als „hydraulische Makroökonomie”). Mit fortentwickelten Ideen und neuerer VGR hätte die Ökonomik 70 Jahre überspringen können! “Had he lived longer, Phillips … might have been worthy of a Nobel Prize …”!
Nach Änderung einer Größe über ein Stellrad muss sicher gestellt werden, dass die Gleichungen wieder stimmen. Wiederholtes Neuberechnen aller Werte mit einem Gleichungslöser erscheint als Overkill. Eine inkrementelle Lösung war in der Informatik-Literatur nicht zu finden.
Nun muss ein eigener Algorithmus entwickelt werden, der dafür sorgt, dass Änderungen (durch die Stellräder) sich gleichmäßig ausbreiten, dass kein Änderungsinkrement „vergessen” wird und keine Änderung eine noch ausstehende Änderung „überholt”: das erfordert ein komplexes Warteschlangen-Management.
Arithmetische Operationsknoten sind jeder 3-direktional verbunden mit zwei Operanden-Konnektoren x und y und einem Resultat-Konnektor z. Identitätsknoten sind jeder bidirektional verbunden mit zwei Konnektoren x und y.
Erläuterung der Verarbeitung am Beispiel Addition: Der Knoten kann verstanden werden wie ein Prozessor mit drei Speichern für die Werte x, y und z mit drei angeschlossenen Verbindungen zu anderen Knoten. Im Ruhezustand gilt hier immer x+y=z. Trifft ein Änderungswunsch am x-Konnektor ein (Δx), werden die gespeicherten Werte für x und z um Δx geändert und der neue z-Wert über den Resultat-Konnektor (z) weitergereicht. Der Wert y bleibt unverändert. Entsprechendes geschieht bei einem Änderungswunsch Δy am y-Konnektor. Trifft dagegen ein Änderungswunsch am „sogenannten Resultat”-Konnektor z ein, werden gespeicherte Werte (zur Wahrung der Gültigkeit der Gleichung x+y=z) in umgekehrter Richtung geändert: z um Δz, x um (x/z)·(z+Δz) und y um (y/z)·(z+Δz) (d.h. proportionale Aufteilung von Δz). Die neuen x- und y-Werte werden über ihre Konnektoren weitergeleitet. Dies implementiert die nötige Multidirektionalität der Kausalität.
Die Variablenwerte können beliebig hoch werden, die Anzeigeskalen sind aber begrenzt. Kommt es zu einer Bereichsüberschreitung, müssen alle Werte um den gleichen Faktor verringert werden (Normierung nach unten) — außer bei den Prozentanzeigen.
Im Laufe der Berechnungen könnten die Variablenwerte auch so klein werden, dass sie nicht mehr gut abzulesen sind. Als Auslöser könnte gelten, wenn der höchste Wert unter den halben Maximalwert der Anzeige sinkt, und sollte dann zu einer Verdopplung aller Werte führen (Normierung nach oben).
Für Iterationen, die mit immer kleineren Werten wiederholt werden, muss es einen Minimalwert als Abbruchkriterium geben.
Animation ist in Teilen immer noch Browser-spezifisch. Nur die SVG-Animation läuft fast identisch auf Google-Chrome, Microsoft-Chromium (Edge-II), Mozilla-Firefox, Apple-Safari und Opera. Die Umsetzung von analogen Eingaben (Stellrad, Schieberegler) verlangt eine Implementierung in JavaScript, d.h. immer noch: getrenntes Laden von Paketen wie D3 oder Eigenprogrammierung durch mich (noch unvollendet).
Der kommende Web-Animation-Standard liegt bisher nur als Entwurf (Working Draft) vor. Einige seiner Features sind schon in wenigen Browsern realisiert.
Oskar Fuhlrott,