Browser?

Algorithmische Lösung für multidirektionale Operatoren 

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 ha­ben die Operatoren Anschlüsse, die jeweils entweder Eingangs- oder Ausgangsflüsse festlegen. Die von mir gewählte alternative Methode fasst die Ver­bindungen 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ökono­mie”). Mit fortentwickelten Ideen und neuerer VGR hätte die Ökonomik 70 Jahre über­springen können! “Had he lived longer, Phillips … might have been worthy of a Nobel Prize …”!

Algorithmische Behandlung der Änderungsausbreitung  

Nach Änderung einer Größe über ein Stellrad muss sicher gestellt wer­den, dass die Gleichungen wie­der stimmen. Wiederholtes Neube­rech­nen aller Werte mit einem Gleichungslöser erscheint als Overkill. Eine inkrementelle Lösung war in der Infor­matik-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 „verges­sen” wird und keine Änderung eine noch ausstehende Änderung „über­holt”: das erfordert ein komple­xes Warte­schlangen-Management.

= · + * x y z Identität(aus der VGR) x y ⇨ y=x+ x=y+ AdditionSubtraktion x y z ⇨ z=y+x+ z=y+x+ x= x z ·(z+ ) y= y z ·(z+ ) MultiplikationDivision x y z ⇨ z=y·(x+ ) z=x·(y+ ) ⇦ x=√(z+ )·√x/√y y=√(z+ )·√y/√x Getestet mit aktuellen Browsern Chrome, Edge und Firefox unter Windows 10. Für Internet Explorer und mobile Apps ungeeignet. VGR: Volkswirtschaftliche Gesamtrechnung Oskar Fuhlrott Zeichen- Erklärung: eintreffende Änderung x,y,z ⇨ ⇦ ⇧ Wirkungs- Richtungen Identität (Gleichheit ohne feste Kausalitäsrichtung) Addition (mit Summenpunkt) Multiplikation (m. Produktpunkt) x ändern: y ändern: z ändern: (Aufteilung für x und y)

Arithmetische Operationsknoten sind jeder 3-direktional verbunden mit zwei Operanden-Konnektoren x und y und einem Resultat-Konnektor z. Identitätsknoten sind jeder bidi­rektional 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 Ände­rungswunsch 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-Kon­nektor. Trifft dagegen ein Änderungswunsch am „sogenannten Resultat”-Konnektor z ein, werden ge­speicherte Werte (zur Wahrung der Gültigkeit der Gleichung x+y=z) in umge­kehrter Richtung geändert: z um Δz, x um (x/z)·(z+Δz) und y um (y/z)·(z+Δz) (d.h. pro­portionale Aufteilung von Δz). Die neuen x- und y-Werte werden über ihre Konnektoren weitergeleitet.  Dies implementiert die nötige Multidirektionalität der Kausalität.

Über- und Unterschreitungen von Bereichen  

Die Variablenwerte können beliebig hoch werden, die Anzeigeskalen sind aber begrenzt. Kommt es zu einer Bereichsüberschreitung, müs­sen alle Werte um den gleichen Faktor verringert werden (Normie­rung 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 An­zeige sinkt, und sollte dann zu einer Verdopplung aller Werte führen (Normie­rung nach oben).

Für Iterationen, die mit immer kleineren Werten wiederholt werden, muss es einen Minimalwert als Abbruchkriterium geben.

Stand der Animation  

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 Implemen­tierung 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,