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