PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Datenstruktur für zellulären Automaten


pest
2011-11-19, 10:04:26
Hallo,

vielleicht kann mir ja ein Informatiker bei folgendem Problem weiterhelfen.

Ich modelliere Populationen mit zellulären Automaten, was in seiner simpelsten Form wie folgt aussieht.

Es existieren 2 Populationen fixer Größe.

Einmal eine Gitterstruktur (realisiert als 2D-Array): die lokale Population
Eine "unsichtbare" Metapopulation als 1D-Array.

Jede der Zellen besitzt einen Integer-Wert der die Art des Individuums festlegt.
Jeder Art ist auch eine Farbe zugeordnet, wieder realisiert über direkte Adressierung also Color[Art]

Jetzt zur Dynamik und meinem eigentlichen Problem.

In jedem Automatenschritt stirbt ein Individuum in jeder Population und wird durch ein anderes Individuum ersetzt.
Dabei können auch Arten von der Metapopulation in die Lokale wandern.

Jetzt existiert eine Wahrscheinlichkeit dafür das in der Metapulation eine neue Art geboren wird. Und hier ist mein Problem, wie ich das abbilde.

Ich habe jetzt ein globales Artenarray realisiert als C++ vector an das ich gegebenfalls neue Arten (mit neuer Farbe) anhänge.
Da ich aber nicht weiß wieviele Neuentstehungen im Simulationslauf vorkommen wird vorher geschaut ob nicht eine Art schon ausgestorben ist.
Die neue Art erbt dann die Farbe und den Wert der alten Art.

Das funktioniert auch alles wunderbar. Aber ich frage mich ob das eleganter geht.

Zur Analyse benötige ich nämlich die Artenstrukturen der einzelnen Subpopulation die ich jetzt umständlich aus der globalen Struktur errechnen muss.
Welche Farbe und welchen Wert eine Art hat ist irrelevant, wichtig ist nur die Anzahl.

Gast_samm
2011-11-19, 18:47:03
Billigerweise vielleicht ein Zähler-Array führen count[Art]?

pest
2011-11-19, 19:45:49
das habe ich ja, aber nur global...dessen größe kenne ich auch nicht

es kann nämlich sein, das lokal andere arten da sind als in der meta-population
und es kann z.b. auch lokal zur "extinction" kommen, d.h. lokal ex. nur noch eine art und in der meta-population wird fleißig weiter mutiert.

d.h. es kann nur global entschieden werden welchen wert einer art zugewiesen wird.

ich dachte auch daran, eine ausgestorbene art sofort zu löschen, aber dann stimmen die zuweisungen nicht mehr,da Color[Art] und Count[Art] ja auf andere Adressen zeigen würden.

Vielleicht ist das so schon das Schlauste, oder ich halte eben noch 2 zusätzliche dynamische Artenlisten, die nach einem globalen Update auch angepasst werden.