Ich habe ein bestimmtes Spiel, das nicht buchstäblich Nullsummen ist, weil Punkte durch das Spiel während eines Matches vergeben werden, aber nahe daran, in dem Sinne, dass die Zahl von Die Gesamtpunkte haben eine klare Obergrenze. Je mehr Punkte Sie erzielen, desto weniger Punkte stehen Ihren Gegnern zur Verfügung. Das Spiel wird von 5 Spielern gespielt, ohne irgendwelche Teams.Verhindern Genetischer Algorithmus im Nullsummenspiel von der Zusammenarbeit
Ich mache einen genetischen Algorithmus spielen Runden gegen sich mit pseudo-zufälligen "Mutationen" zwischen den Generationen.
Aber nach ein paar hundert Generationen taucht immer ein Muster auf. Der Algorithmus endet stark zugunsten eines bestimmten Spielers (Beispiel: der Spieler, der zuerst spielt). Da die Mutationen, die die "besten Ergebnisse" liefern, als Grundlage für die nächste Generation dienen, scheint dies in Richtung einer Version von "Wenn du der erste Spieler bist, spiele diesen Weg (die Art ist eine sehr spezifische, aber ziemlich zufällige Technik, die gibt schlechte oder bestenfalls durchschnittliche Ergebnisse), und wenn nicht, dann spiele auf diese spezifische Weise, die indirekt, aber stark den ersten Spieler begünstigt ".
Für die nächsten Generationen beginnt der Spieler, dessen Zug stark favorisiert ist, völlig willkürlich zu mutieren, da er jede Runde gewinnt, egal was er tut, solange der Teil des Algorithmus, der diesen Spieler bevorzugt, noch intakt ist.
Ich bin auf der Suche nach einer Möglichkeit, diese spezielle Entwicklungsroute zu verhindern, aber ich kann nicht herausfinden, wie man den Sieg durch Ihre eigene Strategie mehr als Sieg belohnen kann, weil Ihnen viel geholfen wurde.
Das gleiche genetische Algo. wird für alle Spieler verwendet (mit vielleicht separaten Mutationen pro Spieler)? Ich kenne die Evolution besser als genetische Algorithmen, aber das scheint ein inhärentes Problem zu sein.Sie haben im Wesentlichen das Äquivalent eines Bienenstocks entwickelt: Arbeitsbienen reproduzieren sich nicht, sondern arbeiten, um ihre Königin zu schützen (die ihre genetische Schwester ist). Das Optimierungsziel ist nicht "Ich gewinne", sondern "Dieser Algo produziert einen Gewinner." Anstatt dass alle Spieler denselben Algo verwenden. (Modulo-Mutationen), ich glaube, dass eine Anzahl von Algorithmen gleichzeitig (oder einzeln) entwickelt werden sollte. – jwimberley
Eine Idee wäre, (während des Trainings) Spieler für Punkte zu bestrafen, die ihre Gegner erzielen. Oder möglicherweise Bonuspunkte vergeben, um mehr Punkte zu erzielen als jeder andere Spieler oder Gewichtspunkte nicht-linear. Ein großer Teil von Problemen wie diesen ist Experimentieren, also vermute ich, dass diese Frage für [so] etwas zu weit gefasst ist. – Dukeling