Regeln für den „AI Fight“ Wettbewerb

  • Das hab ich mich auch schon gefragt. Meinem Verständnis nach sollte es eher ein Wettbewerb sein, in dem die KI lernt, das spiel gegen einen vorgefertigten Gegner zu gewinnen. Gewinner wäre derjenige, der die wenigsten Durchläufe/Generationen benötigt zum gewinnen :P .


    Aber das widerspricht ja dann der Runden-Definition (Punkto 1vs1/All vs All usw.).
    Ich würde sagen, das sollte sich mit einem vernünftigen Punktesystem lösen lassen wobei z.B. jede Aktion/Reaktion mit 1 - 10 Punkten bewertet wird und dann davon irgendwie der Punkteprozentsatz der guten resp. schlechten Entscheidungen eine Endwertung ergibt und dann vielleicht der effektive Sieg nur noch ein paar Bonuspunkte.

    Spoiler anzeigen


    Sagen wir mal wir haben 2 KIs die gegeneinander Tic Tac Toe spielen:
    KI_1_O verwendet einen Zufallsgenerator um den nächsten Zug auszuwürfeln.
    KI_2_X wertet das Spielfeld aus (was mich gleich noch zu einer weiteren Frage bewegt) und entscheidet anhand eines Algorythmus, wo der nächste Stein hingelegt werden soll.

    Runde 1:

    X
    O


    KI_1_O: 3pkt Der Zug hat keine negativen Folgen für den Spieler. Allerdings wurde er einfach dahingewürfelt.
    KI_2_X: 8pkt Der Algorythmus sieht, dass KI_1_O für den nächsten Zug 8 beinahe gleichwertige Möglichkeiten hat. Um sich selbst einen möglichst grossen Möglichkeitspool zu schaffen, entscheidet sie sich für eine der Ecken. Welche ist dabei nicht von Bedeutung.

    Runde 2:

    X
    O O
    X


    KI_1_O: 6pkt Der Zug hat wiederum keine negativen Folgen für den Spieler. Allerdings wurde er einfach dahingewürfelt. Dennoch hat der Zug einen positiven Effekt auf das Endergebnis
    KI_2_X: 6pkt die KI hat gesehen, dass KI_1_O eine Möglichkeit zum beenden des Spiels hat, es sieht nun die Notwendigkeit, in dieser Spalte einen Stein zu legen. Aufgrund eines Programmierfehlers entscheidet es sich aber fälschlicherweise (aufgrund der dadurch entstehenden 2 Möglichkeiten für einen sinnvollen nächsten Zug) wiederum für die Ecke. Dieser Zug kann die KI den Sieg kosten, wird also deshalb

    Runde 3:

    X
    O O O
    X


    KI_1_O: 6pkt Die KI hat das Spiel gewonnen.
    KI_2_X: 0pkt Dieser Zug wurde nicht mehr gespielt.

    Wir sehen also, dass KI_2_X das Spiel an sich sowohl auf dem Feld als auch punktemässig (15:14).
    Rechnen wir das nun aber mal nach Schlauheit aus:

    KI_1_O: Diese KI hat in 3 Zügen insgesamt 15 von 30 möglichen Punkten erreicht. Das sind gerundete 45%.
    KI_2_O: Diese KI hat in 2 Zügen (der letzte wurde ja nicht mehr gespielt) insgesamt 14 von 20 möglichen Punkten erreicht. Das sind satte 70%.

    Damit gewinnt nun also KI_2_O, sie hat insgesamt einfach schlauer reagiert auch wenn sie verloren hat.

    Bild1: Ich beim debuggen

    4 Mal editiert, zuletzt von General Kaboom (27. Januar 2015 um 15:56)

  • Mein Vorschlag (wird aber etwas Zeit in Anspruch nehmen...): Das Elo-System.
    - Jeder "Spieler" bekommt zu Beginn 1000 Punkte (Startwert)
    - Eine Runde besteht aus n²-n Spielen. (Jeder gegen jeden)
    - Nach einer gewissen Anzahl Runden ist die Elo-Rangliste aussagekräftig. (Wie viele das sein werden weiß ich leider nicht. Vermutlich mehr als 5)

  • Das Elo-System ist im groben ab 100 gemachten Spielen pro Spieler ansatzweise aussagekräftig.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hoppla da war ich etwas gar langsam ^^

    Spoiler anzeigen


    Sagen wir mal wir haben 2 KIs die gegeneinander Tic Tac Toe spielen:
    KI_1_O verwendet einen Zufallsgenerator um den nächsten Zug auszuwürfeln.
    KI_2_X wertet das Spielfeld aus (was mich gleich noch zu einer weiteren Frage bewegt) und entscheidet anhand eines Algorythmus, wo der nächste Stein hingelegt werden soll.

    Runde 1:

    X
    O


    KI_1_O: 3pkt Der Zug hat keine negativen Folgen für den Spieler. Allerdings wurde er einfach dahingewürfelt.
    KI_2_X: 8pkt Der Algorythmus sieht, dass KI_1_O für den nächsten Zug 8 beinahe gleichwertige Möglichkeiten hat. Um sich selbst einen möglichst grossen Möglichkeitspool zu schaffen, entscheidet sie sich für eine der Ecken. Welche ist dabei nicht von Bedeutung.

    Runde 2:

    X
    O O
    X


    KI_1_O: 6pkt Der Zug hat wiederum keine negativen Folgen für den Spieler. Allerdings wurde er einfach dahingewürfelt. Dennoch hat der Zug einen positiven Effekt auf das Endergebnis
    KI_2_X: 6pkt die KI hat gesehen, dass KI_1_O eine Möglichkeit zum beenden des Spiels hat, es sieht nun die Notwendigkeit, in dieser Spalte einen Stein zu legen. Aufgrund eines Programmierfehlers entscheidet es sich aber fälschlicherweise (aufgrund der dadurch entstehenden 2 Möglichkeiten für einen sinnvollen nächsten Zug) wiederum für die Ecke. Dieser Zug kann die KI den Sieg kosten, wird also deshalb

    Runde 3:

    X
    O O O
    X


    KI_1_O: 6pkt Die KI hat das Spiel gewonnen.
    KI_2_X: 0pkt Dieser Zug wurde nicht mehr gespielt.

    Wir sehen also, dass KI_2_X das Spiel an sich sowohl auf dem Feld als auch punktemässig (15:14).
    Rechnen wir das nun aber mal nach Schlauheit aus:

    KI_1_O: Diese KI hat in 3 Zügen insgesamt 15 von 30 möglichen Punkten erreicht. Das sind gerundete 45%.
    KI_2_O: Diese KI hat in 2 Zügen (der letzte wurde ja nicht mehr gespielt) insgesamt 14 von 20 möglichen Punkten erreicht. Das sind satte 70%.

    Damit gewinnt nun also KI_2_O, sie hat insgesamt einfach schlauer reagiert auch wenn sie verloren hat.

    Bild1: Ich beim debuggen

  • Die Bewertung und Rundenverlauf wird in jedem Spiel anders sein. Deshalb kann ich dass nicht allgemein hier festlegen. Ich kann euch aber schon mal sagen wie es im kommenden Wettbewerb ablaufen wird:

    Jeder AI bekommt für spezielle Aktionen (z.B. Sammeln von Items oder gewinnen eines Spieles) eine bestimmte Anzahl von Punkten. Nach X Spielrunden gewinnt die AI, die die meisten Punkte gesammelt hat und tritt nach dem K.O. System gegen die nächste AI an. Wie viele Punkte letztendlich für welche Aktion gesammelt werden können wird natürlich bekannt gemacht. Demnach liegt es an euch die AI so zu schreiben, dass ihr möglichst viele Punkte sammeln könnt. Am Ende werden nur noch 2 AI gegeneinander antreten und somit wird die beste ermittelt. Welche AI auf wen am Anfang trifft wird per Zufall ermittelt. Darauf nehme ich keinen Einfluss.

  • Das Beschreibugn erinnert mich an "AntMe!" :D

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (2. Februar 2015 um 08:37)