В абстрактной алгебре , разделе математики , моноид — это множество, снабженное ассоциативной бинарной операцией и единичным элементом . Например, неотрицательные целые числа после сложения образуют моноид, единичный элемент которого равен 0 .
Моноиды — это полугруппы с единицей. Такие алгебраические структуры встречаются в нескольких разделах математики.
Функции из множества в себя образуют моноид относительно композиции функций. В более общем смысле, в теории категорий морфизмы объекта самому себе образуют моноид, и, наоборот, моноид можно рассматривать как категорию с одним объектом.
В информатике и компьютерном программировании набор строк , построенный из заданного набора символов , представляет собой свободный моноид . Моноиды переходов и синтаксические моноиды используются при описании конечных автоматов . Моноиды трассировки и моноиды истории обеспечивают основу для вычислений процессов и параллельных вычислений .
В теоретической информатике изучение моноидов является фундаментальным для теории автоматов ( теория Крона–Родса ) и теории формального языка ( проблема высоты звезды ).
См. полугруппу , чтобы узнать об истории предмета и некоторых других общих свойствах моноидов.
Множество S, снабженное бинарной операцией S × S → S , которую мы обозначим • , является моноидом, если оно удовлетворяет следующим двум аксиомам:
Другими словами, моноид — это полугруппа с единицей . Ее также можно рассматривать как магму , обладающую ассоциативностью и идентичностью. Единичный элемент моноида уникален. [a] По этой причине тождество рассматривается как константа , т.е. 0 -арная (или нулевая) операция. Таким образом, моноид характеризуется спецификацией тройки ( S , •, e ) .
В зависимости от контекста символ бинарной операции может быть опущен, так что операция обозначается сопоставлением ; например, аксиомы моноида могут быть записаны ( ab ) c = a ( bc ) и ea = ae = a . Это обозначение не означает, что речь идет об умножении чисел.
Моноид, в котором каждый элемент имеет обратный, является группой .
Субмоноид моноида ( M , •) — это подмножество N из M , замкнутое относительно операции моноида и содержащее единичный элемент e из M . [1] [b] Символически N является субмоноидом M , если e ∈ N ⊆ M , и x • y ∈ N всякий раз, когда x , y ∈ N . В этом случае N является моноидом относительно бинарной операции, унаследованной от M .
С другой стороны, если N является подмножеством моноида, замкнутого относительно операции моноида, и является моноидом для этой унаследованной операции, то N не всегда является субмоноидом, поскольку единичные элементы могут различаться. Например, одноэлементное множество {0} замкнуто при умножении и не является подмоноидом (мультипликативного) моноида неотрицательных целых чисел .
Говорят, что подмножество S множества M порождает M , если наименьший подмоноид M , содержащий S , есть M . Если существует конечное множество, порождающее M , то M называется конечно порожденным моноидом .
Моноид, операция которого коммутативна , называется коммутативным моноидом (или, реже, абелевым моноидом ). Коммутативные моноиды часто записываются аддитивно. Любой коммутативный моноид наделен своим алгебраическим предварительным порядком ≤ , определяемым x ≤ y , если существует z такой, что x + z = y . [2] Порядковая единица коммутативного моноида M — это элемент u из M такой, что для любого элемента x из M существует v в множестве, порожденном u , такой, что x ≤ v . Это часто используется в случае, если M — положительный конус частично упорядоченной абелевой группы G , и в этом случае мы говорим, что u — единица порядка G.
Моноид, для которого операция коммутативна для некоторых, но не для всех элементов, является моноидом следа ; Моноиды трасс обычно встречаются в теории параллельных вычислений .
Умножение элементов в ⟨ f ⟩ затем задаётся композицией функций.
Когда k = 0 , функция f является перестановкой {0, 1, 2, ..., n −1} и дает уникальную циклическую группу порядка n .
Аксиомы моноида подразумевают, что единичный элемент e уникален: если e и f являются единичными элементами моноида, то e = ef = f .
Для каждого неотрицательного целого числа n можно рекурсивно определить произведение любой последовательности ( a 1 , ..., a n ) из n элементов моноида: пусть p 0 = e и пусть pm = pm −1 • a m для 1 ≤ м ≤ п .
В качестве частного случая можно определить целые неотрицательные степени элемента x моноида: x 0 = 1 и x n = x n −1 • x для n ≥ 1 . Тогда x m + n = x m • x n для всех m , n ≥ 0 .
Элемент x называется обратимым, если существует элемент y такой, что x • y = e и y • x = e . Элемент y называется обратным элементу x . Инверсии, если они существуют, уникальны: если y и z являются инверсиями x , то по ассоциативности y = ey = ( zx ) y = z ( xy ) = ze = z . [6]
Если x обратим, скажем, с обратным y , то можно определить отрицательные степени x , установив x - n = y n для каждого n ≥ 1 ; это делает уравнение x m + n = x m • x n справедливым для всех m , n ∈ Z.
Совокупность всех обратимых элементов моноида вместе с операцией • образует группу .
Не каждый моноид находится внутри группы. Например, вполне возможно иметь моноид, в котором существуют два элемента a и b , такие что a • b = a выполняется, даже если b не является единичным элементом. Такой моноид не может быть вложен в группу, потому что в группе, умножив обе части на обратную величину a , получим b = e , что неверно.
Моноид ( M , •) обладает свойством сокращения (или является сокращающимся), если для всех a , b и c в M равенство a • b = a • c влечет b = c , а равенство b • a = c • а подразумевает б = с .
Коммутативный моноид со свойством сокращения всегда можно вложить в группу с помощью групповой конструкции Гротендика . Именно так аддитивная группа целых чисел (группа с операцией + ) строится из аддитивного моноида натуральных чисел (коммутативного моноида с операцией + и свойством отмены). Однако некоммутативный сокращающийся моноид не обязательно должен быть вложимым в группу.
Если моноид обладает свойством сокращения и конечен , то он фактически является группой. [с]
Право- и левосократяющиеся элементы моноида поочередно образуют субмоноид (т. е. замкнуты относительно операции и, очевидно, содержат единицу). Это означает, что сокращающиеся элементы любого коммутативного моноида можно расширить до группы.
Свойство отмены в моноиде не обязательно для выполнения конструкции Гротендика – достаточно коммутативности. Однако если коммутативный моноид не обладает свойством сокращения, гомоморфизм моноида в его группу Гротендика не является инъективным. Точнее, если a • b = a • c , то b и c имеют один и тот же образ в группе Гротендика, даже если b ≠ c . В частности, если моноид имеет поглощающий элемент , то его группа Гротендика является тривиальной группой .
Обратный моноид — это моноид, в котором для каждого a в M существует единственный a −1 в M такой, что a = a • a −1 • a и a −1 = a −1 • a • a −1 . Если инверсный моноид сократим, то он является группой.
В противоположном направлении, моноид без нулевой суммы — это аддитивно записанный моноид, в котором a + b = 0 означает, что a = 0 и b = 0 : [7] эквивалентно, что ни один элемент, кроме нуля, не имеет аддитивного обратного.
Пусть M — моноид с бинарной операцией, обозначенной • , и единичным элементом, обозначенным e . Тогда (левый) M -действие (или левый действие над M ) представляет собой множество X вместе с операцией ⋅ : M × X → X , которая совместима со структурой моноида следующим образом:
Это аналог действия (левой) группы в теории моноида . Правые М -акты определяются аналогично. Моноид с действием также известен как моноид оператора . Важными примерами являются переходные системы полуавтоматов . Полугруппу преобразований можно превратить в моноид оператора путем присоединения тождественного преобразования.
Гомоморфизм между двумя моноидами ( M , ∗) и ( N , •) — это функция f : M → N такая, что
где e M и e N — тождества на M и N соответственно. Моноидные гомоморфизмы иногда называют просто моноидными морфизмами .
Не каждый гомоморфизм полугруппы между моноидами является гомоморфизмом моноида, поскольку он не может отображать тождество в тождество целевого моноида, даже если тождество является тождеством образа гомоморфизма. [d] Например, рассмотрим [ Z ] n , набор классов вычетов по модулю n , оснащенный функцией умножения. В частности, [1] n является единичным элементом. Функция f : [ Z ] 3 → [ Z ] 6 , заданная формулой [ k ] 3 ↦ [3 k ] 6 , является гомоморфизмом полугруппы, поскольку [3 k ⋅ 3 l ] 6 = [9 kl ] 6 = [3 kl ] 6 . Однако f ([1] 3 ) = [3] 6 ≠ [1] 6 , поэтому гомоморфизм моноида — это гомоморфизм полугруппы между моноидами, который отображает идентичность первого моноида в идентичность второго моноида, и последнее условие не может быть опущено.
Напротив, гомоморфизм полугрупп между группами всегда является гомоморфизмом группы , поскольку он обязательно сохраняет идентичность (потому что в целевой группе гомоморфизма единичный элемент является единственным элементом x таким, что x ⋅ x = x ).
Биективный моноидный гомоморфизм называется моноидным изоморфизмом . Два моноида называются изоморфными, если между ними существует моноидный изоморфизм.
Моноидам может быть предоставлено представление , во многом таким же образом, как группы могут быть определены посредством группового представления . Это делается путем задания набора образующих Σ и набора отношений на свободном моноиде Σ ∗ . Это делается путем расширения (конечных) бинарных отношений на Σ ∗ до конгруэнций моноидов, а затем построения фактормоноида, как указано выше.
Для бинарного отношения R ⊂ Σ ∗ × Σ ∗ его симметричное замыкание определяется как R ∪ R −1 . Это можно расширить до симметричного отношения E ⊂ Σ ∗ × Σ ∗ , определив x ~ E y тогда и только тогда, когда x = sut и y = svt для некоторых строк u , v , s , t ∈ Σ ∗ с ( u , v ) ∈ р ∪ р -1 . Наконец, берется рефлексивное и транзитивное замыкание E , которое тогда является моноидным сравнением.
В типичной ситуации отношение R просто задается как набор уравнений, так что R = { u 1 = v 1 , ..., un = v n } . Так, например,
— эквациональное представление бициклического моноида , и
— пластический моноид степени 2 (имеет бесконечный порядок). Элементы этого пластического моноида можно записать как целые числа i , j , k , поскольку соотношения показывают, что ba коммутирует как с a , так и с b .
Моноиды можно рассматривать как особый класс категорий . Действительно, аксиомы, необходимые для моноидной операции, в точности совпадают с аксиомами, необходимыми для композиции морфизмов , если они ограничены набором всех морфизмов, источником и целью которых является данный объект. [8] То есть
Точнее, учитывая моноид ( M , •) , можно построить небольшую категорию только с одним объектом, морфизмы которой являются элементами M. Композиция морфизмов задается моноидной операцией • .
Аналогично, моноидные гомоморфизмы — это просто функторы между отдельными категориями объектов. [8] Таким образом, эта конструкция дает эквивалентность между категорией (малых) моноидов Mon и полной подкатегорией категории (малых) категорий Cat . Аналогично категория групп эквивалентна другой полной подкатегории Cat .
В этом смысле теорию категорий можно рассматривать как расширение концепции моноида. Многие определения и теоремы о моноидах можно обобщить на небольшие категории с более чем одним объектом. Например, фактор категории с одним объектом — это просто фактормоноид.
Моноиды, как и другие алгебраические структуры, также образуют свою собственную категорию Mon , объекты которой являются моноидами, а морфизмы — гомоморфизмами моноидов. [8]
Существует также понятие моноидного объекта , которое представляет собой абстрактное определение того, что такое моноид в категории. Моноидный объект в Set — это просто моноид.
В информатике многие абстрактные типы данных могут быть наделены моноидной структурой. В обычном шаблоне последовательность элементов моноида « складывается » или «накапливается» для получения окончательного значения. Например, многим итеративным алгоритмам необходимо обновлять некий «промежуточный итог» на каждой итерации; этот шаблон может быть элегантно выражен с помощью моноидной операции. Альтернативно, ассоциативность моноидных операций гарантирует, что операцию можно распараллелить , используя сумму префиксов или аналогичный алгоритм, чтобы эффективно использовать несколько ядер или процессоров.
Учитывая последовательность значений типа M с единичным элементом ε и ассоциативной операцией • , операция складки определяется следующим образом:
Кроме того, любую структуру данных можно «свернуть» аналогичным образом, учитывая сериализацию ее элементов. Например, результат «свертывания» двоичного дерева может отличаться в зависимости от обхода дерева до и после порядка .
Применением моноидов в информатике является так называемая модель программирования MapReduce (см. Кодирование Map-Reduce как моноида со сворачиванием влево). MapReduce в вычислительной технике состоит из двух или трех операций. Учитывая набор данных, «Карта» состоит из сопоставления произвольных данных с элементами определенного моноида. «Уменьшение» заключается в складывании этих элементов так, чтобы в итоге мы получили только один элемент.
Например, если у нас есть мультимножество , в программе оно представляется в виде отображения элементов на их номера. В этом случае элементы называются ключами. Количество различных ключей может быть слишком большим, и в этом случае мультимножество шардируется . Чтобы правильно завершить сокращение, на этапе «Перетасовка» данные перегруппируются по узлам. Если нам не нужен этот шаг, вся операция Map/Reduce состоит из сопоставления и сокращения; обе операции распараллеливаемы: первая из-за ее поэлементной природы, вторая - из-за ассоциативности моноида.
Полный моноид — это коммутативный моноид, снабженный операцией бесконечной суммы для любого набора индексов I такого, что [9] [10] [11] [12]
и
Упорядоченный коммутативный моноид — это коммутативный моноид M вместе с частичным упорядочением ≤ такой, что a ≥ 0 для каждого a ∈ M , а a ≤ b влечет за собой a + c ≤ b + c для всех a , b , c ∈ M.
Непрерывный моноид — это упорядоченный коммутативный моноид ( M , ≤) , в котором каждое направленное подмножество имеет наименьшую верхнюю границу , и эти наименьшие верхние границы совместимы с операцией моноида:
для каждого a ∈ M и направленного подмножества S из M .
Если ( M , ≤) — непрерывный моноид, то для любого набора индексов I и набора элементов ( a i ) i ∈ I можно определить
и M вместе с этой операцией бесконечной суммы представляет собой полный моноид. [12]