kidsim: agenten sprachlos programmieren seminar: softwareagenten ulrich andree ws 01/02 31.10.2001
TRANSCRIPT
KidSim: Agenten Sprachlos Programmieren
Seminar: SoftwareagentenUlrich AndreeWS 01/02 31.10.2001
Software-Agenten: KidSim 2
Inhalt
1. Einführung2. Agenten als persönliche Assistenten3. Das End User Programming Problem4. Programmieren mit graphischer
Oberfläche5. Programmbeispiel: KidSim6. Narval, ein persönlicher Assistent7. Zusammenfassung
Software-Agenten: KidSim 3
1. Einführung
Warum sollte ein Anwender einen Agenten programmieren?
Wie kann ein Agent von einem Anwender ohne den Einsatz einer Programmiersprache programmiert werden?
Software-Agenten: KidSim 4
2. Agenten als persönliche Assistenten
Eigenschaften eines Agenten: Agenten sind aktive, persistente
(Software) Komponenten, die ihre Umgebung wahrnehmen agieren und kommunizieren
Eigenschaften eines Interface Agenten: Agenten, die dem Anwender assistieren
Software-Agenten: KidSim 5
2. Agenten als persönliche Assistenten
Eigenschaften eines persönlichen Assistenten: Assistent kennt die Interessen,
Gewohnheiten und Vorlieben seines Anwenders
Assistent ist an Anwender angepasst
Software-Agenten: KidSim 6
2. Agenten als persönliche Assistenten
Adaptionstechniken von Agenten
Maschinelles Lernen
Anwender-Programmiert
Software-Agenten: KidSim 7
2. Agenten als persönliche Assistenten
Maschinelles Lernen Lernt durch Beobachtung des
Anwenders, erkennt Muster in dessen Verhalten
Passt sich genau dem Anwender an Verbessert seine Fähigkeiten ständig Agent ist nicht sofort einsetzbar
Software-Agenten: KidSim 8
2. Agenten als persönliche Assistenten
Anwender-Programmiert Anwender stellt Regeln und Kriterien
auf Agent gut angepasst an Anwender Anwender kann Agent vertrauen Anwender erkennt nicht immer, wann
er einen Agenten einsetzen kann Programmierung für viele Anwender zu
schwierig
Software-Agenten: KidSim 9
2. Agenten als persönliche Assistenten
Wichtigste Adaptionstechnik: maschinelles Lernen Um den Einsatz von Anfang an zu
verbessern: Kombination beider Konzepte
Programmierung durch den Anwender ist eine wichtige Technik zur Erschaffung persönlicher Assistenten
Software-Agenten: KidSim 10
3. Das End User Programming Problem
Nur wenige Anwender können programmieren
Ist Programmieren an sich zu schwierig?
Sind Programmiersprachen zu schwierig?
Software-Agenten: KidSim 11
3. Das End User Programming Problem
Lösungsansätze:
Einstellungen
Script Sprachen
Macro Recorder
Software-Agenten: KidSim 12
4. Programmieren mit graphischer Oberfläche
Die wichtigsten GUI-Prinzipien Sichtbarkeit Sehen und zeigen Kopieren und modifizieren Konkret statt abstrakt Minimale Übersetzungsdistanz
Software-Agenten: KidSim 13
4. Programmieren mit graphischer Oberfläche
Graphical Rewrite Rules Transformation eines Teils des Bildschirms von einem Zustand in einen anderen („vorher“-/„nachher“-Teil)
Rule-Generality Problem Wie werden graphische Darstellungen
verallgemeinert? Rule-Semantics Problem
Wie wird eine Transformation im Detail durchgeführt?
Software-Agenten: KidSim 14
4. Programmieren mit graphischer Oberfläche
Programming By Demonstration Im “Aufnahme” – Modus führt der
Anwender Aktionen durch, das System nimmt die Aktionen auf und wandelt sie in ein durchführbares Programm um.
Representation Problem Wie werden die gespeicherten Aktionen
repräsentiert?
Software-Agenten: KidSim 15
5. Programmbeispiel: KidSim
Kid’s Simulation Graphische Programmierumgebung für KinderZur Programmierung symbolischer SimulationenZiel: das „spielerische“ erlernen von Programmierfähigkeiten
Software-Agenten: KidSim 16
5. Programmbeispiel: KidSim
Die wichtigsten Bestandteile einer KidSim Simulation Spielbrett Rundenzähler Copy Box Regel-Editor simulierten Objekte
Software-Agenten: KidSim 17
5. Programmbeispiel: KidSim
KidSim-Agent: „Ein (KidSim-)Agent ist eine persistente
Software-Entität, die einem speziellen Zweck dient. ‚Persistent’ unterscheidet Agenten von Subroutinen. Agenten haben ihre eigenen Ideen, wie eine Aufgabe auszuführen ist, ihre eigenen Ziele. Der ‚spezielle Zweck’ unterscheidet sie von Multifunktions-Applikationen, Agenten sind typischerweise auch viel kleiner.“
autonom, proaktiv, nehmen ihre Umgebung wahr
Software-Agenten: KidSim 18
5. Programmbeispiel: KidSim
Rule-Generality Problem Picture / Property Abstraction
Rule-Semantics Problem Programming By Demonstration
Representation Problem Graphical Rewrite Rules
Software-Agenten: KidSim 19
5. Programmbeispiel: KidSim
Evaluation: Ziel: Verständnis der
zugrundeliegenden Programmierkonzepte
Ergebnis: Kinder (10-14) können sehr schnell mit
KidSim eigene Simulationen schaffen Erwerben kein tieferes Verständnis von
Programmierkonzepten
Software-Agenten: KidSim 20
6. Narval, ein persönlicher Assistent
Network Assistant Reasoning with Validating Agent Language intelligenter, persönlicher Software Assistent Designphilosophie : ready for use, easy to use
Software-Agenten: KidSim 21
6. Narval, ein persönlicher Assistent
Programmierung eines Agenten: Über eine graphische
Benutzeroberfläche (Horn) werden Rezepte (recipes) erstellt
Rezepte sind Sequenzen von Aktionen, die über Transitionen verbunden sind
Aktionen: Python-Scripts, Aktionsbibliotheken
Software-Agenten: KidSim 22
6. Narval, ein persönlicher Assistent
Filtern und Beantworten von e-Mails, Herausfiltern von Werbung aus Webseiten, Zusammenstellen einer Seite mit Nachrichten von verschiedenen Webseiten u.a.m.
Weiterentwicklung: Maschinelle Lerntechniken Kooperation zwischen Agenten
Software-Agenten: KidSim 23
7. Zusammenfassung
Anwender-Programmierung wichtig bei Agenten als persönlichen Assistenten (gemeinsam mit anderen Techniken)
End User Programming Problem: wichtig ist graphische Programmierschnittstelle
Zwei Beispiele: KidSim, Narval Programmierung über graphische
Oberfläche steht erst am Anfang, muss noch weiterentwickelt werden