<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="modul.xsl" type="text/xsl"?>
<modul id="7501" xml:lang="de">
 <titel>Spieltheorie</titel>
 <titelLang>Spieltheorie</titelLang>
 <kuerzel>GamTh</kuerzel>
 <ects>2</ects>
 <studiengang>I</studiengang>
 <modultyp></modultyp>
 <praesenz>32</praesenz>
 <selbststudiumszeit>36</selbststudiumszeit>
 <sprache>de</sprache>
 <beschreibungsSprache>de</beschreibungsSprache>
 <studiengangtyp>Bachelor</studiengangtyp>
 <lehrformen>Vorlesung mit Übung</lehrformen>
 <methoden><p>Theorie (Frontalunterricht im Klassenverband), Übungen in Einzelarbeit und Selbststudium, Implementation eines Spiels in Gruppenarbeit (unter Verwendung einer Werkbank)</p></methoden>
 <vorkenntnisse><p>Informatikmodule des ersten und zweiten Semesters</p></vorkenntnisse>
 <ziele><p>Lange Zeit wurde die Fähigkeit Schach zu spielen als ureigenste menschliche Domäne betrachtet. Daher ist es nicht verwunderlich, dass die Schachprogrammierung eine der ältesten Bereiche der Künstlichen Intelligenz ist. Bereits 1950, also fast zeitgleich mit den ersten programmierbaren Rechnern, wurden von Claude Shannon und Alan Turing die ersten Schachprogramme geschrieben. Seither konnten in der Schachprogrammierung erstaunliche Erfolge erzielt werden, wie das Duell  von Deep Blue gegen G. Kasparow 1997, in dem erstmals ein Schachprogramm gegen einen amtierenden Weltmeister gewann.<br />In dieser Vorlesung soll diese historische Entwicklung der Programmierung von Strategiespielen nachgezeichnet und alle grundlegenden Techniken und Methoden vorgestellt werden. Zudem werden die Studenten für die Grenzen der klassischen Techniken sensibilisiert, die sich beispielsweise in der schwachen Qualität von GO-Programmen zeigt. Die Teilnehmer lernen insbesondere die von Neumannsche Spieltheorie kennen, Algorithmen zur Bewertung von Spielbäumen und die Architektur von Spielprogrammen. Durch eine Studienarbeit werden sie befähigt, mit Hilfe eines Frameworks selbst ein eigenes Spiel zu implementieren.</p></ziele>
 <lerninhalte></lerninhalte>
 <lehrinhalte><p>In diesem Modul werden die folgenden Themen und Inhalte behandelt:</p>
<ul>
<li>Einführung, Geschichte der Schachprogrammierung, Terminologie: Partie, Spielbaum, Nullsummenspiel mit vollständiger Information </li>
<li>Bewertung von Spielbäumen: Minimax-Verfahren, Alpha-Beta-Pruning, Scout, Iterierte Tiefensuche, Heuristische Bewertungsfunktionen</li>
<li>Probleme/Verbesserungen: Horizonteffekt, Quiescence-Suche, Transpositionstabelle, Fenstersuche, Partielle Baumsuche </li>
<li>Architektur und Realisierung von Spielprogrammen </li>
<li>Von Neumansche Spieltheorie, Gefangenen Dilemma, usw. </li>
<li>Neue Lerntheoretische Ansätze zur Realisierung von Heuristischen Bewertungsfunktionen. <strong></strong></li>
</ul>
<p><strong><br /></strong></p></lehrinhalte>
 <lernergebnisse><p><strong>Wissen:<br /></strong>Die Studenten lernen die wichtigsten klassischen Methoden und Techniken zur Programmierung von Strategiespielen, wie unter den Lehrthemen angegeben, kennen und vertiefen anhand von theoretischen Übungen deren Verständnis. <br /><br /><strong>Fertigkeiten:<br /></strong>Die Studenten sind in der Lage, die vorgestellten Baumsuchalgorithmen anzuwenden und deren Komplexität abzuschätzen. Sie erwerben sich zudem die Fähigkeit, ein Spielprogramm für Strategiespiele nach einer sauberen Architektur zu entwerfen und zu realisieren. <br /><br /><strong>Kompetenz:<br /></strong>Zudem lernen die Studenten die Komplexität der klassischen Baumsuchalgorithmen zu beurteilen und die Grenzen dieser Verfahren kritisch zu bewerten. Sie können die Stärken und Schwächen klassischen Suchverfahren und die Anwendbarkeit auf konkrete Suchprobleme abschätzen.</p></lernergebnisse>
 <bewertung><p>Die Bewertung legen wir zu Beginn des Semesters fest.</p></bewertung>
 <qualifikationstyp>E</qualifikationstyp>
 <bemerkungen></bemerkungen>
 <literaturangaben><p><strong>Referenzen<br /></strong><br />Stuart Russel and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, Second Edition, 2003.</p>
<p>Monty Newborn, Kasparov versus Deep Blue: Computer Chess Comes out of Age, Springer, 1996.<br /><br />Jonathan Schaeffer, One Jump Ahead: Challenging Human Supremacy in Checkers, 1997.</p></literaturangaben>
 <autor>
  <name>Jürgen Eckerle</name>
  <email>juergen.eckerle@bfh.ch</email>
  <kuerzel>erj1</kuerzel>
 </autor>
 <verantwortlicher>
  <name>Jürgen Eckerle</name>
  <email>juergen.eckerle@bfh.ch</email>
  <kuerzel>erj1</kuerzel>
 </verantwortlicher>
 <datum>18. Mai 2010</datum>
 <lernziele></lernziele>
</modul>
