데이터베이스 계산에서 그룹, 모노 이드 및 링은 어떤 용도로 사용됩니까?


38

Twitter와 같은 회사가 그룹, 모노 이드 및 반지와 같은 대수 개념에 관심을 갖는 이유는 무엇입니까? github : twitter / algebird 의 저장소를 참조하십시오 .

내가 찾을 수있는 것은 :

Bloom filter , HyperLogLogCountMinSketch 와 같은 흥미로운 근사 알고리즘을위한 Monoids 구현 . 이를 통해 숫자처럼 복잡한 작업을 생각하고 hadoop 또는 온라인에 추가하여 강력한 통계 및 분석을 생성 할 수 있습니다.

그리고 GitHub 페이지의 다른 부분에서 :

원래 Scalding의 Matrix API의 일부로 개발되었습니다. 여기서 행렬에는 Monoids , Groups 또는 Rings의 요소 인 값이 있습니다 . 결과적으로 코드가 Scalding 및 Twitter 내의 다른 프로젝트에서 더 광범위하게 적용되었다는 것이 분명했습니다.

이 광범위한 응용 프로그램은 무엇입니까? 트위터 내에서 그리고 일반적인 관심사를 위해?


데이터베이스의 컴포지션 집계는 단일 구조와 유사합니다.

Quora에 대한 동일한 질문 : 추상적 대수학 (algebird 포함)에 대한 Twitter의 관심사는 무엇입니까?


저는 수학 배경이 있지만 컴퓨터 과학자는 아닙니다. monoid와 semi-group을 "실제로"사용하는 것이 좋을 것입니다. 이것들은 일반적으로 쓸모없는 이론적 구성으로 간주되며 많은 추상 대수 과정에서 무시됩니다 (관심있는 말이 부족합니다).


1
나는이 좋은 기사 혼 HackerNews 발견 news.ycombinator.com/item?id=5196708 "대수 데이터 형식의 대수"
존 mangual

동의, 트위터 가이 분야에서 다소 놀랍습니다. 주요 아이디어는 Mapreduce와 같은 시스템에서 재사용 가능한 구성 요소 인 것 같습니다. algebird는 화상으로부터 "회전"된 것으로 보인다. 여기에 화상에 대한 이야기 . 그러나 대수적 객체는 언급하지 않습니다. 아마도 그것들은 함수형 프로그래밍 스타일로 매핑되는 데이터 흐름에서의 조작을위한 데이터 객체 프리미티브 / 타입으로 사용될 수 있습니다 ....
vzn

algebirdTwitter 에서 자신의 라이브러리에서 화상을 입은 작가와의 짧은 교류 : twitter.com/posco/status/300692719561482240
john mangual

2
나는 단일 이론과 반 그룹이 범주 이론과 다양한 대수적 구조를 모델링하는 데 있어서도 수학 자체 내에서 상당히 많은 유용성을 가지고 있기 때문에 모노 이드와 세미 그룹이 모두 '무용 한 이론적 구성체'로 간주된다는 주장에 강력하게 반박 할 것이다. 세미 그룹을 '무용 지'로 간주하는 수학의 어떤 부분이 있습니까?
Steven Stadnicki 2013

아마도 정식 언어 의 구문 모노 이드 는 관련이 있지만 대답에는 언급되어 있지 않습니다. 많은 답변과 마찬가지로 데이터베이스 계산보다는 일반적인 계산과 관련이 있다고 생각합니다.
PJTraill

답변:


27

주요 대답은 세미 그룹 구조를 활용함으로써 기본 작업을 알지 않고도 올바르게 병렬화되는 시스템을 구축 할 수 있다는 것입니다 (사용자는 유망한 연관성을 나타냄).

Monoid를 사용하면 희소성을 활용할 수 있습니다 (일부 Monoid에서는 거의 모든 값이 0 인 많은 희소 행렬을 처리합니다).

반지를 사용하면 숫자 이외의 것 (때로는 수행 한 것)에 대해 행렬 곱셈을 수행 할 수 있습니다.

algebird 프로젝트 자체 (문제 내역뿐만 아니라)는 여기에서 진행중인 일을 매우 명확하게 설명합니다. 우리는 큰 데이터 세트의 집계를위한 많은 알고리즘을 구축하고 있으며 운영 구조를 활용하면 시스템 측면에서 승리합니다. (일반적으로 1000 개의 노드에서 알고리즘을 생산하려고 할 때 어려움이 있습니다).

Semigroup / Monoid / Group / Ring에 대해 시스템 문제를 한 번 해결 한 다음 Memcache, Hadoop, Storm 등을 생각하지 않고도 알고리즘을 연결할 수 있습니다.


4
누군가 Monoid에서 희소 행렬과 0 사이의 링크를 확장 할 수 있습니까?
vzn


11

모노 이드는 프로그래밍에 편재되어 있으며, 대부분의 프로그래머가 모르는 것입니다.

  • 덧셈과 곱셈과 같은 숫자 연산.
  • 행렬 곱셈.
  • 기본적으로 모든 콜렉션과 유사한 데이터 구조는 단일체를 형성하며, 여기서 단일체 조작은 연결 또는 결합입니다. 여기에는 목록, 세트, ​​값에 대한 키 맵, 다양한 종류의 나무 등이 포함됩니다.
  • AAAAA

abab

monoid는 매우 일반적이므로 매우 일반적인 함수를 작성할 수 있습니다. 예를 들어, 데이터 구조를 접는 것은 모든 요소를 ​​단일체에 매핑 한 다음 단일체 연산을 사용하여 단일 결과로 결합하는 것으로 표현 될 수 있습니다.

aantimesO(logn)

  • 숫자의 빠른 지수화;
  • O(logn)
  • O(1)O(log(min(n1,n2)))
  • 기타

더 많은 예제 는 프로그래밍에서 monoids / semigroups 예제를 참조하십시오 .


7

분산 파일 시스템 ( DFS ) 에서 중요한 문제 중 하나 는 분산 블록에서 파일을 생성하는 것입니다. 정보 이론 및 대수 (그룹, 링, 선형 대수 등) 의이 레이저 코드 영역은 HDFS RAID (Hadoop Based File System) 와 같은 분산 내결함성 파일 시스템에서 광범위하게 사용됩니다 . 소셜 네트워크 및 클라우드 회사는 DFS를 기반으로 광범위하게 운영되므로 대수 및 소거 코드에 능숙한 사람들이 더 나은 고성능 시스템 (예 : 리드 솔로몬 코드 등)을 설계해야합니다.

클라우드 저장소에 적용 할 수있는 대수 포스터이기도 합니다. 클라우드 저장소를위한 새로운 코드


6

질문이

계산에서 그룹, 모노 이드 및 링의 예는 무엇입니까?

내가 직접 생각할 수있는 한 가지 예는 그래프 이론의 경로 찾기 알고리즘입니다. 우리가 정의하면 semiring 으로 로 및 으로 , 우리는 모든 쌍 - 최단 경로를 찾는 인접 행렬과 행렬 승산을 사용할 수있다. 이 방법은 실제로 CLRS에 설명되어 있습니다.+min+

이것은 대수적 관점에서 이론적으로 만 보일 수 있지만 그래프 문제에 대해 매우 크게 최적화 된 선형 대수 라이브러리를 사용할 수 있습니다. 조합 BLAS 는 그러한 라이브러리 중 하나입니다.



4

연결과 함께 유한 알파벳 위에있는 모든 단어들의 집합은 자유 모노 이드 합니다. 따라서 공식 언어의 모든 분야는 대수 렌즈를 통해 볼 수 있으며 때로는 이와 같이 가르쳐집니다.(Σ,)

그 대신에, 공식 언어로 고려 수득 한 Earley 파서 에서 구문 분석을 확장 할 수 semirings을 . 이 기능은 자연어 처리 및 (공식) 언어에 대한 확률 모델을 사용하는 기타 영역에서 유용합니다.


3

저는 수학 배경이 있지만 컴퓨터 과학자는 아닙니다. monoid와 semi-group을 "실제로"사용하는 것이 좋을 것입니다. 이것들은 일반적으로 쓸모없는 이론적 구성으로 간주되며 많은 추상 대수 과정에서 무시됩니다 (관심있는 말이 부족합니다).

말하기에는 너무 재미있다. 그러나 최소한 대수 주제에 대해서는 추상 대수 및 분석보다 이산 수학 및 조합론에 대한 주제입니다. 또한 다른 사람에게 monoids 및 semigroups와 관련된 흥미로운 수학적 주제가 될 것이라고 말하기 전에 특정 주제에 대해 얼마나 알아야하는지에 대한 질문도 있습니다. 예를 들어 다음과 같은 주제 (반 그룹 관련)가 흥미로워 요.

  • 유한 반 그룹과 Krohn-Rhodes 이론
  • 부분 대칭, 역 반 그룹, 그룹 및 준결정
  • 반 반지 및 열대 지오메트리
  • 부분 주문 및 뫼비우스 기능
  • 하위 모듈 함수 및 (Dulmage-Mendelsohn과 같은) 분해

이 주제들 각각에 대해 많이 알고 있습니까? 아마 아닙니다. 또한 monoids 및 semigroups와 관련된 더 많은 수학적 주제가 있으며, 그중 일부는 semigroup 이론 자체에 더 내부적이며 (그린의 관계와 같은) 다른 것들은 좀 더 일반적이며 반 그룹 (유니버설 반 그룹, 동질성 및 동형 이성 이론, 인용 구조 및 수학적 관점에서 중요하다. 위에서 언급 한 주제에는 대부분 "실제"응용 프로그램이 있지만 "실제"응용 프로그램도있는 관련 주제가 더 있습니다.


위의 내용은 실제 질문에 대한 답은 아니지만 "... 일반적으로 쓸모없는 이론적 구성물로 간주됩니다 ... 말해야 할 흥미로운 부분이 없습니다 ..." 그래서 저는 몇 가지 "흥미로운"요점을 나열했으며, 그 중 대부분은 "실제"응용 프로그램을 가지고 있다고 주장했으며 이제 Hi-Angel은 해당 응용 프로그램에 대한 약간의 정보를 요청합니다. 그러나 "말하기에는 너무 흥미 롭기 때문에"그 정보에서 너무 많이 기대하지 마십시오. Krohn-Rhodes 정리 는 유한 한 반 그룹에 대한 분해 정리입니다. 그것의 적용은 화환 제품을 오토마타와 일반 언어 이론과 관련하여 일종의 구성 (변환기)로 해석하는 것을 포함합니다.Mark V Lawson : Inverse Semigroups 에 대한 2 개의 튜토리얼 강의와 배경 자료 (지금은 404)가 있습니다. 이들의 적용을위한 기초는 대칭 역반 그룹 , 즉 세트의 모든 부분 궤적 세트에 대한 연결입니다. 역반 그룹의 기본 대수 특성 으로 시작할 수도 있지만,이 방법은 많은 응용 분야에서 중요한 부분 순서와의 연결을 무시할 위험이 있습니다. 언젠가 반도체 레이아웃을 압축하는 데 사용되는 "계층 구조"와 같은 역 반구 그룹의 특정 응용 프로그램에 대해 블로그작성 해야합니다.. semirings의 응용은 이미 다른 답변에서 설명되었습니다 (열대 기하학은 컴퓨터 과학에서 멀어지게됩니다). monoids와 semigroups도 부분 순서와 관련이 있기 때문에, 조합론 : Rota Way에 설명 된 Möbius 함수와 같은 멋진 주제 도 관련이 있습니다. 그리고 Dulmage-Mendelsohn 분해 와 같은 시스템 분석을위한 행렬과 Matroids의 주제도 관련이되었는데, 이는 격자 이론 (및 숨겨진 계층 구조)을 연구하려는 동기 중 하나였습니다.


내가 불평하는 것은 아니지만 나열된 포인트의 실제 응용 프로그램에 대한 약간의 정보를 추가하면 훨씬 더 많은 투표를했을 것입니다.
Hi-Angel

1
@ Hi-Angel 위의 내용은 실제 질문에 대한 답변이 아니라 "... 쓸모없는 이론적 구성물 ... 말해야 할 흥미로운 내용이 없습니다 ..."주석 만 다룹니다. 이 문제를 해결하는 데 가장 자격이없는 사람이 아닐 수도 있습니다. "이러한 각 주제에 대해 잘 알고 있습니까? 내가 가장 많이 투표 한 게시물 은 같은 카테고리에 속합니다. 벤자민 스테인 버그는 이것을 "독성"영역을 호출 ..., 그는 "대답"에 자격을 갖춘 것
토마스 Klimpel에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.