OKSIMO-DEMO: Vereinigung einer Theorie mit einem generischen Schema (realisiert als minimale Theorie)

Letzte Änderung: 30.Jan 2024

Autor: Gerd Doeben-Henisch

Email: kontakt@sw-de.oksimo.org

KONTEXT

Dieser Text gehört zum Thema oksimo Beispiele.

Ausgangslage: Theorie mit zwei Größen und dazu ein Regelschema (als minimale Theorie)

In der Theorie T-brunnen-einw-v1 hatten wir schon die Größen Brunnenkapazität und Einwohnerzahl eingebaut. Es gab nur noch keine explizite Verbindung. In der Theorie T-brunnen-einw-prokopf-v1 hatten wir schon eine Lösung per Hand konstruiert. Jetzt probieren wir eine Vereinigung von T-brunnen-einw-v1 mit unserer neuen minimalen Theorie mit Regelschema T-empty-pro-Kopf.

Wir vereinigen diese beiden Theorien zur neuen Theorie MTT-brunnen-einw-pro-Kopf:

Wir können sofort erkennen, dass die Größe ‚K‘ der Größe ‚BrunnenHellerborn‘ entspricht und die Größe ‚B‘ der Größe ‚Einw‘. Die restlichen Größen ‚Uhr‘ und ‚Abnahme‘ brauchen wir nicht mehr.

Von den drei Regeln müssen nur zwei Regeln verändert werden:

In dieser Regel werden die beiden Größen BrunnenHellerborn und Einw zueinander in Beziehung gebracht. Die Größe FlagAB dient weiter zur Aktivierung (=1) und zur Deaktivierung (=0) dieser Regel.

Hier wurde für die Regel mit der Brunnenkapazität noch eine Formatierung für die Dezimalzahlen ein gefügt, um auf 2 Stellen nach dem Dezimalpunkt zu begrenzen.

Die Simulation erbringt folgenden Wertverlauf (Zum selber Simulieren bitte hier klicken):

Dies sind die gleichen Zahlen wie in der anderen Version.

Die Grafik für die Brunnenkapazität und die Einwohnerzahl zeigt das folgende:

Die Grafik für den ProKopf-Verbrauch zeigt dieses:

OKSIMO-BEISPIEL: Leerer Theoriesockel mit generischer Funktion

Letzte Änderung: 30.Jan 2024

Autor: Gerd Doeben-Henisch

Email: kontakt@sw-de.oksimo.org

KONTEXT

Dieser Text gehört zum Thema oksimo Beispiele.

Theorie & oksimo Software

In dem Beitrag Nachhaltige Empirische Theorie und die oksimo Software wird schematisch beschrieben, was im Kontext der oksimo Software als ’nachhaltige empirische Theorie (NET)‘ verstanden wird und wie das Konzept einer NET innerhalb der oksimo Software umgesetzt wird.

Innerhalb der oksimo Software steht für eine NET folgendes Schema zur Verfügung:

Die wichtigen Elemente sind:

  1. Name
  2. Visions (Ziele)
  3. States (Zustände)
  4. Rules (Veränderungsregeln)

Veränderungsregeln beziehen sich in der Regel auf eine konkrete Situation (Zustand) und verändern spezifische Eigenschaften. Es gibt aber auch Veränderungen, die eine recht allgemeine Struktur beschreiben, die sich auf viele Einzelfälle anwenden lässt. So z.B. die Aufteilung einer Größe wie ‚Menge verfügbaren Trinkwassers‘ auf die ‚Menge von aktuellen Einwohnern‘. Weiter konkretisiert: ‚Menge verfügbaren Trinkwassers in m3‚ auf die ‚Menge von aktuellen Einwohnern‘ umgelegt auf ‚pro Tag und gemessen in Liter‘.

Es liegt nahe, dafür eine kleine Theorie zu machen, die solch eine Aufteilung realisiert und die man dann — das ist der Plan — nach Bedarf mit anderen Theorien vereinheitlicht, in denen zwei Größen vorkommen, die genau solch eine Aufteilung brnötigen.

Kleine Modelltheorie für Aufteilung

Hier die Basis der Theorie (Name, Visions, States):

Wichtig sind hier die Grundgrößen K für eine Kapazität (Wert unwichtig) und B für Verteiler (Wert unwichtig). Die Größen ‚ProKopf‘, ‚Uhr‘ und ‚Abnahme‘ sind ‚Dummies; sie werden hier nur gebraucht, um die Theorie überhaupt zum Laufen zu bringen. Die Größe ‚FlagAB‘ dient dazu, nach einem Zustand der Deaktivierung ‚FlagAB=0‘ in einen Zustand der Aktivierung ‚FlagAB=1‘ zu versetzen.

Diese Regel dient nur dazu, die Größe FlagAB von =0 auf =1 zu setzen, damit die eigentliche Verrechnung aktiviert werden kann.

Wenn die Größe FlagAB auf =1 gesetzt ist, dann tritt die Regel ProKopf=… in Aktion. Der Ausdruck K=K-(K*Abnahme) ist nicht wirklich notwendig. Sie hilft hier nur zur Veranschaulichung, um die Veränderung der Größe ProKopf sichtbar zu machen. Der Ausdruck FlagAB=0 nimmt die Aktivierung dann wieder zurück.

Startet man die Simulation, kann man folgenden Wertverlauf sehen (Man kann diese Simulationen selber hier ausführen):

Die verfügbare Kapazität verringert sich und davon abhängig der ProKop-Verbrauch.

Im Grafen kann man folgendes sehen:

Und:

Auf den ersten Blick funktioniert die kleine Theorie mit veränderlicher Verteilung bei fester Abnahmemenge. Fragt sich, ob diese Idee auch beim Vereinigen mit einer anderen Theorie funktioniert.

OKSIMO-BEISPIEL: Theorie Brunnenkapazitaet vereinigen mit Theorie Einwohnerzahl.

Letzte Änderung: 30.Jan 2024

Autor: Gerd Doeben-Henisch

Email: kontakt@sw-de.oksimo.org

KONTEXT

Dieser Text gehört zum Thema oksimo Beispiele.

Ausgangspunkt: Zwei fertige Theorien

Fallbeispiel: es liegen schon zwei fertige Theorien vor:

  1. T-brunnenkapazität-verlauf-v1 (Nennen wir gleich nur noch T1-brunnen)
  2. T-einwohner-verlauf-v1 (Nennen wir gleich nur noch T2-einwohner)

Diese beiden Theorien sind schon einmal zusammen geführt worden, indem (i) eine Kopie von der Theorie T1-brunnen erstellt worden ist und (ii) in diese Theorie wurde dann per Hand der Text der Theorie T2-einwohner eingetragen. Daraus wurde dann T-brunnen-einw-v1.

Wie man sieht, kann man dies machen, aber es ist schon ein wenig aufwendig. Und je umfangreicher der Text zu einer Theorie wird, um so aufwendiger wird dies. Schöner wäre es, man kann ‚per Knopfdruck‘ zwei Theorien T1 und T2 zu einer vereinigen (mergen). Mit dr oksimo Software geht dies.

Vereinigung per Klick …

Dazu wählt man die Theorie T1 aus (= T-brunnenkapazität-verlauf-v1) und sagt (als Autor), dass man diese Theorie mit einer anderen Theorie T2 (= T-einwohner-verlauf-v1) aus der Liste der verfügbaren Theorien vereinigen will.

Für die weitere Arbeit verkürzen wir den Namen T-brunnenkapazität-verlauf-v1_T-einwohner-verlauf-v1_1706607593 ein wenig:

Dann schauen wir uns an, wie die vereinigte Theorie arbeitet, indem wir für die neue vereinigte Theorie eine Simulation aktivieren.

Wenn man sich dann die Tabelle der mathematischen Größen anschaut, kann man Folgendes feststellen:

Alle Werte sind wie es die Einzeltheorien erwarten lassen und wie es auch die ‚per Hand vereinigte Theorie angezeigt hat. Bis auf einen Wert, der auffällt: Die Jahreszahlen weisen Sprünge von +2 auf statt +1.

Wenn man genauer hinschaut, dann sieht man, dass die Größe ‚Jahr‘ zweimal vorkommt! Einmal als Teil der ursprünglichen Theorie T1 und einmal als Teil der ursprünglichen Theorie T2. Dies bedeutet, dass die Anweisung, die Jahreszahl um +1 zu erhöhen, zweimal pro Runde ausgeführt werden wird:

In der aktuellen Version der Software ist der einfachste Weg, um diese ‚Verdopplung‘ zu beseitigen, ein Vorkommnis der Anweisung ‚Jahr=Jahr+1‘ einfach zu löschen.

Die neue Version der vereinigten Theorie mit nur einem Vorkommnis der Größe Jahr sieht dann wie folgt aus:

Die Jahreszahlen zeigen eine lineare Steigerung von durchgehend +1 an. Damit stimmen alle Werte dieser vereinigten Theorie mit jenen der zuvor manuell vereinigten Theorie überein.

Auch die Überprüfung der Regelanwendung während der Simulation ergibt, dass die Anweisung ‚Jahr=Jahr+1‘ nur noch einmal pro Runde angewendet wird.

(Um die Simulation selbst überprüfen zu können können Sie auf die Seite der ‚Public Theories‘ der oksimo Software gehen: https://oksimo.com/public_theories

Damit sieht man, dass bei der Vereinigung von zwei bestehenden Theorien bestimmte Variablen doppelt vorkommen können. Diese Doppelung muss man beseitigen.

Sofern diese Doppelungen Größen betreffen, die gleichlautend sind, kann man alle Doubletten einfach weg-löschen. Sollten gleiche Namen vorkommen, die mit unterschiedlichen Ausführungen verknüpft sind, dann muss man Umbenennungen vornehmen und die Wechselbeziehung mit anderen Ausdrücken berücksichtigen.

Generell sollte man aber beim Schreiben einer Theorie aber niemals die gleichen Namen mit unterschiedlichen Ausführungen verwenden, da dies im Normalfall immer zu Konflikten führen wird.

OKSIMO-BEISPIEL: Brunnenkapazitaet, Einwohnerzahl und Pro-Kopf Verbrauch

Letzte Änderung: 25.Jan 2024

Autor: Gerd Doeben-Henisch

Email: kontakt@sw-de.oksimo.org

KONTEXT

Dieser Text gehört zum Thema oksimo Beispiele.

T-brunnen-einw-prokopf-v1

In diesem Beispiel wird die bisherige Theorie T-brunnen-einw-v1 erweitert um die Beziehung zwischen der Brunnenkapazität und der Einwohnerzahl. Gefragt wird nach dem möglichen Pro-Kopf Verbrauch in Liter pro Tag (1000 Liter sind 1 m3).

Die Vision (mögliche Ziele) ist weiterhin leer, da es nur darum geht, die Entwicklung der Größen Brunnenkapazität, Einwohnerzahl und Pro-Kopf Verbrauch in Liter sichtbar zu machen.

Von den Größen, die unter Math States aufgeführt werden, sind zwei Größen neu gegenüber den vorausgehenden Theorien: ‚Pro-Kopf‘ und ‚Flag‘. Die Größe Pro-Kopf (mit der Einheit Liter) wird die Angaben zum Pro-Kopf Verbrauch enthalten. Zu Beginn ist sie auf ‚0‘ gesetzt. Die Größe Flag hat keine empirische Bedeutung, sondern wird benötigt, um beim Simulationsvorgang sauber zu trennen zwischen der einen Situation (Zustand), in der die Größen Jahr, Einwohner und Brunnenkapazität (=BrunnenHellerborn) berechnet werden, und jener Situation (Zustand), in der das Verhältnis zwischen Brunnenkapazität und Einwohnerzahl als Pro-Kopf Verbrauch ermittelt wird. Um diese beiden Zustände zu unterscheiden wird die erste Situation mit der Größe Flag=0 markiert und die andere Situation Flag=1. Dadurch werden in der der ersten Situation nur diejenigen Veränderungsregeln angewendet, die auf Flag==0 (Achtung: ‚=‘ dient zur Zuweisung eines Wertes in python und ‚==‘ dient zur Abfrage eines Wertes) reagieren und mit Flag==1 entsprechend nur diejenigen Regeln, die auf Flag==1 reagieren.

Der Name dieser Regel ist nicht ganz glücklich, da mit dieser Regel gerade noch nicht das Pro-Kopf Verhältnis berechnet wird, sondern es werden nur die Zuwächse berechnet für die Größen BrunnenHellerborn, Einw und Jahr.

Bei der Berechnung für den Brunnen BrunnenHellerborn sowie die Einw taucht wieder der Ausdruck eval(„{:.2f“}.format()) auf. Dieser Ausdruck wurde im Beispiel T-gerd-hungrig-v2d näher erläutert. Er gibt in python die Möglichkeit, das Zahlenformat von Zahlen mit vielen Nachkommastellen (100,2345776… (in python: 100.2345776… Punkt statt Komma)) beliebig zu formatieren.

Ferner wird hier unter Math Effects (dies ist jener Teil der Regel, in der beschrieben wird, was im Nachfolgezustand neu generiert werden muss) die Größe Flag auf ‚=1‘ gesetzt. Damit verschwindet Flag=0 und es kann jetzt nur eine Regel angewendet werden, die auf Flag==1 reagiert.

Hier passt der Name der Regel genau, da mit dieser Regel der Pro-Kopf Verbrauch in Liter berechnet wird.

Der mathematische Kern des Ausdrucks lautet:

ProKopf=… ((BrunnenHellerborn/Einw)/365)*1000

Die Menge des Wassers des Brunnens Hellerborn pro Jahr wird in Kubikmeter m3 angegeben. Umgelegt auf die Anzahl der Einwohner /Einw (Division ‚/‘ durch Einw) bekommt man dann die m3 für jeden Einwohner pro Jahr (im Durchschnitt), dann umgelegt auf einen Tag /365 die Kubikmeter pro Einwohner und Tag, und schließlich umgerechnet in Liter *1000 (multipliziert ‚*‘).

Schließlich wird die Größe Flag wieder auf ‚=0‘ gesetzt, damit der nächste Zuwachs berechnet werden kann.

(Besuche für eine eigene Simulation die Seite: https://oksimo.com/public_theories ).

In der grafischen Darstellung des Simulationsergebnisses wurden alle Kurven außer jener für den Pro-Kopf Verbrauch ausgeblendet. Man kann anhand des Kurvenverlaufs (wie auch anhand der Tabelle mit den Größen) sehen, wie der Pro-Kopf Verbrauch pro Jahr abnimmt. Man kann auch sehen, dass man die einzelnen Punkte im Schaubild anklicken kann und man bekommt den Wert dieses Punktes angezeigt, der dem entspricht, der auch in der Tabelle auftaucht.

Zu beachten ist, dass die fortlaufenden Zahlen unter dem Schaubild nicht mit den Jahreszahlen korrespondieren, sondern mit der Nummer der Simulationsrunden. In der Spalte Jahr kann man sehen, dass — ausgenommen zu Beginn — für die Darstellung eines Jahres zwei Simulationsrunden benötigt werden. Daran erkennt man den Effekt des Einsatzes der Größe Flag.

Ergebnis

Zusammenfassend kann man Folgendes festhalten:

  1. Das Zusammenspiel von Brunnenkapazität und Einwohnerzahl zeigt im Verlauf der Zeit (hier gemessen in Jahren), dass der maximale Pro-Kopf Verbrauch deutlich sinken kann.
  2. Im Beispiel wurden zwar reale Ausgangsgrößen benutzt, aber die Annahmen zu möglichen Veränderungen sind rein spekulativ. Dies liegt daran, dass der BiG-Themengruppe WASSER bislang keine empirischen Daten vorliegen, die eine genauere Abschätzung möglich machen!
  3. Klar ist allerdings, dass die verfügbaren empirischen Daten für Grundwasserneubildung in Hessen seit 20 Jahren fallend sind. Klar ist auch, dass die Einwohnerzahl von Schöneck seit Jahren steigt. Klar ist auch, dass die Kapazität des Brunnens Hellerborn auf keinen Fall zunehmen wird. Alle wichtigen Parameter (z.B. Zustand, baufällig, gefährdet durch Einträge in den Boden, Zufluss von Grundwasser) eher in Richtung Abnahme zeigen. Insofern ist das einfache Szenario des Theoriebeispiels T-brunnen-einw-prokopf-v1 trotz mangelnder Präzision von der Grundaussage richtig. Das verfügbare Wasser aus diesem Brunnen wird abnehmen. Offen ist die Frage: wie viel und in welchem Zeitraum.

Selber ausprobieren

Wer diese Simulation mit vollem Text selbst ausprobieren möchte, der kann dies auf der Seite der oksimo Software https://oksimo.com tun, und zwar unter der Rubrik Public Theories. Dort ist dies Theorie T-brunnen-einw-prokopf-v1 aufgelistet. Einfach anklicken und die Simulation starten.

OKSIMO-BEISPIEL: T-brunnen-einw-v1

Letzte Änderung: 24.Jan 2024

Autor: Gerd Doeben-Henisch

Email: kontakt@sw-de.oksimo.org

KONTEXT

Dieser Text gehört zum Thema oksimo Beispiele.

T-brunnen-einw-v1

Dieses Beispiel zeigt, wie man zwei getrennte Theorien zu einer Theorie zusammen fassen kann. Aus den einzelnen Demo-Theorien zum Brunnen und zu den Einwohnern wird jetzt eine Brunnen-Einwohner Theorie.

Die beiden Regeln kann man getrennt benutzen oder — wie hier — vereint:

Im Ergebnisgraphen kann man die wichtigsten Eigenschaften sofort erkennen (wenn Sie die Simulation selbst durchführen möchten, dass gehen sie zu https://oksimo.com und dort zum Menü-Punkt ‚Public Theories‘).

Schaltet man die Größen Jahr, RueckgangZufluss und Zuwachs aus, dann sieht man sehr schön, wie einerseits die Einwohnerzahl steigt und gleichzeitig die Brunnenkapazität abnimmt. Auch wenn die benutzten Zahlenwerte partiell sehr theoretisch sind (die realen Werte werden zu einem späteren Zeitpunkt Eingang in unsere Theorie finden), ist doch genau die Wechselwirkung interessant: wie wirken sich diese Dynamiken langfristig auf die Menge des verfügbaren Wassers aus?

Es liegt nahe, die Theorie um diesen Aspekt zu erweitern.