Wirtschaftlicher Algorithmus und Tutorials

Hallo,

ich suche einen flotten Algorithmus, bzw. ein entsprechendes Tutorial mit der ich folgende Aufgabenstellung bewältigen kann:

Ich habe eine Menge von simulierten Personen (Millionen!), die alle ein unterschiedliches Einkommen, Fähigkeiten und verschiedene Bedürfnisse haben sollen.

Ich möchte nun so was wie eine WiSim schreiben, bei der mehrere Spieler als „Arbeitgeber“ fungieren sollen, die den Sims Arbeit und Lohn bieten, im Gegenzug dafür aber auch das Geld an den verschiedenen Stellen wieder ausgeben sollen (vorzugsweise aber nicht ausschließlich bei den Spielern natürlich).

Wie kann ich eine solche rechenintensive Aufgabenstellung bewältigen? Hat jemand eine Idee oder vielleicht sowas wie ein Tutorial zur Hand? Ich wüsste schon in etwa, wie ich sowas implementieren kann, allerdings würde das auf eine Berechnung jedes einzelnen Sims hinauslaufen, die ich zur Laufzeit vermutlich nicht bewältigen könnte.

Vielen Dank,

Alex

Hallo,

ich suche einen flotten Algorithmus, bzw. ein entsprechendes
Tutorial mit der ich folgende Aufgabenstellung bewältigen
kann:

Ich habe eine Menge von simulierten Personen (Millionen!), die
alle ein unterschiedliches Einkommen, Fähigkeiten und
verschiedene Bedürfnisse haben sollen.

[…]

Wie kann ich eine solche rechenintensive Aufgabenstellung
bewältigen? Hat jemand eine Idee oder vielleicht sowas wie ein
Tutorial zur Hand? Ich wüsste schon in etwa, wie ich sowas
implementieren kann, allerdings würde das auf eine Berechnung
jedes einzelnen Sims hinauslaufen, die ich zur Laufzeit
vermutlich nicht bewältigen könnte.

Wie ist denn das Zeitbudget für einen Simulationsschritt? Und wie aufwendig die Berechnung für einen „Sim“? Ich stelle mir nach deiner Beschreibung noch etwas relativ triviales vor. Eine relativ einfache Berechnung eine Million mal auszuführen ist ja noch nicht SOO schlimm.

Ansonsten gilt leider, dass wenn du eine Million mal unterschiedliche Daten haben möchtest, du diese leider auch eine Million mal berechnen musst :wink:. Eine Beschleunigung ist vermutlich möglich durch Codeoptimierungen an langsamen Stellen, cachegerechte Datenablage, Multithreading, Vorberechnen/Aufheben von wiederverwendbaren Zwischenergebnissen, …vieles davon natürlich abhängig von dem konkreten Problem / der konkreten Berechnung.

Wenn deine Berechnung nicht so trivial ist, wie ich denke, etwa wenn du sie in Form von Differentialgleichungen über Geld-/Waren-/Sonstwasströme etc. formuliert hast und einen Gleichgewichtszustand suchst o.ä., gibt es eine Vielzahl numerischer Verfahren, die interessant sein könnten. Oder überhaupt falls der gesuchte Gleichgewichtszustand durch ein lineares Gleichungssystem beschrieben werden kann.

Ohne mehr Details kann man nicht viel sagen :smile:.

Grüße,
Sebastian

Hallo,

ich suche einen flotten Algorithmus, bzw. ein entsprechendes
Tutorial mit der ich folgende Aufgabenstellung bewältigen
kann:

Ich habe eine Menge von simulierten Personen (Millionen!), die
alle ein unterschiedliches Einkommen, Fähigkeiten und
verschiedene Bedürfnisse haben sollen.

Ich möchte nun so was wie eine WiSim schreiben, bei der
mehrere Spieler als „Arbeitgeber“ fungieren sollen, die den
Sims Arbeit und Lohn bieten, im Gegenzug dafür aber auch das
Geld an den verschiedenen Stellen wieder ausgeben sollen
(vorzugsweise aber nicht ausschließlich bei den Spielern
natürlich).

Falls du damit meinst, dass die Sims Gehälter bekommen und diese an mehr oder weniger zufälligen Konsumstätten wieder loswerden, könntest du das Gesetz der großen Zahlen ausnützen: bei einer großen Anzahl zufälliger Entscheidungen tendiert die Häufigkeit der einzelnen Entscheidungen zu ihrer Wahrscheinlichkeit. Das gilt auch für die Geldbeträge. Du könntest die Gesamteinnahmen der Sims einfach im Verhältnis der Ausgabewahrscheinlichkeiten auf die Konsumstätten aufteilen, vielleicht noch zufällige Schwankungen hinzufügen.

Grüße,
Sebastian

Mit anderen Worten:

Ich berechne eine Wahrscheinlichkeit für eine Gruppe von Sims in einer Region und teile das „Volkseinkommen“ oder das, was die Sims ausgeben wollen entsprechend der Verhältnisse auf?

Das kriege ich soweit hin, die einfachen Gedanken sind doch die besten^^

Es gibt da noch das Problem, dass dieses Bild einen vollkommenen Markt im Sinne der Volkswirtschaftslehre darstellt. Das heisst in dieser Simulation wie du sie beschrieben hast, kennt jeder Sim jedes Angebot und würde dieses nehmen, egal wie weit weg dieses ist.

Kennst du vielleicht noch ein Modell für einen unvollkommenen Markt? Also es weiß halt nicht jeder Sim sofort, wo es das günstigste Angebot gibt und es sollen noch Kosten anfallen, je weiter weg sich der Sim von dem Ort des „Geschäftes“ entfernt.

Aber erst einmal vielen Dank für deine Hilfe, es bietet mir einen recht guten Ansatz!

Grüße,
Alexander

Mit anderen Worten:

Ich berechne eine Wahrscheinlichkeit für eine Gruppe von Sims
in einer Region und teile das „Volkseinkommen“ oder das, was
die Sims ausgeben wollen entsprechend der Verhältnisse auf?

Das kriege ich soweit hin, die einfachen Gedanken sind doch
die besten^^

Es gibt da noch das Problem, dass dieses Bild einen
vollkommenen Markt im Sinne der Volkswirtschaftslehre
darstellt. Das heisst in dieser Simulation wie du sie
beschrieben hast, kennt jeder Sim jedes Angebot und würde
dieses nehmen, egal wie weit weg dieses ist.

Kennst du vielleicht noch ein Modell für einen unvollkommenen
Markt? Also es weiß halt nicht jeder Sim sofort, wo es das
günstigste Angebot gibt und es sollen noch Kosten anfallen, je
weiter weg sich der Sim von dem Ort des „Geschäftes“ entfernt.

Das könnte man auch mit Durchschnittwerten modellieren. Die Ausgabewahrscheinlichkeiten könnte man mit einem Wissens- und Entfernungsfaktor gewichten und für diese Faktoren Durchschnittswerte über alle Sims bilden. Etwa so: die Wahrscheinlichkeit, ein Geschäft zu kennen ist innerhalb von 10km 1,0, fällt dann linear ab und erreicht bei 50km 0. Oder eine Glockenkurve, oder oder oder. Dann berechnest du die Werte für alle Sims mit allen Geschäften einmal vor und mittelst sie. Und normalisiert die Wahrscheinlichkeiten wieder, so dass ihre Summe 1 ergibt. Etc. Das würde aber, fällt mir auf, voraussetzen, dass das Geld gleichverteilt an die Simallgemeinheit fließt.

Wahrscheinlich müsste es spezieller werden, weil das Unternehmen U Sims in einem bestimmten Einzugskreis einstellt und diese bevorzugt das Geld in den Geschäften G in ihrer Nähe lassen. Aber auch da könnte man vielleicht als Einstellungseinzugskreis eine Art Glockenkurve nehmen, als Konsumstätteneinzugskreis ebenfalls eine Glockenkurve, und das „Volumen“ der Überschneidung beider Glocken ist ein möglicher Gewichtungswert des Geldflusses von U nach G.

Ich spinn mir das übrigens gerade frei aus dem Bauch heraus :smile:. Aber ich denke, mit solchen „nichtdiskreten“ Ansätzen kommt man recht weit.

Viele Grüße,
Sebastian