Der Gewinner der Code Competition Kampf gegen Mühlen 2017

Benedikt gewinnt Code Competition und 500€ Preisgeld! Benedikt hat seine Lösung zur Code Competition Kampf gegen Mühlen in JavaScript entwickelt und dabei eine ganze Menge gelernt. Seine Lösung hat überzeugt und Benedikt den ersten Platz eingebracht herzlichen Glückwunsch! IT-Talents: Hallo Benedikt, herzlichen Glückwunsch zu Deinem ersten Platz bei der Code Competition „Kampf gegen Mühlen 2017“! Erzähl den anderen IT-Talenten doch kurz etwas über Dich. Benedikt:Vielen Dank! Hallo, ich bin Benedikt. Ich bin 28 Jahre alt und bin in den letzten Zügen meines Masterstudiums der Informatik an der RWTH Aachen IT-Talents: Was hat Dich motiviert, an der Competition teilzunehmen und wie bist Du auf den Wettbewerb aufmerksam geworden? Benedikt:Mühle reizte mich schon als kleines Kind. Meine Oma hat es mir damals beigebracht, mich aber immer besiegt Ich habe zwar im Studium Grundlagen der Spieltheorie in Pflichtfächern gehabt, aber das Thema KI war bisher eigentlich bei mir nie so sehr ein Schwerpunkt von mir. Umso mehr hat es mich einmal motiviert mich in Dinge wie Alpha-Beta Pruning, Q-Learning und diverse Optimierungen dazu von Grund auf einzulesen. Zusätzlich hatte ich relativ früh die Idee, das ich ermöglichen wollte zwei AIs gegeneinander antreten zu lassen.Ich verfolge die Coding Competitions und die Angebote auf it-talents.de schon seit längerer Zeit. Ich glaube, initial bin ich durch einen E-Mail-Verteiler auf it-talents aufmerksam geworden und bin dort auch in diversen Talentpools und habe bereits im Februar 2017 an der Code Competition „Der Handlungsreisende“ den 3. Platz belegt. Jetzt ergab sich zeitlich wieder die Möglichkeit teilzunehmen umso mehr freut es mich dass es diesmal sogar für den 1. Platz gereicht hat. IT-Talents: Wie bist Du an die Lösung der Aufgabenstellung herangegangen? Hattest Du schon Erfahrung mit der Entwicklung von Spielen bzw. KI? Benedikt:Ich habe vorher keine Erfahrungen mit AI Entwicklung gehabt und wollte einfach mal damit rumspielen. Zunächst habe ich mir diverse Videos auf Youtube zu ähnlichen Aufgabestellungen (Schach AIs) angeschaut. Gleichzeitig habe ich mir auf GitHub Implementierungen von Schach Ais angeschaut und mir die entsprechenden Wikipedia Artikel durchgelesen. Zusätzlich war mir klar, dass ich darueber hinaus noch etwas mit Machine Learning machen wollte und habe mir diverse Videos zu dem Thema angeschaut.Ich habe für mich selbst versucht einen agilen Entwicklungsprozess zu verfolgen: Ich wollte möglichst schnell einen lauffähigen bespielbaren Prototypen. Aus diesem Grund habe ich mit der GUI gestartet die ich in fabric.js implementiert habe. Anschliessend habe ich die ganze Spiellogik und Gewinnbedingungen eingebaut. Dies habe ich zunächst mit einer Zufallsstrategie als Gegenspieler getestet. Im nächsten Schritt habe ich mich dann auf die AI konzentriert und zu nächst klassisches MiniMax mit Alpha-Beta Pruning implementiert. Als Optimierung habe ich Transposition Tables mit Zobrist Hashing und Iterative Deepening implementiert. Mühle ist hier durch die Symmetrie sehr interessant. Anschliessend habe ich zwei Machine-Learning Strategien implementiert, was zunächst etwas Forschung in dem Bereich erforderte, weil ich a) ein Trainingsframework brauchte und b) rausfinden musste wie man das in JavaScript macht. IT-Talents: Du hast Dich für eine Lösung der Aufgabenstellung in JavaScript entschieden, wieso? Benedikt:Ich habe mir gedacht ich will auch bei der Code Competition was neues Lernen so wollte ich mich schon immer mal mit vue.js auseinandersetzen und gleichzeitig hat mich interessiert, wie viel JavaScript Performance mittlerweile so in einem Browser abrufbar ist.Da KI doch sehr rechenlastig sein kann, ich aber auf eine klassische Client-Server architektur verzichten wollte, hat es mich gereizt das ganze als eine App im Browser zu implemtieren die ggf. eben auch Offline verfügbar sein könnte. IT-Talents: Welche Probleme sind bei der Entwicklung der Software aufgekommen? Wie lange hat die Entwicklung gedauert? Benedikt:Die Entwicklung hat ca. 1 Woche gedauert. Ich habe den Kleinkram unterschätzt den so eine GUI mit sich bringen kann. Darüberhinaus habe ich lange überlegt, wie ich eine Instanz eines Mühle Spiels geschickt encodieren kann. Insbesondere gerade auf den letzten Metern bis kurz vor der Deadline, war es zeitlich tatsächlich kritisch und doch noch ganz schön hektisch. IT-Talents: Und was hast Du durch die Entwicklung gelernt? Benedikt:Sehr viel über JavaScript insbesondere ES6. Ich habe mir vue.js angeguckt, auch mit fabric.js habe ich bisher nie was gemacht und ich habe gelernt wie man in JavaScript mithilfe von synaptic neuronale Netze trainieren kann. Darüberhinaus habe ich theoretisch auch viel neues über Spieltheorie gelernt und das gleichzeitig auch anwenden können. IT-Talents: Zu guter Letzt: Was würdest Du Dir thematisch gerne einmal als Code Competition wünschen? Benedikt:Gerne mehr Optimierungsprobleme oder vielleicht praktische Probleme aus dem Bereich Verteile Systeme (IoT, Cloud, SDN) oder der IT-Sicherheit. Ich fände es z.B. cool wenn man ein neues Protokoll entwerfen müsste und das gescheit spezifizieren müsste. IT-Talents: Vielen Dank für Deine Teilnahme, das Interview und viel Spaß mit Deinem Gewinn Der Beitrag Der Gewinner der Code Competition Kampf gegen Mühlen 2017 erschien zuerst auf IT-Talents.de.

zum Artikel gehen

Die Gewinner der Code Competition Der Paketbote stehen fest

Herzlichen Glückwunsch an Leonardo, Leon und Lukas Bei der Code Competition Der Paketbote haben wir Euch aufgerufen, ein kleines Spiel zu programmieren. Viele Talente sind dem Ruf gefolgt und haben tolle Lösungen eingereicht. Die Gewinner stehen nun fe

zum Artikel gehen

Die Gewinner der Code Competition Chatbot

Herzlichen Glückwunsch und Danke für viele spannende Lösungen! Die Auswertung der Code Competition 06/2017 Chatbot und maschinelles Lernen ist ausgewertet. Vielen Dank für die wie immer sehr spannenden Lösungen.Und herzlichen Glückwunsch an die Gewinne

zum Artikel gehen

Die Gewinner der Code Competition Rucksackproblem

Vielen Dank für Eure zahlreichen und wirklich tollen Abgaben! Es ist soweit: Die Auswertung der Code Competition Rucksackproblem ist abgeschlossen und die Gewinner und Teilnehmer wurden informiert und haben ihr Feedback erhalten. Vielen Dank für die vi

zum Artikel gehen

Platz zwei bei der Code Competition Kampf gegen Mühlen

Herzlichen Glückwunsch an Daniel zu 400€ Preisgeld! Daniel studiert Medieninformatik und hat bereits erste Erfahrung mit der Entwicklung eigener Spiele sammeln können. Mit seiner Lösung und der starken KI konnte er überzeugen und hat den zweiten Plat

zum Artikel gehen

Die Gewinner der Code Competition Game of Life 2017

Wow 120 tolle Lösungen. Das ist uns noch mehr Gewinne wert! Bei der Code Competition im September 2017 haben wir sage und schreibe 120 Lösungen von Euch eingereicht bekommen. Von exotischen Programmiersprachen bis Java, JavaScript und Co ist alles dab

zum Artikel gehen