Что используют группы, моноиды и кольца в вычислениях базы данных?


38

Почему такая компания, как Twitter, заинтересована в алгебраических понятиях, таких как группы, моноиды и кольца? Смотрите их репозиторий на github: twitter / algebird .

Все, что я мог найти, это:

Реализации Monoids для интересных алгоритмов аппроксимации, таких как фильтр Блума , HyperLogLog и CountMinSketch . Они позволяют вам думать об этих изощренных операциях, как о числах, которые вы можете, и складывать их в hadoop или онлайн для получения мощной статистики и аналитики.

и в другой части страницы GitHub:

Первоначально он был разработан как часть Scalding's Matrix API, где у Matrices были значения, которые являются элементами Monoids , Groups или Rings . Впоследствии стало ясно, что код имеет более широкое применение в Scalding и других проектах в Twitter.

Чем может быть это более широкое приложение? в твиттере и для общего интереса?


Кажется, что составные агрегаты баз данных имеют моноидную структуру.

Тот же вопрос по Quora: Каков интерес Твиттера к абстрактной алгебре (с algebird)?


У меня математическое образование, но я не ученый. Было бы здорово иметь в реальном мире моноиды и полугруппы. Обычно они считаются бесполезными теоретическими конструкциями и игнорируются во многих курсах по абстрактной алгебре (из-за отсутствия чего-либо интересного сказать).


1
Я нашел эту замечательную статью, дорогая HackerNews news.ycombinator.com/item?id=5196708 "Алгебра алгебраических типов данных"
Джон Мэнгуал

согласился, нахожу это удивительным, что твиттер дурачится в этих областях, его довольно абстрактно. кажется, что основная идея - это многократно используемые компоненты для системы, подобной Mapreduce. Похоже, что algebird "оторвался" от ожогов. вот разговор о ожогах . однако это не упоминает алгебраические объекты. возможно, они могут использоваться в качестве примитивов / типов объектов данных для манипулирования потоками данных, которые также отображаются в стиле функционального программирования ....
vzn

Короткая беседа с автором ошпаривания в его algebirdбиблиотеке, в Твиттере: twitter.com/posco/status/300692719561482240
Джон Мангал,

2
Я бы категорически оспорил утверждение о том, что моноиды и полугруппы считаются «бесполезными теоретическими конструкциями», так как оба имеют немалую полезность и в самой математике, как в теории категорий, так и для моделирования различных других алгебраических структур. Из какой области математики вы пришли, которая считает полугруппы «бесполезными»?
Стивен Стадницки,

Возможно, уместен синтаксический моноид формального языка, хотя он не упоминается в ответах. Хотя, как и многие ответы, я ожидаю, что это имеет отношение к вычислениям в целом, а не к вычислениям в базе данных.
PJTraill

Ответы:


27

Основной ответ заключается в том, что, используя полугрупповую структуру, мы можем создавать системы, которые правильно распараллеливаются, не зная основной операции (пользователь обещает ассоциативность).

Используя моноиды, мы можем воспользоваться разреженностью (мы имеем дело с множеством разреженных матриц, где почти все значения равны нулю в некотором моноиде).

Используя Кольца, мы можем делать умножение матриц на вещи, отличные от чисел (что мы иногда делали).

Сам проект algebird (а также история проблем) довольно четко объясняет, что здесь происходит: мы создаем множество алгоритмов для агрегирования больших наборов данных, а использование структуры операций дает нам выигрыш в системной части. (что обычно является основной проблемой при попытке реализовать алгоритмы на тысячах узлов).

Решите системные проблемы один раз для любой полугруппы / моноида / группы / кольца, и тогда вы сможете подключить любой алгоритм, не думая о Memcache, Hadoop, Storm и т. Д.


4
Может ли кто-нибудь расширить связь между разреженными матрицами и нулями в каком-то моноиде?
ВЗН

несколько ссылок на примеры или дальнейшее чтение было бы очень приятно
Эрик Каплун

11

Моноиды вездесущи в программировании, просто большинство программистов не знают о них.

  • Числовые операции, такие как сложение и умножение.
  • Матричное умножение.
  • По сути, все подобные коллекциям структуры данных образуют моноиды, где моноидальной операцией является конкатенация или объединение. Это включает списки, наборы, карты ключей к значениям, различные виды деревьев и т. Д.
  • Для заданного типа функции A A вместе с тождественной функцией на A образуют моноид эндоморфизма A.AAAAA

Некоторые другие операции образуют не моноиды, а полугруппы. Хорошим примером является поиск минимального элемента последовательности элементов: представляет минимум a и b относительно некоторого заданного порядка.abab

Поскольку моноиды являются настолько общими, они позволяют писать очень общие функции. Например, сворачивание структуры данных может быть выражено как отображение каждого ее элемента в моноид и затем использование моноидальной операции для объединения их в один результат.

Другой хороший и очень общий пример - обобщение возведения в степень путем возведения в квадрат моноидов (или полугрупп). Мы можем написать одну функцию, которая вычисляет только в O ( log n ) операциях. Применяя его к разным моноидам, получаем:aantimesO(logn)

  • быстрое возведение в степень чисел;
  • быстрое возведение в степень матриц (это может использоваться для вычисления чисел Фибоначчи в умножениях);O(logn)
  • O(1)O(log(min(n1,n2)))
  • и т.п.

Дополнительные примеры см. В разделе Примеры моноидов / полугрупп в программировании .


7

Одной из важных проблем в распределенных файловых системах ( DFS ) является создание файлов из распределенных блоков. Область кода Erasure из теории информации и алгебры (группы, кольца, линейная алгебра, ...) широко используется в распределенных отказоустойчивых файловых системах, например в HDFS RAID (файловая система на основе Hadoop). Социальные сети и облачные компании в значительной степени основаны на DFS, поэтому им нужны люди, владеющие Алгеброй и Erasure Code, для разработки более совершенных и высокопроизводительных систем (таких как коды Рида-Соломона и т. Д.).

Это также хороший плакат для их применения (алгебры) в облачном хранилище: новые коды для облачного хранилища


6

Если ваш вопрос

Каковы примеры групп, моноидов и колец в вычислениях?

+min+

Хотя это может показаться только теоретическим с алгебраической точки зрения, оно позволяет нам использовать очень сильно оптимизированные библиотеки линейной алгебры для задач с графами. Комбинаторный BLAS является одной из таких библиотек.


1
Да, и мы добавили minplus, чтобы сделать это: github.com/twitter/algebird/blob/develop/algebird-core/src/main/…
Оскар Бойкин

4

(Σ*,), Следовательно, все поле формального языка можно рассматривать через алгебраическую линзу, и иногда этому учат так.

В свою очередь, из соображений формальных языков был получен парсер Earley, который можно расширить для анализа полуколец . Это полезно при обработке естественного языка и других областях, использующих стохастические модели для (формальных) языков.


3

У меня математическое образование, но я не ученый. Было бы здорово иметь в реальном мире моноиды и полугруппы. Обычно они считаются бесполезными теоретическими конструкциями и игнорируются во многих курсах по абстрактной алгебре (из-за отсутствия чего-либо интересного сказать).

Слишком много интересного сказать. Однако это больше тема дискретной математики и комбинаторики, чем абстрактной алгебры и анализа, по крайней мере, для менее тривиальных тем. Существует также вопрос, как много вы должны знать об определенной теме, прежде чем вы сможете сказать кому-то еще, что это будет интересная математическая тема, связанная с моноидами и полугруппами. Например, мне интересны следующие темы (связанные с полугруппами):

  • конечные полугруппы и теория Крона-Родса
  • частичные симметрии, обратные полугруппы, группоиды и квазикристаллы
  • полукольца и тропическая геометрия
  • частичные порядки и функции Мёбиуса
  • субмодульные функции и (Dulmage-Mendelsohn как) разложения

Знаю ли я много о каждой из этих тем? Возможно нет. Есть также много других математических тем, связанных с моноидами и полугруппами, некоторые из них являются более внутренними по отношению к самой теории полугрупп (например, отношения Грина), другие являются более общими и не специфичными для полугрупп (универсальные полугруппы, теоремы о гомоморфизме и изоморфизме, фактор-структуры и конгруэнции), но также важно с математической точки зрения. Темы, которые я упомянул выше, в основном имеют приложения «реального мира», но есть и более связанные темы, которые также имеют приложения «реального мира».


Вышеупомянутое не является ответом на реальный вопрос, но касается только «... обычно считаются бесполезными теоретическими конструкциями ... из-за отсутствия чего-либо интересного сказать ...» замечание. Поэтому я перечислил некоторые «интересные» моменты, заявил, что в большинстве случаев это приложения «реального мира», и теперь Hi-Angel запрашивает немного информации об этих приложениях. Но поскольку «слишком много интересного сказать», не ожидайте слишком многого от этой информации: теорема Крона-Родса является теоремой разложения для конечных полугрупп. Его приложения включают интерпретацию продукта венка как своего рода композиции (преобразователей) в связи с теорией автоматов и регулярных языков, Mark V Lawson: две учебные лекции и справочные материалы. содержали (теперь 404) хороший материал по обратным полугруппам . Основой их приложений является их связь с симметричной обратной полугруппой , т. Е. Множеством всех частичных биекций на множестве. Можно также начать с базовых алгебраических характеристик обратных полугрупп, но такой подход рискует пренебречь связями с частичными порядками, которые важны для многих приложений. Однажды мне придется написать в блоге о конкретном применении обратных полугрупп в качестве «иерархии», используемой для сжатия схем полупроводников. . Применение полуколец уже было описано в других ответах (и тропическая геометрия унесет нас далеко от информатики). Поскольку моноиды и полугруппы также связаны с частичными порядками, такие полезные темы, как функции Мёбиуса, описаны в Combinatorics: The Rota Way. , также связаны. А затем также стали связываться темы из Матриц и Матроидов для системного анализа, такие как разложение Дульмажа-Мендельсона , что стало одной из моих мотивов для изучения теории решеток (и скрытых иерархических структур).


Не то чтобы я жаловался, но я думаю, что если бы вы добавили немного информации о реальном применении перечисленных пунктов, у вас было бы гораздо больше голосов.
Привет, Ангел,

1
@ Привет-ангел. Вышесказанное не является ответом на реальный вопрос, а лишь касается комментария «... бесполезная теоретическая конструкция ... отсутствие чего-либо интересного сказать ...». Это намекает на то, что я, возможно, не самый квалифицированный специалист для решения этой проблемы: «Знаю ли я много о каждой из этих тем? Вероятно, нет». Мой пост с наибольшим количеством голосов относится к той же категории. Бенджамин Штейнберг называет это «токсичной» областью , и он будет квалифицирован «отвечать» ...
Томас Климпел
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.