Von Labyrinthen und Irrgärten

Slides:



Advertisements
Ähnliche Präsentationen
Seminar über Algorithmen
Advertisements

Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Algorithmische Anwendung
WR + WS ZEIGEN Neues aus der Mathematik.
CSCW-Seminar Escape the Maze C omputer S upported C ollaborative W ork Escape the Maze ist ein Lernszenario: Abstrakt Denken lernen Algorithmen entwickeln.
Suche in Texten (Stringsuche )
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Praktikum Mobile Roboter
Das Halteproblem. Gibt es einen Algorithmus, mit dem man für jedes beliebig vorgegebene Programm R und für jede beliebig vorgegebene Eingabe E entscheiden.
1 Bewegungsplanung Computational Geometry Prof. Dr. Th. Ottmann Bewegungsplanung bei unvollständiger Information Ausweg aus einem Labyrinth Finden eines.
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
Online Competitive Algorithms
Wegenetze von: Johanna Nixdorf, Michael Repke, Christian Richter ( )
Wie macht man ein Sudoku? Transformations-Methode:
Kapitel 1 – Erste Schritte
Arbeitsanweisungen.
Heft Heften Hefter LeitHeftfaden zur Heftführung: Vertiefung _3 Gestaltung heftig Heftklammer Heftpflaster So führst du erfolgreich dein Heft, deinen Schnellhefter.
Übungen zum Vortrag „Backtracking mit Heuristiken“
Der verfluchte Friedhof
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Wie sicher ist mein Geld ... ?
Gefährliche Mine Start. 1 Tom und Leo gingen am freien Nachmittag schlitteln. Sie liefen ganz nach oben und sahen ganz unten ein grosses Loch. Sie.
Weiter.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Gliederung der Vorlesung
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Übungsart: Seite: Bearbeitet von: Siegbert Rudolph Lesemotivationstraining Titel: Quelle: Nächste Seite 1 Bedienungshinweise: Mit einem Klick geht es immer.
Class HelloWorldApp { public static void main(String[] args) {... } Grundkurs Inf - wie einsteigen ?
1. 2 Das Grundproblem der Beurteilenden Statistik ● Wir haben uns bisher mit Problemen der Wahrscheinlichkeitsrechnung beschäftigt: – Die Wahrscheinlichkeit.
Lars Tremmel ETH Informatikdienste Managed Services September 2013
(der blaue Strich ist drehbar)
Das Entwurfsmuster Model-View-Controller
Graphen.
Liebe Mitarbeiterin, lieber Mitarbeiter,
b und d - Zwei Buchstaben streiten
Adiazenzmatrix des Graphen
Diese Power Point Präsentation beinhaltet Pornografisches Material
Unmöglichkeitsbeweise
Unmöglichkeitsbeweise
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
A T I N S.
Algorithmen und Datenstrukturen
Laufzeitverhalten beim Sortieren
Projekt Graphentheorie Eulerpfad
Icons Wozu und woher.
Start Zahlen-Spaß mit der Maus.
Wir machen jetzt WIB. Du brauchst dein Schreibzeug - sonst nichts.
Algorithmen.
Wenn man hot potatoes startet erhält man folgenden Bildschirm.
Willkommen bei PowerPoint
Hallo, schön dass du mich in meinem Wald besuchen kommst. Ich bin Frida. - - © Marlitt Kaun Stella Hagemeyer.
Hexadezimale Darstellung von Zahlen
ABENTEUER IN ÄGYPTEN LOS!
TexPoint fonts used in EMF.
Debugging.
Cognitive Walkthrough: Was ist das?
Willkommen bei PowerPoint
MODAL-PARTIKELN.
Algorithmen.
REKURSION + ITERATION.
10 Schritte Video-Optin-Formel
Schön, dass du da bist. Ich bin Kiki und brauche deine Hilfe, um an den Sack mit Körnern zu gelangen. Hinter jedem Korn verbirgt sich eine Aufgabe, löst.
Folge der Linie.
E-Aufgaben in Stud.IP mit ViPS – erste Schritte –
Diese Power Point Präsentation beinhaltet Pornografisches Material
 Präsentation transkript:

Von Labyrinthen und Irrgärten Ein Beispiel für Computational Thinking

Labyrinthe Labyrinth bezeichnet ein System von Linien oder Wegen, das durch zahlreiche Richtungsänderungen ein Verfolgen oder Abschreiten des Musters zu einem Rätsel macht. https://de.wikipedia.org/wiki/Labyrinth

Ausgang finden Heute geht es (u.a.) um die Entwicklung eines Algorithmus‘, der von einem beliebigen Startpunkt in einem beliebigen Labyrinth ausgehend den Ausgang findet. In einem ersten Schritt sollen Sie mithilfe der interaktiven Webseite https://blockly-games.appspot.com/maze ein kleines Programm entwickeln, das die Aufgabe für einfache Labyrinthe löst. Hinweis: Dieses Problem ist recht ähnlich zur Aufgabe, von einem beliebigen Sitzplatz im Klassenzimmer aus den Weg zum Wasserhahn zu beschreiben.

Verallgemeinerung Für die Beispiel-Labyrinthe auf der Webseite haben Sie hoffentlich eine Lösung gefunden. Aber ist das schon der gesuchte Algorithmus? Allgemeinheit: Funktioniert Ihre Lösung mit jedem Labyrinth und Startpunkt? Korrektheit: Findet Ihr Algorithmus immer den Ausgang? Aufgabe: Erstellen Sie (in Anlehnung an Ihr finales Programm) ein Struktogramm. Benutzen Sie Anweisungen, die von einem Mitschüler eindeutig interpretiert werden können. Hinweis: Es gilt weiterhin die Einschränkung, dass nur lokale Informationen verwendet werden dürfen, d.h. man kann nur die Wände und Gänge in der unmittelbaren Umgebung des Standorts sehen.

Auswertung Tauschen Sie Ihr Struktogramm mit einem Mitschüler. Überprüfen Sie seine/ihre Lösung, und zwar so: Machen Sie mit einem Stift ein Loch in ein Blatt Papier (ca. 1.5 cm Durchmesser). Das Loch ist dazu da, die Sichtweite auf den aktuellen Standort einzuschränken. Malen Sie noch einen Pfeil an das Loch, der die aktuelle Blickrichtung anzeigt. Platzieren Sie das Blatt an einer zufällig gewählten Stelle über dem bereitgestellten Labyrinth (nicht auf eine Wand natürlich) Folgen Sie genau den Anweisungen im Struktogramm, verschieben Sie Standort und Blickrichtung entsprechend. Sind Sie zum Ausgang gekommen?  Nochmal, mit anderem Startpunkt

Besprechung (der erfolgreichen Ansätze) Welches ist der einfachste Lösungsansatz, der garantiert zum Ziel (bzw. zum Ausgang) führt? Wie kann man dieses Ansatz knappmöglichst formulieren? Inwiefern kann man sicher sein, dass der Ansatz mit allen Labyrinthen funktioniert?

Die einfachste Formulierung (Eindeutig für Menschen, nicht unbedingt für Computer) Diese Lösung ist bekannt als Linke-Hand-Regel: suche eine beliebige Wand und drehe dich so, dass deine linke Hand die Wand berührt gehe immer weiter an dieser Wand entlang, so dass die linke Hand nie den Kontakt verliert wenn du den Ausgang erreicht hast, kannst du die Wand loslassen Hinweis: Natürlich funktioniert das auch, wenn man statt der linken die rechte Hand benutzt – aber man muss sich entscheiden und dann dabei bleiben. Noch ein Hinweis: So einfach lässt sich das formulieren, weil man nicht mehr zwischen verschiedenen Richtungen unterscheiden muss, wenn man einfach einer Wand folgt – die richtigen Drehungen passieren automatisch, selbst am Ende einer Sackgasse.

Korrektheit Es scheint einleuchtend, dass die Linke-Hand-Regel in jedem Labyrinth, von jedem Startpunkt aus, immer in endlicher Zeit zum Ausgang führt. Aber können wir sicher sein? Hier hilft ein in der Informatik üblicher Trick: man repräsentiert das Problem in einer anderen Form, in der alle für die Lösung irrelevanten Details weggelassen werden.

Abstraktion Was an dieser Darstellung ist für die Lösungsfindung relevant? Farben? Start- oder Zielpunkt? Richtungen? Winkel? Gang- oder Wandbreite? Weglänge? Ecken/Kurven? Kreuzungen? Startpunkt Zielpunkt

Abstraktion Was an dieser Darstellung ist für die Lösungsfindung relevant? Farben? Start- oder Zielpunkt? Richtungen? Winkel? Gang- oder Wandbreite? Weglänge? Ecken/Kurven? Kreuzungen! Startpunkt Zielpunkt

Abstraktion Da es lediglich um die Kreuzungen und Wege dazwischen geht, dann kann man jedes Labyrinth zu einem Baum vereinfachen: Startpunkt 2b 1 2a 3b 3c 3a 4a 3b 1 2b 2a 3c 3a 4a Zielpunkt

Abstraktion Auf diese Weise dargestellt, wird klarer, wieso man in jedem Fall zum Ausgang kommt, wenn man immer einer Wand folgt. Dieser Lösungsansatz hat sogar einen eigenen Namen: Backtracking. Es stellt sich heraus, dass man viele verschiedene Probleme als Baum darstellen und mithilfe von Backtracking lösen kann – z.B. das korrekte Ausfüllen eines beliebigen Sudoku ( Ergänzungsfach).

Nicht viel schwieriger, nur mehr Sackgassen Korrektheit 1 In der Baumform dargestellt zeigt sich, dass die meisten klassischen Labyrinthe gar nicht so schwer zu lösen sind – eigentlich gibt es nur einen Weg zum Ausgang. Ob das Labyrinth eine oder viele Sackgassen hat, ist nicht relevant. Die Linke-Hand-Regel sorgt dafür, dass alle Wege systematisch durchprobiert werden. Sie muss daher irgendwann den Ausgang finden. 1 Nicht viel schwieriger, nur mehr Sackgassen

Allgemeinheit Ist die Lösung für jedes beliebige Labyrinth wirklich so einfach? Die Antwort: Für Labyrinthe JA, für Irrgärten (engl. mazes) NEIN Definition: Ein Irrgarten ist wie ein Labyrinth, nur dass es mehrere Wege zum Ausgang gibt. Dadurch kann es sein, dass man endlos im Kreis geht (also, sich verirrt), wenn man einer Wand folgt. Labyrinth Irrgarten (Maze) 1 1 2

Computational Thinking Informieren Sie sich auf der Kurswebseite über das Konzept des „Computational Thinking“ Überlegen Sie dann, ob bzw. wo die verschiedenen Denkfiguren heute schon gebraucht wurden

Besprechung Decomposition? Pattern Recognition? Abstraction? (Auf Deutsch etwa: aufteilen, auseinandernehmen, trennen) Pattern Recognition? (Auf Deutsch etwa: Muster erkennen, Ähnlichkeiten finden) Abstraction? (Auf Deutsch etwa: abstrahieren, generalisieren, vereinfachen) Algorithm Design? (Auf Deutsch etwa: algorithmisch fassen, in einzelne, eindeutige, aufeinander folgende Schritte aufteilen)

Aus einem Irrgarten finden Auch dafür gibt es eine allgemeine Lösung, sogar mehrere. Der wohl einfachste Lösungsweg wird einem zwölfjährigen Jungen namens John Pledge zugeschrieben. Dieser „Pledge- Algorithmus“ ergänzt die Linke-Hand-Regel noch um eine Komponente, die das endlose Im-Kreis-Gehen verhindert. Aufgabe: Informieren Sie sich über John Pledges Lösung und setzen Sie dann den Pledge-Algorithmus in einem Programm um (Links s. Kurswebseite).