В абстрактной алгебре свободный моноид на множестве — это моноид , элементами которого являются все конечные последовательности (или строки) из нуля или более элементов из этого множества, с конкатенацией строк в качестве операции моноида и с уникальной последовательностью нулевых элементов, часто называемой пустой строкой и обозначаемой ε или λ, в качестве элемента тождества . Свободный моноид на множестве A обычно обозначается A ∗ . Свободная полугруппа на A — это подполугруппа A ∗ , содержащая все элементы , кроме пустой строки. Обычно обозначается A + . [1] [2]
В более общем смысле абстрактный моноид (или полугруппа) S описывается как свободный , если он изоморфен свободному моноиду (или полугруппе) на некотором множестве. [3]
Как следует из названия, свободные моноиды и полугруппы — это те объекты, которые удовлетворяют обычному универсальному свойству, определяющему свободные объекты , в соответствующих категориях моноидов и полугрупп. Из этого следует, что каждый моноид (или полугруппа) возникает как гомоморфный образ свободного моноида (или полугруппы). Изучение полугрупп как образов свободных полугрупп называется комбинаторной теорией полугрупп.
Свободные моноиды (и моноиды вообще) ассоциативны по определению; то есть они записываются без каких-либо скобок, чтобы показать группировку или порядок операций. Неассоциативный эквивалент — свободная магма .
Моноид ( N 0 ,+) натуральных чисел (включая ноль) при сложении является свободным моноидом на одноэлементном свободном генераторе, в данном случае натуральном числе 1. Согласно формальному определению, этот моноид состоит из всех последовательностей типа "1", "1+1", "1+1+1", "1+1+1+1" и так далее, включая пустую последовательность. Отображение каждой такой последовательности на ее результат вычисления [4] и пустой последовательности на ноль устанавливает изоморфизм из множества таких последовательностей на N 0 . Этот изоморфизм совместим с "+", то есть для любых двух последовательностей s и t , если s отображается (т.е. оценивается) в число m и t в n , то их конкатенация s + t отображается на сумму m + n .
В формальной теории языков обычно рассматривается конечное множество «символов» A (иногда называемое алфавитом ). Конечная последовательность символов называется «словом над A », а свободный моноид A ∗ называется « звездой Клини A » . Таким образом, абстрактное изучение формальных языков можно рассматривать как изучение подмножеств конечно порожденных свободных моноидов.
Например, предположим, что алфавит A = { a , b , c }, его звезда Клини A ∗ содержит все конкатенации a , b и c :
Если A — любое множество, функция длины слова на A ∗ — это уникальный гомоморфизм моноида из A ∗ в ( N 0 ,+), который отображает каждый элемент A в 1. Таким образом, свободный моноид — это градуированный моноид . [5] (Градуированный моноид — это моноид, который можно записать как . Каждый из них является градуировкой; градуировка здесь — это просто длина строки. То есть содержит те строки длины Символ здесь можно понимать как «объединение множеств»; он используется вместо символа , потому что, в общем случае, объединения множеств могут не быть моноидами, и поэтому используется другой символ. По соглашению градации всегда записываются с помощью символа .)
Существуют глубокие связи между теорией полугрупп и теорией автоматов . Например, каждый формальный язык имеет синтаксический моноид , который распознает этот язык. Для случая регулярного языка этот моноид изоморфен моноиду перехода, связанному с полуавтоматом некоторого детерминированного конечного автомата, который распознает этот язык. Регулярные языки над алфавитом A являются замыканием конечных подмножеств A*, свободным моноидом над A, относительно объединения, произведения и порождения подмоноида. [6]
Для случая параллельных вычислений , то есть систем с блокировками , мьютексами или объединениями потоков , вычисление можно описать с помощью моноидов истории и моноидов трассировки . Грубо говоря, элементы моноида могут коммутировать (например, разные потоки могут выполняться в любом порядке), но только до блокировки или мьютекса, которые предотвращают дальнейшую коммутацию (например, сериализуют доступ потока к некоторому объекту).
Мы определяем пару слов в A ∗ вида uv и vu как сопряженные : сопряженные слова, таким образом, являются его циклическими сдвигами . [7] Два слова сопряжены в этом смысле, если они сопряжены в смысле теории групп как элементы свободной группы, порожденной A. [ 8]
Свободный моноид равноделим : если выполняется уравнение mn = pq , то существует s такой, что либо m = ps , sn = q (пример см. на рисунке), либо ms = p , n = sq . [9] Этот результат также известен как лемма Леви . [10]
Моноид свободен тогда и только тогда, когда он градуирован (в строгом смысле, что только единица имеет градуировку 0) и равноделим. [9]
Члены множества A называются свободными генераторами для A ∗ и A + . Верхний индекс * обычно понимается как звезда Клини . В более общем смысле, если S является абстрактным свободным моноидом (полугруппой), то набор элементов, который отображается на множество однобуквенных слов при изоморфизме к моноиду A ∗ (полугруппе A + ), называется набором свободных генераторов для S .
Каждый свободный моноид (или полугруппа) S имеет ровно один набор свободных образующих, мощность которого называется рангом S.
Два свободных моноида или полугруппы изоморфны тогда и только тогда, когда они имеют одинаковый ранг. Фактически, каждый набор генераторов для свободного моноида или полугруппы S содержит свободные генераторы, поскольку свободный генератор имеет длину слова 1 и, следовательно, может быть сгенерирован только самим собой. Из этого следует, что свободная полугруппа или моноид конечно сгенерирован тогда и только тогда, когда он имеет конечный ранг.
Подмоноид N из A ∗ является стабильным , если u , v , ux , xv из N вместе подразумевают x из N . [11] Подмоноид из A ∗ является стабильным тогда и только тогда, когда он свободен. [12] Например, используя набор бит { "0", "1" } в качестве A , набор N всех битовых строк, содержащих четное число "1", является стабильным подмоноидом, потому что если u содержит четное число "1", а также ux , то x также должен содержать четное число "1". В то время как N не может быть свободно сгенерирован никаким набором отдельных бит, он может быть свободно сгенерирован набором битовых строк { "0", "11", "101", "1001", "10001", ... } – набором строк вида "10 n 1" для некоторого неотрицательного целого числа n (вместе со строкой "0").
Набор свободных генераторов для свободного моноида P называется базисом для P : набор слов C является кодом , если C * является свободным моноидом, а C является базисом. [3] Набор слов X в A ∗ является префиксом или имеет свойство префикса , если он не содержит собственного (строкового) префикса любого из своих элементов. Каждый префикс в A + является кодом, на самом деле префиксным кодом . [3] [13]
Подмоноид N из A ∗ является правоунитарным, если x , xy в N влечет y в N. Подмоноид порождается префиксом тогда и только тогда, когда он является правоунитарным. [14]
Факторизация свободного моноида — это последовательность подмножеств слов со свойством, что каждое слово в свободном моноиде может быть записано как конкатенация элементов, взятых из подмножеств. Теорема Чена–Фокса–Линдона утверждает, что слова Линдона предоставляют факторизацию. В более общем смысле, слова Холла предоставляют факторизацию; слова Линдона являются частным случаем слов Холла.
Пересечение свободных подмоноидов свободного моноида A ∗ снова свободно. [15] [16] Если S является подмножеством свободного моноида A *, то пересечение всех свободных подмоноидов A *, содержащих S , корректно определено, поскольку само A * свободно и содержит S ; это свободный моноид, называемый свободной оболочкой S . Базой для этого пересечения является код.
Теорема о дефекте [15] [16] [17] утверждает, что если X конечно и C является базисом свободной оболочки X , то либо X является кодом и C = X , либо
Моноидный морфизм f из свободного моноида B ∗ в моноид M — это отображение, такое что f ( xy ) = f ( x )⋅ f ( y ) для слов x , y и f (ε) = ι, где ε и ι обозначают единичные элементы B ∗ и M соответственно. Морфизм f определяется его значениями на буквах B и наоборот, любое отображение из B в M продолжается до морфизма. Морфизм является нестирающим [18] или непрерывным [19], если никакая буква B не отображается в ι, и тривиальным , если каждая буква B отображается в ι. [20]
Морфизм f из свободного моноида B ∗ в свободный моноид A ∗ является тотальным , если каждая буква A встречается в некотором слове в образе f ; циклическим [20] или периодическим [21] , если образ f содержится в { w } ∗ для некоторого слова w из A ∗ . Морфизм f является k -равномерным , если длина | f ( a )| постоянна и равна k для всех a из A . [22] [23] 1-равномерный морфизм является строго алфавитным [19] или кодированием . [24]
Морфизм f из свободного моноида B ∗ в свободный моноид A ∗ является упрощаемым, если существует алфавит C мощности, меньшей, чем у B, такой, что морфизм f пропускается через C ∗ , то есть он является композицией морфизма из B ∗ в C ∗ и морфизма из него в A ∗ ; в противном случае f является элементарным . Морфизм f называется кодом , если образ алфавита B под f является кодом. Каждый элементарный морфизм является кодом. [25]
Для L подмножества B ∗ конечное подмножество T из L является тестовым набором для L, если морфизмы f и g на B ∗ согласуются на L тогда и только тогда, когда они согласуются на T . Гипотеза Эренфойхта заключается в том, что любое подмножество L имеет тестовый набор: [26] это было доказано [27] независимо Альбертом и Лоуренсом; Макнотоном; и Губой. Доказательства основаны на теореме Гильберта о базисе . [28]
Вычислительное воплощение морфизма моноида — это отображение , за которым следует складка . В этой настройке свободный моноид на множестве A соответствует спискам элементов из A с конкатенацией в качестве бинарной операции. Гомоморфизм моноида из свободного моноида в любой другой моноид ( M ,•) — это функция f такая, что
где e — тождество на M. С вычислительной точки зрения каждый такой гомоморфизм соответствует операции отображения , применяющей f ко всем элементам списка, за которой следует операция свертывания , объединяющая результаты с помощью бинарного оператора •. Эта вычислительная парадигма (которая может быть обобщена на неассоциативные бинарные операторы) вдохновила программную среду MapReduce . [ необходима цитата ]
Эндоморфизм A ∗ — это морфизм из A ∗ в себя. [29] Тождественное отображение I является эндоморфизмом A ∗ , и эндоморфизмы образуют моноид относительно композиции функций .
Эндоморфизм f является продолжаемым , если существует буква a такая, что f ( a ) = as для непустой строки s . [30]
Операция проекции строки является эндоморфизмом. То есть, если задана буква a ∈ Σ и строка s ∈ Σ ∗ , проекция строки p a ( s ) удаляет каждое вхождение a из s ; формально она определяется как
Обратите внимание, что проекция строки хорошо определена, даже если ранг моноида бесконечен, поскольку приведенное выше рекурсивное определение работает для всех строк конечной длины. Проекция строки является морфизмом в категории свободных моноидов, так что
где понимается как свободный моноид всех конечных строк, не содержащих букву a . Проекция коммутирует с операцией конкатенации строк, так что для всех строк s и t . Существует много правых обратных к проекции строк, и, таким образом, это расщепляемый эпиморфизм .
Тождественный морфизм определяется как для всех строк s , и .
Проекция струны коммутативна, как это очевидно
Для свободных моноидов конечного ранга это следует из того факта, что свободные моноиды одного и того же ранга изоморфны, поскольку проекция уменьшает ранг моноида на единицу.
Проекция струны идемпотентна , так как
для всех строк s . Таким образом, проекция является идемпотентной, коммутативной операцией, и поэтому она образует ограниченную полурешетку или коммутативную полосу .
Для заданного множества A свободный коммутативный моноид на A — это множество всех конечных мультимножеств с элементами, взятыми из A , при этом моноидной операцией является сумма мультимножеств, а моноидной единицей является пустое мультимножество .
Например, если A = { a , b , c }, элементы свободного коммутативного моноида на A имеют вид
Основная теорема арифметики утверждает, что моноид положительных целых чисел при умножении является свободным коммутативным моноидом на бесконечном множестве образующих — простых чисел .
Свободная коммутативная полугруппа — это подмножество свободного коммутативного моноида, которое содержит все мультимножества с элементами, взятыми из A, за исключением пустого мультимножества.
Свободный частично коммутативный моноид , или моноид трассы , является обобщением, которое охватывает как свободный, так и свободный коммутативный моноид как экземпляры. Это обобщение находит применение в комбинаторике и в изучении параллелизма в информатике .