Monoid

Dalam aljabar abstrak, cabang matematika, **monoid** adalah himpunan kompleks dengan asosiatif operasi biner dan elemen identitas

Monoid adalah semigrup dengan identitas. Struktur aljabar terjadi di beberapa cabang matematika.

Misal, fungsi dari suatu himpunan membentuk monoid dengan komposisi fungsi. Secara lebih umum, dalam teori kategori, morfisme dari sebuah objek dengan membentuk sebuah monoid, dan, sebaliknya, sebuah monoid dapat dipandang sebagai kategori dengan satu objek.

Dalam ilmu komputer dan pemrograman komputer, himpunan string dari himpunan karakter adalah monoid bebas. Transisi monoid dan monoid sintaktik digunakan untuk mendeskripsikan mesin keadaan hingga. Jejak monoid dan sejarah monoid memberikan dasar untuk proses bate dan komputasi bersamaan.

Dalam ilmu komputer teoretis, studi tentang monoid sangat penting untuk teori automata (teori Krohn–Rhodes), dan teori bahasa formal (masalah ketinggian bintang) .

Lihat semigrup untuk sejarah subjek, dan beberapa sifat umum monoid lainnya.

## Definisi

Misalnya *S* adalah himpunan dan • adalah beberapa operasi biner , maka * S * dengan • adalah **monoid** jika memenuhi dua aksioma berikut:

; Asosiatif: untuk * a *, * b * dan * c * dalam *S* dengan persamaan .
; Elemen identitas: elemen *e* dalam *S* untuk setiap elemen *a* dalam *S* dengan persamaan .

Dengan kata lain, monoid adalah semigrup dengan elemen identitas. Monoid disebut sebagai magma dengan asosiasi dan identitas. Untuk alasan identitas sebagai konstanta, yaitu operasi 0-ari (atau nullari). Oleh karena itu, monoid diartikan sebagai spesifikasi rangkap (*S*, • , *e*).

Bergantung pada konteksnya, simbol untuk operasi biner dapat dihilangkan, maka operasi tersebut dilambangkan dengan penjajaran; misalnya, aksioma monoid ditulis sebagai (ab)c = a(bc) dan ea=ae=a. Notasi tersebut tidak menyiratkan bahwa bilangan yang dikalikan.

Monoid setiap elemen menggunakan invers adalah grup.

## Struktur monoid

### Submonoid
**Submonoid** dari sebuah monoid  adalah himpunan bagian *N* dari *M* di bawah operasi monoid dan elemen identitas *e* dari *M*. Secara simbolis, *N* adalah submonoid dari *M* jika ,  di mana , dan . *N* dengan monoid di bawah operasi biner yang digunakan dari *M*.

### Generator
Himpunan bagian *S* dari *M* sebagai **generator** dari *M* jika *M* adalah himpunan terkecil *S* yaitu penutupan di bawah operasi monoid, atau *M* adalah hasil dari penerapan operasi penutupan keuangan ke *S*. Jika generator dari *M* kardinalitas hingga, maka *M* sebagai **dihasilkan secara hingga**. Tidak setiap himpunan *S* akan menghasilkan monoid, karena struktur yang dihasilkan tidak memiliki elemen identitas.

### Monoid komutatif
Monoid di mana operasi komutatif disebut **monoid komutatif** (atau **abelian monoid**). Monoid komutatif ditulis secara aditif. Setiap monoid komutatif dengan **aljabar** preorder  ditentukan dari  dan *z* adalah . **unit-order** dari monoid komutatif *M* adalah elemen *u* dari *M* maka untuk setiap elemen *x* dari *M*, *v* dalam himpunan yang dihasilkan oleh *u* adalah . Jika *M* adalah kerucut positif dari terurut sebagian untul grup abelian *G*, dalam *u* adalah unit order *G*.

### Monoid sebagian komutatif
Monoid di mana operasinya bersifat komutatif untuk semua elemennya adalah jejak monoid; jejak monoid biasanya terjadi dalam teori komputasi bersamaan.

## Contoh
* Dari 16 kemungkinan operasi Boolean biner dari empat yang memiliki identitas dua sisi komutatif dan asosiatif dan dengan demikian membuat himpunan {salah, benar} menjadi monoid komutatif. Di bawah definisi standar, AND dan XNOR menggunakan identitas sedangkan XOR dan OR memiliki identitas yang salah. Monoid dari AND dan OR untuk idempoten dari XOR dan XNOR.
* Himpunan bilangan asli \N = \{0,1,2,\ldots\} adalah monoid komutatif di bawah penjumlahan (elemen identitas 0) atau perkalian (elemen identitas 1). Submonoid dari  di bawah penambahan disebut monoid numerik.
* Himpunan bilangan bulat positif \N \setminus \{0\} adalah monoid komutatif dalam perkalian (elemen identitas 1).
* Diberikan himpunan , himpunan himpunan bagian dari  adalah monoid komutatif di bawah (elemen identitasnya adalah  sendiri).
* Diberikan himpunan , himpunan bagian dari  adalah monoid komutatif di bawah gabungan (elemen identitas adalah himpunan kosong).
* Generalisasi contoh sebelumnya, setiap semikis batas adalah monoid komutatif idempoten.
** Secara khusus, setiap kisi berbatas dapat diberkahi dengan struktur monoid bertemu dan gabungan. Elemen identitas adalah bagian atas dan bawah kisi. Karena kisi-kisi, Aljabar Heyting dan Aljabar Boolean diberkahi dengan struktur monoid ini.
* Setiap himpunan singleton  penutupan di bawah operasi biner • bentuk monoid trivial (satu elemen) merupakan grup trivial.
* Setiap grup adalah monoid dan setiap grup abelian adalah monoid komutatif.
* Semua semigrup  dapat diubah menjadi monoid dengan menggabungkan elemen  bukan  dan menentukan  untuk semua . Konversi semigrup di monoid ini dilakukan oleh funktor bebas antara kategori semigrup dan kategori monoid.
** Jadi, monoid idempoten (sebagai *temukan-pertama*) dapat dibentuk dengan menggabungkan elemen identitas  ke semigrup nol kiri di atas himpunan . Monoid (disebut *temukan-terakhir*) bentuk dari grup nol kanan di atas .
*** Adjoin dari sebuah identitas  ke semigrup kiri-nol dengan dua elemen . Kemudian monoid idempoten dihasilkan  memodelkan urutan leksikografis dari suatu urutan yang diberi urutan elemennya, dengan *e* mewakili persamaan.
* Himpunan yang mendasari setiap gelanggang, dengan operasi penjumlahan atau perkalian. Menurut definisi, gelanggang memiliki identitas perkalian 1.
** Bilangan bulat, bilangan rasional, bilangan riil, atau bilangan kompleks, dengan operasi penjumlahan atau perkalian.
** Himpunan semua  oleh  matriks di atas gelanggang tertentu, dengan penambahan matriks atau perkalian matriks sebagai operasi.
* Himpunan semua string hingga beberapa alfabet tetap  membentuk monoid dengan rangkaian string sebagai operasinya. String kosong berfungsi sebagai elemen identitas. Monoid ini dilambangkan  dan disebut **[[monoid bebas]]** di atas .
* Diberikan monoid , *monoid berlawanan*  memiliki himpunan operasi dan elemen identitas yang sama , dan operasi ditentukan oleh . Monoid komutatif adalah kebalikan dari monoid itu sendiri.
* Diberikan dua himpunan  dan  dengan struktur monoid (atau, secara umum, sejumlah terbatas monoid, , produk Kartesius mereka  adalah monoid (masing-masing, ). Operasi asosiatif dan elemen identitas ditentukan berpasangan.
* Monoid . Himpunan semua fungsi dari himpunan tertentu ke  adalah monoid. Elemen identitas adalah fungsi konstanta yang memetakan nilai ke identitas ; operasi asosiatif ditentukan sesetitik.
* Monoid  dengan operasi  dan elemen identitas , dan pertimbangkan himpunan kuasa  terdiri dari semua himpunan bagian dari . Operasi biner untuk himpunan bagian tersebut dapat ditentukan dengan . Nilai berubah ke  menjadi monoid dengan elemen identitas . Dengan cara yang sama, himpunan kuasa grup  adalah monoid di bawah produk himpunan bagian grup.
* Misalkan  menjadi satu himpunan. Himpunan semua fungsi  membentuk monoid di bawah komposisi fungsi. Identitas hanyalah fungsi identitas. Ini disebut sebagai **[[monoid transformasi penuh]]** dari . Jika  hingga dengan elemen , monoid fungsi pada  hingga dengan elemen .
* Generalisasi contoh sebelumnya, misalkan  menjadi kategori dan  objek . Himpunan dari semua endomorfisme dari , dilambangkan , membentuk monoid di bawah komposisi morfisme. Untuk lebih lanjut tentang relasi antara teori kategori dan monoid, lihat di bawah.
* Himpunan homeomorfisme kelas dari permukaan kompak dengan jumlah terhubung. Elemen unitnya adalah kelas bola-2 biasa. Selanjutnya, jika  menunjukkan kelas dari torus, dan *b* menunjukkan kelas bidang proyektif, maka setiap elemen *c* dari monoid memiliki ekspresi unik berupa  di mana  adalah bilangan bulat positif dan , atau . Maka .
* Maka \langle f\rangle menjadi monoid siklik urutan , yaitu \langle f\rangle = \left\{f^0,f^1,\dots,f^{n-1}\right\}. Kemudian f^n = f^k untuk beberapa 0 \le k . Faktanya, setiap  tersebut memberikan monoid yang berbeda dengan urutan , dan setiap monoid siklik isomorfik untuk salah satu dari ini.Selain itu,  sebagai fungsi pada titik \{0,1,2,\dots,n-1\} diberikan oleh
:: \begin{bmatrix}
0 & 1 & 2 & \cdots & n-2 & n-1 \\
1 & 2 & 3 & \cdots & n-1 & k\end{bmatrix}
:atau, secara ekuivalen
:: f(i) := \begin{cases} i+1, & \text{jika }  0 \le i 
:Perkalian elemen dalam \langle f\rangle  kemudian diberikan komposisi fungsi.
:Jadi k = 0 maka fungsi  adalah permutasi dari \{0,1,2,\dots,n-1\}, dan grup siklik unik dari urutan .

## Aksi dan monoid operator

Misalkan *M* bentuk dari monoid, dengan operasi biner dilambangkan dengan • dan elemen identitas dan dilambangkan dengan *e*. Maka (kiri) **''M''-ari** (atau aksi kiri di atas *M*) adalah satu himpunan *X* dengan operasi  yang kompatibel dengan struktur monoid sebagai berikut:
* untuk *x* dalam *X*: ;
* untuk *a*, *b* pada *M* dan *x* pada *X*: .
Ini adalah analogi dalam teori monoid (kiri) grup aksi. Baik aksi *M* didefinisikan dengan cara biasa. Monoid dengan suatu aksi dikenal sebagai **[[operasi monoid]]**. Contoh yang termasuk sistem transisi dari semiautomata. Transformasi semigrup dapat dibuat menjadi operasi monoid dengan menggabungkan transformasi identitas.

## Monoid homomorfisme

Bilangan riil adalah gelanggang yang menggunakan penembahab dan perkalian. Himpunan semua 2 × 2 matriks merupakan gelanggang, di bawah penambahan matriks dan perkalian matriks. Jika mendefinisikan fungsi antara gelanggang, sebagai berikut:
:f(r) = \begin{pmatrix}
   r & 0 \\
   0 & r
\end{pmatrix}
di mana  adalah bilangan riil, maka  adalah homomorfisme gelanggang, karena  mempertahankan dua penambahan:
:f(r+s) = \begin{pmatrix}
  r+s & 0 \\
   0 & r+s
\end{pmatrix} = \begin{pmatrix}
  r & 0 \\
   0 & r
\end{pmatrix} + \begin{pmatrix}
   s & 0 \\
   0 & s
\end{pmatrix} = f(r) + f(s)
dan perkalian:
:f(rs) = \begin{pmatrix}
  rs & 0 \\
   0 & rs
\end{pmatrix} = \begin{pmatrix}
   r & 0 \\
   0 & r
\end{pmatrix} \begin{pmatrix}
   s & 0 \\
   0 & s
\end{pmatrix} = f(r)\,f(s).

Untuk contoh lain, bukan-nol untuk bilangan kompleks membentuk grup di bawah operasi perkalian, seperti halnya bilangan riil bukan-nol. Nol dihilangkan dari kedua grup karena tidak memiliki invers perkalian, yang diperlukan untuk elemen grup.  Tentukan fungsi f dari bilangan kompleks bukan nol ke bilangan riil bukan nol dengan
:f(z) = |z| .
Artinya, f adalah nilai mutlak (atau modulus) dari bilangan kompleks z. Maka f adalah homomorfisme grup, karena perkalian:
:f(z_1 z_2) = |z_1 z_2| = |z_1| |z_2| = f(z_1) f(z_2).
Perhatikan bahwa  tidak dapat diperpanjang menjadi homomorfisme gelanggang (dari bilangan kompleks ke bilangan riil), karena tidak termasuk penambahan:
:|z_1 + z_2| \ne |z_1| + |z_2|.

Sebagai contoh lain, diagram menunjukkan homomorfisme monoid f dari monoid (\mathbb{N}, +, 0) ke monoid (\mathbb{N}, \times, 1). Karena nama berbeda dari operasi terkait, sifat pelestarian struktur yang dipenuhi oleh  f  dihasilkan sebagai f(x+y) = f(x) \times f(y) dan f(0) = 1.

Komposisi aljabar  A  di atas bidang  F  menggunakan bentuk kuadrat, yang disebut *norma*, N: A \to F, yang merupakan homomorfisme grup dari grup perkalian dari  A  ke grup perkalian dari  F .

## Persamaan presentasi

Monoid dapat diberikan **presentasi**, dengan cara yang sama seperti grup dapat ditentukan melalui presentasi grup. Seseorang melakukan ini dengan menentukan satu set generator Σ, dan satu set relasi pada monoid bebas Σ∗. Seseorang melakukannya dengan memperluas (finite) relasi biner pada Σ* ke kongruensi monoid, dan kemudian membangun monoid hasil bagi, seperti di atas.

Diberikan relasi biner , satu mendefinisikan penutupan simetrisnya sebagai . Ini dapat diperluas ke hubungan simetris  dengan mendefinisikan  jika dan hanya jika  dan  untuk beberapa pita  dengan . Akhirnya, seseorang mengambil penutupan refleksif dan transitif dari * E *, yang kemudian merupakan kongruensi monoid.

Dalam situasi tipikal, relasi * R * hanya diberikan sebagai sekumpulan persamaan, sehingga R=\{u_1=v_1,\cdots,u_n=v_n\}. Thus, for example,
: \langle p,q\,\vert\; pq=1\rangle
adalah presentasi persamaan untuk monoid bisiklik, dan

: \langle a,b \,\vert\; aba=baa, bba=bab\rangle
adalah monoid plaktik derajat 2 (memiliki urutan tak terhingga). Elemen monoid plastik ini dapat ditulis sebagai a^ib^j(ba)^k untuk integer * i *, * j *, * k *, karena hubungan menunjukkan bahwa * ba * bolak-balik dengan * a * dan * b *.

## Kaitannya dengan teori kategori

Monoid dapat dipandang sebagai kelas khusus kategori. Memang, aksioma yang diperlukan dari operasi monoid persis seperti yang diperlukan dari komposisi morfisme ketika dibatasi pada himpunan semua morfisme yang sumber dan targetnya adalah objek tertentu. adalah,
: *Monoid, pada dasarnya, sama dengan kategori dengan satu objek.*
Lebih tepatnya, diberi monoid , seseorang dapat membuat kategori kecil dengan hanya satu objek dan yang morfismenya adalah elemen dari *M*. Komposisi morfisme diberikan oleh operasi monoid •.

Demikian juga, homomorfisme monoid hanyalah funktor antara kategori objek tunggal.  Jadi konstruksi ini memberikan kesetaraan antara kategori monoid (kecil) **Mon** dan subkategori lengkap kategori kategori (kecil) **Cat**. Demikian pula, kategori grup setara dengan subkategori lengkap lainnya **Cat**.

Dalam pengertian ini, teori kategori dapat dianggap sebagai perluasan dari konsep monoid. Banyak definisi dan teorema tentang monoid dapat digeneralisasikan ke kategori kecil dengan lebih dari satu objek. Misalnya, hasil bagi dari kategori dengan satu objek hanyalah hasil bagi monoid.

Monoid, seperti struktur aljabar lainnya, juga membentuk kategorinya sendiri, **Mon**, yang objeknya monoid dan morfisme homomorfisme monoid.

Ada pula pengertian objek monoid yang merupakan definisi abstrak dari apa yang dimaksud dengan monoid dalam suatu kategori. Objek monoid dalam **[[kategori himpunan|Set]]' '' hanyalah sebuah monoid.

== Monoid dalam ilmu komputer ==
Dalam ilmu komputer, banyak [[tipe data abstrak]] dapat diberkahi dengan struktur monoid. Dalam pola yang sama, Sebuah [[urutan]] elemen monoid adalah "[[lipat (fungsi orde tinggi)|dilipat]]" atau "terakumulasi" untuk menghasilkan nilai akhir. Misalnya, banyak algoritma iteratif perlu memperbarui beberapa jenis "menjalankan total" pada setiap iterasi; pola ini dapat diekspresikan secara elegan dengan operasi monoid. Alternatifnya, asosiasi operasi monoid memastikan bahwa operasi dapat [[paralelisasi|paralel]] dengan menggunakan [[jumlah awalan]] atau algoritma serupa, untuk memanfaatkan banyak inti atau prosesor secara efisien.

Diberikan urutan nilai tipe '' M '' dengan elemen identitas <math>\varepsilon</math> dan operasi asosiatif <math>\bullet</math>, operasi '' lipat '' didefinisikan sebagai berikut:
: <math>\mathrm{kelipatan}: M^{*} \rarr M = l \mapsto \begin{cases} \varepsilon & \mbox{jika } l = \mathrm{nil} \\ m \bullet \mathrm{kelipatan} \, l' & \mbox{jika } l = \mathrm{cons} \, m \, l' \end{cases}</math>

Selain itu, [[struktur data]] apa pun dapat 'dilipat' dengan cara yang sama, mengingat serialisasi elemennya. Misalnya, hasil dari "melipat" sebuah [[pohon biner]] mungkin berbeda tergantung pada pemesanan di muka vs. setelah pesanan [[traversal pohon]].

== Monoid lengkap ==
Sebuah **monoid lengkap** adalah monoid komutatif yang dilengkapi dengan operasi jumlah [[Finiter|infiniter]] <math>\Sigma_I</math> untuk [[himpunan indeks]]  apa pun yang:

: <math>\sum_{i \in \emptyset}{m_i} =0;\quad \sum_{i \in \{j\}}{m_i} = m_j;\quad \sum_{i \in \{j, k\}}{m_i} = m_j+m_k \quad \text{ for } j\neq k</math>

dan

: <math>\sum_{j \in J}{\sum_{i \in I_j}{m_i}} = \sum_{i \in I}(m_i)\quad  \text{ if } \bigcup_{j\in J} I_j=I \text{ and } I_j \cap I_{j'} = \emptyset \quad \text{ for } j\neq j'</math>

**monoid kontinu''' adalah monoid komutatif terurut di mana setiap himpunan terarah memiliki batas atas terkecil yang kompatibel dengan operasi monoid:

: a + \sup S = \sup(a + S) \ . 

Kedua konsep ini terkait erat: monoid kontinu adalah monoid lengkap di mana jumlah infiniter dapat didefinisikan sebagai

:  \sum_I a_i = \sup \sum_E a_i 

di mana supremum di sebelah kanan berjalan di atas semua himpunan bagian terbatas  dari  dan setiap jumlah di sebelah kanan adalah jumlah yang terbatas di monoid.

## Lihat pula
* Relasi Green
* Monad (pemrograman fungsional)
* Semigelanggang dan Aljabar Kleene
* Masalah ketinggian bintang
* Kotak Weda

## Catatan

## Referensi
* 
* 
* 
* 
* 

## Pranala luar
* 
* 
*