Wie ein krosmarc in diesen Kommentar bemerkt hat, werden die Spiele zweier KIs, die eine ähnliche Taktik haben, meistens unentschieden ausgehen. Oft ist es dann nur davon abhängig, welche Steine von oben nachrutschen, die dann über Sieg oder Niederlage einer KI entscheiden.
Das bedeutet, dass es neben der bisherigen Wertung eine zusätzliche Wertung geben muss. Die aktuelle Wertung wird folgendermaßen berechnet:
Wenn zwei KIs gleich stark sind, ist oft die Ausführungszeit (vor allem für mich als Wettbewerbsleiter) wichtig. Aus diesem Grund soll diese auch mit eine Rolle spielen. Schnelle Programme werden also belohnt, langsame Berechnungen etwas bestraft. Da natürlich die verwendete Programmiersprache auch wichtig ist, soll die Wertung so moderat vorgenommen werden, dass keinem Programmierer in einer bestimmten Sprache ein Nachteil entsteht.
Aus diesem Grund soll folgendes Verfahren angewendet werden (n = Anzahl der KIs):
Auf diese Weise werden schnelle KIs etwas bevorzugt und langsame KIs etwas benachteiligt. Aber nur in so einem Maße, dass es das eigentliche Ergebnis (KI spielt gut oder schlecht, siehe oben, denn dies ist vorrangig von Bedeutung) nicht zu sehr verfälscht.
Wenn jemand eine bessere Idee für eine faire Wertung der Laufzeit hat, soll er sich bitte melden. Irgendeine Abstufung sollte es aber geben, um die Programmierer, die einen Algorithmus besser umgesetzt haben als andere, zu belohnen.
Update 18.04.2009: Kleine Änderungen an der Spielmechanik, was die Bewertung betrifft, wenn eine KI illegale Züge zurück gibt oder gar nicht mehr reagiert.
Update 17.04.2009: Neue FAQ-Einträge 22 - 25.
Update 12.04.2009: Neue FAQ-Einträge und neue Version mit DEBUG-Schalter.
Update 11.04.2009 (Teil 2): Es gab in der Spielmechanik noch einen recht großen Bug, der in der neuen Version ausgebessert wurde.
Update 11.04.2009: Es gibt eine neue Version mit kleinen Ausgabeverbesserungen.
Seit dem Start des Programmierwettbewerbs sind ein paar Fragen bei uns eingegangen, die wir hiermit auch für alle anderen Leser beantworten wollen.
player.dat ein Dreher aufgetreten, sodass die Zeilen für gelbe und grüne Steine vertauscht wurden.
fm-ai1.bin und fm-ai2.bin auf. Können das auch Shell-Skripte sein, die dann die eigentliche KI in Sprache XYZ aufrufen?
#!/bin/bash
fm-ai/fm-ai.bin
exit $?
fm-ai1.bin abgespeichert. Die Ausführrechte (mit chmod +x fm-ai1.bin) natürlich nicht vergessen!
#!/bin/bash
echo "Geben Sie die zu tauschenden Felder ein (der Art \"0 2 0 3\"):"
read EINGABE
echo $EINGABE > result.dat
exit $?
fm-ai2.bin ab und macht die Datei ausführbar.
# Felder erstellen
for (( I=1; $I <= 100; I++ )); do ./fm-game.bin wettbewerbsfeld$I.dat create; sleep 2; done # Felder abarbeiten
( date && ( for (( I=1; $I <= 100; I++ )); do ./fm-game.bin wettbewerbsfeld$I.dat; done ) && date ) > results
Das Datum wird eingepflegt, um später auch die Dauer eines kompletten Laufs über
egrep CEST results
auszugeben. (Subtrahieren der Zeiten muss man selbst.)
Um die results-Datei zu analysieren, hilft ein weiteres Bash-Skript:
#!/bin/bash
let LINECOUNTER=0
let S=0
let U=0
let N=0
for LINE in `egrep "dead" $1` ; do
if [ $LINE == "1" -o $LINE == "2" ] ; then
let LINECOUNTER=$LINECOUNTER+1
let RESULT=$LINECOUNTER%2
if [ $RESULT -eq 1 ] ; then
let LOOSER=$LINE
else
if [ $LOOSER == $LINE -a $LOOSER == "1" ] ; then
let N=$N+1
elif [ $LOOSER == $LINE -a $LOOSER == "2" ] ; then
let S=$S+1
else
let U=$U+1
fi
fi
fi
done
echo $S " : " $U " : " $N
Dieses ruft man z.B. per ./check results auf.
Die oben gelisteten Fehler wurden in einer neuen Version der Spielmechanik behoben bzw. wurde durch neue Ausgaben während des Spiels für mehr Transparenz gesorgt. Die Dateien liegen wie bisher im FTP-Verzeichnis: Download per FTP oder per HTTP.
Bitte zögern Sie nicht, weitere Fragen zu stellen oder auf Fehler hinzuweisen, damit wir diese umgehend ausbessern können.
PS: Diese Nachricht wird ggf. im Laufe des Monats um weitere Einträge erweitert.
Heute ist die Aprilausgabe von freiesMagazin erschienen. Falls Sie hinter einer Firewall sitzen, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.
Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,4 MB). Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.
Inhalte der Ausgabe 04/2009 sind u.a.
Das vollständige Inhaltsverzeichnis finden Sie wie immer auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.
Besonderes auf den Programmierwettbewerb wollen wir diesen Monat aufmerksam machen, bei dem es auch einen 25-Euro-Buchgutschein zu gewinnen gibt.
Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.
Die Auswertung der freiesMagazin-Umfrage letzten Monat hat gezeigt, dass sich sehr viele Leser Programmierthemen wünschen. Man kann (mit etwas gutem Willen) aus diesem Wunsch auch ablesen, dass es da draußen sehr viele (Hobby-)Programmierer gibt. Und gegebenenfalls gibt es sogar welche, die nach etwas Programmierarbeit lechzen. All diese wollen wir diesen Monat ansprechen -- und damit auch gleich alle Leser befriedigen. Als Ansporn gibt es auch eine Kleinigkeit zu gewinnen.
Die Programmieraufgabe ist prinzipiell sehr einfach gestrickt. Es geht darum, für ein sehr simples Zwei-Personen-Spiel die künstliche Intelligenz (KI), d.h. den computergesteuerten Spieler, zu erstellen. Diese soll nach Übergabe einiger Daten die (in den Augen des Programmierers) beste Zugmöglichkeit herausfinden. Auf diese Art spielen zwei künstliche Intelligenzen gegeneinander. Der Programmierer mit der besten, d.h. dominierensten KI (siehe unten für genaue Kriterien), gewinnt den Wettbewerb. Die Programmiersprache ist dabei dem Programmierer überlassen, nur unter einer freien Lizenz muss das Programm stehen.
Alle Details zur Aufgabe findet man auf einer eigenen Webseite.
Der Stichtag für das Wettbewerbsende ist der 10. Mai 2009. Bis dahin müssen alle Programme bei der Redaktion eingegangen sein. Sollte die Resonanz bis dahin extrem positiv ausfallen und wir mit Programmen überschüttet werden, gibt es vielleicht auch eine Verlängerung bis zum 24. Mai 2009. Der Sieger wird dann in der Juniausgabe von freiesMagazin mitgeteilt.
Wichtig: Jeder Teilnehmer darf nur ein Programm einreichen. Natürlich darf er aber seine KI bis zum Stichtag gerne mehrfach nachbessern.
Wie oben erwähnt gibt es als Ansporn auch eine Kleinigkeit zu gewinnen: einen Gutschein im Wert von 25 Euro für den Online-Handel Bookzilla.de. Es wurde sich für diesen Händler entschieden, da durch den Verkauf der Bücher 5% des Erlöses an die Free Software Foundation Europe gespendet werden. Diese Unterstützung Freier Software wollen wir natürlich auch unterstützen.
Wir wünschen allen Teilnehmern viel Erfolg und freuen uns über zahlreiche Programme, die dann zum Duell gegeneinander antreten.
Ihre freiesMagazin-Redaktion
Nachtrag: Auch wenn heute der 1. April ist, handelt es sich nicht um einen Aprilscherz.
Das Leben ist kein Wunschkonzert? Doch, ab und zu schon. In der freiesMagazin-Umfrage von Januar 2009 haben wir danach gefragt, welche Themen im Magazin fehlen bzw. über welche Themen die Leser gerne mehr erfahren würden. Die Resonanz war überwältigend!
Da wir selbst kein festes Autorenteam haben, die die Themen übernehmen könnten, wir aber auch nicht wollen, dass die Ergebnisse in der Versenkung irgendeiner OpenOffice.org-Liste verschwinden, haben wir die Wünsche auf einer Webseite nach Themen geordnet veröffentlicht.
Wenn Sie also als Autor bei freiesMagazin tätig werden wollen und noch nicht genau wissen, worüber Sie etwas schreiben sollen, schauen Sie doch einmal in die Wunschliste. Vielleicht finden Sie ein Thema, was Sie interessiert.
Wir - und die Leser sicher auch - freuen uns über neue Artikel und neue Autoren.