Entwicklung einer künstlichen Intelligenz für das strategische Zwei-Personen-Spiel Genitri

Größe: px
Ab Seite anzeigen:

Download "Entwicklung einer künstlichen Intelligenz für das strategische Zwei-Personen-Spiel Genitri"

Transkript

1 Entwicklung einer künstlichen Intelligenz für das strategische Zwei-Personen-Spiel Genitri Jan Bredner 1. Juli 2012 Aufgabensteller: Betreuer: Mitberichter: Prof. Albayrak Dr. Fricke Prof. Kao Technische Universität Berlin Fakultät IV - Elektrotechnik und Informatik Fachgebiet Agententechnologien in betrieblichen Anwendungen und der Telekommunikation

2 Erklärung zur Bachelorarbeit. Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig und eigenhändig sowie ausschließlich unter Verwendung der aufgeführten Quellen und Hilfsmittel angefertigt habe. Berlin, den II

3 Inhaltsverzeichnis 1 Einleitung Abstract Was ist Genitri? Begriffserklärungen Eine erste Analyse Vergleich mit Schach Menschliche Spielstrategien MiniMax Iterative Tiefensuche Primitiver MiniMax Alpha-Beta-Pruning Vorsortieren der Züge Mögliche Sortierverfahren für Genitri Weitere Optimierungen Spielphasen Eröffnung Mittelspiel Endspiel Bewertungsfunktion Die einzelnen Bewertungsfunktionen Software GUI Aufbau der Software Datenrepräsentation Zusätzliche Software Optimierung und Verbesserung Optimierung der Parameter der Bewertungsfunktionen Optimieren der Sortierverfahren Ausblick und Fazit Erweiterung des MiniMax Erweitern der Bewertungsfunktion Erweitern der Sortierverfahren Erweiterung der Datenrepräsentation Allgemeine Erweiterungen der KI während der Eröffnung und des Endspiels Pondern Fazit Literatur IV 10 Anhang V III

4 1 Einleitung 1.1 Abstract Die Entwicklung und Optimierung von künstlichen Intelligenzen für Zwei-Personen-Spiele fasziniert weltweit viele Menschen. Das bekannteste Spiel, für das künstliche Intelligenzen entwickelt werden, ist Schach. Schachweltmeister treten gegen die KI s an und es werden auch Spiele zwischen den künstlichen Intelligenzen ausgetragen. Ziel ist es eine immer noch stärkere KI zu entwickeln. Da bei den KI s für das Spiel Schach die Steigerungsmöglichkeiten immer begrenzter werden und da andere Spiele neue, noch nicht vorhandene Herausforderungen bieten, werden auch für andere Spiele immer häufiger KI s entwickelt. Die Auswahl an Zwei-Personen-Spielen, die noch solche Herausforderungen bieten, ist groß. In dieser Arbeit wird eine künstliche Intelligenz für das Spiel Genitri entwickelt. Ziel der Arbeit ist es eine einsatzfähige und spielstarke KI für das Spiel Genitri zu entwickeln und technisch umzusetzen. Dafür sollen grundlegende Verfahren für die Entwicklung von künstlichen Intelligenzen, wie beispielsweise der MiniMax-Algorithmus, an die spezifischen Eigenschaften des Spieles angepasst und verwendet werden. Weiterhin soll die KI mit verschiedenen Methoden verbessert werden um ein besseres Spielverhalten zu erzielen. Um die beschriebenen Ziele zu erreichen wird die Arbeit grob in drei große Bereiche unterteilt. Im ersten Bereich wird zuerst das Spiel Genitri vorgestellt und die Regeln erklärt. Weiterhin werden theoretische Vorüberlegungen, beispielsweise wird ein Vergleich zwischen Schach und Genitri, durchgeführt um Unterschiede und noch wichtiger um Gemeinsamkeiten zu finden. Im Anschluss werden grundlegend Techniken wie das MiniMax-Verfahren erklärt, die für das entwickeln der KI verwendet wurden. Im zweiten Teil wird die Analyse des Spieles genauer und tiefgehender. Es werden Kriterien entwickelt nach denen das Spiel in verschiedene Phasen unterteilt werden kann. Im Anschluss wird eine Bewertungsfunktion Schritt für Schritt entwickelt. Im dritten Bereich wird kurz beschrieben wie die theoretisch entwickelten Methoden umgesetzt wurden, um sie zu testen und später optimieren zu können. Nach den kurzen Bericht über die technische Umsetzung wird das Hauptaugenmerk auf die Optimierung und das Verbessern der entwickelten Methoden gesetzt. Auch die technische Umsetzung wird zum Teil noch Verbessert und Optimiert. Im Anschluss an diese drei Teile wird in einem abschließenden Kapitel noch ein kurzes Fazit gegeben und Anregungen für mögliche weitere Verbesserungen und Erweiterungen. 1.2 Was ist Genitri? Genitri ist ein strategisches zwei Personen Brettspiel. Das Spielfeld besteht aus 96 dreieckigen Feldern die in einem Sechseck angeordnet sind. Jeder Spieler bekommt drei Anfangs- 1 und Blockadesteine 2, sechs Verzweigungssteine 3 und 36 Wegsteine 4. 1 In dieser Arbeit auch als Startsteine bezeichnet 2 In dieser Arbeit auch als Wandsteine bezeichnet 3 In dieser Arbeit auch als Kreuzungen bezeichnet 4 in dieser Arbeit auch als normale Steine oder normale Wegsteine bezeichnet 1

5 Die Spielsteine, v.l. einfacher Wegstein, Anfangsstein, Kreuzung und Wandstein Das Genitrispielfeld, Screenshot von der Gui Der Spielablauf ist wie folgt gegliedert: Der beginnende Spieler legt einen Anfangsstein auf ein beliebiges Feld Der Gegenspieler legt ebenfalls einen Anfangsstein auf ein beliebiges freies Feld, dabei darf er aber das Wegende des ersten Spielers nicht blockieren. Nun legen die Spieler abwechselnd nach den Legeregeln ihre Steine auf das Spielfeld Kann ein Spieler nicht legen so setzt er aus Kann keiner der Spieler legen so ist das Spiel beendet gewonnen hat, wer weniger Steine übrig hat Beim Legen der Steine gelten folgende Regeln, diese stammen aus der offiziellen Anleitung: Alle Steine dürfen nur auf freie Felder gelegt werden Anfangs- und Blockadesteine können auf ein beliebiges freies Feld gelegt werden, dabei dürfen sie aber die Wegenden des Gegners nicht blockieren. Es muss sich also ein Feld zwischen diesen Steinen und den Wegenden des Gegners befinden. Verzweigungssteine und Wegsteine können an eigene Wegenden angelegt werden, dabei muss der Weg, den die Steine bilden durchgängig sein. Beim legen dieser Steine dürfen gegnerische Wegenden blockiert werden. 1.3 Begriffserklärungen Im Rahmen dieser Arbeit werden verschiedene Begriffe verwendet, die zum Teil nicht in der offiziellen Spielanleitung erwähnt werden und zur Vereinfachung von Beschreibungen eingeführt. Wegenden Ein Wegende ist der letzte Stein an dem normale Wegsteine und Kreuzungen angelegt werden können. Durch Kreuzungen und Startsteine sind mehrere Wegenden pro Spieler möglich. Ein Wegende 2

6 Blockieren Ein Wegende wird als blockiert gewertet, wenn das Feld des Wegendes belegt ist, oder alle seine Nachbarfelder belegt sind. Blockierte Wegenden entstehen im allgemeinen durch das Ausnutzen von kritischen Situationen. Ein Wegende der weißen Kreuzung ist blockiert, nach den Regeln wurde die Kreuzung nach dem schwarzen Startstein gelegt. Erreichbare Felder Ein Feld gilt als erreichbar, wenn ein Spieler nur durch legen von normalen Wegsteinen und Kreuzungen dieses Feld theoretisch belegen könnte. Erreichbare Felder mit Distanz zum Wegende. 3

7 2 Eine erste Analyse Für die Entwicklung einer KI für das Spiel Genitri gibt es keine Literatur. Für die Grundlagen stellt dies kein Problem dar, da allgemeine Literatur zum Thema künstliche Intelligenz genügend Informationen bietet. Um für die späteren und spezifischeren Arbeiten auch Unterstützung zu erhalten können zwei verschiedene Dinge durchgeführt werden. Erstens können Vergleiche mit anderen Spielen gezogen werden, dadurch kann überprüft werden ob bei ähnlichen Spielen Probleme auftraten und wie diese gelöst wurden. Tritt im Laufe der Arbeit ein Problem auf kann dieses leichter gelöst werden. Auch Entscheidungen zum Design können nach einem solchen Vergleich besser getroffen werden. Zum Anderen können menschliche Strategien analysiert werden. Dinge auf die ein menschlicher Spieler achtet, können auch von einer KI betrachtet werden. So können schon erste Gedanken gesammelt werden, die später helfen die Bewertungsfunktion auszuarbeiten. 2.1 Vergleich mit Schach Um Genitri mit anderen Spielen vergleichen zu können muss zuerst die Charakteristik von Genitri bestimmt werden und anschließend müssen Spiele gefunden werden die gleiche charakteristische Eigenschaften besitzen. Genitri ist ein strategisches zwei Personen Brettspiel, aber warum? Das es sich bei Genitri um ein Brettspiel handelt ist offensichtlich, auch dass es für zwei Spieler bestimmt ist. Das es sich bei Genitri um sein strategisches Spiel handelt ist ebenfalls leicht zubegründen. Zum einen enthält es keine Zufallskomponenten oder verdeckte Komponenten. Zum anderen wird Spielerfolg nicht erreicht indem kurzfristig eine Spielentscheidung getroffen wird, sondern längerfristig, also über mehrere Runden, ein Plan verfolgt wird. Ein sehr berühmtes strategisches zwei Personen Brettspiel ist Schach. Da es für die Entwicklung einer KI für das Spiel Schach sehr viel Literatur gibt, könnte es vorteilhaft sein immer wieder vergleiche zwischen beiden Spielen zu ziehen oder diese Literatur als Anregung und Ideenlieferant nutzen. Um die Literatur besser nutzen zu können werden bei Spiele nachfolgend kurz mit einander verglichen. Da es sich bei beiden Spielen um ein strategisches zwei Personen Spiel handelt, sind sie in ihren elementaren Eigenschaften gleich. Es müssen also nur Unterschiede und Gemeinsamkeiten in den Details gesucht werden. Grundlage vieler KI s für strategische zweipersonen Spiele ist der MiniMax, siehe Kapitel MiniMax. Bei einem Schachspiel wird dabei ein Spielbaum mit einem Verzweigungsgrad von etwa 35 aufgebaut. Bei einem Genitrispiel ist der Verzweigungsgrad größer solange noch mindestens ein Spieler Start- oder Wandsteine übrig hat. Ist das Spiel schon fortgeschrittener oder kein Spieler hat Start- oder Wandsteine übrig ist der Verzweigungsgrad kleiner als 35. Zu Beginn eines Genitrispieles werden nicht alle Zugmöglichkeiten in den Baum aufgenommen und der Verzweigungsgrad bei einem Schachspiel ändert sich ebenfalls. So sind die Verzweigungsgrade immer noch nicht gleich, aber da sie auch innerhalb der einzelnen Spiele variieren sollte dies nicht verhindern, dass sinnvolle Vergleiche zwischen den Spielen gezogen werden können. Ein weiterer Unterschied besteht darin, dass sich beim Schach die Figuren auf Felder bewegen können, auf denen sie sich schon einmal befanden, dadurch entstehen Schleifen im Spielbaum. Solche Schleifen müssen verhindert werden da sie unnötig Rechenkapazität beanspruchen ohne dass bei ihrer Betrachtung nützliche Informationen gewonnen werden. Beim Genitri sind solche Schleifen nicht möglich, da die Steine nachdem sie gelegt wurden nicht wieder bewegt werden. Auch dieser Unterschied verhindert sinnvolle Vergleiche nicht, da KI s für Schach solche Schleifen in den meisten Fällen nicht in den Spielbaum mit aufnehmen. Eine interessante Gemeinsamkeit ist, dass es bei beiden Spielen unterschiedliche Spielsteine gibt. Diese Tatsache kann später bei der Entwicklung der Bewertungsfunktion helfen. Aufgrund der Parallelen zwischen Schach und Genitri werden in dieser Arbeit immer wieder Vergleiche zwischen beiden Spielen durchgeführt. Das bringt zum einen den Vorteil bei theoretischen Analysen auf eine gewisse Richtlinie zurück greifen zu können und zum anderen können Sachverhalte und Probleme mit Analogien besser beschrieben werden. 4

8 2.2 Menschliche Spielstrategien Um menschliche Spielstrategien zu verstehen gibt es die Möglichkeit Fachliteratur zu lesen. Da es die für Genitri nicht gibt bleibt nur die Möglichkeit selber Spiele zu spielen und zu analysieren worauf man als Spieler achten muss und welches Spielverhalten Vorteile bringt. Schon nach wenigen Spielen wird klar, dass es wichtig ist sich selbst das Spielfeld so offen wie möglich zu halten, während gleichzeitig versucht werden muss den Gegner möglichst schnell und stark einzuschränken. Weiterhin ist es lohnenswert bestimmt Steine zurück zuhalten. Beispielsweise kann es große Vorteile bringen für jeden Startstein, den der Gegenspieler noch nicht gespielt hat einen Wandstein zu behalten. So ist der Gegenspieler immer dazu gezwungen seine Startsteine so zu legen, dass neben den entstehenden Wegende zwei freie Felder liegen. Legt er den Startstein nicht auf diese Weise kann dieser sofort mit einem Wandstein blockiert werden. Wie beim Schach ist also eine Bewertung des Materials möglich, also der übrigen Steine der beiden Spieler. Eine der wichtigsten Aktionen ist es gegnerische Wegenden zu blockieren. Um ein Wegende zu blockieren muss sich entweder ein eigenes Wegende auf dem selben Feld befinden, dann kann das gegnerische Wegende einfach mit dem Legen eines einfachen Wegsteines blockiert werden. Befindet sich kein eigenes Wegende auf dem Wegende des Gegners kann ein Wegende nur blockiert wenn es nur noch ein freies Nachbarfeld hat und dieses durch ein frei setzbaren Stein belegt wird. Wenn Wegenden von beiden Spielern auf dem selben Feld liegen, haben diese Wegenden ebenfalls nur ein freies Nachbarfeld, da jedes Feld maximal drei Nachbarfelder hat. Im Laufe der Arbeit werden alle Wegenden, die nur ein freies Nachbarfeld haben, als kritische Situationen bezeichnet, da diese schnell blockiert werden können. Eine kritische Situation ist vergleichbar mit dem Bedrohen einer Figur beim Schach. Es besteht Handlungsbedarf entweder wird die Figur durch eine andere geschützt oder wegbewegt. Beim Genitri kann ein Wegende nur schwer geschützt werden, höchstens durch das Bedrohen eines gegnerischen Wegendes. Meist ist es jedoch besser durch Legen eines einfachen Wegsteines die kritische Situation zu entschärfen. Ein Spieler kann so schnell in Zugzwang gebracht werden. Die KI sollte später solche Situationen für den Gegner als gut bewerten und bestrebt sein diese herbei zuführen und versuchen eigene kritische Situationen zu verhindern. Das weiße Wegende befindet sich in einer kritischen Situation. Spieler Schwarz hat mit einem Startstein die Situation ausgenutzt. 5

9 3 MiniMax 3.1 Iterative Tiefensuche Die iterative Tiefensuche funktioniert wie ein normale Tiefensuche mit den Unterschied, dass die Suche nur bis zu einer bestimmten Tiefe durchgeführt wird und anschließend die Tiefe vergrößert wird und die Suche erneut gestartet wird. Dabei ist es möglich Informationen einer beschränkten Tiefensuche für die nächste beschränkte Tiefensuche zu speichern und wieder zu verwenden. (Russell, Norvig - S.225) Sobald ein vorgegebenes Zeitlimit überschritten wird, wird die Suche abgebrochen und das bis dahin beste Ergebnis wird zurückgegeben. Dieses Verhalten ist für schnelle oder zeitlich begrenzte Suchen notwendig damit nach einem bestimmten Zeitlimit ein hinreichend gutes Ergebnis geliefert werden kann. Wird die Tiefe nicht beschränkt kann es durch die Eigenschaften der Tiefensuche passieren dass nur wenige Pfade in einem Baum abgesucht wurde. Die iterative Tiefensuche arbeit nach folgenden Prinzip: Bestimme den Startknoten, hier wird in Spielen die aktuelle Spielsituation verwendet. Setzen der maximalen Suchtiefe auf 0. Solange das Zeitlimit nicht überschritten wird: Führe eine Tiefensuche die auf die maximale Suchtiefe beschränkt ist durch. Erhöhe die maximale Suchtiefe um eins. Gib das beste Ergebnis der letzten abgeschlossenen beschränkten Tiefensuche zurück. 3.2 Primitiver MiniMax Beim MiniMax-Algorithmus handelt es sich um ein Verfahren, welches unter zu Hilfenahme von einer Bewertungsfunktion einen Spielbaum mittels iterativer Tiefensuche absucht und den vielversprechendsten Zug bestimmt. Dabei wird der Pfad, der die beste Situation für den Spieler zur Folge hat, bestimmt und der Zug mit dem dieser Pfad beginnt ausgeführt. Die Grundlegende Idee des MiniMax basiert darauf, dass der Spieler der an der Reihe ist seinen Vorteil maximieren möchte während er davon ausgeht, das sein Gegenspieler diesen Vorteil minimieren möchte. Es reicht also nicht aus einfach den Zug auszuwählen, der die scheinbar beste Situation für den Spieler zur Folge hat. Werden durch das Ausführen dieses Zuges dem Gegenspieler gute Möglichkeiten gegeben um die Spielsituation umzukehren und den kurzen Vorteil gleich wieder auszugleichen oder in einen Nachteil zu verwandeln, ist es nicht Ratsam sich dafür zu entscheiden. Es wird also betrachtet den Zug auszuwählen bei den für den Gegenspieler die schlechtesten Reaktionszüge ermöglicht werden.(russell, Norvig - S.215/216) Damit der Algorithmus arbeiten kann benötigt folgende Dinge: End(Situation) - Funktion zum Überprüfen ob das Ende des Spiels erreicht ist, diese Funktion muss auch feststellen können welcher Spieler gewonnen hat. Bewertung(Situation) - Funktion zum Bewerten einer beliebigen Spielsituation Züge(Situation) - Funktion zum Berechnen möglicher Züge Simuliere(Situation, Zug) - Funktion zum Simulieren eines Zuges Unter zu Hilfenahme dieser Funktionen kann der MiniMax wie folgt arbeiten: 6

10 Max(Situation, tiefe){ ergebnis = minimaler Wert Wenn End(Situation) gib Spielergebnis zurück Wenn tiefe gleich 0 gib Bewertung(Situation) zurück möglichezüge = Züge(Situation) Solange Züge vorhanden sind: wert = min(simuliere(situation, aktueller Zug), tiefe-1) Wenn wert > ergebnis ergebnis = wert gib ergebnis zurück Pseudocode der Max()-Funktion Min(Situation, tiefe){ ergebnis = maximaler Wert Wenn End(Situation) gib Spielergebnis zurück Wenn tiefe gleich 0 gib Bewertung(Situation) zurück möglichezüge = Züge(Situation) Solange Züge vorhanden sind: wert = max(simuliere(situation, aktueller Zug), tiefe-1) Wenn wert < ergebnis ergebnis = wert gib ergebnis zurück Pseudocode der Min()-Funktion, es gibt starke Parallelen zwischen Min() und Max() Beispiel eines mit dem MiniMax-Algorithmus ausgewerteten Spielbaumes Die Werte der Blätter werden an die zweite Schicht (Knoten B, C, D) weiter gegeben, da diese Knoten in einer Min-Schicht liegen wird der niedrigste Wert ermittelt und zurück gegeben. Die oberste Schicht (Knoten A) ist eine Max-Schicht, daher wählt Knoten A den größten Wert der Knoten aus der darunter liegenden Schicht aus Unterschiede der implementierten Version des MiniMax In der hier entwickelten Version des MiniMax wird nicht für jeden Knoten eine komplette Spielsituation gespeichert sondern immer nur der ausgeführte Zug, dies hat zur Folge, dass für jeden Aufruf der Funktionen Min() und Max() nicht nur ein Zug simuliert wird sondern auch wieder rückgängig gemacht werden muss. Der Rechenaufwand zum Aufbauen des Spielbaums wird also größer. Vorteilhaft ist jedoch, dass der benötigte Speicherplatz verringert wird, da insgesamt nur eine Spielsituation gespeichert wird und jeder Knoten nur einen Zug speichert. Wenn der Spielbaum sehr groß wird die Gefahr des vollen Speichers verringert. 7

11 3.3 Alpha-Beta-Pruning Eine wesentliche Optimierung des MiniMax kann durch Alpha-Beta-Pruning erreicht werden. Die Idee besteht darin Züge, die durch die Eigenschaften von Min() und Max() nicht ausgewählt werden auch nicht weiter zu betrachten und so Teile des Spielbaumes nicht aufgebaut werden müssen. Wird der MiniMax-Algorithmus mit Alpha-Beta-Pruning auf einen Spielbaum angewendet, so wird der selbe Zug wie beim einfachen MiniMax ermittelt aber die Verzweigung des Baumes wird verkleinert. Um dies zu erreichen wird der Algorithmus um zwei Schwellwerte Alpha und Beta erweitert. Alpha und Beta werden durch den Spielbaum weitergereicht als so genanntes Alpha-Beta-Fenster. Alpha repräsentiert den höhsten Wert der entlang eines Pfades im Spielbaum für Max ermittelt wurde. Beta entsprechend den kleinsten Wert für Min. Diese Schwellwerte werden während des MiniMax immer wieder aktualisiert. Max() ändert den Alpha-Wert, wenn sich in einem Max-Knoten ein größerer Wert als Alpha möglich wird. Min ändert den Beta- Wert, wenn sich in einem min-knoten ein kleinerer als Beta möglich wird. Wird während der Betrachtung eines Max-Knoten deutlich, dass ein größerer Wert als Beta möglich ist, wird Min diesen Zug nicht auswählen und eine weitere Betrachtung des Max-Knoten ist nicht mehr notwendig, es wird von einem Betacut gesprochen. Der Alphacut wird durchgeführt, wenn ein Min-Knoten einen kleineren Wert als Alpha erreichen würde. Max würde diesen Knoten nicht auswählen und deswegen muss er nicht weiter betrachtet werden. (Rich - S. 131) Der Gewinn bei der Verwendung von Alpha-Beta-Pruning ist besonders hoch wenn die Cutoffs weit oben im Baum durchgeführt werden, da so große Teile des Baumes nicht betrachtet werden müssen. Bei sehr flachen Bäumen ist der Gewinn sehr klein, da nur kleine Teilbäume oder Blätter abgeschnitten werden. Der selbe Spielbaum wie oben wurde diesmal mit erweiterten MiniMax bearbeitet. Die Knoten L und M werden nicht mehr betrachtet, da nach der Bewertung von K der maximale Wert des Min-Knoten D gleich 0 ist. Da der Max-Knoten A im Knoten C eine bessere Wahl hat würde D nie ausgeführt werden und eine weitere Betrachtung ist nicht notwendig (Alphacut). 3.4 Vorsortieren der Züge Um die Vorteile des MiniMax-Algorithmus mit Alpha-Beta-Pruning besser nutzen zu können müssen die möglichen Züge sortiert werden. Durch gut sortierte Züge kann ein früher Schnitt viel Rechenzeit sparen und somit eine tiefere Suche ermöglichen. Beim sortieren der Züge wird idealerweise der am besten gewertete Zug am Anfang der Liste stehen, dass ist nicht sehr einfach da das Sortieren der Züge nicht so aufwendig sein darf wie das Bewerten. (Rich - S. 136) Im extremen Fall ist das Sortierverfahren genau so aufgebaut und somit auch genau so aufwendig wie die Bewertungsfunktion, dann ist die Liste der möglichen Züge genau in absteigender Reihenfolge sortiert, wie sie durch die Bewertungsfunktion bewertet werden. Da somit der beste Zug immer zu Beginn der Liste steht könnte die Bewertungsfunktion weggelassen werden. Das Problem ist aber dann das jeder Zug bewertet werden müsste 8

12 und das Ziel des Sortierens, so wenig wie möglich Züge bewerten zu müssen, wäre verfehlt. Gesucht ist also ein Verfahren welches die Züge so sortiert dass gute Züge möglichst weit vorn in der Liste stehen ohne aber so aufwendig zu sein, dass sich das Sortieren nicht mehr lohnt. Für Maxzüge sollten Züge, für die eine gute Bewertung für den Spieler erwartet werden, möglichst weit vorn in der Liste der möglichen Züge stehen. Für Minzüge sollten Züge, für die eine gute Bewertung für den Gegenspieler erwartet werden, möglichst weit vorn in der Liste stehen. Beim Sortieren der Züge müssen verschiedene Probleme beachtet werden: Es ist schwierig und nicht immer möglich zu bestimmen welcher Zug gut oder schlecht ist. Je nach Spielverlauf und Reaktionsmöglichkeiten des Gegenspielers kann ein möglicher Zug zu verschiedenen Zeitpunkten des Spiels unterschiedlich gut sein. Da der Spielverlauf durch den MiniMax-Algorithmus betrachtet werden soll und nicht schon beim sortieren der Züge muss die erste Bewertung der Züge möglichst einfach und daher nicht so genau durchgeführt werden. Ebenfalls problematisch ist, dass Züge in den einzelnen Spielphasen unterschiedlich gut sein können. Um eine bessere Sortierung der Züge zu ermöglichen kann zu unterschiedlichen Phasen auch unterschiedlich sortiert werden. Es muss untersucht werden wie groß die Zeitersparnis bei sortierten Zügen ist. Ist der Aufwand die Züge zu sortieren größer als die resultierende Ersparnis beim MiniMax so sollte das Sortierverfahren verbessert oder weggelassen werden. Da der MiniMax nach einer gewissen Anzahl von Bewertungen beendet wird 1 kann es passieren, dass Züge mit bestimmten Steintypen nicht betrachtet werden. Werden beispielsweise Züge mit Start- und Wandsteinen immer zu Beginn betrachtet kann es, durch die große Anzahl an Möglichkeiten diese Steine zu setzen, dazu kommen, dass Züge mit Kreuzungen und einfachen Wegsteinen nicht betrachtet werden. Im allgemeinen sollte ein Abbruch des MiniMax kein Problem sein, da die besten Züge immer zu Beginn der Liste stehen sollten. 3.5 Mögliche Sortierverfahren für Genitri Im Folgenden werden Verfahren beschrieben, nach denen die möglichen Züge in einem Genitri Spiel sortiert werden können. 2 Alle beschriebenen Verfahren sind implementiert und werden später im Kapitel Optimierung mit einander verglichen Verfahren 1 Das erste Verfahren ist eigentlich kein Sortierverfahren. Der Algorithmus arbeit einfach das Array der Spielfelder ab und nimmt jeden möglichen Zug des Spielers in die Liste auf. Problematisch bei dieser Variante des Sortierens ist, dass Felder am Rand des Spielfeldes zuerst betrachtet werden. Züge in der Mitte des Spielfeldes landen auch in der Mitte der Liste, da diese Züge potentiell besser bewertet werden wird auch der Spielbaum nicht sehr stark beschnitten. Vorteilhaft ist die einfache und schnelle Berechnung der Liste. Dieses Verfahren dient als Referenz um die tatsächliche Ersparnis anderer Verfahren bestimmen zu können Verfahren 2 Im Unterschied zum ersten Verfahren, wird das Array der Spielfelder vier mal durchlaufen. Mit jeden Durchlauf werden nur die Züge mit einem bestimmten Steintyp aufgenommen. Beispielsweise werden am Anfang der Liste alle Züge mit Startsteinen aufgenommen, dann Züge mit Wandsteinen, gefolgt von Zügen mit Kreuzungen und am Ende der Liste stehen alle Züge mit normalen Wegsteinen. Es wurden verschiedene Versionen implementiert dabei ist die Reihenfolge der einzelnen Steintypen immer unterschiedlich um bei der Optimierung die Reihenfolge mit der größten Ersparnis bestimmen zu können. Wie auch bei der ersten Variante werden sich Züge in der Mitte des Spielfeldes auch in der Mitte der Liste befinden. Dadurch wird auch hier der Spielbaum nicht sehr stark beschnitten. Die Züge werden besser unterteilt, dadurch können potentiell gute Züge leichter an den Anfang der Liste gebracht werden. Die Berechnung ist immer noch sehr einfach und der Aufwand ist immer noch sehr gering auch wenn das Array der Felder jetzt viermal durchlaufen werden muss. 1 Dies gilt nicht für den eigentlichen MiniMax, die hier entwickelte Version bricht aber nach einer gewissen Anzahl von Bewertungen ab. 2 Genau betrachtet wird keine Liste mit den möglichen Zügen sortiert sondern die Züge werden in einer bestimmten Reihenfolge in die Liste aufgenommen sodass eine sortierte Liste entsteht. 9

13 3.5.3 Verfahren 3 Bei diesem Verfahren werden Züge nach der Position der Felder auf dem Spielfeld berechnet. Am Anfang der Liste sind Züge die sich in der Mitte des Feldes befinden. Am Ende der Liste stehen Züge am Rand des Spielfeldes. Zwischen den einzelnen Steintypen wird nicht unterschieden. Vorteilhaft ist, dass Züge mit einer potentiell besseren Bewertung am Anfang der Liste zu finden sind. Die Berechnung ist ebenfalls sehr einfach und ist nicht aufwendiger als die Berechnung der ersten Variante. Problematisch könnte die fehlende Unterscheidung der Steintypen sein. Ebenfalls problematisch könnte es sein, wenn sich das Spielgeschehen an den Rand des Spielfeldes verlagert hat. Dann werden die potentiell guten Züge am Ende der Liste sein wodurch die Beschneidung des Spielbaumes stark verringert wird Verfahren 4 Dieses Verfahren ist eine Mischung aus dem zweiten und dritten Verfahren. Die Züge werden nach der Art des Steines unterschieden, die Reihenfolge wird später nach der Optimierung des zweiten Verfahrens festgelegt. Züge mit Startsteinen werden von der Mitte ausgehend in die Liste aufgenommen. Kreuzungen und normale Wegsteine werden ohne Berücksichtigung der Position des Feldes aufgenommen. Es wird wieder einfach das Array der Spielfelder durchlaufen, da diese Steine nur auf wenige Felder gelegt werden können. Züge mit Wandsteinen werden nicht alle in die Liste aufgenommen. Wird ein Wandstein gelegt bringt es am meisten, wenn er neben einem Wegende des Gegners gelegt wird um diesen besser einschränken zu können. Andere Züge mit Wandsteinen sind meist schlechter und werden daher nicht aufgenommen um die Verzweigung des Spielbaumes zu verkleinern. Die Vorteile des zweiten und des dritten Verfahrens werden kombiniert. Zum einen werden Züge nach der Position der Felder und zum anderen nach der Art des Steines unterschieden. Durch diese Unterscheidung kann eine feinere Sortierung erfolgen und die Ersparnis beim MiniMax kann eventuell vergrößert werden. Der Aufwand von diesem Verfahren ist in etwa so groß wie der des zweiten Verfahrens, auch hier muss das Array der Felder vier mal durchlaufen werden. Das einige Züge mit Wandsteinen nicht aufgenommen werden kann sich als vorteilhaft und problematisch zugleich erweisen. Durch die kürzere Liste mit den möglichen Zügen kann der Spielbaum weiter aufgebaut werden ohne dass der Rechenaufwand größer wird. Andererseits wird möglicherweise der beste Zug nicht mit in die Liste aufgenommen und somit auch nicht ausgeführt. Eine genaue Untersuchung, ob die Ersparnis an Rechenaufwand das Risiko den besten Zug nicht mit in die Liste aufgenommen zuhaben aufwiegt, muss durch geführt werden Verfahren 5 Ein ebenfalls einfaches Verfahren, ist es die Züge nach den Abständen zu den Wegenden der Spieler zu sortieren. Dabei werden zuerst die Wegenden beider Spieler bestimmt, es erfolgt später keine Unterscheidung mehr welches Wegende zu welchem Spieler gehört. Von diesen Wegenden aus werden die Züge in die Liste aufgenommen. Am Anfang der Liste stehen die Züge mit den geringsten Abständen zu den Wegenden. Am Ende der Liste stehen die Züge mit den größten Abständen. Züge mit Wandsteinen werden nur in die Liste aufgenommen, wenn sie neben einem Wegende liegen. Vorteilhaft ist, dass die Züge am Anfang der Liste potentiell kritische Situationen für den Gegner aufbauen oder eigene kritische Situationen verhindern. Problematisch könnte sein, dass viele Züge mit Startsteinen am Ende der Liste stehen. Diese Züge können aber möglicherweise zu den besseren Zügen zählen, und somit wird der Spielbaum eventuell nicht ausreichend beschnitten. Sind alle Startsteine gelegt, kann diese Methode des Sortierens sehr gut sein. Auch hier besteht ein gewisses Risiko, das der Beste Zug nicht in die Liste aufgenommen wird Verfahren 6 Das sechste Verfahren betrachtet nur Felder, die noch von beiden Spielern erreicht werden können. Felder die nur noch von einem Spieler erreicht werden können werden für das Endspiel aufgehoben. Ein Feld gilt für einen Spieler als nicht mehr erreichbar, wenn er keine Startsteine mehr übrig hat und das Feld nicht durch das Legen von normalen Wegsteinen oder Kreuzungen erreichbar ist. Hat der Spieler noch Wandsteine übrig kann er diese theoretisch noch auf ein solches Feld legen. Das wird aber vernachlässigt, damit ein Spieler nicht bis zum Schluss des Spieles einen solchen Stein aufhebt. Ein solches Verhalten würde die Liste möglicher Züge verlängern und einen tieferen Spielbaum verhindern. Ist die Liste der relevanten Felder erstellt wird diese mehrere Male abgearbeitet. In der folgenden Liste sind die Arbeitsschritte der einzelnen Durchläufe beschrieben. Eigene kritische Situationen werden bestimmt und Züge, die diese aufheben in die Liste aufgenommen. 10

14 Gegnerische kritische Situationen werden bestimmt und Züge, die diese ausnutzen werden in die Liste aufgenommen. Züge mit Startsteinen werden in die Liste aufgenommen, dabei werden diese nach der Position der Felder auf den Spielfeld sortiert. Felder in der Mitte des Spielfeldes zuerst und Felder am Rand des Spielfeldes zum Schluss. Ist es möglich den Gegner mit einem normalen Wegstein in eine kritische Situation zu bringen werden diese Züge aufgenommen. Züge mit Wandsteinen die an die Wegenden des Gegners grenzen werden in die Liste aufgenommen. Zum Schluss werden alle Züge mit normalen Wegsteinen und Kreuzungen aufgenommen, die noch nicht in der Liste sind. Bei diesem Verfahren wird unter relativ großem Aufwand die Liste möglicher Züge berechnet. Dadurch soll eine möglichst große Einsparung bei dem Rechenaufwand des MiniMax erzielt werden. Die Reihenfolge, in der die Züge in die Liste aufgenommen werden wird eventuell nach der Optimierung der Bewertungsfunktion geändert um den Rechenaufwand des MiniMax zu minimieren. Nach dieser Optimierung wird überprüft, ob der zusätzliche Aufwand des Verfahrens gegenüber den Einsparungen beim MiniMax klein sind. Es muss auch überprüft werden ob es ein Problem ist, das viele Züge nicht mit in die Liste aufgenommen werden. Es wird später noch ein Sortierverfahren getestet, welches dem Verfahren 6 entspricht, aber nicht alle Durchläufe abarbeitet wenn schon genug mögliche Züge gefunden worden sind. 3.6 Weitere Optimierungen Davon ausgehend, dass sich in einer sortierten Liste der möglichen Züge die besten Züge immer am Anfang stehen und die schlechtesten immer am Ende können weitere Tests zur Reduzierung des Rechenaufwandes durchgeführt werden. Ob und nach wie vielen Einträgen die Liste abgeschnitten wird, wird nach einer statistischen Untersuchung im Kapitel Optimierungen entschieden. 11

15 4 Spielphasen Jedes Genitrispiel kann in unterschiedliche Phasen eingeteilt werden. Die Unterscheidung in verschiedene Phasen bringt verschiedene Vorteile. Beispielsweise muss der Spielbaum nicht so tief aufgebaut werden oder es kann eine Entscheidung für einen Spielzug ohne Baum getroffen werden. Auch die Bewertungsfunktion kann eventuell stark vereinfacht werden oder aber für die einzelnen Phasen angepasst werden um bessere Spielergebnisse zu erzielen. Ein weiterer wichtiger Punkt der für die Unterteilung in verschiedene Spielphasen spricht ist, dass ein besseres Zeitmanagement betrieben werden kann. Können in bestimmten Phasen mehrere Betrachtungen weg gelassen werden so können dank der resultierenden Zeitersparnis andere Dinge genauer betrachtet werden oder beispielsweise der Spielbaum tiefer aufgebaut werden, ohne dass ein maximales Zeitlimit für einen Zug überschritten wird. Durch ein besseres Zeitmanagement kann somit auch das Spielergebnis verbessert werden. 4.1 Eröffnung Die Eröffnung ist dadurch gekennzeichnet, dass jeder Spieler mindestens noch einen Startstein übrig hat. Zu Beginn des Spiels stehen jeden Spieler viele mögliche Züge zur Auswahl. Startsteine können auf fast jedes freies Feld in drei verschiedene Richtungen gelegt werden und auch Wandsteine können auf fast jedes freies Feld gelegt werden. Der Spielbaum hat dadurch einen sehr großen Verzweigungsgrad und der MiniMax muss anhand eines sehr flachen Baumes eine Entscheidung treffen. Dies kostet viel Rechenzeit und bringt keine sehr guten Ergebnisse, auch Alpha-Beta-Pruning mit gut sortierten Zügen bringt kaum Vorteile, da der Suchbaum so flach ist. Die künstliche Intelligenz braucht eine gute Alternative. In diesem Fall bekommt die KI ein paar gute Aktionszüge und Reaktionszüge und muss sich nur noch zwischen diesen Entscheiden. Der erste Zug des ersten Spielers ist sehr einfach zu berechnen, die KI führt zufällig einen der mitgebrachten Aktionszüge aus. Es muss keine Betrachtung der Spielsituation erfolgen. Auch der erste Zug des zweiten Spielers kann oft sehr einfach berechnet werden, ist die Position des ersten Startsteins vom ersten Spieler zentral gewählt, kann der eigene Startstein gut dazu verwendet werden um den Gegner einzuschränken. Dazu kommen nur zwei Felder mit jeweils zwei möglichen Zügen in Frage. Die dritte Möglichkeit pro Feld, beide Wegenden zeigen auf das selbe Feld, kann vernachlässigt werden, da es kein guter Zug ist. Hat der erste Spieler seinen ersten Startstein an den Rand gelegt wird überprüft, ob sich der Weg mit einen Stein blockieren lässt. Ist dies möglich wird der eigene Startstein dazu verwendet den Gegner den Weg zu versperren. Wenn es nicht möglich ist, wird der eigene Startstein möglichst zentral gelegt. Alle weiteren Züge während der Eröffnung werden nach folgenden Schema ausgewählt. Überprüfen ob eines der eigenen Wegenden blockiert werden kann. Ist dies der Fall wird durch Legen eines normalen Steines die mögliche Blockade verhindert. Sind mehrere Blockaden möglich wird mit Hilfe der Bewertungsfunktion untersucht welcher Zug ausgeführt wird, dabei werden nur Züge untersucht, die eine Blockade verhindern. Überprüfen ob eines der gegnerischen Wegenden blockiert werden kann. Ist dies möglich wird überprüft mit welchen Stein der gegnerische Weg blockiert werden kann. Dabei wird die folgende Reihenfolge verwendet: normale Steine Wandsteine Startsteine Sobald festgestellt wird dass der Weg mit einem dieser Steine blockiert werden kann wird er gelegt. Die einzige Ausnahme bilden die Wandsteine, sie werden nur gelegt, wenn die Anzahl eigener Wandsteine größer ist als die Anzahl der gegnerischen Startsteine. Durch dieses Vorgehen ist der Gegner immer gezwungen seine Startsteine in freie Bereiche zu legen, da sie sonst sofort blockiert werden können. Der Gegner ist somit gezwungen seine Startsteine schneller zu legen und er verliert einen möglichen Vorteil durch sparen dieser Steine. Auch Verzweigungssteine werden nicht zum blockieren von Wegen verwendet, da einer der eigenen entstehenden Wege sofort blockiert wäre. Sind mehrere Blockaden möglich wird überprüft welche Steine für diese Blockaden benötigt werden. Blockaden mit einfachen Steinen werden bevorzugt ausgeführt. Sind mehrere Blockaden mit den selben Steintyp möglich wird die Bewertungsfunktion verwendet um eine Entscheidung zu treffen. 12

16 Drohen keine Blockaden durch den Gegner und kann der Gegner nicht blockiert werden, werden alle möglichen Züge des Spielers untersucht. Der Spielbaum wird allerdings nur zur Tiefe 1 aufgebaut und der vielversprechendste Zug wird ausgeführt. Dabei werden alle Züge mit Hilfe der Bewertungsfunktion untersucht. Ziel der Startphase ist es eine möglichst gute Verteilung der eigenen Wegenden über das Spielfeld auf zu bauen und den Gegner so weit einzuschränken, dass dieser möglichst wenige offene Wege hat. 4.2 Mittelspiel Sobald mindestens einer der Spieler keine Startsteine mehr übrig hat beginnt das Mittelspiel. In dieser Phase werden Zugentscheidungen ausschließlich mittels MiniMax und der Bewertungsfunktion getroffen. Auch hier gibt es eine Priorisierung bestimmter Züge, welche eigene Blockaden verhindern oder den Gegner blockieren. Allerdings erfolgt diese Priorisierung über das sortieren der Züge. Der Spielbaum besitzt in dieser Phase eine variable Tiefe. Zu Beginn der Phase hat ein Spieler noch mindestens einen Startstein und eventuell hat jeder Spieler auch noch Wandsteine übrig. Dadurch gibt es immer noch viele mögliche Züge, die betrachtet werden müssen und der Spielbaum hat somit noch einen sehr hohen Verzweigungsgrad. Um den Rechenaufwand dennoch so gering wie möglich zu halten werden nur zwei Halbzüge betrachtet. Dabei wird die Anzahl der Bewertungen ermittelt, ist diese geringer als ein bestimmter Schwellwert wird die Anzahl der betrachteten Halbzüge erhöht. Überschreitet die Anzahl der Bewertungen während des MiniMax einen Schwellwert wird der MiniMax abgebrochen und der beste bisher betrachtete Zug wird ausgeführt. Das Mittelspiel dauert bis es nur noch Felder gibt die von maximal einem Spieler erreicht werden können. Ziel dieser Phase ist es möglichst viele Wege für das Endspiel offen zu halten und den Gegner so weit zu beeinflussen, dass dieser möglichst wenige Felder hat auf die man selber nicht mehr zugreifen kann. 4.3 Endspiel Hat das Endspiel begonnen gibt es keine Felder mehr, die von beiden Spielern erreicht werden können. Die Berechnungen können nun stark vereinfacht werden, beispielsweise müssen die Züge des Gegners nicht mehr betrachtet werden und es ist keine Bewertungsfunktion mehr nötig. Der Spielbaum kann komplett aufgebaut werden, der beste Zug ist somit der, der die größt mögliche Tiefe im Spielbaum erlaubt. Ziel dieser Phase ist es die freien Felder auf die der Gegner nicht mehr zugreifen kann möglichst effizient mit den verbleibenden Steinen aufzufüllen. Ein mögliches Problem bei dieser Herangehensweise besteht darin, dass der Gegenspieler einen frei setzbaren Stein, wie einen Start- oder einen Wandstein, bis zum Schluss aufhebt und somit das Endspiel herauszögert. Dadurch wird die einfachere Berechnung und der tiefere Spielbaum verhindert. Um dies zu vermeiden beginnt das Endspiel, wenn mindestens ein Spieler noch einen frei setzbaren Stein hat aber es keine Felder mehr gibt, die durch legen von Wegsteinen von beiden Spielern erreicht werden können. Um zu verhindern, das der Gegenspieler mit einem freisetzbaren Stein große Teile der übrigen Felder abgrenzt geht die künstliche Intelligenz während des Endspiels nach folgenden Schema vor um einen Zug auszuwählen: Eine Liste die alle eigenen Wegenden beinhaltet wird erstellt Für jedes Wegende wird die maximale Anzahl an erreichbaren freien Feldern berechnet. Der Algorithmus arbeit nur auf den Feldern weiter, die von den Wegende mit der größten Anzahl an freien erreichbaren Feldern erreichbar sind. Ist die Anzahl der erreichbaren Felder zu groß wird auf den MiniMax aus des Mittelspiels zurück gegriffen, da ein vollständig aufgebauter Spielbaum sonst zu viel Rechenaufwand bedeutet. Es wird ein Max-Algorithmus durchgeführt, der mit einer rekursiven Berechnung den Besten Zug auf den berechneten Feldern auswählt. max(liste der berechneten Felder){ Berechnung aller möglichen Züge() Wenn keine Züge vorhanden sind gib 1 zurück Solange Züge vorhanden sind: simuliere einen Zug und führe max(liste der berechneten Felder) aus gib größten Rückgabewert von max() + 1 zurück} Der Zug mit den größten Maxwert wird ausgeführt. 13

17 5 Bewertungsfunktion Die Bewertungsfunktion spielt beim Ausführen des MiniMax eine zentrale Rolle. Sie bestimmt welche Spielsituation gut und welche schlecht ist und ist somit maßgeblich für den Erfolg oder Misserfolg der künstlichen Intelligenz. Die Bewertungsfunktionen in dieser Arbeit betrachten verschiedene Aspekte einer Spielsituation, bewerten diese und gewichten die Bewertung. Die Gewichte für die einzelnen Aspekte der Bewertung können separat angepasst werden um diese später zu optimieren. Durch die geteilte Bewertung einer Spielsituation ist es möglich die Bewertungsfunktionen leicht zu erweitern oder zu verkleinern (Bishop - S. 138). Der Aufbau der Bewertungsfunktion ist somit eine linear Kombination nach folgenden Schema: σ 0 b 0 + σ 1 b σ n b n Wobei n die Anzahl der betrachteten Aspekte während der Bewertung, b x das Ergebnis der Bewertung des Aspekts x und σ x das Gewicht mit dem die Bewertung b x versehen ist darstellt. (Bishop - S. 138) Das Problem bei einer linear Kombination ist, dass durch das Addieren der einzelnen Ergebnisse angenommen wird, dass alle Aspekte der Bewertungsfunktion von einander unabhängig sind. Es muss also eine Überprüfung der Unabhängig vorgenommen werden. Kann die Unabhängigkeit bewiesen werden, ist eine linear Kombination eine gute Möglichkeit die Bewertungsfunktion aufzubauen. Kann die Unabhängigkeit nicht bewiesen werden sollte von einer Abhängigkeit ausgegangen werden, in diesem Fall sollte eine nichtlineare Bewertungsfunktion entwickelt werden. Das Problem dabei ist, dass die Gewichte für die einzelnen Teilbewertungen schwieriger zu finden sind und untersucht werden muss welche Teilbewertungen von einander abhängig sind um diese mit einander auf nicht lineare Weise mit einander zu kombinieren.(russell, Norvig- S. 224) Obwohl es Abhängigkeiten zwischen den einzelnen Aspekten gibt wird in dieser Arbeit dennoch eine linear Kombination der einzelnen Teilbewertungen als Bewertungsfunktion verwendet. Dadurch entsteht der Nachteil, dass die Bewertung verzehrt werden kann. Wird beispielsweise ein Startstein zu Beginn des Spiels gelegt kann das einen größeren Vorteil bringen als zu einem späteren Zeitpunkt, da noch mehr Felder auf direkten Weg erreichbar sind. Der Wert eines Startsteines ändert also seinen Wert im Laufe eines Spiels. Neben diesen Nachteil bleiben aber wichtige Vorteile bestehen. So muss keine Untersuchung statt finden welche Aspekte von einander abhängig sind. Eine solche Untersuchung ist sehr aufwendig und ist nur gewinnbringend wenn anschließend genau bestimmt werden kann auf welche Weise die einzelnen Teilbewertungen mit einander kombiniert werden müssen. Werden die Teilbewertungen nach einer solchen Untersuchung nicht optimal mit einander kombiniert wird das Ergebnis einer Bewertung ebenfalls verzerrt. Nicht nur dass die aufwendige Untersuchung auf Unabhängigkeit und das Entwickeln einer optimalen Kombination der Teilbewertungen entfällt, es ist anschließend auch einfacher die einzelnen Gewichte anzupassen. Auch wenn durch eine linear kombinierte Bewertungsfunktion das Ergebnis einer Bewertung verzerren kann, sollte nach der Anpassung der einzelnen sigma ein gutes Spielverhalten möglich sein. Viele Bewertungsfunktionen für Schach und andere Spiele sind ebenfalls linear kombiniert, obwohl eine Verzerrung der Bewertung resultiert und bringen dennoch sehr gute Spielergebnisse. Erst in den letzten Jahren wurden für populäre Spiele auch nicht linear kombinierte Bewertungsfunktionen entwickelt. 5.1 Die einzelnen Bewertungsfunktionen Im Folgenden werden die einzelnen Versionen der Bewertungsfunktion beschrieben. Eine Version betrachtet auch alle Aspekte der Vorgängerversion, deswegen werden immer nur die Unterschiede zur Vorgängerversion beschrieben nicht die gesamte Bewertungsfunktion Version 0 Diese Version der Bewertungsfunktion liegt nicht mehr implementiert vor, da sie nur zu Testzwecken entwickelt wurde. Sie soll nicht in den Vergleich im Kapitel Optimierungen mit eingehen. Da aber alle anderen Versionen darauf aufbauen wird sie hier mit genannt. In dieser einfachen Version werden die Summen der Abstände freier Felder zu den eigenen und den gegnerischen Wegenden berechnet und zu einander ins Verhältnis gesetzt. 14

18 eigenabstand i = Abstand des Feldes i zum nächst gelegenen eigenen Wegende gegenabstand i = Abstand des Feldes i zum nächst gelegenen gegnerischen Wegende 96 eigenabstand i Ergebnis 0 = 1 i=1 96 σ 0 gegenabstand i Version 1 i=1 Da bei der Version 0 Züge mit verschiedenen Steinen auf das selbe Feld zu selben Bewertungen führen konnte wurde sie erweitert um ein Verschwenden von Kreuzungen und Startsteinen zu verhindern. Bei Version 0 wären beide Züge gleich bewertet worden. Nun wird der Zug mit den einfachen Wegstein besser bewertet. Im Gegensatz zur Version 0 werden in dieser Version auch die Anzahl der restlichen Kreuzungen, Start- und Wandsteine bewertet. Ergebnis 1 = Ergebnis 0 Anzahl der verbleibenden Anfangssteine Anzahl der verbleibenden Kreuzungen + σ Anzahl der verbleibenden Blockadesteine + σ 3 3 σ Version 2 Bisher wurden die Anstände der freien Felder zu den Wegenden einfach summiert. Dies bringt jedoch den Nachteil, dass wenige lange Strecken genau so bewertet werden wie mehrere kurze Strecken. Mehrere kurze Strecken geben dem Spieler aber mehr Möglichkeiten diese gut auszunutzen ohne vom Gegenspieler gestört zu werden. summierte Abstände: 21 quadrierte summierte Abstände: 81 summierte Abstände: 21 quadrierte summierte Abstände: 61 Nach der neuen Version wird die Situation mit mehreren kurzen Strecken besser bewertet. Um eine bessere Bewertung durchzuführen und lange Strecken mit schlechteren Bewertungen zu versehen werden die Abstände quadriert, bevor diese summiert werden. Ergebnis 0 = 1 96 i=1 96 eigenabstand 2 i gegenabstand 2 i i=1 σ 0 15

19 5.1.4 Version 3 Diese Version hat nur eine leichte Änderung, es werden im Gegensatz zur Vorgängerversion die Anzahl der Wegenden beider Spieler berechnet. Diese werden ins Verhältnis gesetzt und gewichtet. Alternativ könnte die Anzahl der eigenen Wegenden und die Anzahl der gegnerischen Wegenden separat bewertet werden. Das hätte zur Folge, dass die Bewertung der Spielsituation genauer wird. Aber die Optimierung der Bewertungsfunktion wird aufwendiger, deswegen wird auf eine getrennte Betrachtung verzichtet. Ergebnis 2 = Ergebnis 1 Anzahl eigener Wegenden + Anzahl gegnerischer Wegenden σ Version 4 Da es nach der Definition des Endspiels nur noch Felder gibt, die von maximal einem Spieler erreicht werden können, ist es somit schon während des Mittelspiels wichtig welche Felder noch erreicht werden können bzw. nicht erreicht werden können. Da erreichbare Felder schon betrachtet werden, wird hier die Anzahl der nicht erreichbaren freien Felder betrachtet. Hier könnte ein besonderes Augenmerk für ein offensives Spielverhalten liegen, indem man versucht möglichst viele Felder für den Gegner unerreichbar zu machen. { 1, wenn das Feld i frei und nicht erreichbar ist f reeeigen(i) = 0, sonst { 1, wenn das Feld i frei und vom Gegner nicht erreichbar ist f reegegen(i) = 0, sonst Ergebnis 3 = Ergebnis 2 96 f reeeigen(i) + 1 i=1 96 σ 5 f reegegen(i) i= Version 5 Ein weiterer wichtiger Punkt den es zu untersuchen gilt ist das Vorhanden sein von kritischen Situationen. Während der Eröffnung wird sehr großen Wert auf das Erkennen und Nutzen von kritischen Situationen gelegt. Deshalb sollte eine solche Untersuchung auch während des Mittelspiels erfolgen. Die Bewertung der kritischen Situationen erfolgt getrennt um das Spielverhalten der künstlichen Intelligenz besser einstellen zu können. Wird die Untersuchung auf eigenen kritische Situationen stärker bewertet kann das ein defensives Spielverhalten bewirken. Wird das Hauptaugenmerk auf das Erzeugen und Ausnutzen gegnerischer kritischer Situationen gelegt, wird das ein offensiveres Spielverhalten zur Folge haben. Ergebnis 4 = Ergebnis 3 9 Anzahl eigener kritischer Situationen + σ 6 9 Ergebnis 5 = Ergebnis ( Anzahl gegnerischer kritischer Situationen 9 ) σ 7 16

Praktikum Algorithmen-Entwurf (Teil 7)

Praktikum Algorithmen-Entwurf (Teil 7) Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 1 1 Vier gewinnt Die Spielregeln von Vier Gewinnt sind sehr einfach: Das Spielfeld besteht aus 7 Spalten und 6 Reihen. Jeder Spieler erhält zu Beginn des

Mehr

Der Alpha-Beta-Algorithmus

Der Alpha-Beta-Algorithmus Der Alpha-Beta-Algorithmus Maria Hartmann 19. Mai 2017 1 Einführung Wir wollen für bestimmte Spiele algorithmisch die optimale Spielstrategie finden, also die Strategie, die für den betrachteten Spieler

Mehr

2. Spiele. Arten von Spielen. Kombinatorik. Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden.

2. Spiele. Arten von Spielen. Kombinatorik. Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden. . Spiele Arten von Spielen. Spiele. Spiele Arten von Spielen Kombinatorik Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden. Kombinatorische Spiele als Suchproblem

Mehr

Grundlagen des Spiels

Grundlagen des Spiels Mühle gehört zu den absoluten Klassikern der Strategie-Brettspiele. In der Schweiz auch Nünistei (bedeutet: Neun Steine ) genannt, gibt es wohl kaum einen Haushalt mit Kindern, indem sich dieses Brettspiel

Mehr

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Optimierungsprobleme

Mehr

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20 Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:

Mehr

Bedienungsanleitung. Stefan Feldmann

Bedienungsanleitung. Stefan Feldmann Bedienungsanleitung Stefan Feldmann Bedienungsanleitung für den einfachen und kompakten Umgang mit dem unter Borland Delphi 7 erstellten Programm Mühle, März 2007. S t e f a n F e l d m a n n 1 4. 0 3.

Mehr

6. Spiele Arten von Spielen. 6. Spiele. Effizienzverbesserung durch Beschneidung des Suchraums

6. Spiele Arten von Spielen. 6. Spiele. Effizienzverbesserung durch Beschneidung des Suchraums 6. Spiele Arten von Spielen 6. Spiele Kombinatorische Spiele als Suchproblem Wie berechnet man eine gute Entscheidung? Effizienzverbesserung durch Beschneidung des Suchraums Spiele mit Zufallselement Maschinelles

Mehr

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2) Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen PD Dr. David Sabel SoSe 24 Ziel dieses Abschnitts Intelligenter Agent für Zweipersonenspiele Beispiele: Schach, Dame, Mühle,...

Mehr

Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen

Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Dr. David Sabel WS 2012/13 Stand der Folien: 5. November 2012 Zwei-Spieler-Spiele Ziel dieses Abschnitts Intelligenter Agent für

Mehr

Einführung in Heuristische Suche

Einführung in Heuristische Suche Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?

Mehr

Thinking Machine. Idee. Die Thinking Machine Visualisierung versucht, die Denkprozesse eines Schachcomputers sichtbar zu machen

Thinking Machine. Idee. Die Thinking Machine Visualisierung versucht, die Denkprozesse eines Schachcomputers sichtbar zu machen Thinking Machine (http://www.turbulence.org/spotlight/thinking/) Idee Die Thinking Machine Visualisierung versucht, die Denkprozesse eines Schachcomputers sichtbar zu machen Sie wurde von Martin Wattenberg

Mehr

TUD Computer Poker Challenge

TUD Computer Poker Challenge TUD Computer Poker Challenge The Challenge of Poker Björn Heidenreich 31. März 2008 The Challenge of Poker Björn Heidenreich 1 Anforderungen an einen guten Poker-Spieler Hand Strength Hand Potential Bluffing

Mehr

Android will doch nur spielen. Ein Spieleframework stellt sich vor

Android will doch nur spielen. Ein Spieleframework stellt sich vor Android will doch nur spielen Ein Spieleframework stellt sich vor 1 Agenda Motivation Eine allgemeine Spieleschnittstelle Reguläre Brettspiele TicTacToe Visualisierung und Steuerung Spieleagenten Weitere

Mehr

Der Bestimmtheitssatz

Der Bestimmtheitssatz 2. Spielbäume und Intelligente Spiele Der Minimax-Algorithmus Der Bestimmtheitssatz Satz 2.1. Gegeben sei ein Spiel, das die folgenden Eigenschaften hat: 1. Das Spiel wird von zwei Personen gespielt. 2.

Mehr

Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen

Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Prof. Dr. Manfred Schmidt-Schauß SoSe 2016 Stand der Folien: 12. Mai 2016 Zwei-Spieler-Spiele Ziel dieses Abschnitts Intelligenter

Mehr

Eine kleine Schachfibel

Eine kleine Schachfibel Eine kleine Schachfibel Nenariyon Narduch Querlar 19 n. Hilgorad 1 Inhaltsverzeichnis 1 Prolog 3 2 Vom Schachspiel und seinen Regeln 3 2.1 Erlaubte Züge und anderes Wissenwertes................ 4 2.1.1

Mehr

Samuel's Checkers Program

Samuel's Checkers Program Samuel's Checkers Program Seminar: Knowledge Engineering und Lernen in Spielen 29.06.2004 Ge Hyun Nam Überblick Einleitung Basis Dame-Programm Maschinelles Lernen Auswendiglernen Verallgemeinerndes Lernen

Mehr

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2) Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Prof. Dr. Manfred Schmidt-Schauß Ziel dieses Abschnitts Intelligenter Agent für Zweipersonenspiele Beispiele: Schach, Dame, Mühle,...

Mehr

Berühmte Informatiker

Berühmte Informatiker Berühmte Informatiker Teil 12: Alonzo Church 1903-1995 John McCarthy 1927 - * 14.06.1903 in Washington 11.08.1995 in Hudson Alonzo Church 1924 Bachelor an der Princeton University 1927 Doktorarbeit an

Mehr

6in1 Deluxe Spiele-Koffer. Spielanleitung

6in1 Deluxe Spiele-Koffer. Spielanleitung 6in1 Deluxe Spiele-Koffer Spielanleitung 1 ihr neuer spielekoffer Sehr gehrte Kunden, wir danken Ihnen für den Kauf dieses Spiele- Koffers. Mit diesem eleganten Koffer sind Sie für Spiele-Abende und lange

Mehr

Intelligente Systeme

Intelligente Systeme Intelligente Systeme Spiele Prof. Dr. R. Kruse C. Braune {rudolf.kruse,christian,braune}@ovgu.de Institut für Intelligente Kooperierende Systeme Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30 Geometrie 2 Julian Fischer 6.7.2009 Julian Fischer Geometrie 2 6.7.2009 1 / 30 Themen 1 Bereichssuche und kd-bäume 1 Bereichssuche 2 kd-bäume 2 Divide and Conquer 1 Closest pair 2 Beispiel: Points (IOI

Mehr

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.813 Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS 2014 22. Oktober

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

Mehr

TD-Gammon. Michael Zilske

TD-Gammon. Michael Zilske TD-Gammon Michael Zilske zilske@inf.fu-berlin.de TD-Gammon Ein Backgammon-Spieler von Gerald Tesauro (Erste Version: 1991) TD-Gammon Ein Neuronales Netz, das immer wieder gegen sich selbst spielt und dadurch

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Kulami. Fabio Valdés. LG Datenbanksysteme für neue Anwendungen

Kulami. Fabio Valdés. LG Datenbanksysteme für neue Anwendungen Fakultät Fakultätfür fürmathematik Mathematikund undinformatik Informatik Kulami Fabio Valdés Einführung Kulami Problemstellung Anforderungen Details Folie 2 Spielregeln Ziel des Spiels Punktezählung Aufgabenstellung

Mehr

IR Seminar SoSe 2012 Martin Leinberger

IR Seminar SoSe 2012 Martin Leinberger IR Seminar SoSe 2012 Martin Leinberger Suchmaschinen stellen Ergebnisse häppchenweise dar Google: 10 Ergebnisse auf der ersten Seite Mehr Ergebnisse gibt es nur auf Nachfrage Nutzer geht selten auf zweite

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Erste Schritte um Schach zu lernen

Erste Schritte um Schach zu lernen Erste Schritte um Schach zu lernen Erstellt durch wikihow Übersetzungen: Schach ist ein sehr beliebtes Spiel und weithin als eines der ältesten noch gespielten Spiele anerkannt. Obwohl die Regeln von Schach

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

Das Trojanische Spiel

Das Trojanische Spiel Spielanleitung: Das Trojanische Spiel Schach der neuen Generation Schnell, abwechslungsreich und immer voller Spannung, lässt das trojanische Spiel kaum mehr ein Remis zu. Es eröffnet dem Schachspieler

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 11. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen

Mehr

Übersicht. 5. Spiele. I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden

Übersicht. 5. Spiele. I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres Wissen und Schließen VI

Mehr

Wissensbasierte Suche

Wissensbasierte Suche Wissensbasierte Suche Jürgen Dorn Inhalt uninformierte Suche wissensbasierte Suche A* und IDA* Algorithmus Suche in Und/Oder-Graphen Jürgen Dorn 2003 Wissensbasierte Suche 1 Suche Suche in (expliziten

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Kombinatorische Spiele mit Zufallselementen

Kombinatorische Spiele mit Zufallselementen Kombinatorische Spiele mit Zufallselementen Die Realität ist nicht so streng determiniert wie rein kombinatorische Spiele. In vielen Situationen spielt der Zufall (Risko) eine nicht zu vernachlässigende

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Backtracking mit Heuristiken

Backtracking mit Heuristiken Backtracking mit Heuristiken Thomas Dübendorfer thomas@duebendorfer.ch 14. September 2000 Inhalt und Ablauf 1. Einführendes Beispiel (4 min) 2. Konzepte zu Backtracking (8 min) 3. Eingesperrt im Labyrinth

Mehr

Knowledge Engeneering und Lernen in Spielen

Knowledge Engeneering und Lernen in Spielen Knowledge Engeneering und Lernen in Spielen Anomalies of game tree search Tobias Ludwig Übersicht Motivation Übersicht bisheriger Studien Berechnungsmodell KRK Endspiel Evaluationsfunktion MiniMax Algorithmus

Mehr

DEUTSCH. Der Heilige Hügel. IRLANDS KÖNIGLICHES BRETTSPIEL Spielstufe 1

DEUTSCH. Der Heilige Hügel. IRLANDS KÖNIGLICHES BRETTSPIEL Spielstufe 1 DEUTSCH 1 Der Heilige Hügel IRLANDS KÖNIGLICHES BRETTSPIEL Spielstufe 1 EINLEITUNG Der Heilige Hügel ist eine andere Bezeichnung für den Hügel von Tara, die alte Hauptstadt Irlands Der Heilige Hügel ist

Mehr

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)

Zwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2) Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Prof. Dr. Manfred Schmidt-Schauß Ziel dieses Abschnitts Intelligenter Agent für Zweipersonenspiele Beispiele: Schach, Dame, Mühle,...

Mehr

DAP2-Klausur

DAP2-Klausur DAP2-Klausur 09.10.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik (inkl. angewandte Informatik)/ Lehramt Informatik/Informationstechnik/ Physik/Mathe/Statistik/Sonstiges: Bitte

Mehr

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler)

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Wintersemester 16/17 (Kleine) Einführung zu Künstlicher Intelligenz in Brettspielen Patrick Schäfer patrick.schaefer@hu-berlin.de

Mehr

Abzählen und Konstruktion der Strukturisomere von Alkanen, Alkenen und Alkinen

Abzählen und Konstruktion der Strukturisomere von Alkanen, Alkenen und Alkinen Dokumentation zum Softwarepraktikum Abzählen und Konstruktion der Strukturisomere von Alkanen, Alkenen und Alkinen Bearbeitet von: Sabine Böhm Florian Häberlein Betreuer: Dr. Axel Kohnert Dipl.-math. Sascha

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Flüsse in Netzwerken

Flüsse in Netzwerken Proseminar Theoretische Informatik, Prof. Wolfgang Mulzer, SS 17 Flüsse in Netzwerken Zusammenfassung Gesa Behrends 24.06.2017 1 Einleitung Unterschiedliche technische Phänomene wie der Flüssigkeitsdurchfluss

Mehr

Spielanleitung für das Backgammon-Spiel mit freundlicher Genehmigung von

Spielanleitung für das Backgammon-Spiel mit freundlicher Genehmigung von Spielanleitung für das Backgammon-Spiel mit freundlicher Genehmigung von http://www.bkgm.com/rules/german/rules.html Obwohl Backgammon ein Würfelspiel ist, ist es ein Spiel, bei dem geistige Geschicklichkeit

Mehr

Mensch ärgere dich nicht!

Mensch ärgere dich nicht! Mensch ärgere dich nicht! Aufgabe Mensch ärgere dich nicht! Peer-To-Peer Verbindung OpenMPI Computer KI und Mensch Spieler 2-8 25.05.16 Jan Lietz, Matus Dobrotka 2 25.05.16 Jan Lietz, Matus Dobrotka 3

Mehr

Schach Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Schach Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de Schach Spielanleitung/Spielregeln Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de Inhalt Schach Spielregeln...1 Einleitung...2 Das Ziel des Spiels...3 Das Spielbrett...4 Züge...5 Das Schlagen von

Mehr

10. Übungsblatt zu Algorithmen I im SS 2010

10. Übungsblatt zu Algorithmen I im SS 2010 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php

Mehr

Heckmeck. Einleitung. Vorbereitung

Heckmeck. Einleitung. Vorbereitung Heckmeck Einleitung In dieser Aufgabe erforscht ihr, wie das Spiel Heckmeck aufgebaut ist. Ihr untersucht Wahrscheinlichkeiten und mögliche Spielverläufe und ihr verfolgt, durch welche Entscheidungen mit

Mehr

Copyright, Page 1 of 7 Heapsort

Copyright, Page 1 of 7 Heapsort www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl

Mehr

Effizienter Planaritätstest Vorlesung am

Effizienter Planaritätstest Vorlesung am Effizienter Planaritätstest Vorlesung am 23.04.2014 INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER Satz Gegebenen einen Graphen G = (V, E) mit n Kanten und m Knoten, kann in O(n + m) Zeit

Mehr

Kniffel-Agenten. Von Alexander Holtkamp

Kniffel-Agenten. Von Alexander Holtkamp Kniffel-Agenten Von Alexander Holtkamp Übersicht Grundregeln Vorteil der Monte Carlo -Methode Gliederung des Projekts Aufbau State - Action Kodierung von State - Action Optimierung Aussicht Grundregeln

Mehr

Das Problem des Handlungsreisenden

Das Problem des Handlungsreisenden Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr 4. Übung Abgabe bis 25.11.2016, 16:00 Uhr Aufgabe 4.1: Verklemmungsbedingungen a) Welche drei Bedingungen müssen gelten, damit es zu einer Verklemmung in einem parallelen System kommen kann? b) Nach welcher

Mehr

Einführung in die Informatik I Kapitel II.3: Sortieren

Einführung in die Informatik I Kapitel II.3: Sortieren 1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte Suche in Java Informierte Suchverfahren Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

Ein Seminarbericht von Johann Basnakowski

Ein Seminarbericht von Johann Basnakowski Ein Seminarbericht von Johann Basnakowski Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Name: Johann Basnakowski

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte Suche in Java Informierte Suchverfahren Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2008/2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln 8-Damen-Problem Gegeben: Schachbrett

Mehr

Lotto-Formel 49/80. Einbau von bisher sehr erfolgreichen oder vernachlässigten Lotto- Kombinationen in Ihr persönliches 49/80 er-system.

Lotto-Formel 49/80. Einbau von bisher sehr erfolgreichen oder vernachlässigten Lotto- Kombinationen in Ihr persönliches 49/80 er-system. Kapitel 2 Die Optimierung Einbau von bisher sehr erfolgreichen oder vernachlässigten Lotto- Kombinationen in Ihr persönliches 49/80 er-system. Unter den Lottospielern gibt es - grob aufgeteilt - zwei unterschiedliche

Mehr

Very simple methods for all pairs network flow analysis

Very simple methods for all pairs network flow analysis Very simple methods for all pairs network flow analysis obias Ludes 0.0.0. Einführung Um den maximalen Flusswert zwischen allen Knoten eines ungerichteten Graphen zu berechnen sind nach Gomory und Hu nur

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

Sudoku goes Classic. Spielmaterial und die gemeinsame DOMINARI - Regel. für 2 Spieler ab 8 Jahren

Sudoku goes Classic. Spielmaterial und die gemeinsame DOMINARI - Regel. für 2 Spieler ab 8 Jahren Sudoku goes Classic für 2 Spieler ab 8 Jahren Spielmaterial und die gemeinsame DOMINARI - Regel Die Spielfläche Die Spielfläche besteht aus 6x6 Feldern. 4 zusammen hängende Felder gleicher Farbe bilden

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Technische Universität München SoSe 2018 Fakultät für Informatik, I Juli 2018 Dr. Stefanie Demirci. Aufgabe 1 Sortieren mit Heap Sort

Technische Universität München SoSe 2018 Fakultät für Informatik, I Juli 2018 Dr. Stefanie Demirci. Aufgabe 1 Sortieren mit Heap Sort Name: Vorname: Matr. Nr.: Technische Universität München SoSe 2018 Fakultät für Informatik, I-16 4. Juli 2018 Dr. Stefanie Demirci Allgemeine Hinweise Musterklausur zu Algorithmen und Datenstrukturen Die

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Spielregeln für Schach

Spielregeln für Schach Gebrauchsartikel mit sozialer Herkunft B-Vertrieb GmbH Anerkannt gemeinnütziges Unternehmen gem. Art. 80 Abs. 1 lit. g und Art. 56 Bst. g DBG Lehnstrasse 90 l CH-9014 St.Gallen Tel. +41 (0)71 280 83 20

Mehr

Das Handbuch zu KReversi. Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura

Das Handbuch zu KReversi. Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura 2 Inhaltsverzeichnis 1 Einführung 5 2 Spielanleitung 6 3 Spielregeln, Spielstrategien und Tipps 7 3.1

Mehr

Jetzt wird es Zeit, das Spielfeld vorzubereiten. Auch wenn nur Karten existieren, gibt es ein Spielfeld, bestehend aus... nunja, Spielfeldkarten.

Jetzt wird es Zeit, das Spielfeld vorzubereiten. Auch wenn nur Karten existieren, gibt es ein Spielfeld, bestehend aus... nunja, Spielfeldkarten. Ein schnelles Kartenspiel mit Zügen. Liefert möglichst viele Waren zu den Fabriken. Plant vorsichtig, investiert weise. Sagt die Spielzüge der Mitspieler voraus und ihr werdet die meisten Güter auf dem

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 14. Mai

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

Mehr

Programmierung einer KI. SoPra 2017 Jenny Hotzkow

Programmierung einer KI. SoPra 2017 Jenny Hotzkow Programmierung einer KI SoPra 2017 Jenny Hotzkow Model View Controller Client KI Integration in die Softwarearchitektur (1) KI Integration in die Softwarearchitektur (2) Command-Pattern // Bestimmung möglicher

Mehr

Der Branching-Operator B

Der Branching-Operator B Branching 1 / 17 Der Branching-Operator B Unser Ziel: Löse das allgemeine Minimierungsproblem minimiere f (x), so dass Lösung(x). B zerlegt eine Menge von Lösungen in disjunkte Teilmengen. Die wiederholte

Mehr

Aufgabe 2 - Spiele mit Zyklen Gegeben sei folgendes einfache Spiel:

Aufgabe 2 - Spiele mit Zyklen Gegeben sei folgendes einfache Spiel: Theoretischer Teil Aufgabe 1 - Spielbaume Gegeben sei folgender Spielbaum: - Spiele und Lokale Suche Die Spielzustande sind mit Kreisen dargestellt und zu ihrer Unterscheidung mit Buchstaben markiert.

Mehr

Programmieren mit Python Modul 4. Funktionen. Selbstständiger Teil

Programmieren mit Python Modul 4. Funktionen. Selbstständiger Teil Programmieren mit Python Modul 4 Funktionen Selbstständiger Teil Inhaltsverzeichnis 1 Überblick 3 2 Teil A: Bubble-Sort mit Funktionen 3 2.1 Erweiterung.................................. 3 3 Teil B: Erweiterungen

Mehr

Lösungsvorschläge zur Hauptklausur Datenstrukturen

Lösungsvorschläge zur Hauptklausur Datenstrukturen Lösungsvorschläge zur Hauptklausur 9 9 166211663 Datenstrukturen 9. August 2003 Seite 2 Lösungsvorschlage zur Klausur vom 9.08.2003 Kurs 166211663,,Datenstrukturen" Aufgabe 1 Bei jedem rekursiven Aufruf

Mehr

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Übungsblatt #1 Modellierung & Suche Prof. Dr. J. Fürnkranz, Dr. G. Grieser Aufgabe 1.1 Wir betrachten folgende Welt: Welt: Die Welt der Staubsauger-Akteure besteht aus Räumen, die

Mehr

Ταβλι. Das griechische Spiel Ταβλι" besteht aus drei verschiedenen Spielen. 1. πορτες Türen 2. πλακοτο "draufsetzen" 3. φευγα "Geh weg!

Ταβλι. Das griechische Spiel Ταβλι besteht aus drei verschiedenen Spielen. 1. πορτες Türen 2. πλακοτο draufsetzen 3. φευγα Geh weg! Ταβλι Das griechische Spiel Ταβλι" besteht aus drei verschiedenen Spielen. 1. πορτες Türen 2. πλακοτο "draufsetzen" 3. φευγα "Geh weg!" Alle drei Versionen werden hintereinander gespielt. Nach drei Spielen

Mehr

Seminar. Algorithmische Geometrie

Seminar. Algorithmische Geometrie Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.

Mehr

Klausur Algorithmentheorie

Klausur Algorithmentheorie Prof. Dr. G. Schnitger Frankfurt, den 24.02.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen

Mehr

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38 AVL-Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum haben die Algorithmen Suchen,

Mehr

Das Handbuch zu KReversi. Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura

Das Handbuch zu KReversi. Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura Clay Pradarits Entwickler: Mario Weilguni Korrektur: Lauri Watts Deutsche Übersetzung: Maren Pakura 2 Inhaltsverzeichnis 1 Einführung 5 2 Spielanleitung 6 3 Spielregeln, Spielstrategien und Tipps 7 3.1

Mehr

Primzahlen und Programmieren

Primzahlen und Programmieren Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Monte-Carlo Tests. Diplomarbeit. Wiebke Werft. Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf

Monte-Carlo Tests. Diplomarbeit. Wiebke Werft. Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf Monte-Carlo Tests Diplomarbeit Wiebke Werft Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf Düsseldorf im Dezember 2003 Betreuung: Prof. Dr. Arnold Janssen Inhaltsverzeichnis Einleitung

Mehr

Spielmaterial. Ziel des Spiels. 4 Übersichtstableaus 1 Kulturmünze 104 Karten, unterteilt in 3 Zeitalter und 6 Bereiche. Zeitalter III.

Spielmaterial. Ziel des Spiels. 4 Übersichtstableaus 1 Kulturmünze 104 Karten, unterteilt in 3 Zeitalter und 6 Bereiche. Zeitalter III. Das CIV-Spiel mit CIV Karten Spielmaterial 4 Übersichtstableaus 1 Kulturmünze 104 Karten, unterteilt in 3 Zeitalter und 6 Bereiche Militär Religion Wirtschaft Wissenschaft Kultur Utopia 8 8 4 4 4 0 28

Mehr

66 Das Kartenspiel. Inhaltsverzeichnis

66 Das Kartenspiel. Inhaltsverzeichnis 66 Das Kartenspiel Inhaltsverzeichnis 66 Das Kartenspiel Sechsundsechzig...2 1Spielregeln...2 1.1Karten...2 1.2Vorbereitung...3 1.3Stich...3 1.4Bedienen...4 1.5Der Stapel...4 1.6Melden...4 1.7Spielablauf...5

Mehr

2. Spielbäume und Intelligente Spiele

2. Spielbäume und Intelligente Spiele 2. Spielbäume und Intelligente Spiele Arten von Spielen 2. Spielbäume und Intelligente Spiele Kombinatorische Spiele als Suchproblem Wie berechnet man eine gute Entscheidung? Effizienzverbesserung durch

Mehr