Fragen zur Simulationserstellung für Dummis (Datenbanken, Matrix)

ambodernoob

Newbie
Registriert
Aug. 2016
Beiträge
3
Hello, World!




Vor kurzem ist mir eine Idee für eine kleine Simulation gekommen, der ich gerne nachgehen würde. Leider habe ich absolut keine Ahnung vom programmieren (außer den zwei Jahren Informatik in der Schule, wovon aber nicht viel hängen geblieben ist :p) und brauche daher eure Hilfe. Es wäre super, wenn das auch klappt. :)

Also folgendes: Ich würde gerne eine Evolutionssimulation (für Einzeller im Urmeer) auf die Beine stellen und wollte fragen, welche Programme oder Sprachen für mich als Anfänger wohl am besten geeignet sind, um das zu realisieren.



Konzept:
Man erschaffe eine große Matrix (beispielsweise 1.000.000*1.000.000), bei welcher jede Zelle ein eigenes Programm sein kann. In dieser Matrix (also für die Unterprogramme) sollen bestimmte unabänderliche "Naturgesetze" herrschen, wie beispielsweise, dass eine als Programm nicht ausführbare Zelle den Wert "tot" bekommt. Oder, dass eine dauerhafte Strömung herrscht.

In dieser Matrix soll es dann "lebende" Zellen geben, die die toten "essen" und sich dann so teilen können. Bei dieser Teilung sollte der Quelltext dieser Zellen "mutieren", also zufällig, noch ausführungsfähig, verändert werden.

Als Benutzeroberfläche schwebt mir ein großes "Schachbrett" vor, in dem gezoomt werden kann und die Farbe der Felder je nach Zustand der Zelle variiert. Wenn man auf eine Zelle klickt, sollte der Quellcode angezeigt werden.

Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken :D




Meine Frage wäre jetzt, mit welchen Programmen/Sprachen sich eine solche Idee wohl am einfachsten umsetzen lässt. Im Vorraus danke an jeden, der mir weiterhelfen kann! :))
 
Naja, nein. :D
Das Game of Life ist eher eine mathematische Schrulle, die zeigen soll, was für geometrische Konstrukte mit ein paar Regeln entstehen können.

Mir geht es darum, die Evolution nachzustellen, indem ich den Zellen zum Ziel setze sich zu vermehren und sie sich selbst verändern können, wobei der Quellcode der einzelnen Zellprogramme quasi die DNA ist.

Prinzipiell war es am Anfang des Lebens nicht anders. Einige Klumpen Proteine, die sich vermehrt haben, mutierten zufällig und so sind komplexere Strukturen entstanden.
Mich interessiert inwiefern sich der Quellcode verändert, ob die Programme lernen sich gegenseitig zu fressen, sich schneller zu bewegen und so weiter. :)
 
Hallo,
so einen Lerneffekt kannst du bestimmt nachprogrammieren - allerdings ist das nicht empfehlenswert, da du noch keine Erfahrung in irgendeiner Programmiersprache hast. Das nächste Problem ist, dass solch ein Spiel mit maschinellem Lernen viel Leistung brauchen könnte, wo also selbst ein starker CPU in Bedrängnis kommt.

Versuche lieber erstmal etwas einfachereres - nicht gleich die Bismarck als Leichtmatrose versuchen zu versenken ;)

LG
Tim
 
Hallo Tim,

mir ist durchaus bewusst, dass das kein Zuckerschlecken wird, wie man es so schön sagt. Mir ist auch klar, dass das nicht das erste Programm werden wird, dass ich geschrieben haben werde, aber es soll das Ziel sein.
Mich fasziniert aber der Gedanke, meine eigene Welt voller Leben auf meinem Computer zu haben und erschaffen zu haben. Außerdem will ich unbedingt ausprobieren ob diese hirnrissige Idee wirklich hinaut. :D

Ich habe ja nach keinem Tutorial gefragt, wie dies am schnellsten zu erreichen ist, sondern welcher Programmiersprache ich mich zuwenden sollte, beziehungsweise mit welcher so etwas vergleichsweise leicht zu realisieren ist und über eine Antwort würde ich mich nach wie vor freuen. :p

So ganz allgemein liebäugel ich gerade mit Java, weiß allerdings ob sich solche Datenbanken damit erstellen lassen.
 
ambodernoob schrieb:
Ich habe ja nach keinem Tutorial gefragt, wie dies am schnellsten zu erreichen ist, sondern welcher Programmiersprache ich mich zuwenden sollte, beziehungsweise mit welcher so etwas vergleichsweise leicht zu realisieren ist und über eine Antwort würde ich mich nach wie vor freuen. :p

Naja, die Frage an der Stelle wäre für mich weniger die Programmiersprache sondern ob es für so etwas schon fertige Bibliotheken gibt, die man nutzen kann. Ich kenne mich mit GAs nicht die Bohne aus, aber ich wette es gibt da ein oder zwei oder hundert gute Open Source Bibliotheken (an der Stelle wäre mein educated Guess du findest was für C, C++, Python und vllt Java). Aus denen würde ich mir die 2 oder 3 raussuchen, die mir am Besten passen.

Welche Sprache du nimmst ist eigentlich relativ egal. Man könnte nach Performance gehen oder halt nach Bauchgefühl welche einem am Besten liegt. Python wird für so etwas ganz günstig sein, das ist aber Größenordnungen langsamer als Java oder C, wenn du also potentiell an Performancegrenzen stößt wären C oder Java wahrscheinlich besser. Um die Visualisierung würde ich mir ertmal gar keine Platte machen, die kannst du immer noch dranhängen wenn das Programm an sich ersteinmal läuft. Ich würde da auch ersteinmal im kleinen Maßstab anfangen mit 5 oder 6 Zellen...
 
Zurück
Oben