Genetically Programming Patterns
02.07.2024In diesem Projekt evolvieren Sie kleine Mustererkenner, um Muster in einer dynamischen, komplexen Simulation zu erkennen.
Hintergrund
Es gibt verschiedene Möglichkeiten, Phänomene der realen Welt zu simulieren. Nehmen wir zum Beispiel die Geister in dem Videospiel Pac-Man. Sie sehen Pac-Man, wenn er sich auf demselben Wegsegment bewegt, und beginnen dann, ihn zu verfolgen. Diese Nicht-Spieler-Charaktere werden als so genannte Agenten modelliert, die mit Sensoren, Aktoren und Controllern ausgestattet sind, die die empfangenen Informationen mit den daraus resultierenden Aktionen verbinden. Die agentenbasierte Modellierung ist ein sehr weit verbreiteter Ansatz zur Modellierung und Simulation verschiedener Phänomene der realen Welt - von der Interaktion biologischer Zellen über die Simulation von Menschenmengenbewegungen bis hin zu bevölkerungsweitem Glück. Alle empirisch ermittelten Aspekte realer Agenten können durch ihre digitalen Gegenstücke wiedergegeben werden. Da die Interaktionen der Agenten jedoch so offen und ihre Interaktionsgrade so groß sind, sind die daraus resultierenden Simulationen schnell sehr rechenintensiv.
Aufgabe
Vor dem oben erläuterten Hintergrund müssen die Freiheitsgrade systematisch reduziert werden, um zu vertretbaren Rechenlasten zu kommen - aber nur so, dass relevante Simulationsergebnisse nicht beeinträchtigt werden. Zu diesem Zweck müssen wir die auftretenden Muster lernen. Das können wir tun, indem wir Serien von Simulationszuständen beobachten, aufzeichnen und vergleichen. Wir können dies aber auch versuchen, indem wir ein Muster erraten und sehen, ob es irgendwo anwendbar ist. Sollte dies der Fall sein, und sei es auch nur teilweise, können wir das erratene Muster ein wenig abändern, um es noch besser anzupassen. Eine Reihe von Mustern zu erraten und als Gruppe weiterzuentwickeln, kann mit Hilfe der Genetischen Programmierung (GP) geschehen. Dies ist die Aufgabe dieser Projekt-/Diplomarbeit. Sie müssen eine Simulation erstellen, in der Muster auf verschiedenen räumlichen und zeitlichen Ebenen auftreten, und GP anwenden und auswerten, um ein Programm zu entwickeln, das die Muster erfasst, die sich in der Simulation entfalten.
Um eine reibungslose und einfache Grundlage für Ihre Experimente zu gewährleisten, empfehle ich Ihnen:
- sich auf einen zellulären Automaten zu verlassen (finden Sie eine bestehende Implementierung oder implementieren Sie es selbst),
- ihn so zu konfigurieren, dass er Muster verschiedener Komplexitätsstufen liefert (die Rezepte können die Regeln von Conways' Game of Life sein und andere Muster können in Wolframs Buch nachgeschlagen werden, siehe unten).
- Für das GP-Training würde ich die Verwendung von GPQUICK empfehlen (siehe Link und Referenzen unten). Was die Auswertung angeht, ist es am spannendsten zu erfahren, welche Art von GP-entwickeltem Modell welche Muster wie gut abbilden kann. Dies wären also meine primären Fragen. In zweiter Linie würde mich der Evolutionsprozess und seine Auswirkungen auf das entwickelte Muster interessieren, z. B. die Berücksichtigung lokaler Optima, kontinuierliche Verbesserung und Aufblähung.
Literature
- Langdon, W. B., & Banzhaf, W. (2019, July). Continuous long-term evolution of genetic programming. In Artificial Life Conference Proceedings (pp. 388-395). One Rogers Street, Cambridge, MA 02142-1209, USA journals-info@ mit. edu: MIT Press.
- dl.acm.org/doi/10.1145/3319619.3326770 (the supplementary material contains the code base of GPQUICK)
- Wolfram, S. (2002). A new kind of science (Vol. 5, p. 130). Champaign, IL: Wolfram media.
- http://www.scholarpedia.org/article/Game_of_Life