Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

CharlesDarwin

Frischling

  • »CharlesDarwin« ist der Autor dieses Themas

Beiträge: 25

Beruf: Visionär

  • Private Nachricht senden

1

24.02.2012, 01:06

Darwin (Evolutions-) Simulation mit

Moin,
ich bin neu und habe vor in den nächsten Tagen was zu programmieren.
Und zwar eine Evolutionssimulation.
Sie soll als Anschauungsmaterial für Vorlesungen zur Pupulationsgenetik dienen.

Folgende Anforderungen:
Nachvollziehbare Abläufe auch für Nichtinformatiker.
Möglichkeiten für versch. (simulations-)Szenarien.
Muss auf handelsüblichen Rechnern laufen.


Als Programmiersprache werde Microsoft Visual C# 2010 verwenden, da es frei zugänglich ist.
Hat jemand mal etwas ähnliches probiert?

Ist es möglich eine Räuber Beute Beziehung mit periodischen Schwankungen auch in Künstlichen Systemen zu erzielen oder nehme ich mir zu viel vor?

Hat jemand Erfahrungen mit Partikelsimulationen oder gibt es da Vorlagen?
Wieviele Partikel lassen sich mit Microsoft Visual C# 2010 berechnen? Ungefähr?

Ich nutze das Microsoft XNA Game Studio 4.0. Über Programmieren hab ich schon einige Tutorials gelesen.

Hoffe ihr habt da einige Vorlagen! Werde mich jetzt mal an die Arbeit machen und gucken wie dies Gamestudio so ist. Wäre gut wenn bis Montag das Gerüst steht.

Ich müsste das Projekt innerhalb der nächsten Woche fertigstellen das habe ich dem Dekan schon angekündigt. Da es um eine wichtige Dozentenstelle geht wäre ich über zügige Antworten dankbar.


LG

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

24.02.2012, 01:43

Hallo erstmal!

Bist du Biologe?
Was hast du bisher so programmiert?
Wenn das dein erstes Projekt werden soll (deine Fragen lassen das vermuten), dann hast du dir definitiv zu viel vorgenommen ...

CharlesDarwin

Frischling

  • »CharlesDarwin« ist der Autor dieses Themas

Beiträge: 25

Beruf: Visionär

  • Private Nachricht senden

3

24.02.2012, 01:59

Ich bin Doktorand der Biomedizin und unterrichte viel. Es geht für mich um eine Festanstellung auf die noch einige Anwärter existieren. Da wäre es gut zu punkten.

Ein Scheitern ist für mein Projekt mit der Darwin-Simulation keine Option. Ich habe es bereits angekündigt. :D

Programmieren habe ich mir selbst angeeignet, zu statistischen Analyse von Datensätzen Makros etc.

C# scheint mir nicht schwer habe mich etwas eingelesen.

Das Laden von Texturen ist mir eben bereits gelungen. Ob es auch transparent geht werde ich gleich wissen.

Über Antworten auf meine Fragen freue ich mich natürlich sehr, die Zeit drängt.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

24.02.2012, 07:19

Ich kann David nur Recht geben, Du hast Dich entweder total übernommen oder Deine Aufgabe ist dick formuliert, obwohl nur wenig dahinter steckt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

CharlesDarwin

Frischling

  • »CharlesDarwin« ist der Autor dieses Themas

Beiträge: 25

Beruf: Visionär

  • Private Nachricht senden

5

24.02.2012, 09:25

Moin,

nun gut, schon zwei die mir abraten.

Zitat

oder Deine Aufgabe ist dick formuliert, obwohl nur wenig dahinter steckt.
Das hoffe ich. Es soll ja für nichtinformatik(-Studenten) dienen. Die Profs und der Dekan sind auch keine Informatiker. Im Thema Pupulationsgenetik bin ich eh sicher.

Da werde ich euch jetzt mal schön unter die Nase reiben was ich heute Nacht programmiert habe.

Wenn auch die Deklaration der Variablen mit Index bei C# Stunden gedauert hat, so war die notwendige Mathematik definitiv 8-Klass Niveau.

Jedenfalls läuft die Partikelsimulation:


Wie kann man am besten einen durch Zufall variierebaren Bauplan konstruieren das ist die Frage. Er soll als Genom dienen.

Man kann die Partikel mit der Maus an schubsen wie Billardkugeln. Die Linien sind Testlinien.

Wie kann ich diesen Code verbessern:? Es handelt sich um das mathematische Herzstück.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            for (n1 = 0; n1 < MaxCells; n1++)
            {
                for (n2 = 0; n2 < MaxCells; n2++)
                {
                    factor = (float)(-1 + Vector2.Distance(Zell_Position[n1], Zell_Position[n2]) / 20);
                    if (factor < 0.1)
                    {
                        mittelposition = (Zell_Position[n1] + Zell_Position[n2]) / 2;

                        Zell_Position_Puffer[n1] = Zell_Position_Puffer[n1]+ (Zell_Position[n1] * 2 + (mittelposition * factor)) / (2 + factor);
                        Zell_Position_Puffer_Factor[n1] = Zell_Position_Puffer_Factor[n1] + 1;
                        Zell_Position_Puffer[n2] = Zell_Position_Puffer[n2]+ ( Zell_Position[n2] * 2 + (mittelposition * factor)) / (2 + factor);
                        Zell_Position_Puffer_Factor[n2] = Zell_Position_Puffer_Factor[n2] + 1;
                    };
                };
            };


Wie kann man am besten einen durch Zufall variierebaren Bauplan konstruieren das ist die Frage. Er soll als Genom dienen.

Für Anregungen bin ich dankbar, wer die Fragen aus meinem ersten Post beantwortet, hat allerdings meinen ganz besonderen Dank.

LG

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

24.02.2012, 09:32

OK, dann antworte ich mal ;)

Hat jemand mal etwas ähnliches probiert?

Ich habe mal eine Räuber-Beute-Simulation gemacht.
Es gibt dort Haie, Fische und Algen. Haie fressen Fische, Fische fressen Algen. Algen wachsen, während die Fische und Haie sich fortpflanzen.
Dieses Programm hatte aber keine genetische Komponente! Das ist die Hauptschwierigkeit deines Vorhabens. Der Rest ist noch relativ einfach machbar.

Ist es möglich eine Räuber Beute Beziehung mit periodischen Schwankungen auch in Künstlichen Systemen zu erzielen oder nehme ich mir zu viel vor?

Meine Simulation hat solche periodischen Schwankungen gezeigt.
Manchmal ist jedoch auch eine Spezies ausgestorben.

Hat jemand Erfahrungen mit Partikelsimulationen oder gibt es da Vorlagen?

Partikel ist ein sehr weit gefasster Begriff, und wenn du hier in einem Spieleprogrammierer-Forum fragst, dann wird jeder an grafische Partikel für Spezialeffekte wie Feuer, Rauch etc. denken. Diese Partikel interagieren jedoch normalerweise nicht.

Wieviele Partikel lassen sich mit Microsoft Visual C# 2010 berechnen? Ungefähr?

Diese Frage war es, die mich stutzig gemacht hat.
Was erwartest du hier? Es ist unmöglich irgendeine Zahl zu nennen, weil:
- Das ist nicht von der Programmiersprache abhängig!
- Prinzipiell beliebig viele bzw. so viel wie in den Speicher passt, denn du hast nicht gesagt wie schnell das ganze laufen soll!
- Du hast gar nicht gesagt, was diese Partikel eigentlich sein sollen, darum kann man auch nicht abschätzen, wie viel Aufwand die Simulation eines Partikels ist.

Zitat von »CharlesDarwin«

Ein Scheitern ist für mein Projekt mit der Darwin-Simulation keine Option. Ich habe es bereits angekündigt. :D

Ich kann auch ankündigen, dass ich morgen Quake 7 herausbringe und meine berufliche Zukunft mit meinem Erfolg oder Scheitern verbinden.
Das ändert aber nichts daran, dass ich es nicht schaffen würde.

Vielleicht musst du es ja gar nicht selbst programmieren
Mit Sicherheit gibt es ähnliche Programme schon im Internet. Vielleicht nicht genau das, was du willst, aber ich habe schon "evolutionäre" Programme gesehen, wo sich keine Lebewesen immer weiter entwickeln.
Dann solltest du aber natürlich auch nicht sagen, dass es von dir ist, sondern dass du es im Netz gefunden hast.

CodeBase

Treue Seele

Beiträge: 98

Wohnort: Österreich -> Salzburg

Beruf: Datenbank Entwickler

  • Private Nachricht senden

7

24.02.2012, 09:42

Bis wann musst du das Programm fertig haben ?

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

8

24.02.2012, 10:07

zur Möglichkeit der Umsetzung werde ich mich nicht äußern, da meine Einschätzung auf weniger Erfahrung basieren dürfte

ich selbst habe schon zelluläre Automaten implementiert
einmal mit den Regeln des Spiel des Lebens, bei dem man die Regeln ein wenig anpassen konnte und einmal einen mit Vampiren und Menschen (während der Ausbildung)

zu dem Code:
ich bin mir nicht sicher, was er genau machen soll, aber du könntest ihn aufgrund 2er Punkte optimieren:
soll in der Schleife die Aktion für die Zelle x und für die Zelle x ausgeführt werden?
wenn nicht, dann kann man dies mit einer Bedingung abfangen und ein bisschen Rechenzeit einsparen
soll die Aktion für x und y ausgeführt werden, wenn sie bereits für y und x ausgeführt wurde?
wenn nicht, dann solltest du die Zählvariable in der inneren Schleife (n2) mit n1 initialisieren (bzw. n1 + 1 sofern der oberere Punkt zur Optimierung gegeben ist, wenn die Aktion also auf jedes mögliche Zellpaar ausgeführt werden soll)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

CharlesDarwin

Frischling

  • »CharlesDarwin« ist der Autor dieses Themas

Beiträge: 25

Beruf: Visionär

  • Private Nachricht senden

9

24.02.2012, 10:08

Zitat

Bis wann musst du das Programm fertig haben ?
Bis Freitag dann werden die Lehrpläne vorgestellt. Ich will es auf dem großen Beamer laufen lassen. Es muss dann abgesegnet werden, aber davon gehe ich aus. Der Institutsleiter will sowas gerne haben.

Zitat

Meine Simulation hat solche periodischen Schwankungen gezeigt.
Manchmal ist jedoch auch eine Spezies ausgestorben.
Wenn mir sowas gelingt wäre es sehr gut.

Zitat

Partikel ist ein sehr weit gefasster Begriff, und wenn du hier in einem
Spieleprogrammierer-Forum fragst, dann wird jeder an grafische Partikel
für Spezialeffekte wie Feuer, Rauch etc. denken. Diese Partikel
interagieren jedoch normalerweise nicht.
Die Partikel sollen "Billard spielen" und anderweitig als Bausteine (Zellen) für die Genträger dienen.

Zitat

Ich kann auch ankündigen, dass ich morgen Quake 7 herausbringe und meine
berufliche Zukunft mit meinem Erfolg oder Scheitern verbinden.

Das ändert aber nichts daran, dass ich es nicht schaffen würde.
Dann muss ich halt Nachschichten einlegen.

Zitat

Vielleicht musst du es ja gar nicht selbst programmieren

Mit Sicherheit gibt es ähnliche Programme schon im Internet.
Ich habe erfolglos gesucht. Es soll im Rechenzentrum auf den "normalen" PSs laufen und ich will in den Quellcode eingreifen können. Auf fremden Quellcode zurückzugreifen wäre völlig ok.

LG


EDIT:

Die Links sind interessant, aber leider nicht was ich suche.

Zitat

ich bin mir nicht sicher, was er genau machen soll, aber du könntest ihn aufgrund 2er Punkte optimieren:

soll in der Schleife die Aktion für die Zelle x und für die Zelle x ausgeführt werden?

wenn nicht, dann kann man dies mit einer Bedingung abfangen und ein bisschen Rechenzeit einsparen

soll die Aktion für x und y ausgeführt werden, wenn sie bereits für y und x ausgeführt wurde?

wenn nicht, dann solltest du die Zählvariable in der inneren Schleife
(n2) mit n1 initialisieren (bzw. n1 + 1 sofern der oberere Punkt zur
Optimierung gegeben ist, wenn die Aktion also auf jedes mögliche
Zellpaar ausgeführt werden soll)
Also

C#-Quelltext

1
For(n2=n1;
?
Ich glaube ich weiß was du meinst. Das werde ich direkt mal probieren.

LG

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »CharlesDarwin« (24.02.2012, 10:16)


David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

24.02.2012, 10:15

Nun, dann hast du aber nicht sehr gründlich gesucht.

Das habe ich auf die Schnelle gefunden:
- http://probability.ca/jeff/java/evolution.html
- http://math.hws.edu/xJava/GA/
- http://darwin.eeb.uconn.edu/simulations/simulations.html (eine ganze Liste mit Links)
- http://www.aridolan.com/ga/gaa/gaa.html
- http://www.leinweb.com/snackbar/wator/ (das ist fast so wie das, was ich gemacht habe, nur ohne Algen!)
- http://coderonline.malzeiten.de/home.pl?…bitIsland2.html (nochmal sowas)
...

Werbeanzeige