Induktive Synthese von rekursiven XSL Transformationen Automatische Generierung von rekursiven Programmen aus Beispielen als Anwendung der induktiven Programmsynthese.

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Advertisements

Christian Scheideler SS 2009
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Polynomial Root Isolation
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Das LCA – Problem in Suffixbäumen
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Genetische Algorithmen für die Variogrammanpassung
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
Anwendung und Visual Basic
Sortierverfahren Richard Göbel.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Sortierverfahren Richard Göbel.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
REKURSION + ITERATION.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Geometrisches Divide and Conquer
Proseminar „Algorithmen auf Graphen“
Globaler Ansatz Hough-Transformation
handlungsorientierte Zugänge zur Algebra
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Minimum Spanning Tree: MST
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Rekursion Richard Göbel.
Visualisierung funktionaler Programme
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Chromatische Zahl.
Multiplikation großer Zahlen mit Standard-FFT
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Künstliches Neuronales Netz nach John Hopfield
Baum-Simulation mit Lindenmayer-System
One plus One Evolutionary Optimizer
Graphen und Bäume.
Fraktale und iterierte Funktionensysteme
Algorithmen und Datenstrukturen Übungsmodul 8
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Das Traveling Salesman Problem (TSP)
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Analyse der Laufzeit von Algorithmen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Dynamische Seiten 13. Juli 2009 Norbert Winnige „Datenbanken in den Geisteswissenschaften“
Binärer Baum, Binärer Suchbaum I
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Der A*-Algorithmus.
Gliederung der Vorlesung
IT-Zertifikat_Seminar: Metadatenstandards XSLT Eine Transformationssprache.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Hands on Mathematics for CS
REKURSION + ITERATION.
 Präsentation transkript:

Induktive Synthese von rekursiven XSL Transformationen Automatische Generierung von rekursiven Programmen aus Beispielen als Anwendung der induktiven Programmsynthese aus XSL Diplomarbeit Von Jens Waltermann Feb. 2003

Induktive Programmsynthese Erzeugung von Rekursiven Programmen aus nicht vollständigen Informationen (Eingabe/Ausgabe-Paaren) Klassischer Ansatz nach Summers Verallgemeinerung nach Schmid

Ansatz nach Summers Entwicklung rekursiver Programme aus IOPaaren anhand von Listenbeispielen in Lisp 1) Betrachtung von Prädikaten und Funktionen, die sich innerhalb der betrachteten Domäne eindeutig aus den IOPaaren ergeben 2) Suche nach Rekurrenzrelationen 3) Bau der Rekursiven Funktion als Produkt aus Funktionen und Prädiaten

IOPaar: {()->(),(AB)->(A),(ABCD)->(AB),(ABCDEF)->(ABC)} Beispiel Summers Anfangsprogramme: f1[x] = nil, f2[x]=cons[car[x]];nil], f3[x]= cons[car[x]; cons[cadr[x]];nil]]], f4[x]= cons[car[x]; cons[cadr[x]]; cons[caddr[x]];nil]]]], Prädikate: p1[x]= atom[x], p2[x]=atom[cddr[x]], p3[x]=atom[cddddr[x]], p4[x]=atom[cddddr[x]], Rekurrenzrelation der Funktionen: f1[x]=nil, f(n+1)[x]=cons[car[x]; f(n)[cadr[x]]],n>1 Rekurrenzrelation der Prädikate: p1[x] = atom[x], p(n+1)[x]=p(n)[cddr[x]],n>1 Erzeugtes Programm: half[x]<- h[x;x] h[x;y] nil]; T <- cons[car[x];h[cdr[x];cddr[y]]]. Domäne: cons[x,l], car[l], cdr[l], nil, atom[l]

Ansatz nach Schmid Universelle Planung innerhalb einer vorgegebenen Domäne zur Erzeugung von Anfangsprogrammen Faltung von initialen Termen in ein RPS Verbindung der beiden Schritte durch Transformationen zwischen spezieller Domäne und Termen/RPS

Beispiel Fakultät IOPaar: { (1,1), (2,2), (3,6), (4,24)} Anfangsprogramme: f1(i)= i * if (i=1) 1;? f2(i)= i * if (i=1) 1;(i-1) * if (i-1=1)1; ? f3(i)= i * if (i=1) 1;(i-1) * if (i-1=1)1; (i-1-1) * if (i-1-1=1)1; ? f4(i)= i * if (i=1) 1;(i-1) * if (i-1=1)1; (i-1-1) * if (i-1-1=1)1; (i-1-1-1) * if (i-1-1-1=1)1;? Rekursive Programm: fak(i)= i * if (i=1)1;fak(i-1)

Einsatz von TFold TFold aus dem Ansatz von Schmid benötigt zur Faltung rekursiver Programme initiale Terme mit folgenden Eigenschaften: 1)Hypothese der Rekursions- Verankerung (Omega-Information) 2)Inkrementierung und Verwendung von mindestens einem Parameter innerhalb des rekursiven Progamms (Kontext)

XSL/XML/Saxon Was sind XML/XSL Dokumente, Wie wirkt ein XSL Dokument auf ein XML Rekursion in XSL

XML Dokument (NLL) (NLR) (NL) (NRL) (NRR) (NR) (N)

XSL Dokment

Rekursion in XSL Parametrisierte Rekursion templates werden mit geänderten Parametern aufgerufen, die Parameter determinieren die Abarbeitung. Kontextabhängige Rekursion Entsprechend des Eingabebaum werden templates aufgerufen. Bei rekursiv verschachtelten Eingabedokumenten kann dies zur Rekursion in der Interpretierung führen.

Genetischer Algorithmus Zur schrittweisen Erzeugung initialer (nicht-rekursiver) Anfangsprogramme aus Ein/Ausgabe-Paaren.

Ausgangspunkt ist ein leerer Stylesheet Stylesheets werden durch Hinzufügen von Grundtags schrittweise erweitert Die Grundtags ergeben sich aus dem IOPaar Eine Popuation ist eine Menge von Stylesheets, deren Erzeugnis bezüglich der Eingabe in der Ausgabe liegen Eine Folgepopulation eines Stylesheets ist die Menge der Stylesheets, die unter Hinzunahme von maximal N (Suchtiefe) Grundoperationen entsteht, so dass die Erzeugnisse der Stylesheets der Folgepopulation dichter im Ausgabedokument liegen.

Beispiel IOPaar (NLL) (NL) (NLR) (N) (NRL) (NR) (NRR) (NLL)(NLR)(NL)(NRL)(NRR)(NR)(N)

Beispiel Generator

Omega-Information Finde Stellen innerhalb des Programms an denen eine Rekursionsverankerung vermutet werden kann.

Algorithmus zur Omega- Information Betrachte alle aufsteigenden Pfade Betrachte im jeweiligen Pfad alle aufsteigenden Sequenzen, Falls eine Sequenz aus Knoten sich 2x wiederholt betrachte Indizierung, Entscheide ob Integration oder Substitution des Omegas

Kontext-Nachtragung Integration des unsichtbaren Parameters Kontext in die Programme: Jeder Tag verwendet seinen Kontext Ein Template Tag hat den Kontext X Der Kontext wird entsprechend den „xsl:for-each“ inkrementiert.

Rekursive XSL