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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Algorithmen und Programmieren II Einführung in Python

Algorithmen und Programmieren II Einführung in Python Algorithmen und Programmieren II Einführung in Python SS 2012 Prof. Dr. Margarita Esponda 1 Was ist Python? eine Skript-Sprache Anfang der 90er Jahre entwickelt. Erfinder: Guido van Rossum an der Universität

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

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

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

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

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

Fiktives Spiel und Verlustminimierung. Seminarvortrag von Alexander Marinc zur TUD Computer Poker Challenge 2008

Fiktives Spiel und Verlustminimierung. Seminarvortrag von Alexander Marinc zur TUD Computer Poker Challenge 2008 Fiktives Spiel und Verlustminimierung Seminarvortrag von Alexander Marinc zur TUD Computer Poker Challenge 2008 Dezimierung Übersicht Fiktives Spiel Verlustminimierung Splines Seite 2/30 Inhalt Einführung

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

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

Das Handbuch zu Vier gewinnt. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Deutsche Übersetzung: Maren Pakura

Das Handbuch zu Vier gewinnt. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Deutsche Übersetzung: Maren Pakura Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Deutsche Übersetzung: Maren Pakura 2 Inhaltsverzeichnis 1 Einführung 5 2 Spielanleitung 6 3 Spielregeln, Spielstrategien und

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

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum

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

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

Seminar aus maschinellem Lernen MCTS und UCT

Seminar aus maschinellem Lernen MCTS und UCT Seminar aus maschinellem Lernen MCTS und UCT 26. November 2014 TU Darmstadt FB 20 Patrick Bitz 1 Übersicht Historisches zu MCTS MCTS UCT Eigenschaften von MCTS Zusammenfassung 26. November 2014 TU Darmstadt

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

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

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

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

Projektarbeit Vier Gewinnt

Projektarbeit Vier Gewinnt Projektarbeit Vier Gewinnt Vorlesung Spieltheorie WS 08/09 Prof. Martin Schottenloher Benjamin Ruile Bernhard Weiß Mathias Ditsche Nicolas Schmidt Inhaltsverzeichnis I Spieltheoretische Untersuchung 4

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

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Intelligente Spiele. Prof. Rolf Haenni. Master-Vorlesung SS 2006. http://www.iam.unibe.ch/ run/teachss06.html

Intelligente Spiele. Prof. Rolf Haenni. Master-Vorlesung SS 2006. http://www.iam.unibe.ch/ run/teachss06.html c by Rolf Haenni (2006) Seite 1 Intelligente Spiele Prof. Rolf Haenni Reasoning under UNcertainty Group Institute of Computer Science and Applied Mathematics University of Berne, Switzerland Master-Vorlesung

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

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

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

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

Anforderungsbeschreibung

Anforderungsbeschreibung Fachbereich Mathematik und Informatik Prof. Dr. Klaus Ostermann Anforderungsbeschreibung zum Softwarepraktikum im Sommersemester 2010 Tillmann Rendel 28. Mai 2010 28. Mai 2010 Informationen zum Betrieb

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

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

Ohne Mathematik undenkbar!

Ohne Mathematik undenkbar! Die tägliche - Suche: Ohne Mathematik undenkbar! Dipl.-Wirt.Math. Jan Maruhn FB IV - Mathematik Universität Trier 29. März 2006 29. März 2006 Seite 1 Gliederung Einleitung und Motivation Das Internet als

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Algorithmen und Datenstrukturen SS09

Algorithmen und Datenstrukturen SS09 Foliensatz 8 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 29 TU Ilmenau Seite / 54 Binärbäume TU Ilmenau Seite 2 / 54 Binäre Bäume Bäume und speziell

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit IT-basierte Erstellung von Nachhaltigkeitsberichten Diplomarbeit zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen Fakultät der Leibniz Universität Hannover vorgelegt von

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

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

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

Wissensmanagement WS 2010/2011

Wissensmanagement WS 2010/2011 Wissensmanagement Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://wwwstud.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de WS 2010/2011 Motivation Wie wird Wissen

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

DER SCHLÜSSEL IN DER STRATEGIE

DER SCHLÜSSEL IN DER STRATEGIE DER SCHLÜSSEL IN DER STRATEGIE Das Geheimnis im Schachspielen von Keykhosrow Mansouri 1. Auflage DER SCHLÜSSEL IN DER STRATEGIE Mansouri schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

Mehr

Scheinaufgabe im Fach Web Engineering

Scheinaufgabe im Fach Web Engineering Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Verteilte Systeme Scheinaufgabe im Fach Web Engineering Thomas Thüm 07. August 2006 Matrikel: 171046 Lehrveranstaltung: Web

Mehr

Sortieren. Eine Testmenge erstellen

Sortieren. Eine Testmenge erstellen Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel Highway Hierarchies Kristian Dannowski, Matthias Hoeschel Gliederung Einleitung / Bidirektional Dijkstra Intuition / Naive Strategie Konstruktion der Highway Hierarchie Suche in der Highway Hierarchie

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert.

Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert. Anwendungen von Bäumen 4.3.2 Huffman Code Problem: Finde für Alphabet mit n Zeichen einen Binärcode, der die Gesamtlänge eines Textes (über diesem Alphabet) minimiert. => nutzbar für Kompression Code fester

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

Vorwort. Zu dieser Reihe. Autoren. Vorwort

Vorwort. Zu dieser Reihe. Autoren. Vorwort Vorwort 9 10 Vorwort Vorwort Herzlich Willkommen zu einem Fachbuch von Comelio Medien, ein Bereich der Comelio GmbH. Dieses Buch aus unserer Reihe zur.net-entwicklung ist das Ergebnis einer Forschungsarbeit,

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Kann ein Computer denken?

Kann ein Computer denken? Kann ein Computer denken? Fachbereich Betriebswirtschaft FH www.fh-koblenz.de/bw/komus www.komus.de www.fh-koblenz.de/bw/komus www.fh-koblenz.de/bw/komus 2 www.fh-koblenz.de/bw/komus 3 www.fh-koblenz.de/bw/komus

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

6 Systematisches Testen von Programmen

6 Systematisches Testen von Programmen 6 Systematisches Testen von Programmen Testen Untersuchung des Source-Codes nach Fehlern und Anomalien Stefan Lucks, Software-Entwicklung für Sichere Systeme SS 04, Kapitel 6 p.1/24 Untersuchung des Source-Codes

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden.

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Zusatzmaterial zum Buch "Algorithmen kompakt und verständlich" Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor übernimmt

Mehr

Hyper-V Server 2008 R2

Hyper-V Server 2008 R2 Hyper-V Server 2008 R2 1 Einrichtung und Installation des Hyper-V-Servers 1.1 Download und Installation 4 1.2 Die Administration auf dem Client 9 1.3 Eine VM aufsetzen 16 1.4 Weiterführende Hinweise 22

Mehr

Programmiersprachen gestern, heute, morgen

Programmiersprachen gestern, heute, morgen Programmiersprachen gestern, heute, morgen Einleitung Sie kennen sicher die heute gängigen Sprachen wie C, Java oder Pascal. Doch wie kam es dazu? Wer hat diese Programmiersprachen erfunden? Und - noch

Mehr

Tutorium Algorithmen & Datenstrukturen

Tutorium Algorithmen & Datenstrukturen June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an

Mehr

Ein Rechenspiel auf der Hunderter-Tafel. Reinhold Wittig

Ein Rechenspiel auf der Hunderter-Tafel. Reinhold Wittig Ein Rechenspiel auf der Hunderter-Tafel Reinhold Wittig Ein Rechenspiel auf der Hunderter-Tafel für 2 Spieler ab 8 Jahren Autor Reinhold Wittig Inhalt 1 Spielbrett (Hunderter-Tafel) 1 transparente Maske

Mehr

Buzzword Bingo Game Documentation (Java based Game)

Buzzword Bingo Game Documentation (Java based Game) Buzzword Bingo Game Documentation (Java based Game) Meppe Patrick Djeufack Stella Beltran Daniel April 15, 2011 1 Inhaltsverzeichnis 1 Einleitung 3 2 Aufgabenstellung 3 3 Allgemeines zu Buzzword Bingo

Mehr