180 likes | 322 Views
Kurzvorstellung der AG Algorithmen und Komplexität MPI Informatik. zur SFB-Initiative Intelligente Organisation und Suche von Informationen Holger Bast. Überblick. Themen String Matching Externer Speicher Geometrische Suche Methoden Ideen. String Matching.
E N D
Kurzvorstellung der AGAlgorithmen und KomplexitätMPI Informatik zur SFB-InitiativeIntelligente Organisation und Suche von Informationen Holger Bast
Überblick • Themen • String Matching • Externer Speicher • Geometrische Suche • Methoden • Ideen
String Matching • 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 adeabbcdeefgabegffabedefgceabadcabcegef 3 Teilstrings mit Editierdistanz 1 zuabcde
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: Schmerzhat 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
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
x x x x x x x x x x x x x x x x x x x x String Matching mit 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 adeabbcfeefgabegffacedefgceaadcabbdfgef Vorkommen von abcde mit 2 Fehlern
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!
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!
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