Veri tabanı hesaplamalarında gruplar, monoidler ve halkalar ne işe yarar?


38

Twitter gibi bir şirket neden gruplar, monoidler ve halkalar gibi cebirsel kavramlarla ilgilensin? Github'deki havuzlarını görün : twitter / algebird .

Tek bulabildiğim:

Monoidlerin Bloom filtresi , HyperLogLog ve CountMinSketch gibi ilginç yaklaşım algoritmaları için uygulamaları . Bunlar sayılarınız gibi bu karmaşık işlemleri düşünmenize ve güçlü istatistikler ve analizler oluşturmak için bunları hadoop veya çevrimiçi olarak eklemenize izin verir.

ve GitHub sayfasının başka bir bölümünde:

Başlangıçta Matrisler elemanları olan değerleri vardı haşlanma en Matris API, bir parçası olarak geliştirilen Monoids , Gruplar , veya Yüzüklerin . Daha sonra, kodun Scalding içinde ve Twitter'daki diğer projelerde daha geniş bir uygulamaya sahip olduğu açıktı.

Bu daha geniş uygulama ne olabilir? Twitter içinde ve genel ilgi için?


Veritabanlarının kompozisyon kümeleri monoid benzeri bir yapıya sahip gibi görünüyor.

Quora'da aynı soru: Twitter'ın soyut cebir (algebird ile) konusundaki ilgisi nedir?


Matematik bilgim var ama bilgisayar uzmanı değilim. Monoitler ve yarı grupların "gerçek dünya" kullanımlarını kullanmak harika olurdu. Bunlar normalde işe yaramaz teorik yapılar olarak kabul edilir ve birçok soyut cebir dersinde (söyleyecek ilginç bir şey olmaması için) göz ardı edilir.


1
Bu güzel makaleyi HackerNews news.ycombinator.com/item?id=5196708 "Cebirsel Veri Türlerinin Cebiri" adlı hon olarak buldum
john mangual 2

kabul etti, şaşırtıcı twitter'ın bu bölgelerde etrafta dolandığını, oldukça soyut olduğunu fark etti. ana fikir Mapreduce benzeri bir sistem için yeniden kullanılabilir bileşenler gibi görünüyor. algebird haşlanmadan "bükülmüş" gibi görünüyor. işte haşlanma hakkında bir konuşma . ancak cebirsel nesnelerden bahsetmiyor. Muhtemelen, bunlar işlevsel programlama tarzında eşlenen veri akışlarında manipülasyon için veri nesnesi ilkelleri / tipleri olarak da kullanılabilirler ....
vzn

algebirdKütüphanesinde scalding yazarı ile kısa bir değişim , Twitter'da: twitter.com/posco/status/300692719561482240
john mangual

2
Hem monoidlerin hem de yarı grupların hem “teorik olmayan yapılar” olarak nitelendirildiği iddiasını şiddetle tartışırdım; Yarı grupları 'işe yaramaz' olarak kabul eden hangi matematik dalından geliyorsunuz?
Steven Stadnicki

Belki de biçimsel bir dilin sözdizimsel monoidi , cevaplarda bahsedilmese de konuyla ilgilidir. Beklediğim gibi, birçok cevap gibi, bunun veritabanı hesaplamaları yerine genel olarak hesaplamayla alakalı olduğunu düşünüyorum.
PJTraill

Yanıtlar:


27

Asıl cevap, yarı grup yapısını kullanarak, altta yatan işlemi bilmeden doğru şekilde paralel sistemler kurabiliriz (kullanıcı ilişkilendirme vaat ediyor).

Monoidleri kullanarak, seyreklikten faydalanabiliriz (bir miktar Monoid'de neredeyse tüm değerlerin sıfır olduğu birçok seyrek matrisle uğraşırız).

Rings kullanarak, sayılar dışındaki şeylerin üzerine matris çarpımını yapabiliriz (bu arada biz yaptık).

Algebird projesinin kendisi (sorun geçmişinin yanı sıra) burada neler olup bittiğini açıkça açıklıyor: büyük veri setlerinin toplanması için birçok algoritma oluşturuyoruz ve işlemlerin yapısını güçlendirmek bize sistemler tarafında bir kazanç sağlıyor (1000'ler düğüm üzerinde algoritmalar üretmeye çalışırken genellikle ağrı noktasıdır).

Herhangi bir Semigroup / Monoid / Group / Ring için sistem sorunlarını bir kez çözün ve daha sonra Memcache, Hadoop, Storm, vb. Hakkında düşünmek zorunda kalmadan herhangi bir algoritmayı ekleyebilirsiniz.


4
birileri Monoid'de seyrek matrisler ve sıfırlar arasındaki bağlantıda genişleyebilir mi?
vzn

örnekler veya daha fazla okuma için birkaç bağlantı gerçekten güzel olurdu
Erik Allik

11

Monoitler programlamada her yerde bulunur, sadece programcıların çoğu onlar hakkında bilmez.

  • Toplama ve çarpma gibi sayı işlemleri.
  • Matris çarpımı.
  • Temel olarak, tüm koleksiyon benzeri veri yapıları, monoidal çalışmanın birleştirme veya birleşme olduğu monoidleri oluşturur. Buna listeler, kümeler, değerlerin anahtar haritaları, çeşitli ağaç türleri vb.
  • AAAAA

abab

Monoitler çok genel olduğu için çok genel fonksiyonlar yazmaya izin veriyorlar. Örneğin, bir veri yapısının üzerine katlanması, her bir elemanının bir monoid ile eşleştirilmesi ve ardından tek bir sonuçla birleştirilmesi için monoidal işlem kullanılarak ifade edilebilir.

aantimesO(logn)

  • sayıların hızlı üstelleştirilmesi;
  • O(logn)
  • O(1)O(log(min(n1,n2)))
  • vb.

Daha fazla örnek için bkz . Programlamadaki monoid / yarı grup örnekleri .


7

Dağıtılmış dosya sistemlerinde ( DFS ) önemli bir sorun , dağıtılmış bloklardan dosya oluşturmaktır. Bilgi kuramı ve Cebirden Silme kodu alanı (gruplar, halkalar, doğrusal cebir, ...) örneğin HDFS RAID'de (Hadoop Tabanlı Dosya Sistemi) dağıtılmış hataya dayanıklı dosya sistemlerinde yaygın olarak kullanılır . Sosyal ağ ve Bulut şirketleri geniş ölçüde DFS'ye dayanmaktadır, bu nedenle daha iyi ve yüksek performanslı sistemler ( Reed-Solomon kodları vb.) Tasarlamak için Cebir ve Silme Kodunda usta olan insanlara ihtiyaçları vardır .

Bu aynı zamanda bulut depolama alanındaki uygulamaları (cebir) için iyi bir poster: Bulut Depolama için Yeni Kodlar


6

Eğer sorunuz

Hesaplamadaki grup, monoid ve halka örnekleri nelerdir?

o zaman elim dışında düşünebildiğim bir örnek grafik teorisinde yol bulma algoritmaları için. Bir tanımlarsak semiring ile olarak ve olarak , o zaman her çiftleri-kısa-yol bulmak için bitişiklik matrisi matris çoğalmasını kullanabilir. Bu yöntem aslında CLRS'de açıklanmaktadır.+min+

Bu sadece cebirsel bir bakış açısıyla teorik görünse de, grafik problemleri için çok yoğun şekilde optimize edilmiş lineer cebir kütüphanelerini kullanmamıza izin veriyor. Kombinatoryal BLAS böyle bir kütüphanedir.


1
Evet, tam da bunu yapmak için minplus ekledik: github.com/twitter/algebird/blob/develop/algebird-core/src/main/…
Oscar Boykin

4

Sonlu bir alfabe üzerindeki bütün kelimelerin bir araya getirilmesiyle birlikte, serbest monoid . Bu nedenle, biçimsel dilin bütün alanı cebirsel lense aracılığıyla görülebilir ve bazen bu şekilde öğretilir.(Σ,)

Buna karşılık, biçimsel dillere ilişkin düşünceler , semirlerde ayrıştırmaya devam edebilecek olan Earley ayrıştırıcısını sağlamıştır . Bu, doğal dil işlemede ve (resmi) diller için stokastik modeller kullanan diğer alanlarda yararlıdır.


3

Matematik bilgim var ama bilgisayar uzmanı değilim. Monoitler ve yarı grupların "gerçek dünya" kullanımlarını kullanmak harika olurdu. Bunlar normalde işe yaramaz teorik yapılar olarak kabul edilir ve birçok soyut cebir dersinde (söyleyecek ilginç bir şey olmaması için) göz ardı edilir.

Söylenecek çok ilginç bir şey var. Bununla birlikte, en azından daha az önemsiz konular için soyut cebir ve analizden ziyade ayrık matematik ve birleştirici bir konu. Ayrıca, bir başkasına söylemeden önce belli bir konu hakkında ne kadar bilgi sahibi olmanız gerektiği sorusu vardır, bunun monoidler ve yarı gruplar ile ilgili ilginç bir matematiksel konudur. Örneğin, aşağıdaki grupları (yarı gruplar ile ilgili) ilginç buluyorum:

  • sonlu yarı gruplar ve Krohn-Rhodes teorisi
  • kısmi simetriler, ters yarı gruplar, groupoitler ve kuasikristaller
  • semirings ve tropikal geometri
  • kısmi emirler ve Möbius fonksiyonları
  • submodüler fonksiyonlar ve (Dulmage-Mendelsohn benzeri) ayrışımları

Bu konuların her biri hakkında çok şey biliyor muyum? Muhtemelen değil. Monoitler ve yarı gruplar ile ilgili daha birçok matematiksel konu var, bazıları yarı grup teorisinin kendisinde (Green'in ilişkileri gibi), bazıları daha genel ve yarı gruplara (evrensel yarı gruplar, homomorfizm ve izomorfizm teoremleri, bölüm yapıları ve uyumluluklar), ama aynı zamanda matematiksel açıdan da önemlidir. Yukarıda bahsettiğim konular çoğunlukla "gerçek dünya" uygulamalarına sahip, fakat aynı zamanda "gerçek dünya" uygulamalarına sahip daha fazla ilgili konu var.


Yukarıdakiler asıl soruya bir cevap değildir, ancak sadece “… normalde işe yaramaz teorik yapılar ... söyleyecek ilginç bir şey olmadığı için…” diye hitap eder. Bu yüzden bazı "ilginç" noktaları listelediğimi, bunların çoğunlukla "gerçek dünya" uygulamalarına sahip olduğunu iddia ettim ve şimdi Hi-Angel bu uygulamalar hakkında biraz bilgi talep ediyor. Ancak, “söylenecek çok ilginç bir şey var” çünkü bu bilgiden çok fazla bir şey beklemeyin: Krohn-Rhodes teoremi , sonlu yarı gruplar için ayrışma teoremidir. Uygulamaları, çelenk ürününün, otomatlar ve normal diller teorisi ile bağlantılı olarak bir çeşit bileşim (dönüştürücüler) olarak yorumlanmasını içerir.Mark V Lawson: İki öğretici ders ve arkaplan materyali (404 şimdi) Ters Yarı Gruplar hakkında iyi bir materyal içeriyordu . Uygulamalarının temeli, simetrik ters yarı gruba, yani bir kümedeki tüm kısmi çıkarmalar kümesine olan bağlantılarıdır. Biri aynı zamanda ters yarı grupların temel cebirsel karakterizasyonları ile de başlayabilir , ancak bu yaklaşım birçok uygulama için önemli olan kısmi siparişlerle bağlantıları ihmal etme riski taşımaktadır. Bir gün, yarı iletken düzenleri sıkıştırmak için kullanılan "yarı sıra" olarak ters yarı grupların belirli bir uygulaması hakkında blog yazmam gerekecek. Semiring uygulamaları diğer cevaplarda zaten açıklanmıştır (ve tropikal geometri bizi bilgisayar bilimlerinden uzağa götürür). Monoitler ve yarı gruplar aynı zamanda kısmi emirlerle de ilgili olduğu için, Möbius gibi Combinatorics: The Rota Way'de açıklanan fonksiyonlar gibi hoş konular da ilişkilidir. Ve sonra da Dulmage-Mendelsohn ayrıştırması gibi Sistem Analizi için Matrisler ve Matroidlerden konular, kafes teorisini (ve gizli hiyerarşik yapıları) inceleme motivasyonlarımdan biri olan ilgili hale geldi.


Şikayet etmediğimden değil, ancak listelenen noktaların gerçek hayat uygulaması hakkında biraz bilgi eklerseniz, daha fazla oy hakkınız olacağını düşünüyorum.
Hi-Angel,

1
@ Hi-Angel Yukarıdaki sorunun cevabı değil, sadece "... işe yaramaz teorik yapı ... söyleyecek ilginç bir şey olmaması ..." yorumunu ele alıyor. Bu konuyu ele alacak en nitelikli kişi olamayacağımı ima ediyor: "Bu konuların her biri hakkında çok şey biliyor muyum? Muhtemelen hayır." En yüksek oy alan gönderim aynı kategoriye giriyor. Benjamin Steinberg buna "toksik" bir alan diyor ve "cevaplama" konusunda nitelikli olacak ...
Thomas Klimpel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.