Kurzvorstellung der AG Algorithmen und Komplexität MPI Informatik zur SFB-Initiative Intelligente Organisation und Suche von Informationen Holger Bast
Überblick Themen Methoden Ideen String Matching Externer Speicher Geometrische Suche Methoden Ideen 10 Minuten sind kurz, deshalb lass ich die Vorrede weg …
String Matching adeabbcdeefgabegffabedefgceabadcabcegef 3 Teilstrings mit Editierdistanz 1 zu abcde Ergebnisse (J. Kärkkäinen, S. Burkhardt) Schnelle Suche durch Indexdatenstruktur und Filterverfahren Geplant generische Bibliothek von String-Matching-Algorithmen (es existiert nichts in der Art bisher!) SFB-Relevanz grundlegendes Problem bei Textsuche SFB-interne Anwendung
langsamer, blockweiser Zugriff Externer Speicher CPU schnell, aber begrenzt langsamer, blockweiser Zugriff Ergebnisse (U. Meyer, A. Crauser) Externspeicher-effiziente Graphensuche Bibliothek LEDA-SM, u.a. ES-effiziente Suffixarrays Geplant (P. Sanders, R. Dementiev) ES-effiziente Varianten der STL Datentypen & Algorithmen SFB-Relevanz grundlegendes Problem bei großen Datenmengen
Geometrische Suche Ergebnisse (M. Hagedoorn) praktisch & asymptotisch effiziente Datenstruktur Geplant Implementierung & Tests in IR-Umgebung SFB-Relevanz Ähnlichkeitssuche in “feature spaces” = geometrische Suche
Methoden vom Algorithmus zum Programm exakte Analyse (konstante Faktoren) experimentelle Analyse genauere Modelle, z.B. Cache-Effekte Bibliotheken LEDA, LEPs, CGAL, AGD, BALL, … wiederverwendbar flexibel, trotzdem effizient und leicht zu verwenden (generische Programmierung)
Hierarchische Volltext-Suche Suche in medizinischer Datenbank stechender Schmerz in der Nabelgegend? Typischer Query Schmerz stechend Nabelgegend findet z.B. nicht “es tut weh in der Nähe des Nabels” trotzdem 53 Treffer “fallacy of abundance” Verzeichnis Beschwerden Schmerzen Nabelgegend stechend Kategorien a priori notorisch veraltet
Hierarchische Volltext-Suche Welche Formulierungen kommen vor? flache Suche skaliert nicht: Schmerz hat 87.432 Treffer Idee: Hierarchie der tatsächlich vorkommenden Phrasen … Weltschmerz … 7.437 docs … Schmerztabletten … 2.217 docs … Halsschmerzen … 310 docs … Schmerzen am Nabel … 117 docs … Schmerz, am Nabel der Welt … 34 docs … dumpfer Schmerz am Nabel … 17 docs … bohrender Schmerz am Nabel … 14 docs
Hierarchische Volltext-Suche Vorarbeiten (Nevill-Manning, Witten, Moffat, …) Hierarchie mehrfach vorkommender Phrasen in Linearzeit Offene Fragen Suchtiefe logarithmisch? Externspeicher-Effizienz? Semantische Zusatzinformation? Synthese verschiedenartiger Hierarchien? SFB-Relevanz viele Möglichkeiten, die symbolische Ebene mit der Verständnisebene zu kombinieren
Ende!
Softwarebibliotheken viel Erfahrung LEDA (fundamentale Alg. und Dat.) LEPs (externer Speicher, …) CGAL (geometrische Alg. und Dat.) AGD (Graphzeichnen) EXACUS (Geometrie mit Kurven) …
Methodik Algorithmus Analyse Programm Experimente
String Matching mit Fehlern adeabbcfeefgabegffacedefgceaadcabbdfgef Vorkommen von abcde mit 2 Fehlern Ergebnisse (J. Kärkkäinen, S. Burkhardt) erst exaktes Matching von Teilmustern, z.B. ab?d, bc?e approx. Matching nur wo viele Treffer x
String Matching mit Fehlern Geplant generische Bibliothek von String-Matching-Algorithmen (es existiert nichts in der Art bisher!) SFB-Relevanz grundlegendes Problem konkrete Anwendung in anderen Teilprojekten!
viel langsamer, blockweiser Zugriff Externer Speicher CPU schnell, aber begrenzte Kapazität viel langsamer, blockweiser Zugriff Ziel: minimale Anzahl I/O-Operationen (Blockzugriffe) Ergebnisse (U. Meyer, A. Crauser) I/O-effiziente Graphensuche LEDA-SM, u.a. I/O-effiziente Suffixarrays
Externer Speicher Geplant (P. Sanders, R. Dementiev) I/O-effiziente Varianten der STL Datentypen & Algorithmen SFB-Relevanz grundlegendes Problem bei riesigen Datenmengen SFB-interne Anwendung!
langsamer, blockweiser Zugriff Externer Speicher CPU schnell, aber begrenzte Kapazität langsamer, blockweiser Zugriff Ziel: minimale Anzahl I/O-Operationen (= Blockzugriffe) Ergebnisse (U. Meyer, A. Crauser) I/O-effiziente Graphensuche, LEDA-SM Bibliothek Geplant (P. Sanders, R. Dementiev) I/O-effiziente Varianten der STL Datentypen & Algorithmen SFB-Relevanz grundlegendes Problem bei großen Datenmengen
Methodik vom Algorithmus zum Programm exakte Analyse genauere Modelle, z.B. Cacheeffekte Bibliotheken: LEDA, LEPs, CGAL, AGD, BALL, … generische Programmierung flexibel, trotzdem effizient und leicht zu verwenden z.B. match(string, pattern, myKernel) myKernel implementiert Iterator und Vergleich