Du bist nicht angemeldet.

Werbeanzeige

KeksX

Community-Fossil

  • Private Nachricht senden

101

23.02.2015, 02:15

Ich habs doch ernsthaft verpasst ~.~ Bis jetzt durchgeschlafen.

Nächste Runde macht meine K.I.(Kartoffel Intelligenz) mit!
WIP Website: kevinheese.de

102

23.02.2015, 07:05

Hallo Helmut, danke erstmal fürs organisieren Auswerten.

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).
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

DeKugelschieber

Community-Fossil

Beiträge: 2 622

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

103

23.02.2015, 08:46

Ha da habe ich ja ordentlich verkackt :D
Naja mein Ansatz war ja absichtlich so naiv, jetzt klaue ich mir alles zusammen :P
MfG Marvin

LetsGo

Alter Hase

Beiträge: 1 429

Beruf: Software Engineer

  • Private Nachricht senden

104

23.02.2015, 09:33

Gar nicht so schlecht :)
Weiß nur nicht ob ich Zeit hab viel zu verbessern. Schaun wir mal.

Zitat von »Chad Fowlder«

Leider hat die Software-Branche viele flache Spezialisten hervorgebracht, die die Bezeichnung Spezialist nur als Entschuldigung dafür verwenden, nur eine Sache zu kennen.

TGGC

1x Rätselkönig

Beiträge: 1 636

Beruf: Software Entwickler

  • Private Nachricht senden

105

23.02.2015, 09:52

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.

106

23.02.2015, 11:37

Es wäre interessant diesen Tiefensuchen Algorithmus einmal zu verbieten. Oder noch strikter zu werden was Rechenzeit angeht. Ich werde mal was anderes ausporbieren auch wenn eine Brute Force Tiefensuche wahrscheinlich schwer zu schlagen ist

Ich kann den neuen Contest Code unter Ubuntu nicht mehr bauen.
Folgende Datei wird nicht gefunden:

C-/C++-Quelltext

1
#include "alt\KIs3.h"

woher soll diese Datei kommen ?

David Scherfgen

Administrator

Beiträge: 9 673

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

107

23.02.2015, 12:45

@domin:
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 ... :)
Aber da gibt es noch ein paar Probleme. Manchmal springt deine KI wild drauf los, bevor der Ball im Spiel ist, und trifft ihn dann beim Anstoß so ungünstig, dass sie sich sofort ein Eigentor schießt. Vor allem bei zwei Bällen habe ich das oft beobachtet.
Meine KI macht gegen deine hin und wieder einen dummen Fehler, indem sie hochspringt und deine dann den Ball unter ihr durchschießt. Meine KI springt zu oft. Springen ist eigentlich schlecht, da man für die nächsten 33 Frames keinen Einfluss mehr auf die eigene y-Position hat.

auch wenn eine Brute Force Tiefensuche wahrscheinlich schwer zu schlagen ist

Das glaube ich nicht. Brute Force kommt schnell ans Limit und kann nicht besonders weit voraussehen. Oft werden triviale Lösungen übersehen. Ich glaube, dass Helmut da was ganz Cleveres entwickelt hat, so wie ich ihn kenne. Seine "Profi"-KI spielte ja auch schon ziemlich stark.

Mir schwebte da eine Suche vor, die nicht in Schritten von 1 rechnet, sondern immer so weit, bis es zum nächsten Ballkontakt oder Punkt kommen kann. Das sind oft so um die 30 Frames. Mit ein paar Tabellen kann man dann bestimmen, wohin sich die Spieler in dieser Zeit bewegt haben könnten, und sampelt diese möglichen Positionen. Dabei kann man diejenigen mit höherer Wahrscheinlichkeit samplen, die zu einem Ballkontakt führen. Das ist cleverer als einfach stupide eine Folge von Tastendrücken zu samplen, denn davon führen viele zur selben Situation (z.B. Links, Links, Springen führt zur selben Situation wie Springen, Links, Links - wenn es währenddessen nicht zum Ballkontakt kommt). Man reduziert dadurch den Suchraum und kann in der begrenzen Zeit mehr Züge untersuchen. Ich habe damit angefangen das zu implementieren, aber die Ergebnisse waren eher schlecht. Wahrscheinlich habe ich da noch einen Bug drin. Auch ist es da nicht so trivial, sich am Ende der Suche für den besten Zug zu entscheiden.

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.

Schorsch

Supermoderator

Beiträge: 4 655

Wohnort: Wickede

Beruf: Student

  • Private Nachricht senden

108

23.02.2015, 16:00

Wäre eigentlich mal interessant was GAs und KNNs da anstellen würden. Vielleicht hat ja mal jemand Lust und Zeit da zu gucken:)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

109

23.02.2015, 16:21


Ich kann den neuen Contest Code unter Ubuntu nicht mehr bauen.
Folgende Datei wird nicht gefunden:

C-/C++-Quelltext

1
#include "alt\KIs3.h"

woher soll diese Datei kommen ?


Selbe Problem, wenn ich die Zeile Auskommentiere kommt die Konsole (egal ob Release oder Debug) aber kein Fenster geht auf.

Edit:

C-/C++-Quelltext

1
2
DoContestRound();
return;

die auch noch Auskommentieren dann gehts
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

David Scherfgen

Administrator

Beiträge: 9 673

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

110

23.02.2015, 16:34

Wäre eigentlich mal interessant was GAs und KNNs da anstellen würden. Vielleicht hat ja mal jemand Lust und Zeit da zu gucken:)

Über neuronale Netze habe ich auch mal kurz nachgedacht, den Gedanken aber sehr schnell verworfen. Dem Spiel fehlt es an "Kontinuität": Wenn ich den Ball auch nur minimal anders treffe, kann das das Ergebnis fatal beeinflussen. Damit kommen neuronale Netze nicht klar. Dieses Spiel ist eher wie Schach (da ist mit neuronalen Netzen auch nichts zu gewinnen).

@Helmut:
Wann kommt die aktualisierte Auswertung? :)

Werbeanzeige

Ähnliche Themen