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).
quelle
algebird
Bibliothek auf Twitter: twitter.com/posco/status/300692719561482240Antworten:
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.
quelle
Monoide sind in der Programmierung allgegenwärtig, nur dass die meisten Programmierer nichts über sie wissen.
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.
Weitere Beispiele finden Sie unter Beispiele für Monoide / Halbgruppen in der Programmierung .
quelle
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
quelle
Wenn deine Frage ist
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.
quelle
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.
quelle
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:
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.
quelle