Visualisierung von Algorithmen

Ähnliche Dokumente
Einführung in die Informatik Algorithms

4.Grundsätzliche Programmentwicklungsmethoden

VBA-Programmierung: Zusammenfassung

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Algorithmen und Datenstrukturen Suchbaum

Minimal spannende Bäume

Einführung in die Informatik I (autip)

Vortrag zum Hauptseminar Hardware/Software Co-Design

Repetitorium Informatik (Java)

Bachelorarbeit Entwicklung eines Konzeptes zur angemessenen Beschriftung von Informationsobjekten

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

Algorithmen und Datenstrukturen

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Grundlagen der Informatik I (Studiengang Medieninformatik)

SS / 16 schrittweise Verfeinerung -> Wirth, 1971, Programm Development by Stepwise Refinement

Visualisierung feingranularer Abhängigkeiten

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Handbuch für die Erweiterbarkeit

Informatik II, SS 2014

Einstieg in die Informatik mit Java

Einführung in die Programmierung Vorlesungsprüfung

Diskrete Strukturen Kapitel 1: Einleitung

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Projekt AGB-10 Fremdprojektanalyse

Einführung in die Programmierung mit VBA

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Informatik I WS 07/08 Tutorium 24

Grundkurs Software- Entwicklung mit C++

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Entwurf und Umsetzung eines Werkzeugs für die Fluchtwegplanung

14. Rot-Schwarz-Bäume

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

2. Repräsentationen von Graphen in Computern

Vorlesung Datenstrukturen

WS 2009/10. Diskrete Strukturen

Bei näherer Betrachtung des Diagramms Nr. 3 fällt folgendes auf:

Grundlagen der Programmierung

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Anwendungen des Fréchet-Abstandes Das Constrained Free Space Diagram zur Analyse von Körperbewegungen

Objektorientierte Modellierung (1)

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Algorithmen & Datenstrukturen 1. Klausur

bzw. die Entscheidugen anderer Spieler (teilweise) beobachten Erweitert das Analysespektrum erheblich Beschreibung des Spiels (extensive Form)

Grundlagen der Theoretischen Informatik

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Binäre Suchbäume (binary search trees, kurz: bst)

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

JAVA-Datentypen und deren Wertebereich

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Dynamisches Huffman-Verfahren

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

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

App-Entwicklung für Android

Unterstützung von Lernprozessen durch Visualisierung: Auf ikonischen Programmiersprachen basierende Lernsoftware. Referentin: Sarah Lang.

Objektorientierte Analyse (OOA) Inhaltsübersicht

Werkzeuge zur Programmentwicklung

Einführung in die Informatik I

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Übungen zu Programmierung I - Blatt 8

Testen - Konzepte und Techniken

Ein Algorithmus für die

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Kurs 1613 Einführung in die imperative Programmierung

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Algorithmen II Vorlesung am

Algorithmen und Datenstrukturen 1

Template zum Erstellen einer Hauptseminar Ausarbeitung

Kapitel 8: Abstrakte Datentypen. Inhalt. Definition ADT Keller ADT Schlange

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Rechnerische Komplexität

Binärbäume. Prof. Dr. E. Ehses,

Assoziative Container in C++ Christian Poulter

Einführung in die Programmierung

Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation

Automatisch-generierte Texturen aus Laserpunktwolken

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

Beschreibungslogiken. Daniel Schradick

Seminar Programmierung und Reaktive Systeme

Proseminar (SS 2009): Human-Computer Interaction. Michael Kipp Jan Miksatko Alexis Heloir DFKI

Algorithmische Mathematik

Seminar. Visual Computing. Poisson Surface Reconstruction. Peter Hagemann Andreas Meyer. Peter Eisert: Visual Computing SS 11.

Transkript:

Visualisierung von Algorithmen Petra Hahnfeld Seminar Softwarevisualisierung Betreuer: Dr. Andreas Kerren Proseminar KI, WS 2004/2005 S. 1 SS 2006 TU Kaiserslautern Gliederung 1. Einleitung 2. Concept Keyboards 3. 4. Dynamische Graphen 5. Zusammenfassung Proseminar KI, WS 2004/2005 S. 2 Visualisierung von Algorithmen Seite 2

1. Aufteilung der Softwarevisualisierung Proseminar KI, WS 2004/2005 S. 3 Einleitung Visualisierung von Algorithmen Seite 3 1. Motivation Visualisierung von Algorithmen bietet: besseres Verständnis des Algorithmus hilft durch bessere Analyse bei der Optimierung Proseminar KI, WS 2004/2005 S. 4 Einleitung Visualisierung von Algorithmen Seite 4

Gliederung 1. Einleitung 2. Concept Keyboards 3. 4. Dynamische Graphen 5. Zusammenfassung Proseminar KI, WS 2004/2005 S. 5 Visualisierung von Algorithmen Seite 5 2.1. Concept Keyboards Gewöhnliche Visualisierung von Algorithmen: Step-by-Step-Verfahren Nachteile: Benutzer stark eingeschränkt Kontrollkonsole und Output nicht getrennt [Baloian05] Benutzer mehr einbinden What learners do, not what they see, may have the greatest Proseminar KI, WS 2004/2005 S. 6 impact on learning. (Hundhausen) Concept Keyboards Visualisierung von Algorithmen Seite 6

2.2. Was ist ein Concept Keyboard? Schnittstelle zwischen Benutzer und den Methoden des Algorithmus jede Taste stellt eine Methode (Konzept) des Algorithmus dar für breite Personengruppe Proseminar KI, WS 2004/2005 S. 7 [Baloian05] Concept Keyboards Visualisierung von Algorithmen Seite 7 2.3. Anforderungen an den Algorithmus Grundlage: bereits vorhandene Visualisierung Keyboard wird semiautomatisch erstellt Einschränkungen an den Algorithmus: referenziertes Objekt als intrinsischen Parameter (z.b. rotateright() statt rotate(x)) jedes Objekt, das als Parameter übergeben wird, muss Konstruktor besitzen, der String als Parameter bekommt Graphikmethode und Einlesen der Eingabedatei Proseminar KI, WS 2004/2005 S. 8 muss standardisiert sein Concept Keyboards Visualisierung von Algorithmen Seite 8

2.3. Konfigurations-Software (1) sinnvolle Auswahl der Methoden legt Detaillevel fest Daten-XML-Datei Proseminar KI, WS 2004/2005 S. 9 [Baloian05] Concept Keyboards Visualisierung von Algorithmen Seite 9 2.3. Konfigurations-Software (2) Layout anpassen Sound festlegen Keyboard-XML- Datei Proseminar KI, WS 2004/2005 S. 10 [Baloian05] Concept Keyboards Visualisierung von Algorithmen Seite 10

2.4. Beispiel der Oberfläche [Baloian05] Proseminar KI, WS 2004/2005 S. 11 Concept Keyboards Visualisierung von Algorithmen Seite 11 2.5. Ergebnisse 2 Testläufe mit 17 bzw. 18 Informatik-Studenten Auswertung mittels Fragebogen Ergebnisse: insgesamt sehr positives Feedback benutzerfreundlich Möglichkeit zur Interaktion bietet tieferes Verständnis Erklärungstexte hilfreich Proseminar KI, WS 2004/2005 S. 12 weitere Tests müssen folgen Concept Keyboards Visualisierung von Algorithmen Seite 12

Gliederung 1. Einleitung 2. Concept Keyboards 3. 4. Dynamische Graphen 5. Zusammenfassung Proseminar KI, WS 2004/2005 S. 13 Visualisierung von Algorithmen Seite 13 3.1. Abstrakte Darstellung Idee: Visualisierung einer abstrakten Durchführung eines Algorithmus Vorteil: hängt nicht von konkreten Eingabedaten ab keine Fixierung auf bestimmte Daten Verständnis der generellen Fälle/Gemeinsamkeiten Werkzeug für abstrakte Darstellung bietet Shape Proseminar KI, WS 2004/2005 S. 14 Analysis Visualisierung von Algorithmen Seite 14

3.2. beschreibt eine Datenstruktur in logischen Termen führt dann den Algorithmus auf der abstrakten Beschreibung aus Für abstrakte Beschreibung notwendig: 1. Festlegung des Vokabulars 2. Definition der Prädikate (Eigenschaften) 3. Erstellung von Aktionen 4. Festlegung von Initialzuständen Proseminar KI, WS 2004/2005 S. 15 Visualisierung von Algorithmen Seite 15 3.2. Beispiel: Binärbaumsuche (1) type tree = data: integer left: pointer to tree right: pointer to tree x := root while (x!= NULL and x.data!= el.data) do if (el.data < x.data) x := x.left else Proseminar KI, WS 2004/2005 S. 16 x := x.right Visualisierung von Algorithmen Seite 16

3.2. Beispiel: Festlegung der Prädikate (2) Detaillevel wird durch Anzahl der Prädikate festgelegt 1-wertige Prädikate 2-wertige Prädikate Prädikat root(v) x(v) r[root](v) r[x](v) ancest[root](v) ancest[x](v) left(v1, v2) Proseminar KI, WS 2004/2005 S. 17 right(v1,v2) Bedeutung Zeigt root auf v? Zeigt x auf v? Ist v von root erreichbar? Ist v von x erreichbar? Ist v ein Vorfahr von root? Ist v ein Vorfahr von x? Ist v1.left = v2? Ist v1.right = v2? Visualisierung von Algorithmen Seite 17 3.2. Beispiel: Shape Graph (3) Shape Graph: Darstellung des Zustandes der Datenstruktur an einem bestimmten Programmpunkt Verdeutlichung der wesentlichen Inhalte Proseminar KI, WS 2004/2005 S. 18 [Johannes05] Visualisierung von Algorithmen Seite 18

3.2. Beispiel: Durchführung (4) Eingabe: Menge initialer Shape Graphen Ausführung der Aktionen ergibt für jeden Programmpunkt eine Menge an Shape Graphen beschreiben somit alle möglichen Datenstruktur- Konfigurationen Proseminar KI, WS 2004/2005 an einem S. 19 Programmpunkt Visualisierung von Algorithmen Seite 19 3.3. Verarbeitung der Ausgabe der Shape Anlaysis Ausgabe der : liefert für jeden Programmpunkt eine Menge an Shape Graphen ist zu komplex für Visualisierung Lösung: Partitionierung der einzelnen Shape Graph-Mengen in Äquivalenzklassen Proseminar KI, WS 2004/2005 S. 20 Visualisierung von Algorithmen Seite 20

3.3. Partitionierung der Shape Graphen Verfahren: 1. Wähle Prädikatenmenge D (Untermenge aller Prädikate) 2. Ein Untergraph vom Graphen S besteht aus: allen 0-wertigen Prädikaten aus D alle Knoten v S, so dass es ein 1-wertiges Prädikat p D gibt, welches für v wahr ist verbinde die Knoten wie in S 3. Alle Graphen mit gleichem Untergraph sind äquivalent kommen in gleiche Äquivalenzklasse Proseminar KI, WS 2004/2005 S. 21 Mit D kann man verfeinern oder abstrahieren Visualisierung von Algorithmen Seite 21 3.3. Beispiel Prädikatenmenge D = {root, x, ancest[x]} {left, right} Proseminar KI, WS 2004/2005 S. 22 Graphen liegen in gleicher Äquivalenzklasse bezüglich D [Johannes05] Visualisierung von Algorithmen Seite 22

3.4. Visualisierung der Äquivalenzklassen bisheriges Ergebnis: mehrere Äquivalenzklassen pro Programmpunkt Aufgabe der Visualisierung: Darstellung finden, die eine Äquivalenzklasse repräsentiert Eine Möglichkeit: V-Knoten Visualisierung Proseminar KI, WS 2004/2005 S. 23 Visualisierung von Algorithmen Seite 23 3.4. V-Knoten Visualisierung führe virtuelle Knoten ein Bedeutung: können vorhanden sein oder auch nicht fasse somit mehrere Graphen zusammen Proseminar KI, WS 2004/2005 S. 24 [Johannes05] Visualisierung von Algorithmen Seite 24

3.5. Zukünftige Arbeit Visualisierung bis jetzt noch nicht in die Realität umgesetzt Zur Visualisierung müsste noch folgendes überlegt werden: Wie stellt man die Shape Graphen dar (Farben, Positionierung der Knoten und Kanten)? Wie stellt man die Ausführungsreihenfolge der Graphen dar? Proseminar KI, WS 2004/2005 S. 25 Visualisierung von Algorithmen Seite 25 Gliederung 1. Einleitung 2. Concept Keyboards 3. 4. Dynamische Graphen 5. Zusammenfassung Proseminar KI, WS 2004/2005 S. 26 Visualisierung von Algorithmen Seite 26

4.1. Constraint Programmierung Endliches Problem der Constraint Programmierung: endliche Menge von Variablen endlicher Definitionsbereich Funktion, die jeder Variablen eine Untermenge aus dem Definitionsbereich zuweist endliche Menge von Bedingungen. Jede Bedingung definiert eine Relation zwischen den Variablen. Kann viele Lösungen enthalten Welches ist der beste Lösungsweg? Proseminar KI, WS 2004/2005 S. 27 Dynamische Graphen Visualisierung von Algorithmen Seite 27 4.1. Arbeitsweise eines Lösers gegebenes Problem: Variablen: {x,y,z} {1,2,3} Bedingungen: {x>y, y>z} Lösung: [Ghoniem05] Proseminar KI, WS 2004/2005 S. 28 Dynamische Graphen Visualisierung von Algorithmen Seite 28

4.2. Visualisierung von Aktivitätsgraphen Visualisierung eines Lösungsverfahrens: - Netzwerk von Variablen und Bedingungen, welches die Abhängigkeiten voneinander zeigt - Aktivität: gibt an, wie oft die Beziehung über ein bestimmtes Zeitintervall gebraucht wurde Problem: - herkömmliche Graphen mit Knoten und Kanten zu unübersichtlich Lösung: Matrizen Proseminar KI, WS 2004/2005 S. 29 Dynamische Graphen Visualisierung von Algorithmen Seite 29 4.2. Visualisierung von Aktivitätsgraphen Spalten bzw. Reihen sind Knoten sind Knoten verbunden Aktivitätswert in Matrix schreiben je höher Aktivitätswert, Bed1 Bed2 Bed3 Bed1-2 0 Bed2 1-0 desto dunkler dargestellt Bed3 3 0 - Proseminar KI, WS 2004/2005 S. 30 Aktivitätsmatrix Dynamische Graphen Visualisierung von Algorithmen Seite 30

4.3. Beispiel: Visualisierung von Aktivitätsgraphen (1) Problem: 100 Variablen [1...100] 99 Bedingungen: i [1..100]: x i < x i+1 Proseminar KI, WS 2004/2005 S. 31 [Ghoniem05] Aktivitätsmatrix der Bedingungen nach Lösung des Problems Dynamische Graphen Visualisierung von Algorithmen Seite 31 4.3. Beispiel: Visualisierung von Aktivitätsgraphen (2) Beobachtungen: starke Interaktivität zwischen nahegelegenen Bedingungen alle Bedingungen miteinander verknüpft je weiter auseinander, desto weniger Interaktion mittlere Bedingungen interagieren öfter miteinander als äußere Proseminar KI, WS 2004/2005 S. 32 [Ghoniem05] Dynamische Graphen Visualisierung von Algorithmen Seite 32

4.3. Beispiel: Visualisierung von Aktivitätsgraphen (3) Lösung des Problems braucht lange, da alle Bedingungen mehrmals miteinander interagieren Animation zeigt: 2 Fortpflanzungswellen erkennbar Beginn Mitte Ende Wechsel Beginn Mitte Ende Proseminar KI, WS 2004/2005 S. 33 1. Phase 2. Phase Dynamische Graphen Visualisierung von Algorithmen Seite 33 Gliederung 1. Einleitung 2. Concept Keyboards 3. 4. Dynamische Graphen 5. Zusammenfassung Proseminar KI, WS 2004/2005 S. 34 Visualisierung von Algorithmen Seite 34

5. Zusammenfassung 3 Ansätze zur Visualisierung Concept Keyboards hohe Interaktion erhöht Verständnis des Algorithmus abstrakte Darstellungsform hängt nicht von konkreten Daten ab Dynamische Graphen Darstellung durch Matrizen ermöglicht Einsichten in Lösungsverfahren von Problemen der Constraint Proseminar KI, WS 2004/2005 S. 35 Programmierung Zusammenfassung Visualisierung von Algorithmen Seite 35 Literaturverzeichnis [Baloian05]: N. Baloian, H. Breuer, W. Luther. Algorithm visualization using concept keyboards. ACM SoftVis`05. [Johannes05]: Dierk Johannes, Raimund Seidel, Reinhard Wilhelm. Algorithm Animation using : Visualising Abstract Executions. ACM SoftVis`05. [Ghoniem05]: Mohammad Ghoniem, Hadrien Cambazard, Jean- Daniel Fekete, Narendra Jussien. Peeking in Solver Strategies Using Explanations Visualization of Proseminar KI, WS 2004/2005 S. 36 Dynamic Graphs for Constraint Programming. ACM SoftVis`05. Visualisierung von Algorithmen Seite 36