Statistische Leistung rein funktionaler Karten und Mengen


74

Bei einer Datenstrukturspezifikation wie einer rein funktionalen Karte mit bekannten Komplexitätsgrenzen muss zwischen mehreren Implementierungen gewählt werden. Es gibt einige Folklore, wie man die richtige auswählt, zum Beispiel werden Rot-Schwarz-Bäume im Allgemeinen als schneller angesehen, aber AVL-Bäume haben eine bessere Leistung bei Arbeitslasten mit vielen Suchvorgängen.

  1. Gibt es eine systematische Darstellung (veröffentlichtes Papier) dieses Wissens (in Bezug auf Sets / Karten)? Idealerweise würde ich mir wünschen, dass statistische Analysen mit der tatsächlichen Software durchgeführt werden. Es könnte beispielsweise zu dem Schluss kommen, dass es N typische Arten der Kartennutzung gibt, und die Eingangswahrscheinlichkeitsverteilung für jede auflisten.

  2. Gibt es systematische Benchmarks, die die Leistung testen und die Leistung für verschiedene Verteilungen von Eingaben festlegen?

  3. Gibt es Implementierungen, die adaptive Algorithmen verwenden, um die Darstellung abhängig von der tatsächlichen Verwendung zu ändern?


19
Haben Sie sich Okasakis Buch Purely Functional Data Structures angesehen?
Robert Harvey

2
@ RobertHarvey, ja, ich habe eine Kopie. Es verfügt über ein hervorragendes Material zum Entwerfen von PFDS und zur Durchführung von Komplexitätsanalysen. Es gibt auch einige Hinweise für Praktizierende (Folklore, auf die oben Bezug genommen wurde). Ich suche jedoch nach empirischeren Daten und / oder statistischen Analysen realer Nutzungsmuster.
t0yv0

7
Es scheint eine interessante Frage zu sein, aber ich bin mir nicht sicher, ob sie hier zum Thema gehört. Es ist extrem lokalisiert, in dem Sinne, dass Sie im Grunde hoffen, dass hier jemand stolpert, der zufällig etwas über ein Papier weiß, das darüber spricht (es ist eine canihazresourcezFrage, mit anderen Worten, eine Crowd-Sourcing-Internetsuche). In jedem Fall kommt eine flüchtige Google-Suche mit diesem: citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.35.9196
Robert Harvey


Antworten:


4

Dies sind im Wesentlichen Forschungsthemen, und die Ergebnisse werden im Allgemeinen in Form von Schlussfolgerungen angegeben, während die statistischen Daten verborgen sind. Man kann jedoch statistische Analysen seiner eigenen Daten durchführen.

Gehen Sie für die Benchmarks besser die Implementierungsdetails durch.

Der dritte Teil der Frage ist eine sehr subjektive Angelegenheit, und die tatsächlichen Absichten sind zum Zeitpunkt der Implementierung möglicherweise nie bekannt. Sprachen wie Perl geben jedoch ihr Bestes, um für jeden Vorgang hochoptimierte Lösungen zu implementieren.

Folgendes könnte hilfreich sein: Rein funktionale Datenstrukturen von Chris Okasaki http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.