Softcomputing. Künstliche Intelligenz in endlichen Zwei-Personen-Nullsummenspiele mit perfekter Information. Michael Dorner. Prof. Dr.

Größe: px
Ab Seite anzeigen:

Download "Softcomputing. Künstliche Intelligenz in endlichen Zwei-Personen-Nullsummenspiele mit perfekter Information. Michael Dorner. Prof. Dr."

Transkript

1 Technische Hochschule Nürnberg Georg-Simon-Ohm Fakultät Informatik Softcomputing Künstliche Intelligenz in endlichen Zwei-Personen-Nullsummenspiele mit perfekter Information Autor Michael Dorner betreut durch Prof. Dr. Reinhard Eck Datum 8. November 2013

2 Anhand des Brettspiels Othello soll die Funktionsweise von künstlicher Intelligenz in Zwei- Personen-Nullsummenspiele mit perfekter Information erklärt und die Effizienz evaluiert werden. Besonderes Augenmerk liegt auf dem Minimax-Algorithmus sowie dessen Verbesserung durch die α-β-suche und eine geeignete Heuristik. Dabei wird auch ausführlich auf die mathematischtheoretischen Grundlagen eingegangen.

3 Inhaltsverzeichnis 1 Einführung Einordnung Historie Was ist (künstliche) Intelligenz? Theoretische Grundlagen Definitionen Beispiel Drei-Gewinnt Nullsummenspiel und deren Problematik Algorithmen Minimax-Algorithmus Minimax-Algorithmus mit α-β-suche Minimax-Algorithmus mit α-β-suche und Heuristik Fallstudie Einführung in das Spiel Othello Testbedingung Ergebnisse Einschränkung des Suchraums Verbesserung der Ergebnisse Fazit Ausblick Literaturverzeichnis 36 Index 37 Anhang 38 A.1 Inhalt der beiliegenden CD A.2 Dokumentation A.2.1 Systemvorraussetzungen A.2.2 UML-Diagramm A.2.3 Spielgrundlagen A.2.4 Algorithmen

4 Abbildungsverzeichnis 1.1 Diagramm eines Agenten Drei-Gewinnt-Suchbaum Drei-Gewinnt-Suchbaum in Minimax-Notation Drei-gewinnt-Spielbaum Beispielbaum Beispielbaum mit Minimax-Algorithmus Beispielbaum mit Minimax-Algorithmus und α-β-suche Spielfeld von Othello mit Startaufstellung Speicherkomplexität des Minimax-Algorithmus ohne und mit α-β-suche Zeitkomplexität des Minimax-Algorithmus ohne und mit α-β-suche Anzahl der Spielzüge, die zum Sieg im Spiel Minimax-Algorithmus gegen Minimax- Algorithmus mit α-β-suche nötig sind Speicherkomplexität des Minimax-Algorithmus mit α-β-suche ohne und mit Heuristik Zeitkomplexität des Minimax-Algorithmus mit α-β-suche ohne und mit Heuristik Spielzüge zum Sieg des Minimax-Algorithmus mit α-β-suche und Heuristik Speicherkomplexität des Minimax-Algorithmus mit und ohne Verbesserungen Zeitkomplexität des des Minimax-Algorithmus mit und ohne Verbesserungen. 34 A.1 UML-Diagramm des Othello-Spiels in Python

5 Tabellenverzeichnis 2.1 Tabelle der Knoten im Drei-Gewinnt-Spiel Speicher- und Rechenzeitkomplexität bei Schach Gewichtung der Spielfelder bei Othello Evaluationskriterien Sieggewissheit in Abhängigkeit zur Suchtiefe für Minimax-Algorihtmus mit Heuristik gegen naiven Minimax-Algorithmus A.1 Auswählbare autonome Algorithmen Algorithmenverzeichnis 1 Beispielalgorithmus in Pseudocode Minimax-Algorithmus Minimax-Algorithmus mit α-β-suche Quellcodeverzeichnis 1 Beispielalgorithmus in Python A.1 Auf graphischer Benutzeroberfläche arbeiten A.2 Evaluierung A.3 Systematische Suchtiefenauswertung A.4 Schnittstelle für Algorithmen

6 Vorwort Diese Arbeit entstand im Rahmen der Lehrveranstaltung Softcomputing bei Prof. Dr. Reinhard Eck, Technische Hochschule Nürnberg, im Sommersemester Codefragmente sowie die Idee stammen aus einer Projektarbeit von Michael Dorner bei Prof. Dr. Franziska Klügl und Prof. Dr. Mathias Broxvall, beide Universitet Örebro, Schweden. Für eine konsistente und schlüssige Notationsweise sowie bei den Definitionen orientierten wir uns an (12), (4) sowie an das Vorlesungsskriptum von Prof. Dr. Hans Werner Lang der Fachhochschule Flensburg (6). Die geschichtlichen Fakten stammen weitgehend aus (4) und (11). Ich bemühte mich um einen angenehm zu lesenden Schreibstil und vermied sowohl dem Deutschen 1 als auch dem Englischen 2 unwürdige Mischformen. Dennoch wurden durchgängig englische Begriffe und Kommentare verwendet, was dem Lesen und Verständnis des Quelltextes meiner Meinung nach sehr entgegenkommt. Um nicht gängige Eigennamen und Fachbegriffe kenntlich zu machen, sind diese kursiv geschrieben. Aus dem Quelltext entnommene Fragmente sind durch eine andere Schriftart kenntlich gemacht, längere Codeausschnitte werden wie folgt dargestellt: def factorial(x): if x > 1: return x * factorial(x - 1) else: return 1 print(factorial(9)) # Comment Quellcodeverzeichnis 1: Beispielalgorithmus in Python 1 z. B. downloaden, googlen 2 Mutterplatine Motherboard 6

7 Quellcodeverzeichnis Quellcodeverzeichnis Programme und Algorithmen ohne Sprachkontext werden in Pseudocode wie im Folgenden aufgeführt: Algorithmus 1 : Beispielalgorithmus in Pseudocode function factorial(x) is begin if n > 1 then return x * factorial(x-1) else return 1 end Alle Algorithmen sind in Python, einer modernen, u.a. funktionalen Programmiersprache implementiert, die sich durch die einfache Handhabung von Listen sowie Bäumen empfohlen hat. Besonderes Augenmerk lag dabei nicht auf einer möglichst effizienten Implementierung, sondern auf einer leichten Lesbarkeit und Verständlichkeit des Codes. Zukunftsorientiert fiel die Wahl auf Python 3, welches bis dato noch nicht von allen verfügbaren Python-Modulen (z. B. matplotlib) unterstützt wird, denn Python 3 ist nur bedingt abwärtskompatibel: print "Hello World" funktioniert in Python 2.x zum Beispiel problemlos, während Python 3 betont, dass es sich bei print um kein Schlüsselwort handelt, sondern um eine Funktion, und deshalb mit print("hello World") aufgerufen werden muss. Die Grafiken der Studienarbeit und des Programms wurden in yed erstellt, der Text ist in L A TEX mit dem Editor Texpad gesetzt. Durch das Bereitstellen des L A TEX-Quellcodes und der yed-rohdaten möchten wir die Möglichkeit bieten, dieses Dokument zu korrigieren, zu erweitern oder Passagen wiederzuverwenden. Das gesamte Projekt wurde auf veröffentlicht. Bedanken möchte ich mich bei Alexander Urban, der mich auf einige notwendige Korrekturen hinwies. 7

8 1 Einführung 1.1 Einordnung Diese Arbeit entstand an der Schnittstelle von vier verschiedenen Forschungsgebieten: Künstliche Intelligenz, Spiel-, Graphen- und Komplexitätstheorie. Allen Themen in gleicher Weise gerecht zu werden ist nicht möglich, da jeder dieser Bereiche ausführlich und für sich betrachtet bereits den Umfang dieser Arbeit in jeder Hinsicht sprengen würde. Immer wieder finden sich Anmerkungen im Text, die dem geneigten Leser Eintrittspunkte in die weiteren Themengebiete ermöglichen sollen. Künstliche Intelligenz Als Informatiker betrachten wir die Anwendung und die Problematik von Nullsummenspielen überwiegend aus Sicht unseres Fachbereiches. Wir werden versuchen, uns der Definition von Intelligenz im Allgemeinen und von künstlicher Intelligenz im Speziellen zu nähern und die allgemeine Problemdefinition sowie das Problemlösen durch Suchen zu betrachten. Hierbei sollen die Brettspiele Drei-Gewinnt und Othello helfen, die als Beispiele im weiteren Verlauf der Arbeit erklärt werden und als Anwendung implementiert wurden. Spieltheorie In dieser Arbeit wollen wir uns nun mit einem Teilgebiet der Spieltheorie beschäftigen, den Nullsummenspielen. Bereits acht Mal wurde der Preis für Wirtschaftswissenschaften der schwedischen Reichsbank in Gedenken an Alfred Nobel besser bekannt als Wirtschaftsnobelpreis für Arbeiten zum Thema Spieltheorie vergeben. Dies unterstreicht die Bedeutung der Spieltheorie für die Wirtschaftswissenschaften. Doch nicht nur in den Wirtschaftswissenschaften findet die Spieltheorie Anwendung: Auch in der Soziologie, Psychologie, Rechtswissenschaft und seit etlichen Jahren auch in der Biologie spielen die Erkenntnisse der Spieltheorie eine Rolle. Jedoch haben wir auf eine intensive Betrachtung der wirtschaftlichen Aspekte der Spieltheorie zugunsten einer umfangreicheren Betrachtung aus der Sicht der Informatik und Mathematik verzichtet. 8

9 Kapitel 1. Einführung Historie Graphentheorie Als mathematischer Unterbau dient die Graphentheorie. In dieser Arbeit wird dieser für die Informatik bedeutender Teilbereich der Mathematik detaillierter beleuchtet, da dieser fundamental für das Verständnis der Suche im Allgemeinen ist. Komplexitätstheorie Betrachtet und vergleicht man Algorithmen, was in dieser Arbeit einen größeren Platz einnimmt, wird man zwangsläufig auf den Bereich der Komplexität stoßen: Welche Kosten sei es Speicher- oder Rechenzeitbedarf hat ein spezifischer Algorithmus? Welcher Algorithmus ist besser und in welcher Hinsicht? Diese und andere Fragen gilt es zu beantworten, wodurch ein kleiner Einblick in die Komplexitätstheorie gegeben wird. 1.2 Historie Betrachten wir zuerst die geschichtliche Entwicklung dieses noch jungen Fachbereichs mit Fokus auf das Themengebiet der künstlichen Intelligenz in Spielen. Die ersten Versuche eine Maschine zu bauen, die in der Lage ist Spiele gegen Menschen zu bestreiten oder gar zu gewinnen, liegen lange vor der Erfindung des ersten Computers. Beim Versuch diese Geschichte nachzuvollziehen fällt auf, dass stets Schach das Spiel der Wahl war. Das liegt einerseits an der enormen Popularität des Spiels seit seiner Verbreitung in Europa. Anderseits waren Entwickler der Meinung, das Schach die idealen Bedingungen zur Konstruktion spielender Maschinen biete. Es hat zum einen klar definierte Regeln und ein festes Spielfeld, bietet aber trotz dieser abgrenzenden Welt eine enorme Komplexität. Die Geschichte der schachspielenden Maschinen beginnt mit einer arglistigen Täuschung. Die österreichische Kaiserin Maria Theresia beauftragte im Jahr 1769 Baron Wolfgang von Kempelen mit einer Maschine die in der Lage sein sollte Schach zu spielen. Die erstmalige Vorführung des gewünschten Apparates mit dem Namen der Schachtürke erfolgte noch im gleichen Jahr. Die Maschine galt als erster Apparat, welcher in der Lage war Schach zu spielen. Lange Zeit war die Funktionsweiße des Apparates ein großes Rätsel, jedoch wurde später bekannt, dass im Inneren ein menschlicher Schachspieler versteckt war, der die Spielzüge berechnete. Das Jahr 1950 war für die künstliche Intelligenz ein bedeutendes. Claude Shannon, Konrad Zuse, John von Neumann stellten erste Schachprogramme vor, die allerdings entweder gar nicht oder nur mit sehr großer Laufzeit implementiert werden konnten. Nur fünf Jahre später, 1955, implementierte Arthur Samuel auf einem IBM 701, einem der ersten speicherprogrammierbaren Computer von IBM, ein Programm, das Dame spielen und mit einem einfachen Lernverfahren seine Ergebnisse verbessern konnte. Zur Verbesserung seiner Ergebnisse nutzte er ein umfangreiches Archiv an von Experten bewerteten Spielzügen besiegte sein Programm den seiner Zeit viertbesten Dame-Spieler der USA. 9

10 Kapitel 1. Einführung Was ist (künstliche) Intelligenz? Im Sommer 1956 fand am Dartmouth College ein zweimonatiger Workshop mit dem Namen Dartmouth Summer Research Project on Artificial Intelligence statt. Der Workshop brachte zwar keine neuen Durchbrüche, jedoch lernten sich spätere Koryphäen des noch jungen Forschungsgebietes der künstlichen Intelligenz kennen. Unter den lediglich zehn Teilnehmern der Konferenz waren rückblickend betrachtet vier Turing-Award-Preisträger, der Erfinder der Programmiersprache LISP, einer der Erfinder der neuronalen Netze und der Programmiersprache ALGOL, der Vater der Informationstheorie, der Erfinder der aspektorientierten Programmierung, ein IEEE Computer Pioneer Award-Träger und ein Wirtschaftsnobelpreisträger, wobei diese Aufzählung der Auszeichnungen keine Anspruch auf Vollständigkeit erhebt, ganz zu schweigen von den hier weder erwähnten noch öffentlich gewürdigten Erfindungen, Entdeckungen und Einflüssen besiegte Deep Blue von IBM mit 3,5 zu 2,5 den Schachweltmeister Gary Kasparov. Deep Blue konnte im Mittel ca. 12 Halbzüge mit der α-β-suche und einer Heuristik vorausberechnen. Der derzeit leistungsfähigste Schachgroßrechner ist Hydra, ein Parallelrechner der Firma PAL Computer Systems. Entwickelt wurde dieser vom Österreicher Christian Donniger und den beiden Deutschen Ulf Lorenz sowie Christopher Lutz, seines Zeichens Schachgroßmeister. Mit 64 parallelen Xeon-Prozessoren mit jeweils ca. 3 GHz und ausgeklügelten FPGA-Coprocessors kann Hydra bis zu 200 Millionen Stellungen pro Sekunde bewerten und schafft damit im Mittel ca. 18 Halbzüge, wobei in besonders kritischen Situationen die Suchtiefe auf 40 Halbzüge ausgedehnt werden kann. Einen Planungs- oder Lernalgorithmus besitzt jedoch auch Hydra nicht. 1.3 Was ist (künstliche) Intelligenz? Im Science-Fiction-Roman Per Anhalter durch die Galaxis von Douglas Adams aus dem Jahre 1979 baute eine außerirdische Kultur einen Computer namens Deep Thought, dessen Aufgabe es ist, die Frage nach dem Leben, dem Universum und dem ganzen Rest zu berechnen. Nach einer Rechenzeit von 7,5 Millionen Jahren liefert der Computer das Endergebnis: 42. Die Zuhörer sind mit der Antwort unzufrieden und beschweren sich. Deep Thought antwortet: Erst wenn ihr die Frage kennt, wisst ihr, was die Antwort bedeutet und schlägt vor, selbst einen noch komplexeren Computer zu entwerfen, der nach 10 Millionen Jahre die Frage zur Antwort 42 liefert. Der Leser möge die unwissenschaftliche, süffisante Einleitung verzeihen, aber so zeigt sie doch einige wesentliche Problemstellungen in der künstlichen Intelligenz: Intelligenz wird aus der Sicht des Menschen definiert. Sein Handeln, Denken und Problemlösen gilt als intelligent. Ob es das nun ist, sei dahingestellt. Berechnungen im Bereich künstliche Intelligenz sind rechenintensive und komplexe Probleme. Wir werden zeigen, dass 7,5 Millionen Jahre benötigte Zeit für das Lösen von Problemen keine ungewöhnliche Größenordnung ist. Nicht jedes Problem ist (auf direktem Wege) lösbar, nicht nur bedingt durch die Zeitkomplexität. 10

11 Kapitel 1. Einführung Was ist (künstliche) Intelligenz? Ist nun dieser fiktionale Computer Deep Thought (übrigens Namensgeber für den Vorläufer des Schachcomputers Deep Blue von IBM) intelligent? Warum ist er (nicht) intelligent? Je nach Betrachtungsweise und vor allem Wissenschaftsbereich unterscheidet sich der Intelligenzbegriff stark. Da diese Differenzierung nicht Thema dieser Arbeit sein soll, werden wir den Intelligenzbegriff nicht weiter diskutieren. Definition 1 (Intelligenz). Intelligenz beschreibt die Leistungsfähigkeit des Menschen hinsichtlich Wahrnehmen, Denken, Lernen und Erinnern. Da es schon an einer exakten Definition von Intelligenz im Allgemeinen mangelt, ist eine eindeutige Abgrenzung der künstlichen Intelligenz nicht möglich. Der Mathematiker Alan Turing versuchte 1950 mit dem nach ihm benannten Turing-Test nachzuweisen, wann eine Maschine über künstliche Intelligenz verfügt. Ein menschlicher Fragesteller führt mit zwei ihm umbekannten Gesprächspartner über eine Tastatur und einen Bildschirm ohne Sicht- und Hörkontakt eine Konversation. Der eine der beiden Gesprächspartner ist ein Mensch, der andere eine Maschine, wobei beide versuchen, den menschlichen Fragesteller davon zu überzeugen, der denkende Mensch zu sein. Wenn der Fragesteller nach einer intensiven Befragung nicht mit Sicherheit den Computer identifizieren kann, so wird der Maschine Intelligenz zugeschrieben. Anmerkung. Alan Turing musste viel Kritik für seine Arbeit zum Turing-Tests einstecken, da der Turing-Test als Definition für künstliche Intelligenz mehr als eine Angriffsfläche bietet. Er selbst verwendete lieber den Begriff imitation game und betonte immer wieder ausdrücklich, dass er mit diesem Test keine Definition liefern wollte (2, S. 667 f.): I don t want to give a definition of thinking, but if I had to I should probably be unable to say anything more about it than that it was a sort of buzzing that went on inside my head definierte und prägte John McCarthy die Definition der künstlichen Intelligenz mit dem Ziel [...], Maschinen zu entwickeln, die sich verhalten, als verfügten sie über Intelligenz. (4, S. 1) Ebenfalls eine problematische Definition, jedoch als Urheber des Begriffs artificial intelligence gilt es ihn hier zu erwähnen. Anmerkung. Auf eine philosophische, psychologische oder neurobiologische Betrachtung von Intelligenz wurde bewusst verzichtet, da die vorab abgesteckten Grenzen der Arbeit verlassen werden würde. Jedoch sei an dieser Stelle auf diese Forschungsgebiete verwiesen. Versuchen wir, die Definition von künstlicher Intelligenz allgemein zu halten: 11

12 Kapitel 1. Einführung Was ist (künstliche) Intelligenz? Definition 2 (Künstliche Intelligenz). Künstliche Intelligenz ist die Entwicklung und der Einsatz von rationalen und autonom agierenden Agenten. Definition 3 (Agent). Ein Agent im Kontext der künstlichen Intelligenz ist eine autonome Einheit, welche durch das Auswerten von Sensoren und unter Verwendung von Aktoren zielgerichtet in einer Umwelt agiert. Intelligente Agenten können auch lernen oder auf erlerntes Wissen zurückgreifen, um ihre Ziele zu erreichen. Grafik 1.1 veranschaulicht die Definition und Arbeitsweise eines Agenten. Abbildung 1.1: Diagramm eines Agenten 12

13 2 Theoretische Grundlagen 2.1 Definitionen Essentieller Bestandteil des Lösungfindens und damit des Problemlösens ist die Suche. Doch bevor wir weiter in die Thematik des Suchens und die Möglichkeiten der Suchverbesserung eingehen, benötigen wir die mathematische Basis der Graphentheorie. Definition 4 (Graph). Ein Graph G = (V, E) besteht aus einer endlichen Menge V von Knoten (engl. vertex) und einer Menge E von Kanten (engl. edge) {a, b} mit a, b V, a b. Der Graph ist ein gerichteter Graph, wenn jede Kante a, b V eine Richtung besitzt, also durch ein geordnetes Paar (a, b) dargestellt wird. Definition 5 (Grad eines Knoten). Sei G = (V, E) ein Graph und (a, b) E eine Kante der Knoten a und b. Dann ist b direkter Nachfolger von a und a direkter Vorgänger von b. Der Ausgangsgrad eines Knoten i(a) eines Knoten a ist gleich der Anzahl seiner direkten Nachfolger, d.h. o(a) = {b (a, b) E} Analog ist der Eingangsgrad i(b) eines Knoten b gleich der Anzahl seiner direkten Vorgänger, d.h. i(b) = {a (a, b) E} Definition 6 (Zusammenhängender Graph). Ein Graph G heißt zusammenhängend, wenn es zwischen je zwei Knoten aus G einen Weg gibt. 13

14 Kapitel 2. Theoretische Grundlagen Definitionen Definition 7 (Pfad). Ein Pfad oder Kantenzug in einem Graphen G ist eine endliche Folge von Kanten p = (a 0, b 0 ),..., (a m 1 b m 1 ) mit m N 0, und b i 1 = a i für alle i {1,..., m 1}. m ist die Länge des Pfades, a 0 ist der Anfangsknoten, b m 1 heißt Endknoten. Sei p = (a 0, b 0 ),..., (a m 1, b m 1 ) ein Pfad in einem Graphen G. p heißt einfach, wenn er keine Kante mehrfach durchläuft, d.h. wenn alle (u i, v i ) für i = {0,..., m 1} paarweise verschieden sind. p heißt Zyklus, wenn er geschlossen ist, d.h. wenn b m 1 = a 0 gilt. p heißt Weg, wenn er keinen Knoten mehrfach durchläuft, d.h. wenn alle a i untereinander und alle b j untereinander paarweise für i, j = {0,... m 1} verschieden sind. p heißt Kreis, wenn er ein Weg ist und geschlossen ist, d.h. ein Zyklus ist. Definition 8 (Baum). Ein gerichteter Graph T = (V, E) ist ein Baum, wenn er genau einen Knoten mit Eingangsgrad 0 enthält; dieser Knoten r ist die Wurzel des Baumes. alle anderen Knoten den Eingangsgrad 1 haben, und er keine Zyklen enthält. Sei T = (V, E) ein Baum. Ein Knoten b V heißt Blatt, wenn er keine Nachfolger hat; alle anderen Knoten heißen innere Knoten des Baumes. Die Tiefe eines Knoten d(v) ist die Länge des Weges von der Wurzel r nach v V. Die Tiefe des Baumes d(t ) ist die maximale Tiefe der Knoten. Definition 9 (Verzweigungsfaktor). Die Zahl der Nachfolgezustände eines Knoten a wird als Verzweigungsfaktor (engl. branching factor) b(a) bezeichnet, beziehungsweise mit b, falls der Verzweigungsfaktor konstant ist. Der effektive Verzweigungsfaktor eines Baumes der Tiefe d mit insgesamt V Knoten wird definiert als der Verzweigungsfaktor, den ein Baum mit konstantem Verzweigungsfaktor, gleicher Tiefe und V Knoten hätte. 14

15 Kapitel 2. Theoretische Grundlagen Beispiel Drei-Gewinnt Definition 10 (Suchproblem). Ein Suchproblem wird definiert durch folgende Größen Zustand Beschreibung des Zustands der Welt, in dem sich ein Suchagent befindet. Startzustand Der Initialzustand, in dem der Agent gestartet wird. Zielzustand Erreicht der Agent einen Zielzustand, so terminiert er und gibt (falls gewünscht) eine Lösung aus. Aktionen Alle erlaubten Aktionen des Agenten. Lösung Der Pfad im Suchbaum vom Startzustand zum Zielzustand. Kosten- oder Nutzwertfunktion Ordnet jeder Aktion einen Kosten- oder Nutzwert zu. Dies wird benötigt, um kosten- bzw. nutzenoptimale Lösungen zu finden. Zustandsraum Menge aller Zustände. Suchbaum Zustände sind Knoten, Aktionen sind Kanten. Anmerkung. Jeder Knoten repräsentiert einen Zustand, enthält jedoch weitere Informationen, wie z.b. dessen Vorgänger- und Nachfolgerzustand/-knoten, Tiefe im Suchbaum, etc. 2.2 Beispiel Drei-Gewinnt Um die zugegebenermaßen etwas trockene Theorie mit Leben zu füllen, betrachten wir das Drei-Gewinnt-Spiel (engl. Tic Tac Toe) und den dazugehörigen Spielbaum. Das Drei-Gewinnt-Spiel besteht aus einem Spielfeld mit 3 3 Felder. In diesem Spielfeld setzen zwei Spieler jeweils abwechselnd Kreise (o) und Kreuze ( ). Das Spiel endet, wenn einer der beiden Spieler eine Reihe, eine Spalte oder eine der beiden Diagonalen mit seinen Steinen besetzen konnte, oder wenn alle Felder belegt sind. Für das Spiel gibt es drei Endzustände: 1. Spieler 1 gewinnt, Spieler 2 verliert 2. Spieler 1 verliert, Spieler 2 gewinnt 3. Alle Felder sind belegt, unentschieden Wir erhalten also folgendes Suchproblem für Drei-Gewinnt: Zustand Ein Spielbrett mit 3 3 Feldern, die entweder leer, von einem Kreise (o) oder Kreuz ( ) belegt sind. Startzustand Leeres Spielfeld. Zielzustand erreicht der Agent einen Zielzustand, so terminiert er und gibt (falls gewünscht) eine Lösung aus. 15

16 Kapitel 2. Theoretische Grundlagen Beispiel Drei-Gewinnt Aktionen Setzen der Steine in ein leeres Feld des Spielbrettes. Lösung Alle Pfade im Suchbaum vom Startzustand zu einem der Zielzustände. Nutzwert Ein Sieg wird mit +1, eine Niederlage mit 1 und ein Unentschieden mit 0 gewertet. Zustandsraum Menge aller möglichen Zustände. Suchbaum Siehe Abbildung o... o o... o o o o o o o o o o o o o... Verloren: -1 Unentschieden: 0 Gewonnen: +1 Abbildung 2.1: Ein stark verkürzter Suchbaum eines Drei-Gewinnt-Spiels. Die Gewichtung für Verloren, Unentschieden und gewonnen ist im Abschnitt für die Erklärung des Minimax- Algorithmus relevant 16

17 Kapitel 2. Theoretische Grundlagen Beispiel Drei-Gewinnt Um eine Verkürzung der Schreibweise zu erreichen und um zu verdeutlichen, dass zwei konkurrierende Agenten zu berücksichtigen sind, erweitern wir den Suchbaum um ein Maximierungs- (Quadrat) und Minimierungslevel (Kreis), die jeweils mit dem Spieler (Maximierung) und dem Gegner (Minimierung) korrespondieren: a max min b... c... k d... j e... f g h i... Verloren: -1 Unentschieden: 0 Gewonnen: +1 Abbildung 2.2: Stark verkürzter Drei-Gewinnt-Suchbaum in Minimax-Notation mit Gewichtung der Endzustände 17

18 Kapitel 2. Theoretische Grundlagen Nullsummenspiel und deren Problematik 2.3 Nullsummenspiel und deren Problematik Definition 11 (Nullsummenspiel). Ein Spiel in der Spieltheorie heißt Nullsummenspiel, wenn die Summe der Gewinne und Verluste aller Spieler gleich null ist. Spieltheoretisch äquivalent sind die Konstantsummenspiele, bei denen die Gewinne und Verluste aller Spieler gleich einer Konstanten sind. Anmerkung. Im Sprachgebrauch hat sich die Bedeutung von Nullsummenspiel als eine Situation oder Ergebnis, bei dem keiner der Parteien etwas gewinnt oder verliert, etabliert. Spieltheoretisch betrachtet eine falsche Definition. Klassische Nullsummenspiele sind Othello, Schach, Go, Drei-/Vier-Gewinnt, Go, wohingegen Roulette z. B. kein Nullsummenspiel ist, fasst man die Bank nicht ebenfalls als Spieler auf. Anmerkung. Im Jahre 1944 bewiesen John von Neumann und Oskar Morgenstern, dass jedes Nullsummenspiel mit n Spielern eine allgemeine Form eines Zwei-Personen-Nullsummenspiels (7, S. 239 ff.) und jedes Nicht-Nullsummenspiel mit n Spielern auf ein Nullsummenspiel für n + 1 Spieler zurückgeführt werden kann, wobei der n + 1 Spieler den globalen Gewinn und Verlust darstellt. (7, S. 506 ff.) Spieltheoretisch sind endliche Nullsummenspiele mit vollständige Information, d.h. die Umgebung ist vollständig beobachtbar, und zwei Gegnern am wenigsten komplex. Anmerkung. Was unter der Annahme passiert, wenn die Spieler nicht gegeneinander, sondern auch miteinander, also kooperativ spielen, wird wenngleich mathematisch sehr ausführlich, so doch sehr gut strukturiert in (8) behandelt. Somit handelt es sich um ein adversariales Suchproblem. Definition 12 (Adversariale Suche). Die adversariale Suche bezeichnet eine Suche, die die Unsicherheit, die durch die Aktionen eines anderen Agenten verursacht werden, berücksichtigt. Jede Reaktion des Gegners ist berechenbar, jedoch gibt es einen gigantischen Verzweigungsfaktor. Gegeben sei ein Minimax-Baum T = (V, E) mit konstantem Verzweigungsfaktor b und alle Blätter befinden sich auf der Tiefe d. So gilt für die Menge der Knoten V = d k=0 b k = bd+1 1 b 1. (2.1) 18

19 Kapitel 2. Theoretische Grundlagen Nullsummenspiel und deren Problematik Jede Potenz n mit n d von b n für b > 1 ist stets größer als die Summe der vorherigen niedrigeren Potenzen: n 1 b k < b n (2.2) Durch die Definition aus (3, S. 49) erhalten wir eine Komplexität von k=0 V O(b d ) c > 0, n 0 > 0 : n n 0 : 0 V c b d (2.3) Anhand des Drei-Gewinnt-Spiels lässt sich die kombinatorische Explosion eindrucksvoll zeigen. Erstellt man den Suchbaum ausschnittsweise für die ersten drei Level wie in Abbildung 2.3, so erkennt man bereits ohne weitere Berechnung die Größenordnung des Suchproblems. Abbildung 2.3: Die ersten drei Level eines Drei-gewinnt-Spielebaums Für den ersten Zug stehen dem Spieler neun Felder zur Verfügung, dem Gegner bleiben also im zweiten Spielzug für seinen Spielstein acht Felder übrig. Im dritte Zug, wieder von Spieler 1 ausgeführt, sind sieben Feldbelegungen möglich. Das letzte triviale Zug ist der vierte. Es bleiben für Spieler 1 sechs Möglichkeiten, seinen Stein zu setzen. Analog erhalten wir für = }{{} = } {{ } Level 4 Level 5 Ab Level 5 ist eine Berechnung über die Fakultät nicht mehr zwangsläufig richtig, da der fünfte Spielzug bereits der letzte, der spielentscheidende Zug sein kann, da Spieler 1 seinen dritten Stein legt und dadurch das erste mal die Möglichkeit hat, eine Reihe, Spalte oder Diagonale mit seinen Steinen komplett zu füllen. Aus diesem Grund findet ein Pythonskript (siehe dreigewinnt.py) alle möglichen Zustände. Es wertet gleichzeitig die Gewinnerzüge für den beginnenden Spieler 1, für Spieler 2 sowie die Spiele ohne Gewinner aus; die Tabelle 2.1 zeigt die Ergebnisse für alle Level. Level Knoten Tabelle 2.1: Tabelle der Knoten im Drei-Gewinnt-Spiel auf den verschiedenen Leveln bzw. Spielzügen Anmerkung. Interessant ist auch, wieviele Kombinationen zum Sieg vom beginnenden Spieler 1, wieviele zum Sieg von Spieler 2 oder zum Unentschieden führen: Der Spieler 1 hat die Auswahl aus Spielzügen, die zum Sieg führen, Spieler zwei aus Spielzügen und ein Unentschieden ergibt sich aus Kombinationen von Spielzügen. Wer beginnt, hat also einen deutlichen Vorteil. 19

20 Kapitel 2. Theoretische Grundlagen Nullsummenspiel und deren Problematik Nun ist Drei-Gewinnt ein wenig komplexes Spiel mit relativ kleinem effektiven Verzweigungsfaktor von b 9. Betrachten wir jedoch komplexere Spiele wie Schach, so wird schnell die Aussichtslosigkeit eines Suchgraphen klar: (4) schätzt den effektiven Verzeigungsfaktor bei Schach auf b 30. Nehmen wir eine Obergrenze für die Anzahl der Stellungen im Schach von 10 45,888 (13), so benötigen wir log ,888 = 153 Bit für eine eindeutige Repräsentierung der Stellungen. Wollte man nun nun den Spielbaum aufbauen, so erreicht man nicht erreichbare Dimensionen, denn eine Tiefe d = 25 bedeutet 12 bzw. 13 Spielzüge pro Spieler, was im Schachsport keineswegs einen Sieg garantiert. Zum Vergleich: Man schätzt das Alter des Universums auf 13,77 Milliarden Jahre (9, S. 36), also 1, Jahre. Außerdem sind die in der Berechnung angenommenen 126 Millionen Spielstellungen pro Sekunde ohne an dieser Stelle genauer auf den Algorithmus einzugehen (im nächsten Abschnitt mehr dazu) nur mit Supercomputer (konkret hier der Deep Blue II von IBM (1, S. 4)) zu erreichen. Tiefe Anzahl der Knoten Zeit in (Einheit) Speicher in (Einheit) 1 31 < 1 ms 592,875 Byte < 1 ms 17,805 kb < 1 ms 534,180 kb < 1 ms 16,025 MB ,507 ms 480,762 MB ,11 Tage ,53 TB. 25 8, , Jahre 1, TB Tabelle 2.2: Speicher- und Rechenzeitkomplexität in Abhängigkeit der Tiefe unter der Annahme einer Berechnungsgeschwindigkeit von 126 Millionen Spielstellungen pro Sekunde und einer Bitrepräsentation von 153 Bit pro Spielstellung. Eine komplette Berechnung eines Schachspiels ist somit derzeit unmöglich. Trotzdem besiegte der Supercomputer Deep Blue von IBM 1997 den amtierenden Schachweltmeister Gary Kasparow. Wie ist das möglich? Es gilt also den Suchraum erheblich zu verkleinern, um überhaupt ein genähertes Optimum erreichen zu können. Hierfür möchten wir zuerst den naiven Algorithmus (Minimax-Algorithmus) ohne weitere Einschränkung des Suchraums vorstellen. Darauf aufbauend werden zwei Verbesserungen, zum einen die α-β-suche und zum anderen die Erweiterung um eine Heuristik, erläutert. 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 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

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

Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie

Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie Vier Gewinnt Nicolas Schmidt Matthias Dietsche Bernhard Weiß Benjamin Ruile Datum: 17.2.2009 Tutor: Prof. Schottenloher Spieltheorie Präsentation Agenda I. Einführung 1. Motivation 2. Das Spiel Vier Gewinnt

Mehr

Spieltheorie. Sebastian Wankerl. 16. Juli 2010

Spieltheorie. Sebastian Wankerl. 16. Juli 2010 Spieltheorie Sebastian Wankerl 16. Juli 2010 Inhalt 1 Einleitung 2 Grundlagen Extensive Form choice functions Strategien Nash-Gleichgewicht Beispiel: Gefangenendillema 3 Algorithmen Minimax Theorem Minimax

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Zug Bart Borg Bart Borg Bart Borg Bart. Bart 2 1 1 1 Borg 1 1 2 verloren. Stand 8 7 6 5 4 2 1. Zug Bart Borg Bart Borg Bart Borg

Zug Bart Borg Bart Borg Bart Borg Bart. Bart 2 1 1 1 Borg 1 1 2 verloren. Stand 8 7 6 5 4 2 1. Zug Bart Borg Bart Borg Bart Borg . Das. Einführung Deep Blue Kasparow, Philadelphia 996 Deep Blue, der Supercomputer schlägt Garry Kasparow. So oder ähnlich lauteten die Schlagzeilen 996. Die 6 Partien waren insgesamt ausgeglichen, zum

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

Kapitel 3: Problemformulierungen in der KI. oder das Problem ist die halbe Lösung

Kapitel 3: Problemformulierungen in der KI. oder das Problem ist die halbe Lösung Kapitel 3: Problemformulierungen in der KI oder das Problem ist die halbe Lösung Lernziele: eine Struktur für die Definition eines problemlösenden Agenten kennen die wichtige Rolle von Abstraktionen in

Mehr

KI und Sprachanalyse (KISA)

KI und Sprachanalyse (KISA) Folie 1 KI und Sprachanalyse (KISA) Studiengänge DMM, MI (B. Sc.) Sommer Semester 15 Prof. Adrian Müller, PMP, PSM1, CSM HS Kaiserslautern e: adrian.mueller@ hs-kl.de Folie 2 ADVERSIALE SUCHE Spiele: Multi-Agenten

Mehr

Proseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution

Proseminar: Geschichte des Computers Schachprogrammierung Die Digitale Revolution Die Digitale Revolution Internet 3D-Drucker Quants Singularität 27.02.14 Johannes Polster Das Spiel der Könige Sehr altes Spiel: Entstehung vor 1500 Jahren Weltberühmt Strategisches Spiel Kein Glück, Intelligenz,

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

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

Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC

Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC Compu terwissenscha ften mi t Spaßfak tor Spiele gewinnen: der perfekte Tic Tac Toe-Spieler Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC Spiele gewinnen: der

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 39. Brettspiele: Alpha-Beta-Suche und Ausblick Malte Helmert Universität Basel 23. Mai 2014 Brettspiele: Überblick Kapitelüberblick: 38. Einführung und Minimax-Suche

Mehr

Bericht vom 1. Leipziger Seminar am 25. November 2006

Bericht vom 1. Leipziger Seminar am 25. November 2006 Bericht vom 1. Leipziger Seminar am 25. November 2006 Das Wythoff-Nim-Spiel Wir wollen uns ein Spiel für zwei Personen ansehen, welches sich W.A.Wythoff 1907 ausgedacht hat: Vor den Spielern liegen zwei

Mehr

Spiele (antagonistische Suche) Übersicht. Typen von Spielen. Spielbaum. Spiele mit vollständiger Information

Spiele (antagonistische Suche) Übersicht. Typen von Spielen. Spielbaum. Spiele mit vollständiger Information Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

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

5. Spiele. offensichtlich eine Form von Intelligenz. Realisierung des Spielens als Suchproblem

5. Spiele. offensichtlich eine Form von Intelligenz. Realisierung des Spielens als Suchproblem 5. Spiele Spiele, insbesondere Brettspiele, stellen eines der ältesten Teil- und Anwendungsgebiete der KI dar (Shannon und Turing: 1950 erstes Schachprogramm). Brettspiele stellen eine sehr abstrakte und

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik) Vortrag Suchverfahren der Künstlichen Intelligenz Sven Schmidt (Technische Informatik) Suchverfahren der Künstlichen Intelligenz Grundlagen Zustandsraumrepräsentation Generische Suche Bewertung von Suchstrategien

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

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

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Bäume und Wälder. Bäume und Wälder 1 / 37

Bäume und Wälder. Bäume und Wälder 1 / 37 Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine einfachen Kreise enthält. Bäume und Wälder 2 / 37 Bäume

Mehr

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri Informatik II PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Spieltheorie mit. sozialwissenschaftlichen Anwendungen

Spieltheorie mit. sozialwissenschaftlichen Anwendungen .. Friedel Bolle, Claudia Vogel Spieltheorie mit sozialwissenschaftlichen Anwendungen SS Inhalt. Einleitung. Sequentielle Spiele Terminologie Spielbäume Lösen von Sequentiellen Spielen .. Motivation: Warum

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

6 Conways Chequerboard-Armee

6 Conways Chequerboard-Armee 6 Conways Chequerboard-Armee Spiele gehören zu den interessantesten Schöpfungen des menschlichen Geistes und die Analyse ihrer Struktur ist voller Abenteuer und Überraschungen. James R. Newman Es ist sehr

Mehr

Spieltheorie. Miriam Polzer 16.7.2013. Miriam Polzer Spieltheorie 16.7.2013 1 / 40

Spieltheorie. Miriam Polzer 16.7.2013. Miriam Polzer Spieltheorie 16.7.2013 1 / 40 Spieltheorie Miriam Polzer 16.7.2013 Miriam Polzer Spieltheorie 16.7.2013 1 / 40 1 Grundlagen 2 Minimax und Alpha-Beta-Pruning 3 Nim-Spiele 4 Josephus-Problem Miriam Polzer Spieltheorie 16.7.2013 2 / 40

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Einschätzung der Diplomarbeit. Musik im Film- Auswirkungen von Filmmusik auf das Gedächtnis für Filminhalte

Einschätzung der Diplomarbeit. Musik im Film- Auswirkungen von Filmmusik auf das Gedächtnis für Filminhalte Einschätzung der Diplomarbeit Musik im Film- Auswirkungen von Filmmusik auf das Gedächtnis für Filminhalte Von: Wultsch Christina Matrikelnr.: 0411409 LV: Wissenschaftliches Arbeiten (LV-Nr.: 000.002)

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

Teil I: Einführung Motivation Einführendes Beispiel Merkmale eines Spiels Teil II: Mathematische Spieltheorie. Einführung

Teil I: Einführung Motivation Einführendes Beispiel Merkmale eines Spiels Teil II: Mathematische Spieltheorie. Einführung c by Rolf Haenni (2006) Seite 170 Teil I: Motivation Einführendes Beispiel Merkmale eines Spiels Teil II: Mathematische Spieltheorie Neutrale Spiele Die Conway-Theorie Teil III: Spielalgorithmen in der

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests Masterarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) im Masterstudiengang Wirtschaftswissenschaft

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Auswahl von Klauseln und Atomen in Prolog

Auswahl von Klauseln und Atomen in Prolog 5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten

Mehr

Fehlermeldung, wenn Anzahl der %do der %end entspricht - was läuft falsch?

Fehlermeldung, wenn Anzahl der %do der %end entspricht - was läuft falsch? News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren Allgemeine Fragen zu SAS Fehlermeldung, wenn Anzahl der %do der %end entspricht - was läuft falsch? 14 April,

Mehr

Konzepte der AI. Maschinelles Lernen

Konzepte der AI. Maschinelles Lernen Konzepte der AI Maschinelles Lernen http://www.dbai.tuwien.ac.at/education/aikonzepte/ Wolfgang Slany Institut für Informationssysteme, Technische Universität Wien mailto: wsi@dbai.tuwien.ac.at, http://www.dbai.tuwien.ac.at/staff/slany/

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

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

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

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

39.1 Alpha-Beta-Suche

39.1 Alpha-Beta-Suche Grundlagen der Künstlichen Intelligenz. Mai 0 9. Brettspiele: Alpha-Beta-Suche und Ausblick Grundlagen der Künstlichen Intelligenz 9. Brettspiele: Alpha-Beta-Suche und Ausblick 9.1 Alpha-Beta-Suche Malte

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

Grundlagen der Künstlichen Intelligenz Einführung Minimax-Suche Bewertungsfunktionen Zusammenfassung. Brettspiele: Überblick

Grundlagen der Künstlichen Intelligenz Einführung Minimax-Suche Bewertungsfunktionen Zusammenfassung. Brettspiele: Überblick Grundlagen der Künstlichen Intelligenz 22. Mai 2015 41. Brettspiele: Einführung und Minimax-Suche Grundlagen der Künstlichen Intelligenz 41. Brettspiele: Einführung und Minimax-Suche Malte Helmert Universität

Mehr

Praktikum Wissensbasierte Systeme Übung 1 Vier Gewinnt als Strategiespiel in Java

Praktikum Wissensbasierte Systeme Übung 1 Vier Gewinnt als Strategiespiel in Java Praktikum Wissensbasierte Systeme Übung 1 Vier Gewinnt als Strategiespiel in Java Prof. Dr. Daniel Pfeifer 18. März 2009 1 Einführung Im Laufe dieser Übung werden Sie (unter anderem) eine Mini-Max-Strategie

Mehr

Bin Packing oder Wie bekomme ich die Klamotten in die Kisten?

Bin Packing oder Wie bekomme ich die Klamotten in die Kisten? Bin Packing oder Wie bekomme ich die Klamotten in die Kisten? Ich habe diesen Sommer mein Abi gemacht und möchte zum Herbst mit dem Studium beginnen Informatik natürlich! Da es in meinem kleinen Ort keine

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE19-Verbunde (Stand 19.12.2011) Aufgabe 1: Bei dieser Aufgabe geht es darum, ein Java-Programm zu schreiben, das es einem Spieler ermöglicht, eine Variante

Mehr

1. Einleitung wichtige Begriffe

1. Einleitung wichtige Begriffe 1. Einleitung wichtige Begriffe Da sich meine besondere Lernleistung mit dem graziösen Färben (bzw. Nummerieren) von Graphen (speziell von Bäumen), einem Teilgebiet der Graphentheorie, beschäftigt, und

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm

Mehr

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun Java Projekt Schiffe Versenken mit GUI 1. Über den Autor: Name: Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002)

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) 3. Entscheidungsbäume Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) (aus Wilhelm 2001) Beispiel: (aus Böhm 2003) Wann sind Entscheidungsbäume

Mehr

Befragung und empirische Einschätzung der Praxisrelevanz

Befragung und empirische Einschätzung der Praxisrelevanz Befragung und empirische Einschätzung der Praxisrelevanz eines Vorgehensmodells zur Auswahl von CRM-Systemen D I P L O M A R B E I T zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen

Mehr

OPERATIONS-RESEARCH (OR)

OPERATIONS-RESEARCH (OR) OPERATIONS-RESEARCH (OR) Man versteht darunter die Anwendung mathematischer Methoden und Modelle zur Vorbereitung optimaler Entscheidungen bei einem Unternehmen. Andere deutsche und englische Bezeichnungen:

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Baumsuche und Graphensuche Malte Helmert Universität Basel 13. März 2015 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 5. 7.

Mehr

Spieltheoretischer Ansatz für selbstorganisierende Systeme

Spieltheoretischer Ansatz für selbstorganisierende Systeme Spieltheoretischer Ansatz für selbstorganisierende Systeme Institut für Informatik 27. Juni 2006 Inhaltsverzeichnis 1 Ziel des Aufsatz 2 Geschichte 3 Einführung 4 Das Spiel Experiment 5 Konzepte zur Lösung

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum: Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung

Mehr

Algorithmen mit Python

Algorithmen mit Python Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World

Mehr

Spieltheorie. Fabian Schmidt Fabian Schmidt Spieltheorie / 46

Spieltheorie. Fabian Schmidt Fabian Schmidt Spieltheorie / 46 Spieltheorie Fabian Schmidt 09.07.2014 Fabian Schmidt Spieltheorie 09.07.2014 1 / 46 Übersicht Einführung Gefangenendilemma Tit-for-tat Minimax und Alpha-Beta-Pruning Nim-Spiel und Misère-Variante Josephus-Problem

Mehr

Seminar künstliche Intelligenz

Seminar künstliche Intelligenz Seminar künstliche Intelligenz Das Kürzeste-Wege-Problem in öffentlichen Verkehrsnetzen Stefan Görlich mi5517 25.05.2005 Inhalt 1. Einleitung 1.1 Problemstellung 3 1.2 Zielsetzung 3 1.3 Die Suche in öffentlichen

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

JAVA PROJEKT. Schiffe Versenken mit GUI. Projektheft

JAVA PROJEKT. Schiffe Versenken mit GUI. Projektheft Anwendungspraktikum aus JAVA Programmierung SS 2006 Leitung: Dr. Albert Weichselbraun JAVA PROJEKT Schiffe Versenken mit GUI Projektheft Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

Mehr

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Dokumentation für das Spiel Pong

Dokumentation für das Spiel Pong Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel

Mehr

Vorlesung: Nicht-kooperative Spieltheorie. Teil 4: 2-Personen-Nullsummenspiele

Vorlesung: Nicht-kooperative Spieltheorie. Teil 4: 2-Personen-Nullsummenspiele Vorlesung: Nicht-kooperative Spieltheorie Teil 4: 2-Personen-Nullsummenspiele Dr. Thomas Krieger Wintertrimester 2009 Dr. Thomas Krieger Vorlesung: Nicht-kooperative Spieltheorie 1 Definition 2-Personen-Nullsummenspiele

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

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

Mehr

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP

Mehr

Hackenbusch und Spieltheorie

Hackenbusch und Spieltheorie Hackenbusch und Spieltheorie Was sind Spiele? Definition. Ein Spiel besteht für uns aus zwei Spielern, Positionen oder Stellungen, in welchen sich das Spiel befinden kann (insbesondere eine besondere Startposition)

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr