Automatische Amort. Ressourcenanalyse von Datenstrukturen
Automated Amortised Resource Analysis of Data Structures
Wissenschaftsdisziplinen
Informatik (60%); Mathematik (40%)
Keywords
-
Amortized Cost Analysis,
Functional Programming,
Data Structures,
Lazy Evaluation,
Automation,
Constraint Solving
Algorithmen spielen eine zentrale Rolle in der Wissenschaft und der Praxis der Datenverarbeitung. Oft sind wir jedoch nicht nur daran interessiert "welche" Aufgabe ein bestimmter Algorithmus ausführt, z. B. das Sortieren eines Kartenspiels, sondern auch, "wie effizient" diese Aufgabe ausgeführt wird. Das heißt, über die Korrektheit eines Algorithmus hinaus ("ob er die Aufgabe wie beabsichtigt ausführt oder nicht"), sind wir an seiner Effizienz interessiert und wollen seine Komplexität ("die Ausführungszeit") analysieren. Ein Maß für die Komplexität eines Algorithmus oder einer Datenstruktur ist seine amortisierte Komplexität. Stellen Sie sich vor, Sie haben eine Sammlung von Objekten, z.B. ein Kartenspiel, und Sie möchten wissen, wie lange es dauert, eine Aufgabe für alle Objekte durchzuführen. Wenn Sie die maximalen Kosten der Aufgabe für ein einzelnes Objekt betrachten und diese Kosten mit der Anzahl der Objekte multiplizieren, erhalten Sie eine Obergrenze für die gesamten Kosten. Aller Wahrscheinlichkeit nach wäre die so erhaltene Obergrenze jedoch zu grob, da die Erledigung der Aufgabe für bestimmte Objekte langsamer oder schneller sein kann. An dieser Stelle kommt eine amortisierte Analyse ins Spiel. Für einen bestimmte Aufgabe können bestimmte Situationen erhebliche Ressourcenkosten verursachen, während andere Situationen weniger kostspielig sind. Bei der Amortisationsanalyse werden sowohl die kostspieligen als auch die weniger kostspieligen Vorgänge über die gesamte Vorgangsabfolge hinweg berücksichtigt. Zusammenfassend lässt sich sagen, dass die amortisierte Analyse eine Methode zur Kostenanalyse ist, bei der einzelne Operationen als Teil einer Abfolge von Operationen betrachtet wird. Die Kostenanalyse anspruchsvoller Datenstrukturen, wie z.B. selbstanpassender binärer Suchbäume, war bereits im ursprünglichen Entwurf der amortisierten Analyse ein Hauptziel. Die Analyse dieser Datenstrukturen erfordert eine aufwendige manuelle Komplexitätsanalyse (mit Bleistift und Papier). In früheren Arbeiten haben wir erste Schritte in Richtung einer vollautomatischen amortisierten Analyse unternommen. Abgesehen von unserem Pilotprojekt gabe es eine solche Analyse bislang nicht. In diesem Projekt zielen wir auf eine automatisierte Analyse der gebräuchlichsten Datenstrukturen mit guter, d.h. sublinearer, Komplexität ab, wie sie typischerweise in Standardbibliotheken verwendet werden. Unsere Ziele sind die Verifikation von Datenstrukturen in Lehrbüchern, die Bestätigung und Verbesserung von zuvor gefundenen Komplexitätsschranken sowie die automatisierte Analyse von realistischen Implementierungen. Anfangs werden wir uns auf streng funktionale Programmiersprachen (erster Ordnung) beschränken. Später werden wir unsere Forschung in Richtung lazy evaluation ausweiten, um die Analyse von persistenten Datenstrukturen zu ermöglichen. Außerdem werden wir auch probabilistische Datenstrukturen berücksichtigen.
- Universität Innsbruck - 50%
- Technische Universität Wien - 50%
- Florian Zuleger, Technische Universität Wien , assoziierte:r Forschungspartner:in
- Laura Kovacs, Technische Universität Wien , nationale:r Kooperationspartner:in
- Rene Thiemann, Universität Innsbruck , nationale:r Kooperationspartner:in
- Christoph Matheja, Technical University of Denmark - Dänemark
- Martin Avanzini, Université Côte d´Azur - Frankreich
- Niki Vazou - Spanien
- Jan Hoffmann, Carnegie Mellon University - Vereinigte Staaten von Amerika
Research Output
- 1 Publikationen
-
2025
Titel Regular Grammars for Sets of Graphs of Tree-Width 2 DOI 10.1109/lics65433.2025.00059 Typ Conference Proceeding Abstract Autor Bozga M Seiten 704-717 Link Publikation