Моноид — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 7: Строка 7:
 
}}
 
}}
  
Другими словами, моноид {{---}} это [[Полугруппа|полугруппа]], в которую добавлен нейтральный элемент. Например, множество натуральных чисел с операцией сложения не является моноидом, а с операцией умножения является.
+
Другими словами, моноид {{---}} это [[Полугруппа|полугруппа]], в которую добавлен нейтральный элемент. Например, множество натуральных чисел <tex> \mathbb{N} </tex> с операцией сложения не является моноидом, а с операцией умножения является.
  
 
{{Утверждение
 
{{Утверждение
Строка 18: Строка 18:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
'''Свободным моноидом''' (англ. ''free monoid'') <tex> M </tex> над множеством <tex> S </tex> <tex>(</tex>обозначается как <tex> M_S )</tex> называется моноид над множеством <tex> S^* </tex> {{---}} набором всевозможных элементов, полученных конечным числом применений ассоциативной операции и операции сокращения нейтрального элемента к элементам множества <tex>S</tex>.
+
'''Гомоморфизмом моноидов''' (англ. ''monoid homomorphism'') <tex>M</tex> и <tex>N</tex> называется отображение <tex>\varphi \colon M \rightarrow N</tex> совместимое с операциями из <tex> M </tex> и <tex> N </tex> такое, что
 +
<tex> \forall m, m' \in M \colon \varphi(m\cdot m') = \varphi(m) \cdot \varphi(n)</tex>, а также <tex>\varphi(\varepsilon_M) = \varepsilon_N</tex>.
 
}}
 
}}
  
* тривиальный пример: множество <tex> S = \{\varnothing\} </tex> и операция <tex> \cup </tex>. Тогда <tex> S^* = \{\varnothing\} </tex>, что, очевидно, является моноидом с операцией <tex>\cup</tex>.
+
{{Определение
* <tex> S = \{0, 1\} </tex>, операция {{---}} сложение. Тогда <tex>S^*  = \mathbb{N}</tex>, так как любое натуральное число является либо нулем, либо суммой конечного числа единиц
+
|definition=
* контрпример: TODO
+
'''Свободным моноидом''' (англ. ''free monoid'') <tex> M </tex> над множеством <tex> S </tex> <tex>(</tex>обозначается как <tex> M_S )</tex> называется моноид над множеством <tex> S^* </tex> {{---}} набором всевозможных последовательностей (или списков) конечной длины (в том числе и нулевой), образованных из элементов множества <tex> S </tex> {{---}} с ассоциативной операцией [[Основные определения: алфавит, слово, язык, конкатенация, свободный моноид слов; операции над языками#defconcat|конкатенации]] этих последовательностей.
 +
}}
 +
 
 +
* тривиальный пример: множество <tex> S = \varnothing </tex>. Тогда <tex> S^* = \{\varnothing\} </tex>.
 +
* <tex> S = \{1\} </tex>. Тогда <tex>S^*  = \{[], [1], [1, 1], ... \} </tex>. Такой моноид с введённой на нём операцией сложения как объединением списков, [[Изоморфизм групп | изоморфен]] моноиду натуральных чисел.
  
Дадим теперь более формальное определение.
+
В более общем смысле, некоторый моноид (или полугруппа) определяется как '''свободный''', если они изоморфен свободному моноиду (полугруппе) над каким-то множеством.
  
 +
Введём дополнительное определение, чтобы привести пример моноида, не являющегося свободным.
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
'''Свободным моноидом''' над множеством <tex> S </tex> называется моноид <tex> M </tex> вместе с отображением <tex> i\colon S \rightarrow M </tex> при условии, что для любого моноида <tex> N </tex> и для любых отображений <tex> f \colon S \rightarrow N </tex> существует уникальный [[Гомоморфизм групп | гомоморфизм]] моноидов <tex> \overline{f} \colon M_S \rightarrow N </tex> такой, что <tex> \overline{f} \circ i = f </tex>.
+
'''Моноидом с порождающими отношениями''' (англ. ''equational presentation of monoid'') называется моноид, на котором введены дополнительные правила, отождествляющие некоторые элементы моноида.
 
}}
 
}}
Это наглядно показано следующей картинкой.
+
Примером такого моноида является множество <tex> G </tex> всевозможных строк над алфавитом <tex> \Sigma = \{a, b\} </tex>, <tex dpi = 130> G = \Sigma^{*}_{/ab = ba} </tex>, что обозначает равенство строк <tex> ab </tex> и <tex> ba </tex> в моноиде. И хотя такой моноид образован всевозможными последовательностями, он не является свободным. Покажем это.
  
[[Файл:FreeMonoidDefinition2.jpg|200px]]
+
{{Теорема
 +
|statement= Моноид <tex dpi = 130> G = \Sigma^{*}_{/ab = ba} </tex> не является свободным
 +
|proof=
 +
Для начала покажем, что каждый элемент такого моноида можно представить в виде <tex> a^i b^j, i \geqslant 0, j \geqslant 0 </tex>. Докажем это конструктивно. Возьмём произвольную строку и будем в ней заменять все подстроки вида <tex> ba </tex> на подстроки <tex> ab </tex>. Если таких подстрок нет, то наша строка имеет вид <tex> a^i b^j </tex>, а если есть, то строка за конечное число шагов приведётся к указанному виду, потому что операцию замены <tex> ba </tex> на <tex> ab </tex> можно рассматривать, как уменьшения числа инверсий в последовательности, а их точно конечное число, так как все последовательности имеют конечную длину.  
  
 +
Предположим, что данный моноид свободный. Это значит, что он изоморфен какому-то свободному моноиду <tex> M_S </tex>, то есть существует биективное отображение <tex> f : G \to M_S </tex>. Это отображение
 +
}}
  
 
== См. также ==
 
== См. также ==
Строка 41: Строка 52:
  
 
== Ссылки ==
 
== Ссылки ==
 +
* [[wikipedia:Monoid | Wikipedia {{---}} Monoid ]]
 +
* [[wikipedia:ru:Моноид | Википедия {{---}} Моноид ]]
 
* [[wikipedia:Free_monoid | Wikipedia {{---}} Free monoid ]]
 
* [[wikipedia:Free_monoid | Wikipedia {{---}} Free monoid ]]
 
* [http://ncatlab.org/nlab/show/free+monoid nLab {{---}} Free Monoid]
 
* [http://ncatlab.org/nlab/show/free+monoid nLab {{---}} Free Monoid]

Версия 17:32, 15 ноября 2013

Определение:
Пара [math]\langle G,\cdot \rangle[/math] называется моноидом, если она удовлетворяет следующим аксиомам:
  • Операция [math] \cdot \colon G \times G \rightarrow G [/math] ассоциативна.
  • Существует нейтральный элемент [math] \varepsilon \in G [/math] относительно бинарной операции такой, что
[math] \forall x\in G : \varepsilon\cdot x=x \cdot \varepsilon = x[/math]. Иногда его обозначают [math] \varepsilon_G [/math], или [math]e_G [/math].


Другими словами, моноид — это полугруппа, в которую добавлен нейтральный элемент. Например, множество натуральных чисел [math] \mathbb{N} [/math] с операцией сложения не является моноидом, а с операцией умножения является.

Утверждение (О единственности нейтрального элемента):
Нейтральный элемент в моноиде единственен.
[math]\triangleright[/math]
Действительно, пусть [math]\varepsilon_1[/math] и [math]\varepsilon_2[/math] — два нейтральных элемента. Тогда имеем: [math]\varepsilon_1 = \varepsilon_1\cdot \varepsilon_2 = \varepsilon_2[/math].
[math]\triangleleft[/math]


Определение:
Гомоморфизмом моноидов (англ. monoid homomorphism) [math]M[/math] и [math]N[/math] называется отображение [math]\varphi \colon M \rightarrow N[/math] совместимое с операциями из [math] M [/math] и [math] N [/math] такое, что [math] \forall m, m' \in M \colon \varphi(m\cdot m') = \varphi(m) \cdot \varphi(n)[/math], а также [math]\varphi(\varepsilon_M) = \varepsilon_N[/math].


Определение:
Свободным моноидом (англ. free monoid) [math] M [/math] над множеством [math] S [/math] [math]([/math]обозначается как [math] M_S )[/math] называется моноид над множеством [math] S^* [/math] — набором всевозможных последовательностей (или списков) конечной длины (в том числе и нулевой), образованных из элементов множества [math] S [/math] — с ассоциативной операцией конкатенации этих последовательностей.


  • тривиальный пример: множество [math] S = \varnothing [/math]. Тогда [math] S^* = \{\varnothing\} [/math].
  • [math] S = \{1\} [/math]. Тогда [math]S^* = \{[], [1], [1, 1], ... \} [/math]. Такой моноид с введённой на нём операцией сложения как объединением списков, изоморфен моноиду натуральных чисел.

В более общем смысле, некоторый моноид (или полугруппа) определяется как свободный, если они изоморфен свободному моноиду (полугруппе) над каким-то множеством.

Введём дополнительное определение, чтобы привести пример моноида, не являющегося свободным.

Определение:
Моноидом с порождающими отношениями (англ. equational presentation of monoid) называется моноид, на котором введены дополнительные правила, отождествляющие некоторые элементы моноида.

Примером такого моноида является множество [math] G [/math] всевозможных строк над алфавитом [math] \Sigma = \{a, b\} [/math], [math] G = \Sigma^{*}_{/ab = ba} [/math], что обозначает равенство строк [math] ab [/math] и [math] ba [/math] в моноиде. И хотя такой моноид образован всевозможными последовательностями, он не является свободным. Покажем это.

Теорема:
Моноид [math] G = \Sigma^{*}_{/ab = ba} [/math] не является свободным
Доказательство:
[math]\triangleright[/math]

Для начала покажем, что каждый элемент такого моноида можно представить в виде [math] a^i b^j, i \geqslant 0, j \geqslant 0 [/math]. Докажем это конструктивно. Возьмём произвольную строку и будем в ней заменять все подстроки вида [math] ba [/math] на подстроки [math] ab [/math]. Если таких подстрок нет, то наша строка имеет вид [math] a^i b^j [/math], а если есть, то строка за конечное число шагов приведётся к указанному виду, потому что операцию замены [math] ba [/math] на [math] ab [/math] можно рассматривать, как уменьшения числа инверсий в последовательности, а их точно конечное число, так как все последовательности имеют конечную длину.

Предположим, что данный моноид свободный. Это значит, что он изоморфен какому-то свободному моноиду [math] M_S [/math], то есть существует биективное отображение [math] f : G \to M_S [/math]. Это отображение
[math]\triangleleft[/math]

См. также

Ссылки