Raphael Fischer fischrap@student.ethz.ch 04.05.2014 Informatik II - Übung 9 Raphael Fischer fischrap@student.ethz.ch 04.05.2014.

Slides:



Advertisements
Ähnliche Präsentationen
Der Foliensatz ist unter einer Creative Commons-Lizenz lizenziert:
Advertisements

Problemlösen am Beispiel des Rückwärtsarbeitens
? Stichwortverzeichnis … zum Suchen
Stichwortverzeichnis
Heute Mathe, morgen DLR! Dr. Margrit Klitz
Einführung in Web- und Data-Science Grundlagen der Stochastik
gemeinsam.innovativ.nachhaltig.
Wissenschaftliche Methodik
3. Schafft das Internet neue Transaktionsdesign?
Umweltbezogene Entscheidungen - multidimensionale Bewertungsverfahren -
Michael Artin: Geometric Algebra
R What is this R thing, and is it worth some effort?
3 Elektrochemische Wandler
Elektro-Skateboards Teil I Grundlagen
Stichwortverzeichnis
8 Zündung/Motormanagement
Stichwortverzeichnis
2 Elektrische Maschinen in Kraftfahrzeugen
Herstellung von kristallinen Metalloxiden über die Schmelze mit einem Spiegelofen Gruppe 8: Yuki Meier, Vivien Willems, Andrea Scheidegger, Natascha Gray.
Kapitel 4 Traveling Salesman Problem (TSP)
Markus Lips März 2017 ETH-Vorlesung, 6. Sem. Agrarwissenschaft BSc Agrartechnik II.
Einführung in die Wahrscheinlichkeitsrechnung
Motoremissionen mobiler Anlagen – Stand der Technik
Lieber Leser, liebe Leserin,
Inhaltsverzeichnis In der vorliegenden Präsentation finden Sie unter anderem Antworten auf folgende Fragen… warum ist eine Gesetzesinitiative zum Betriebliches.
Einführung in Web- und Data-Science
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Industrie 4.0 für die Ausbildung 4.0
Entwicklung epistemologischer Überzeugungen
Das Verdauungssystem Präsentiert von Theresa
MasterBAV© Die neue Generation BAV
Algorithmen und Datenstrukturen
Rehwild die richtige Altersbestimmung
PSG II Neuer Pflegebedürftigkeitsbegriff und dessen Begutachtung (NBA)
Medientechnische Infrastrukturen für virtuelle und lokale Lernräume
Wissensmanagement im Zeitalter von Digitaler Transformation
«Wir bereiten uns auf die Deutschlandreise vor»
GABI UND BEN.
Pflege & Finanzierung 01. Juni 2017 Dr. Sonja Unteregger
Das Arbeitgebermodell in Zeiten des
Microsoft® Office PowerPoint® 2007-Schulung
Einführung in Web- und Data-Science
Pensionsrück-stellungen Prof. Dr. Matthias Hendler
Mathematik 10.
Betriebliche Gesundheitsförderung 2
Vorlesung Wasserwirtschaft & Hydrologie I
Liebe BetrachterInnen,
Rosebrock: Geometrische Gruppen
Forschungsmethoden in der Teilchenphysik
Neue Unterrichtsmaterialien zur Teilchenphysik Philipp Lindenau CERN | Herzlich willkommen! Präsentation mit Notizen hinterlegt!
Eröffnungsveranstaltung
Aktuelle Themen aus dem KVJS-Landesjugendamt Referat 44
Roomtour - Podio für Anfänger
175 Jahre UZH Krisenkommunikation
Frauen- Männerriegen KONFERENZ
Schulung für Microsoft® Office SharePoint® 2007
Was ist eigentlich Datenschutz?
Aktuelle Aspekte des Europäischen Zivilprozessrechts
Einführung in die Benutzung des Einkaufportals der Eckelmann AG
Wer wir sind! Ihr S-Campus-Team direkt im Campus Center. Sven Deussing
Non-Standard-Datenbanken
Amand Fäßler 3. Januar 2017; RC Bregenz
Mathematik 11 Analytische Geomerie.
Non-Standard-Datenbanken
Menger-Schwamm Ausgangsfigur in Stufe 0 ist ein Würfel
Sortieren auf Multiprozessorrechnern
Wurzeln und Irrationalität nach U.Wagner, OHG Tuttlingen
Langzeitbelichtung Ein Zugang zur Kinematik in Klassenstufe 7/8
Eine kleine Einführung in das Projekt „Mausefallenauto“
 Präsentation transkript:

Raphael Fischer fischrap@student.ethz.ch 04.05.2014 Informatik II - Übung 9 Raphael Fischer fischrap@student.ethz.ch 04.05.2014

Spielbäume Jeder Ast: Ein möglicher Spielverlauf Max will möglichst hohen Wert Min will möglichst tiefen Wert Raphael Fischer 10.11.2018

Strategie σ Ein Spieler versetzt sich in jeden mögl. Spielzustand und überlegt was er machen würde Raphael Fischer 10.11.2018

Optimale Strategie σ* Wähle Strategie so, dass das beste für einen rausschaut, falls der Gegner extrem gut ist (worst-case Optimierung) Raphael Fischer 10.11.2018

Optimale Strategie σ* 5 5 -6 5 3 8 Wahl der Strategie auf der untersten Ebene einfach Weise Knoten voraussichtlicher Spielausgang zu Nächste Ebene kommt dran: Min wählt Strategie usw. Raphael Fischer 10.11.2018

Optimale Strategien σ* und σ’* Nash-Gleichgewicht Wenn keiner einen Fehler macht, ist das Resultat schon vorbestimmt Nash-Gleichgewicht: 𝐴 𝜎 ∗ , 𝜎 ′ ∗ ≥𝐴 𝜎, 𝜎 ′ ∗ Raphael Fischer 10.11.2018

Minimax-Algorithmus Diese Beschriftung der Knoten: Max-Spieler wählt das Maximum der Kind-Knoten Min-Spieler wählt das Minimum der Kind-Knoten Variante von vorher: Bottom-up Rekursiv wäre: Depth-first Raphael Fischer 10.11.2018

U9.A2a): Reversi Minimax-Spieler Programmieren Wenn bei gewisser Tiefe angelangt, schneide Baum ab Es werden alles Blätter Bewertungsfunktion = Differenz der Steine Raphael Fischer 10.11.2018

Beispiel: Tic-Tac-Toe Spieler Hier ohne Tiefenbeschränkung Raphael Fischer 10.11.2018

U9.A2a): Reversi Tipp: Überlegt euch: Was, wenn gar kein möglicher Zug? Was, wenn der Gegner (=Max in Min-Funktion und umgekehrt) auch keinen mehr hat? Raphael Fischer 10.11.2018

U9.A2b): Reversi: Zeitmanagement Zeitlimite pro Zug in ms wird in void initialize(int myColor, long timeLimit) mitgeteilt Zieht von diesem timeLimit ca. 10ms als Reserve ab System.currentTimeMillis()   Prüfe in min und max Funktion, ob Limite überschritten. Wenn ja: Exception Berechne zuerst Zug mit Tiefe 1, dann mit Tiefe 2 etc. bis es Time-Exception gibt. Der letzte Versuch ohne Exception zählt Raphael Fischer 10.11.2018

U9.A2c) Heuristiken (optional) Finde bessere Heuristik Internet-Recherche Eigentlich wichtigster Teil für guten Reversi-Spieler Raphael Fischer 10.11.2018

Othelligence Event Program: Time: Friday, 19.05.2017, 16:00 Game strategies and game theory Duell Human (German Champion) vs. Machine Panel Apéro 😋 Time: Friday, 19.05.2017, 16:00 Location: CABinett (CAB F21) More info: https://vs.inf.ethz.ch/events/othelligence/ Interesting for the students to get insights for their reversi tournament players. 10.11.2018

Alpha-Beta-Algorithmus Raphael Fischer 10.11.2018

Alpha-Beta-Algorithmus Alpha: Ich habe schon einen Wert mit α. Mich interessieren nur noch grössere Werte Beta: Ich habe schon einen Wert mit β. Mich interessieren nur noch kleinere Werte Liefere Wert 𝑥 ∈[𝛼, 𝛽] Achtung: Knotenwerte können anders als bei Minimax sein! (falls β kleiner als alle maxValues Raphael Fischer 10.11.2018

Aufgabe 1: Alpha Beta Alpha: Ich habe schon einen Wert mit α. Mich interessieren nur noch grössere Werte Beta: Ich habe schon einen Wert mit β. Mich interessieren nur noch kleinere Werte Liefere Wert 𝑥 ∈[𝛼, 𝛽] Achtung: Knotenwerte können anders als bei Minimax sein! (falls β kleiner als alle maxValues Raphael Fischer 10.11.2018

Lösung Raphael Fischer 10.11.2018

U9.A1: Theorieaufgabe Strategien Minimax Alpha-Beta Raphael Fischer 10.11.2018

U8.A2 Rucksackproblem mit Backtracking Lösung Problembeschreibung: k Gegenstände x1, ..., xk; Jeweils bekannter Wert und Gewicht Auswahl von Gegenständen, so dass Gesamtgewicht nicht überschritten wird Optimierungsproblem: Maximieren des Wertes der ausgewählten Gegenstände Raphael Fischer 10.11.2018

Lösung zu letztem Mal: Knapsack mit Bruteforce public Selection findBest(ArrayList<Integer> values, ArrayList<Integer> weights, int maxWeight)   {     if (values.size() != weights.size()) throw new IllegalArgumentException("size problem");        final int max = (int) Math.pow(2, values.size());     Selection bestSelection = null;     int maxValue = -1;     for (int i=0; i<max; i++) {       Selection selection = new Selection(values.size(), i);       if (selection.sum(weights) <= maxWeight) {         int value = selection.sum(values);         if (value >= maxValue) {           bestSelection = selection;           maxValue = value;         }       }     }     return bestSelection;   }   Alle 2n Möglichkeiten Probiere aktuelle Möglichkeit aus (-> Bitdarstellung der Selection!) Zu schwer? Raphael Fischer 10.11.2018

U8.A2 c) Backtracking Iteration Gewicht 12 kg 1 kg 4 kg 2 kg Wert $4 $2 $10 $1 Genommen? Nein Ja Todo Funktion, die einen Schritt näher zur Lösung gehen soll: Iteriere durch alle Möglichkeiten für diesen Schritt: 1. Prüfe, ob die Möglichkeit möglich ist Falls ja: Lösung kopieren Schritt in Kopie reinschreiben Rekursion mit Kopie Hier nur zwei Möglichkeiten: Nehme es nehme es nicht Lösung = Selection Schritt in Lösung reinschreiben Rekursion Schritt rückgängig machen o d e r Raphael Fischer 10.11.2018

Lösung zu letztem Mal: Backtracking public Selection findBest(ArrayList<Integer> values, ArrayList<Integer> weights, int maxWeight) {     if (values.size() != weights.size()) throw new IllegalArgumentException("size problem");        Selection result = find(new Selection(0), 0, values, weights, maxWeight);     return result;   }   Raphael Fischer 10.11.2018

Lösung zu letztem Mal: Backtracking Rückgabe: Komplette Selection Lösung zu letztem Mal: Backtracking private Selection find(Selection selection, int weight, ArrayList<Integer> values, ArrayList<Integer> w eights, int maxWeight) {     final int depth = selection.size();        if (depth == values.size()) {       return selection;     }     Selection without = new Selection(depth + 1, selection.bits());     without.set(depth, false);     Selection resultWithout = find(without, weight, values, weights,maxWeight);     if (weight + weights.get(depth) <= maxWeight) {       Selection with = new Selection(depth + 1, selection.bits());       with.set(depth, true);       Selection resultWith = find(with, weight + weights.get(depth), values, weights, maxWeight);       if (resultWith.sum(values) > resultWithout.sum(values)) {         return resultWith;       }     return resultWithout;   }    Neue Parameter. Selection ist nur der bisherige Teil Wie weit schon? Wenn fertig, breche ab Probiere, das nächste Element nicht zu nehmen Wenn überhaupt möglich, nächstes Element noch zu nehmen, Probiere, das nächste Element zu nehmen Schaue, welches besser ist Raphael Fischer 10.11.2018

…viel Spass! Raphael Fischer 10.11.2018