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
Kleinen Verbesserungsvorschlag hätte ich, die Tabelle wer gegen wen gespielt hat komplett zu füllen, so kann jeder Teilnehmer in einer einzigen Spalte/Zeile lesen wie die Ergebnisse waren. Aktuell muss man die Ergebnisse in seiner Zeile und seiner Spalte nachlesen (ausgenommen erster und letzter in der Tabelle).
Tja, wie gesagt, ich finds eigentlich Scheisse. Man hat einen Arsch voll Rechenzeit und alle guten KIs benutzen daher den gleichen Brute Force Algorithmus und welche gewinnt haengt davon ab, wer in der erlaubten Rechenzeit mit ein paar Tricks und Optimierungen die meisten Iterationen hinbekommt. Ich habe ja extra 2 KIs mit unterschiedlichen Ansaetzen eingeschickt, leider gibt es keine absolute Messung der Zeit, aber die "schlechte" hat pro verbrauchte Rechenzeit vermutlich hundert mal mehr Punkte gemacht. Und der Witz ist, das man die schnelle immer noch als Heuristik in die langsame einsetzen kann, um die langsame besser zu machen.
Ich kann den neuen Contest Code unter Ubuntu nicht mehr bauen.
Folgende Datei wird nicht gefunden:
...
woher soll diese Datei kommen ?
Sehe ich das richtig, dass deine KI davon ausgeht, dass es nur 36 verschiedene x-Positionen gibt, die man erreichen kann? Tatsächlich sind es ja doppelt so viele. Man bewegt sich zwar nur in Schritten von 250, aber wenn man einmal gegen das Netz läuft, kann man plötzlich andere x-Positionen erreichen (dafür die alten nicht mehr). Läuft man dann wieder gegen die "Außenwand", kann man wieder die ursprünglichen Positionen erreichen. Das liegt daran, dass das Netz die Bewegung nicht an einem ganzen Vielfachen von 250 stoppt. Keine Ahnung, ob Helmut das mit Absicht gemacht hat ...
Was ich stattdessen umgesetzt habe, ist die Wiederverwendung des Suchbaums über mehrere Frames hinweg, so dass nicht alles neu berechnet werden muss. Und die Entscheidungen an den Knoten sind nicht rein zufällig, sondern gehen bevorzugt in die Richtung, wo vorher schon gute Züge gefunden wurden. Das ist angelehnt an Monte Carlo Tree Search (MCTS), eine sehr beliebte Technik für General Game Playing-KIs (KIs spielen Spiele, die sie vorher gar nicht kennen). Darum meinte ich auch, dass man bei so einem Contest sehr viel lernen kann, denn ich habe deswegen einige Paper über MCTS gelesen. Da muss man allerdings aufpassen: Der normale MCTS-Algorithmus ist für sequenzielle Spiele gedacht, wo die Spieler abwechselnd ziehen. Es gibt aber auch eine Variante für gleichzeitige Züge.
Administrator
Irgendwie widersprichst du dir selbst. Wenn die KIs schlechter wären, dann haette sich doch schonmal die Platzierung geaendert.
Also wenn ich die verfügbare CPU Zeit verkürzen würde glaube ich nicht, dass das irgendwas an den KIs verändern würde. Sie würden einfach nur schlechter sein.
Administrator
Community-Fossil
Ja, also meine ursprüngliche Idee war, das durch die Tatsache auszugleichen, dass jeder mehrere KIs einsenden kann. Jetzt ist mir da aber auch ne kleine Lücke aufgefallen. Man kann die KIs so programmieren, dass sie absichtlich gegen eine eigene Eingesandte verlieren. So bekäme man Gratispunkte. Von daher werd ich jetzt wohl tatsächlich einfach mal den maximalen Score von 15 verzehnfachen und es zählt nur noch die zu letzt eingesandte KI. Ich muss dann noch mal schaun, dass durch die erhöhte Punktzahl nicht irgendwo Überläufe auftreten.Übrigens, schau mal, wie stark das Ergebnis bei den zufallsbasierten KIs variiert.
Bei den Spielen zwischen deiner KI und meiner KI haben wir Ergebnisse (ohne CPU-Faktor) zwischen 15:4 und 15:11 - nur weil jeweils ein anderer Random Seed benutzt wurde.
Deine KI ist augenscheinlich noch etwas besser als meine, aber wenn meine jetzt ungefähr auf demselben Niveau wäre, dann müsste man viel weiter als nur bis 15 spielen, um ein aussagekräftiges Ergebnis zu erhalten. Das zu demonstrieren, war auch ein Grund, warum ich 7 KIs abgegeben habe.
Naja ich meinte, dass selbst wenn man jetzt die KIs so anpassen würde, dass sie wesentlich weniger Rechenzeit bräuchten, sich wahrscheinlich nichts an der Platzierung ändern würde. Ich sehe auch nicht, dass jetzt KIs mit stumpfem Bruteforce gewonnen hätten.Irgendwie widersprichst du dir selbst. Wenn die KIs schlechter wären, dann haette sich doch schonmal die Platzierung geaendert.
Werbeanzeige