Was nützen Gruppen, Monoide und Ringe bei Datenbankberechnungen?


38

Warum interessiert sich ein Unternehmen wie Twitter für algebraische Konzepte wie Gruppen, Monoide und Ringe? Ihr Repository finden Sie unter github: twitter / algebird .

Alles was ich finden konnte ist:

Implementierung von Monoiden für interessante Approximationsalgorithmen wie Bloom-Filter , HyperLogLog und CountMinSketch . Mit diesen Funktionen können Sie sich diese komplexen Vorgänge wie Zahlen vorstellen und sie in Hadoop oder online addieren, um leistungsstarke Statistiken und Analysen zu erstellen.

und in einem anderen Teil der GitHub-Seite:

Es wurde ursprünglich als Teil der Matrix-API von Scalding entwickelt, bei der Matrizen Werte hatten, die Elemente von Monoiden , Gruppen oder Ringen sind . In der Folge stellte sich heraus, dass der Code bei Scalding und anderen Projekten bei Twitter eine breitere Anwendung fand.

Was könnte diese breitere Anwendung sein? innerhalb von Twitter und für allgemeines Interesse?


Es scheint, als hätten Zusammensetzungsaggregationen von Datenbanken eine monoidartige Struktur.

Gleiche Frage zu Quora: Was interessiert Twitter an abstrakter Algebra (mit Algebird)?


Ich habe einen mathematischen Hintergrund, bin aber kein Informatiker. Es wäre großartig, Monoide und Halbgruppen in der "realen" Welt einzusetzen. Diese werden normalerweise als nutzlose theoretische Konstrukte betrachtet und in vielen abstrakten Algebra-Kursen ignoriert (da nichts Interessantes zu sagen ist).


1
Ich habe diesen schönen Artikel gefunden, hon HackerNews news.ycombinator.com/item?id=5196708 "Die Algebra der algebraischen Datentypen"
John Mangual

Einverstanden, finde es überraschend, dass Twitter in diesen Bereichen herumspielt, es ist eher abstrakt. Die Hauptidee scheinen wiederverwendbare Komponenten für ein Mapreduce-ähnliches System zu sein. Algebird scheint von Verbrühungen "abgeschleudert" zu sein. Hier ein Vortrag über Verbrühung . Die algebraischen Objekte werden jedoch nicht erwähnt. möglicherweise können sie als Datenobjektprimitive / -typen für die Manipulation in den Datenflüssen verwendet werden, die auch dem funktionalen Programmierstil zugeordnet sind ....
vzn

Ein kurzer Austausch mit dem Autor von Verbrühungen in seiner algebirdBibliothek auf Twitter: twitter.com/posco/status/300692719561482240
john mangual

2
Ich würde die Behauptung stark bestreiten, dass Monoide und Halbgruppen beide als "nutzlose theoretische Konstrukte" angesehen werden, da beide sowohl in der Kategorietheorie als auch zur Modellierung verschiedener anderer algebraischer Strukturen von großem Nutzen sind. Aus welchem ​​Zweig der Mathematik kommst du, der Halbgruppen als "nutzlos" ansieht?
Steven Stadnicki

Vielleicht ist das syntaktische Monoid einer formalen Sprache relevant, obwohl es in den Antworten nicht erwähnt wird. Ich erwarte jedoch, wie bei vielen Antworten, dass dies eher für die Berechnung im Allgemeinen als für die Datenbankberechnung relevant ist.
PJTraill

Antworten:


27

Die Hauptantwort ist, dass wir durch Ausnutzung der Halbgruppenstruktur Systeme erstellen können, die korrekt parallelisieren, ohne die zugrunde liegende Operation zu kennen (der Benutzer verspricht Assoziativität).

Durch die Verwendung von Monoiden können wir die Sparity ausnutzen (wir beschäftigen uns mit vielen spärlichen Matrizen, bei denen in einigen Monoiden fast alle Werte Null sind).

Mit Ringen können wir Matrixmultiplikationen über andere Dinge als Zahlen durchführen (was wir gelegentlich getan haben).

Das Algebird-Projekt selbst (wie auch die Problemhistorie) erklärt ziemlich deutlich, was hier vor sich geht: Wir bauen viele Algorithmen für die Aggregation großer Datensätze auf, und die Nutzung der Struktur der Operationen bringt uns einen Gewinn auf der Systemseite (Das ist normalerweise der Schmerzpunkt, wenn versucht wird, Algorithmen auf 1000 Knoten zu produzieren).

Lösen Sie die Systemprobleme einmal für jede Halbgruppe / Monoid / Gruppe / Ring, und schließen Sie dann einen beliebigen Algorithmus an, ohne über Memcache, Hadoop, Storm usw. nachdenken zu müssen.


4
Kann jemand die Verbindung zwischen spärlichen Matrizen und Nullen in einigen Monoiden erweitern?
vzn

Ein paar Links zu Beispielen oder weiterführender Lektüre wären wirklich nett
Erik Allik

11

Monoide sind in der Programmierung allgegenwärtig, nur dass die meisten Programmierer nichts über sie wissen.

  • Zahlenoperationen wie Addition und Multiplikation.
  • Matrix-Multiplikation.
  • Grundsätzlich bilden alle sammlungsähnlichen Datenstrukturen Monoide, bei denen es sich bei der monoiden Operation um Verkettung oder Vereinigung handelt. Dies umfasst Listen, Mengen, Zuordnungen von Schlüsseln zu Werten, verschiedene Arten von Bäumen usw.
  • AAAAA

abab

Weil Monoide so allgemein sind, erlauben sie das Schreiben sehr allgemeiner Funktionen. Zum Beispiel kann das Umklappen einer Datenstruktur so ausgedrückt werden, dass jedes Element einem Monoid zugeordnet und dann mit der Monoid-Operation zu einem einzigen Ergebnis kombiniert wird.

aantimesO(logn)

  • schnelle Potenzierung von Zahlen;
  • O(logn)
  • O(1)O(log(min(n1,n2)))
  • etc.

Weitere Beispiele finden Sie unter Beispiele für Monoide / Halbgruppen in der Programmierung .


7

Ein wichtiges Problem in verteilten Dateisystemen ( DFS ) besteht darin, Dateien aus verteilten Blöcken zu generieren. Der Bereich Löschcode aus Informationstheorie und Algebra (Gruppen, Ringe, lineare Algebra, ...) wird in verteilten fehlertoleranten Dateisystemen, beispielsweise in HDFS-RAID (Hadoop Based File System) , ausgiebig genutzt . Unternehmen in sozialen Netzwerken und in der Cloud basieren weitgehend auf DFS. Daher benötigen sie Experten für Algebra und Löschcode, um bessere und leistungsfähigere Systeme (wie Reed-Solomon- Codes usw.) zu entwickeln.

Dies ist auch ein gutes Plakat für ihre Anwendung (Algebra) im Cloud-Speicher: Neuartige Codes für Cloud-Speicher


6

Wenn deine Frage ist

Was sind Beispiele für Gruppen, Monoide und Ringe in der Berechnung?

dann ist ein Beispiel, das ich mir aus der Hand halte, Wegfindungsalgorithmen in der Graphentheorie. Wenn wir ein Semiring mit als und als , können wir die Matrixmultiplikation mit der Adjazenzmatrix verwenden, um den kürzesten Pfad für alle Paare zu finden. Diese Methode ist tatsächlich in CLRS beschrieben.+min+

Obwohl dies aus algebraischer Sicht nur theoretisch erscheint, können wir sehr stark optimierte lineare Algebra-Bibliotheken für Graphprobleme verwenden. Kombinatorisches BLAS ist eine solche Bibliothek.


1
Ja, und wir haben minplus hinzugefügt, um genau das zu tun: github.com/twitter/algebird/blob/develop/algebird-core/src/main/…
Oscar Boykin

4

Die Menge aller Wörter über einem endlichen Alphabet bildet zusammen mit der Verkettung das freie Monoid . Daher kann das gesamte Feld der formalen Sprache durch die algebraische Linse betrachtet werden, und es wird manchmal so unterrichtet.(Σ,)

Im Gegenzug haben Überlegungen zu formalen Sprachen den Earley-Parser ergeben, der auf Semirings ausgewertet werden kann . Dies ist nützlich in der Verarbeitung natürlicher Sprachen und in anderen Bereichen, in denen stochastische Modelle für (formale) Sprachen verwendet werden.


3

Ich habe einen mathematischen Hintergrund, bin aber kein Informatiker. Es wäre großartig, Monoide und Halbgruppen in der "realen" Welt einzusetzen. Diese werden normalerweise als nutzlose theoretische Konstrukte betrachtet und in vielen abstrakten Algebra-Kursen ignoriert (da nichts Interessantes zu sagen ist).

Es gibt ziemlich viel Interessantes zu sagen. Es ist jedoch mehr ein Thema der diskreten Mathematik und Kombinatorik als der abstrakten Algebra und Analyse, zumindest für die weniger trivialen Themen. Es gibt auch die Frage, wie viel Sie über ein bestimmtes Thema wissen müssen, bevor Sie jemand anderem mitteilen können, dass es sich um ein interessantes mathematisches Thema im Zusammenhang mit Monoiden und Halbgruppen handelt. Zum Beispiel finde ich die folgenden Themen (im Zusammenhang mit Halbgruppen) interessant:

  • endliche Halbgruppen und Krohn-Rhodes-Theorie
  • Teilsymmetrien, inverse Halbgruppen, Gruppoide und Quasikristalle
  • semirings und tropische geometrie
  • Teilaufträge und Möbius-Funktionen
  • submodulare Funktionen und (Dulmage-Mendelsohn-ähnliche) Zerlegungen

Weiß ich viel über jedes dieser Themen? Wahrscheinlich nicht. Es gibt auch viel mehr mathematische Themen, die sich auf Monoide und Halbgruppen beziehen, einige sind interner in der Halbgruppentheorie selbst (wie die Beziehungen von Green), andere sind allgemeiner und nicht spezifisch für Halbgruppen (universelle Halbgruppen, Homomorphismus- und Isomorphismussätze, Quotientenstrukturen und Kongruenzen), aber auch aus mathematischer Sicht wichtig. Die Themen, die ich oben zitiert habe, haben meistens "reale" Anwendungen, aber es gibt verwandte Themen, die auch "reale" Anwendungen haben.


Das Obige ist keine Antwort auf die eigentliche Frage, sondern befasst sich nur mit der Bemerkung "... werden normalerweise als nutzlose theoretische Konstrukte angesehen ... mangels interessanter Aussagen ...". Also habe ich einige "interessante" Punkte aufgelistet, behauptet, dass diese meistens "echte" Anwendungen haben, und jetzt bittet Hi-Angel um ein paar Informationen zu diesen Anwendungen. Aber weil "es zu viel Interessantes zu sagen gibt", sollten Sie von dieser Information nicht zu viel erwarten: Der Satz von Krohn-Rhodes ist ein Zerlegungssatz für endliche Halbgruppen. Seine Anwendungen umfassen die Interpretation des Kranzprodukts als eine Art Zusammensetzung (von Wandlern) in Verbindung mit der Theorie der Automaten und regulären Sprachen.Mark V Lawson: Zwei Tutorials und Hintergrundmaterial enthielten (jetzt 404) gutes Material zu Inverse Semigroups . Die Basis für ihre Anwendungen ist ihre Verbindung mit der symmetrischen inversen Halbgruppe , dh der Menge aller Teilbijektionen auf einer Menge. Man kann auch mit grundlegenden algebraischen Charakterisierungen von inversen Halbgruppen beginnen, wobei dieser Ansatz die Gefahr birgt, die für viele Anwendungen wichtigen Verbindungen zu Teilordnungen zu vernachlässigen. Eines Tages werde ich über eine bestimmte Anwendung von inversen Halbgruppen als "Hierarchie" bloggen müssen, die zum Komprimieren von Halbleiterlayouts verwendet wird. Anwendungen von Semirings wurden bereits in den anderen Antworten beschrieben (und die tropische Geometrie würde uns weit von der Informatik entfernen). Da Monoide und Halbgrup- pen auch mit Teilordnungen zu tun haben, haben so schöne Themen wie Möbius auch etwas mit der Kombinatorik zu tun: Der Rota-Weg . Und dann werden auch Themen aus Matrizen und Matroiden für die Systemanalyse wie die Dulmage-Mendelsohn-Zerlegung in Beziehung gesetzt, die eine meiner Beweggründe für das Studium der Gittertheorie (und versteckter hierarchischer Strukturen) waren.


Nicht, dass ich mich beschwere, aber ich denke, wenn Sie ein paar Informationen über eine reale Anwendung der aufgelisteten Punkte hinzufügen würden, hätten Sie viel mehr positive Stimmen erhalten.
Hi-Angel

1
@ Hi-angel Das obige ist keine Antwort auf die eigentliche Frage, sondern befasst sich nur mit dem Kommentar "... nutzloses theoretisches Konstrukt ... Mangel an etwas Interessantem zu sagen ...". Es deutet darauf hin, dass ich möglicherweise nicht die qualifizierteste Person bin, um das anzusprechen: "Weiß ich viel über jedes dieser Themen? Wahrscheinlich nicht." Mein am höchsten gewählter Beitrag fällt in dieselbe Kategorie. Benjamin Steinberg nennt dies einen "giftigen" Bereich , und er wäre qualifiziert, "zu antworten" ...
Thomas Klimpel
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.