Deinbac
Ein Simulationsframework, das aktuell zwei Typen von Simulationen unterstützt:
- Deinbac – eine Evolutions-Simulation
-
Die Idee dazu habe ich aus einem Artikel in der Zeitschrift Spektrum der Wissenschaft. In den 1980ern hatten sie eine regelmäßige Rubrik für Programmier-Fingerübungen, und dies ist die Implementierung und Ausgestaltung einer dieser Übungen. Damals war die Umsetzung auf dem Atari ST in Pascal, die spätere Portierung nach Java war da nicht weiter schwierig.
Mein Freund und ich lieferten sich damals einen Wettstreit über die effizientere Implementierung. Sein Programm nannte er »Meinbac«, dann ist klar, wie mein Programm zu seinem Namen kam.
Fun fact: In den 80ern gab es ein Deo, dessen Werbespruch war: Mein bac, Dein bac - bac ist für alle da. Das hat unsere Namenswahl natürlich auch beeinflusst. - Conways Spiel des Lebens – ein zellulärer Automat
- Auch diese Idee habe ich aus der gleichen Rubrik in der Zeitschrift Spektrum der Wissenschaft. Die Erstimplementierung war auf dem 8-bit Atari, aber das ist mit den Möglichkeiten eines heutigen Rechners natürlich nicht vergleichbar.
Wie starte ich das Programm?
- Installieren Sie ein Java Runtime Environment auf Ihrem Rechner. Am einfachsten bekommen Sie das von www.java.com. Dort können Sie auch prüfen, ob Sie es vielleicht schon haben.
- Laden Sie das Programm Deinbac herunter.
- Starten Sie es dann mit einem Doppelklick auf die heruntergeladene Datei.
Ein Wort an Programmierer
Wenn Sie wollen, können Sie das Projekt mit Quellcode herunterladen.
Sie dürfen die Dateien jederzeit in eigenen Projekten mitbenutzen,
solange ich und alle, die bisher zum von mir übernommenen Code beigetragen haben,
im Produkt genannt werden.
(Ich denke, das ist ein Gebot der Höflichkeit.)
Falls Sie Änderungen an den Quelldateien vornehmen, informieren Sie mich bitte,
vielleicht sind Ihre Verbesserungen ja von allgemeinem Interesse.
Und hier die Anleitung:
Deinbac
Ein Simulationsframework.
Einleitung
Dieses Programm kann verschiedene Simulationen - solange sie auf diskreten Zeitschritten aufbauen. Aktuell sind zwei Simulationstypen verfügbar.
Deinbac - eine Evolutions-Simulation
Es geht um die Prinzipien der Evolution. In dieser Welt leben Bakterien, die sich von Mana ernähren. Das Mana wächst in immer gleicher Menge. Die Bakterien sind blind, aber auch ein blindes Bakterium findet mal ein Mana und bekommt so Energie. Ein Bakterium, das lange nichts gefressen hat, verhungert.
Jedes Bakterium trägt Gene, die steuern, wie zappelig sich das Bakterium durch die Welt bewegt. Ein Bakterium, das alt genug ist und genug Energie hat, kann sich teilen. Bei der Teilung kann sich ein Gen des Kindes ändern – eine Mutation.
Wenn sich zwei Bakterien begegnen, die alt genug sind und genug Energie haben, so können sie Sex miteinander haben. (Unsere Bakterien sind Zwitter – es gibt keine Männchen oder Weibchen, jeder kann sich mit jedem paaren.) Das Kind bekommt dabei je die Hälfte der Gene von beiden Eltern.
Durch das Wechselspiel von Vermehrung, Mutation und Selektion (durch Verhungern) entwickeln sich so Bakterien, die gut an ihre Umgebung angepasst sind.
Zum Spielfeld: Mana ist grau. Neu geborene Bakterien, frisch geteilte Bakterien oder frische Eltern sind gelb. Alle anderen sind magentafarben, wobei helle Bakterien mehr Energie haben.
Conways Spiel des Lebens - ein zellulärer Automat
Ein zellulärer Automat nach den Regeln von John Horton Conway.
Die Welt besteht aus Zellen (Feldern) in einem quadratischen Gitter, die entweder lebend oder tot sein können. Nach einfachen Regeln wird der zukünftige Inhalt jeder Zelle aus dem jetzigen Inhalt der Zelle und seiner 8 Nachbarn berechnet. Selbst in einer so einfachen Welt lassen sich erstaunlich komplexe Phänomene beobachten.
Das Menü
Spiel
Aktionen, die eine ganze Simulation oder das Programm betreffen.
- Neu...
-
Beendet die laufende Simulation und startet eine neue.
- Sprachen
-
Stellt die Sprache für dieses Programm ein.
- Beenden
-
Beendet das Programm.
Lauf
- Pause
-
Hält die Simulation an.
- Einzelschritt
-
Führt einen einzelnen Simulationsschritt durch.
- langsam
-
Stellt die Simulationsgeschwindigkeit auf langsam.
- mittel
-
Stellt die Simulationsgeschwindigkeit auf mittel.
- schnell
-
Stellt die Simulationsgeschwindigkeit auf schnell.
- Welt anzeigen
-
Schaltet die Anzeige der Welt ein oder aus. Auf sehr langsamen Rechnern läuft die Simulation schneller, wenn der Rechner die Welt nicht anzeigt.
- Lupe
-
Vergrößert oder verkleinert die Anzeige der Welt.
- Entwicklungstrends anzeigen
-
Schaltet die Anzeige des Entwicklungstrends ein oder aus. Im Trend sieht man die Verläufe von Mana in der Welt (grau), Anzahl der Bakterien (magenta) und durchschnittliche Energie der Bakterien (gelb). (Nur in der Deinbac Simulation verfügbar.)
- Stammbaum anzeigen
-
Zeigt den aktuellen Stammbaum an. (Nur in der Deinbac Simulation verfügbar.)
?
Informationen und Hilfe über dieses Programm.
- Hilfe...
-
Zeigt die Hilfe für das Programm.
- Info zu DeinBac...
-
Zeigt Informationen über das Programm.
Eine neue Simulation starten
Wenn Du eine neue Simulation startest, kannst Du einige Parameter anpassen.
Art der Simulation
Welche Art von Simulation wollen Sie starten?
- Deinbac - eine Evolutions-Simulation
-
Es geht um die Prinzipien der Evolution.
- Conways Spiel des Lebens - ein zellulärer Automat
-
Ein zellulärer Automat nach den Regeln von John Horton Conway.
Deinbac - eine Evolutions-Simulation
Startparameter für die Evolutions-Simulation
- Welt
-
Parameter zur Welt, in der die Bakterien leben
- Breite der Welt
-
Die Größe der Welt hoizontal.
- Höhe der Welt
-
Die Größe der Welt vertikal.
- Welt mit Grenzen oder als Torus?
- Mana am Anfang (ppm)
-
Der Wert gibt die Anzahl auf 1 Million Felder an. Der Wert muss im Bereich von 0.0 bis 1000000.0 sein.
- Neues Mana jede Runde (ppm)
-
Der Wert gibt die Anzahl auf 1 Million Felder an. Der Wert muss im Bereich von 0.0 bis 1000000.0 sein.
- Neues Mana jede Runde im Schlaraffenland (ppm)
-
Schlaraffenland ist eine Region (1/64 der Welt), in der besonders viel Mana wächst. Das erzeugt zwei verschiedene Lebensumgebungen im selben Simulationslauf.
Der Wert, den Sie hier eingeben, ist zusätzliches Mana, das nur im Schlaraffenland wächst. Mit dem Wert 0 schalten Sie das Schlaraffenland aus.
Der Wert gibt die Anzahl auf 1 Million Felder an. Der Wert muss im Bereich von 0.0 bis 1000000.0 sein.
- Anzahl der Bakterien am Anfang
-
Der Wert darf nicht negativ sein.
- Bakterien
-
Parameter zu den Bakterien
- Energie pro Mana
-
Wenn eine Bakterie 1 Mana isst, bekommt es Energie, um so viele Schritte zu überleben. Der Wert darf nicht negativ sein.
- Maximalenergie einer Bakterie
-
Wenn eine Bakterie so viel Energie hat, wird es zwar weiter fressen, aber gewinnt daraus keine Energie mehr. Der Wert darf nicht negativ sein.
- Energie der Bakterien am Anfang
-
Mit diesem Energievorrat starten alle Bakterien am Beginn der Simulation. Der Wert darf nicht negativ sein.
- Minimale Energie zum Teilen
-
Der Wert darf nicht negativ sein.
- Minimales Alter zum Teilen
-
Der Wert darf nicht negativ sein.
- Minimale Energie zum Sex
-
Der Wert darf nicht negativ sein.
- Minimales Alter zum Sex
-
Der Wert darf nicht negativ sein.
- Statistik
-
Parameter zur Erhebung von Statistiken
- Frequenz des Entwicklungstrends
-
Der Entwicklungstrend zeichnet Mana, Anzahl der Bakterien und ihre durchschnittliche Energie auf über die Zeit auf. Hier kann man die zeitliche Auflösung der Trendgrafik einstellen. Der Wert darf nicht negativ sein.
Conways Spiel des Lebens - ein zellulärer Automat
Startparameter für den zellulärer Automaten
- Breite der Welt
-
Die Größe der Welt hoizontal.
- Höhe der Welt
-
Die Größe der Welt vertikal.
- Welt mit Grenzen oder als Torus?
- Anfangsfigur
-
Das Muster, mit dem die Simulation startet.
- Glider
-
Ein kleines diagonales Raumschiff mit Periode 4.
- r-Pentomino
-
Ein Methuselah - eine Struktur, die sich lange interessant entwickelt; startet dabei ein paar Glider.
- Acorn
-
Ein Methuselah
- b-Heptomino
-
Ein Methuselah
- Loafer
-
Ein kleines vertikales Raumschiff.
- Copperhead
-
Ein kleines horizontales Raumschiff.
- Wing Spaceship
-
Ein großes diagonales Raumschiff mit Periode 4.
- Gosper Glider Gun
-
Eine Struktur, die regelmäßig Glider verschießt.
- Methuselah 8x32 001
-
Ein Methuselah
- Methuselah 16x16 001
-
Ein Methuselah
- Methuselah zz_Replicator stdin 001
-
Ein Methuselah
- Vom Figurdefinitionstext
-
Liest das Muster aus dem Textfeld in diesem Dialog.
- Figurdefinitionstext
-
'o'=leere Zelle, 'b'=lebende Zelle, '$'=Zeilenende, '!'=Zeilen- und Figurende
Eine (optionale) Zahl vor einem Zelle-Zeichen bedeutet n mal dieses Zelle-Zeichen.Auf https://catagolue.hatsya.com gibt es viele Figuren zum Kopieren und Einfügen.
Während der Simulation
Folgende Eingabemöglichkeiten hast Du (neben dem Menü) während der Simulation.
Maus
Ein Linksklick mit der Maus hat folgenden Einfluss:
- In der Deinbac Simulation
- Informationen über die angeklickte Position – ob dort Mana ist, und Informationen über Bakterien an dieser Position.
- In der Spiel des Lebens Simulation
- Die Zelle an dieser Position wechselt von tot zu lebendig oder umgekehrt.
Stammbaum
Der Stammbaum zeigt alle Bakterien, die in diesem Simulationslauf jemals existiert haben, mit ihren Werten und Verwandtschaftsbeziehungen an. (Nur in der Deinbac Simulation verfügbar.)
- ID
-
Die ID des Bakteriums. Je jünger das Bakterium ist, desto höher ist seine ID.
- Position
-
Die Position auf der Welt.
- Energie
-
Das aktuelle Energielevel der Bakterie. Mit der Zeit wird ihre Energie weniger, Mana essen bringt es nach oben. Wenn die Bakterie keine Energie mehr hat, stirbt sie.
- Geboren
-
Die Zeitscheibe, als dieses Bakterium geboren wurde.
- Letztes Ereignis
-
Die Zeitscheibe des letzten Ereignisses (Geburt, Teilung, Sex oder Tod) dieses Bakteriums.
- Mutter
-
Die ID der Mutterbakterie, egal, ob dieses Bakterium durch Teilung oder Sex entstand.
- Vater
-
Die ID der Vaterbakterie, wenn dieses Bakterium durch Sex entstand.
- Gene
-
Die Gene steuern, wie zappelig sich das Bakterium durch die Welt bewegt. Sie bestehen aus sechs Ziffern für die sechs möglichen Richtungswechsel (sortiert im Uhrzeigersinn, also: vorwärts, leicht rechts, hart rechts, umdrehen, hart links, leicht links). Hohe Ziffernwerte bedeuten höhere Wahrscheinlichkeit für diesen Richtungswechsel.
- Kinder
-
Wenn dieses Bakterium sich fortpflanzen konnte, egal ob durch Teilung oder Sex, werden hier die IDs aller direkten Kinder aufgelistet.