Języki, automaty i obliczenia/Wykład 1: Słowa, katenacja - elementy teorii półgrup, półgrupy i monoidy wolne: Różnice pomiędzy wersjami
Linia 252: | Linia 252: | ||
<center><math>\diamondsuit</math></center> | <center><math>\diamondsuit</math></center> | ||
Przyjmując w powyższym twierdzeniu jako <math>A</math> dowolny zbiór generatorów monoidu <math>{M}</math> oraz jako funkcję <math>f</math> włożenie <math>id_{A}:A\longrightarrow \mathbf{M} </math> równe identyczności na <math>A </math> dochodzimy do następującego wniosku. | Przyjmując w powyższym twierdzeniu jako <math>A</math> dowolny zbiór generatorów monoidu <math>{M}</math> oraz jako funkcję <math>f</math> włożenie <math>id_{A}:A\longrightarrow \mathbf{M} </math> równe identyczności na <math>{A} </math> dochodzimy do następującego wniosku. | ||
}} | |||
{{wniosek|2.1|| | |||
Każdy monoid <math>{M}</math> jest homomorficznym obrazem wolnego monoidu <math>A^*</math> utworzonego nad dowolnym zbiorem generatorów <math>{M}.</math> | Każdy monoid <math>{M}</math> jest homomorficznym obrazem wolnego monoidu <math>A^*</math> utworzonego nad dowolnym zbiorem generatorów <math>{M}.</math> | ||
Udowodnione powyżej twierdzenie oraz sformułowany wniosek prawdziwy jest również dla półgrup.<br> | Udowodnione powyżej twierdzenie oraz sformułowany wniosek prawdziwy jest również dla półgrup.<br> | ||
Powyższe rezultaty określają rolę wolnych monoidów (półgrup) w klasie wszystkich monoidów (półgrup). | Powyższe rezultaty określają rolę wolnych monoidów (półgrup) w klasie wszystkich monoidów (półgrup). | ||
}} | |||
{{twierdzenie|2.2|| | |||
Monoid <math>{M}</math> jest wolny wtedy i tylko wtedy, gdy każdy element | Monoid <math>{M}</math> jest wolny wtedy i tylko wtedy, gdy każdy element <math>m \in {S}={M}\setminus \{1\}</math> ma jednoznaczny rozkład na elementy zbioru <math>A={S}\setminus {S}^2.</math> | ||
<math>m \in {S}={M}\setminus \{1\}</math> ma jednoznaczny rozkład na elementy zbioru <math>A={S}\setminus {S}^2.</math> | }} | ||
{{dowod||| | |||
Załóżmy, że monoid <math>{M}</math> jest wolny, to znaczy <math>{M}=B^*</math> dla pewnego zbioru (bazy) <math>B.</math> <br> | Załóżmy, że monoid <math>{M}</math> jest wolny, to znaczy <math>{M}=B^*</math> dla pewnego zbioru (bazy) <math>B.</math> <br> | ||
* Udowodnimy, że <math>A</math> jest zbiorem generatorów monoidu <math>M</math>. W tym celu | :* Udowodnimy, że <math>A{}</math> jest zbiorem generatorów monoidu <math>M</math>. W tym celu wykażemy, że zachodzi inkluzja <center><math>{S}\subset ({S}\setminus {S}^2)^+.</math></center> Dowód przeprowadzimy nie wprost. Załóżmy więc, że | ||
wykażemy, że zachodzi inkluzja <center><math>{S}\subset ({S}\setminus {S}^2)^+.</math></center> Dowód przeprowadzimy nie wprost. | <center><math>{S}\setminus ({S}\setminus {S}^2)^+ \neq \emptyset</math></center> | ||
Załóżmy więc, że <center><math>{S}\setminus ({S}\setminus {S}^2)^+ \neq \emptyset</math></center> i niech <math>m</math> oznacza element z tego zbioru o | : i niech <math>{m}</math> oznacza element z tego zbioru o najmniejszej długości w <math>B^*.</math> <br> Wnioskujemy stąd kolejno: | ||
najmniejszej długości w <math>B^*.</math> <br> | |||
Wnioskujemy stąd kolejno: | |||
m | <math>m\in ({S}\setminus {S}^2)^+</math><br> | ||
m {S}^2<br> | <math>m {S}^2</math><br> | ||
<math>m=s_1s_2 {dla pewnych} s_1,s_2\in {S}</math>, | |||
przy czym długość <math>s_1,s_2</math> jest silnie mniejsza niż długość <math>m.</math> Zatem | przy czym długość <math>s_1,s_2</math> jest silnie mniejsza niż długość <math>m.</math> Zatem | ||
Linia 286: | Linia 288: | ||
Otrzymana sprzeczność kończy dowód faktu, że <math>A={S}\setminus {S}^2</math> jest zbiorem generatorów monoidu <math>{M}.</math> | Otrzymana sprzeczność kończy dowód faktu, że <math>A={S}\setminus {S}^2</math> jest zbiorem generatorów monoidu <math>{M}.</math> | ||
* Pokażemy teraz, że <math>A \subset B.</math> <br> | :* Pokażemy teraz, że <math>A \subset B.</math> <br> | ||
Niech <math>m=b_1...b_k \in {S}\setminus {S}^2</math> dla | Niech <math>m=b_1...b_k \in {S}\setminus {S}^2</math> dla | ||
pewnych <math>b_i \in B</math>, <math>i=1,...,k.</math> <br> | pewnych <math>b_i \in B</math>, <math>i=1,...,k.</math> <br> | ||
Linia 292: | Linia 294: | ||
Z definicji wolnego monoidu | Z definicji wolnego monoidu | ||
wynika jednoznaczność rozkładu na elementy z bazy <math>B</math>, a to pociąga za sobą | wynika jednoznaczność rozkładu na elementy z bazy <math>B</math>, a to pociąga za sobą jednoznaczność rozkładu na elementy z podzbioru <math>A={S}\setminus {S}^2.</math><br> | ||
jednoznaczność rozkładu na elementy z podzbioru <math>A={S}\setminus {S}^2.</math><br> | |||
Niech teraz <math>{M}</math> oznacza monoid z jednoznacznością rozkładu na elementy zbioru <math>A~=~S~\setminus~S^2</math>. Rozszerzamy | Niech teraz <math>{M}</math> oznacza monoid z jednoznacznością rozkładu na elementy zbioru <math>A~=~S~\setminus~S^2</math>. Rozszerzamy identyczność <math>id_A:A\longmapsto {M}</math> do homomorfizmu <math>h:A^*\longmapsto {M}.</math> Z założenia wynika, że każdy element <math>m \in {S}</math> można przedstawić jako iloczyn <center><math>m=a_1...a_n \;\;\; gdzie \;\;\;a_i \in A \;\;\; | ||
identyczność <math>id_A:A\longmapsto {M}</math> do homomorfizmu <math>h:A^*\longmapsto {M}.</math> Z założenia wynika, że każdy | dla \;\;\; i=1,...,n.</math></center> Zatem <center><math>h(a_1...a_n)=h(a_1)...h(a_n)=a_1...a_n.</math></center> Homomorfizm <math>h</math> jest izomorfizmem, więc monoid <math>{M}</math> jako izomorficzny z <math>A^*</math> jest wolny. | ||
element <math>m \in {S}</math> można przedstawić jako iloczyn <center><math>m=a_1...a_n \;\;\; gdzie \;\;\;a_i \in A \;\;\; | |||
dla \;\;\; i=1,...,n.</math></center> Zatem <center><math>h(a_1...a_n)=h(a_1)...h(a_n)=a_1...a_n.</math></center> Homomorfizm <math>h</math> jest | |||
izomorfizmem, więc monoid <math>{M}</math> jako izomorficzny z <math>A^*</math> jest wolny. | |||
<math>\diamondsuit</math> | <math>\diamondsuit</math> | ||
Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup. | Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup. | ||
}} | |||
{{twierdzenie|2.3|| | |||
Półgrupa <math>{S}</math> jest wolna wtedy i tylko wtedy, gdy każdy element <math>x \in {S}</math> ma jednoznaczny | Półgrupa <math>{S}</math> jest wolna wtedy i tylko wtedy, gdy każdy element <math>x \in {S}</math> ma jednoznaczny | ||
rozkład na elementy zbioru <math>{S}\setminus {S}^2.</math> | rozkład na elementy zbioru <math>{S}\setminus {S}^2.</math> | ||
}} | |||
{{wniosek|2.2|| | |||
Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów. | Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów. | ||
}} | |||
{{przyklad|2.2|| | |||
: (1) Półgrupa <math>(\mathbb{N},+ ) </math> jest wolna. Każdy jej element można jednoznacznie zapisać | |||
jako sumę jedynek - <math>\mathbb{N}\setminus (\mathbb{N}+\mathbb{N})=\left\{ 1\right\} </math>. | jako sumę jedynek - <math>\mathbb{N}\setminus (\mathbb{N}+\mathbb{N})=\left\{ 1\right\} </math>. | ||
: (2) Dla <math>\mathbb{N}_2=\{n \in \mathbb{N}:n\geq 2\}</math> półgrupa <math>(\mathbb{N}_2,+ ) </math> nie jest to półgrupą wolną.<br> | |||
Nie ma jednoznaczności rozkładu na elementy z <math>\mathbb{N}_2\setminus (\mathbb{N}_2+\mathbb{N}_2)=\{2,3\}</math>.<br> Na przykład <math>6=2+2+2=3+3</math>. | Nie ma jednoznaczności rozkładu na elementy z <math>\mathbb{N}_2\setminus (\mathbb{N}_2+\mathbb{N}_2)=\{2,3\}</math>.<br> Na przykład <math>6=2+2+2=3+3</math>. | ||
}} | }} | ||
Wersja z 09:16, 7 sie 2006
- Wprowadzenie:
- Teoria języków formalnych, automatów i gramatyk to klasyczna dzisiaj teoria, która zajmuje istotne miejsce w informatyce. Proponuje ona matematyczne modele obliczeń, które wykorzystywane są w praktyce, na przykład w przetwarzaniu tekstu, projektowaniu kompilatorów, w językach programowania czy też sztucznej inteligencji. Daje też znakomite podstawy dla teorii obliczalności czy teorii złożoności.
- Wykład rozpoczniemy od omówienia półgrup - struktur algebraicznych o niezbyt skomplikowanej budowie, bo posiadających jedno tylko działanie. Półgrupy bowiem tworzą ramy dla prezentacji i badań języków formalnych oraz systemów, które takie języki definiują. Wykład zawiera podstawowe pojęcia oraz elementarne własności z zakresu teorii półgrup.
- Słowa kluczowe:
- półgrupa, monoid, kongruencja, zbiór generatorów, wolny monoid, wolna półgrupa, baza, alfabet, słowo, litera
DEFINICJE OZNACZENIA I PODSTAWOWE WŁASNOŚCI
Przyjmijmy, że oznacza zbiór liczb naturalnych,
a zbiór liczb naturalnych wraz z 0. Przypomnimy teraz podstawowe wiadomości z wykładu Algebra Liniowa dotyczące struktur algebraicznych, a dokładniej struktur najprostszych, półgrup i monoidów, posiadających jedno tylko działanie.
Definicja 1.1
Zbiór , w którym określone jest działanie łączne, to znaczy spełniające warunek
nazywamy półgrupą.
Przykład 1.1
Zbiór liczb naturalnych z dodawaniem tworzy półgrupę.
Półgrupę , w której istnieje element neutralny działania, to znaczy element spełniający warunek
nazywamy monoidem.
Przykład 1.2
- (1) Zbiór liczb naturalnych z mnożeniem jest monoidem.
- (2) Zbiór liczb naturalnych z zerem jest monoidem ze względu na dodawanie.
- (3) Monoidem jest - zbiór odwzorowań dowolnego zbioru w siebie ze składaniem jako dzialaniem i identycznością jako elementem neutralnym.
Dwa pierwsze monoidy są przemienne, czyli działanie jest przemienne, a trzeci jest nieprzemienny.
Każdy monoid jest półgrupą.
Dla uproszczenia notacji będziemy opuszczać kropkę "" oznaczającą działanie oraz
używać nazwy "jedynka" na element neutralny. Jeśli nie będzie zaznaczone inaczej, to
będzie oznaczać półgrupę, a monoid. Ze względu na
łączność działania zarówno w półgrupie, jak i w monoidzie iloczyn a także (Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}}
razy) jest określony jednoznacznie
bez potrzeby wprowadzania nawiasów. Dla
dowolnych liczb naturalnych zachodzą wzory
Dla dowolnego
przyjmujemy z definicji
Strukturę monoidu przenosimy na zbiór potęgowy wszystkich podzbiorów monoidu , określając dla dowolnych działanie
jest monoidem.
Podobnie przenosimy strukturę półgrupy z na .
Dla dowolnego podzbioru monoidu
(półgrupy) i dla dowolnej liczby zapis oznacza Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{n}}
-krotny iloczyn
zbioru Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{A}}
przez siebie rozumiany w powyższym sensie.
W szczególności
W przypadku monoidu przyjmujemy z definicji
Definicja 1.3
Homomorfizmem półgrup nazywamy odwzorowanie
takie, żeHomomorfizmem monoidów nazywamy odwzorowanie
takie, żePrzykład 1.3
Odwzorowanie takie, że
jest homomorfizmem półgrupy w półgrupę , ale nie jest homomorfizmem monoidu w monoid , bo wartością 1 z monoidu nie jest jedynka monoidu .
Definicja 1.4
Niech będą odpowiednio dowolną półgrupą, monoidem.
- nazywamy podpółgrupą wtedy i tylko wtedy, gdy i
- nazywamy podmonoidem wtedy i tylko wtedy, gdy jest podpółgrupą i
Przykład 1.4
jest monoidem. Podzbiór , jako zamknięty na działanie , tworzy podpółgrupę . jest monoidem z jako elementem neutralnym, ale nie podmonoidem .
Niech będzie dowolnym podzbiorem monoidu . Zbiór
jest podmonoidem monoidu . Jest to najmniejszy, w sensie inkluzji podmonoid monoidu zawierający zbiór . Gdy spełniona jest równość , to mówimy, że jest zbiorem generatorów monoidu . Zachodzą następujące własności
- 1. Zbiór generatorów nie jest wyznaczony jednoznacznie.
- 2. Dla dowolnego monoidu istnieje zbiór generatorów, jest nim w szczególności zbiór .
Podobnie dla dowolnego podzbioru półgrupy zbiór
jest podpółgrupą
i to najmniejszą w sensie inkluzji zawierającą zbiór
Powyższe uwagi dotyczące zbioru generatorów monoidów przenoszą się odpowiednio dla półgrup.
Przykład 1.5
W monoidzie podmonoid generowany przez zbiór generatorów składa się z liczb parzystych i nieujemnych.
Definicja 1.5
Niech będzie półgrupą. Relację równoważności nazywamy:
- (1) prawą kongruencją w półgrupie , jeśli
- (2) lewą kongruencją w półgrupie , jeśli
- (3) kongruencją, jeśli jest prawą i lewą kongruencją, tzn.
Zastępując w powyższej definicji półgrupę na monoid otrzymamy dualnie pojęcia prawej kongruencji,
lewej kongruencji i kongruencji zdefiniowane w monoidzie.
Mając kongruencję określoną w półgrupie (monoidzie
możemy utworzyć półgrupę ilorazową (monoid ilorazowy ), której elementami
są klasy równoważności (abstrakcji) relacji .
Dla dowolnego homomorfizmu półgrup określamy relację
Dla homomorfizmu monoidów relacja jest kongruencją w monoidzie .
Podstawowe twierdzenie o epimorfizmie dla struktur algebraicznych przyjmuje dla półgrup i odpowiednio dla monoidów następującą postać.
Twierdzenie 1.1
Niech będzie dowolnym epimorfizmem półgrupy na półgrupę Półgrupa jest izomorficzna z półgrupą ilorazową .
rys-01
Twierdzenie 1.2
Niech będzie dowolnym epimorfizmem monoidu na monoid Monoid jest izomorficzny z monoidem ilorazowym .
rys-02
PÓŁGRUPY WOLNE I MONOIDY WOLNE
Niech oznacza dowolny zbiór.
Definicja 2.1
Wolnym monoidem o bazie nazywamy zbiór wszystkich skończonych ciągów:
Ciąg pusty oznaczamy symbolem "1" i z definicji jest on elementem neutralnym określonego powyżej działania, nazywanego katenacją lub konkatenacją.
Przyjmujemy następującą konwencję zapisu:stwierdzić inkluzję .
Ta inkluzja uzasadnia użycie
wprowadzonego wcześniej (Uzupelnic lab1|) oznaczenia .
jest najmniejszym podmonoidem
monoidu zawierającym
Definicja 2.2
Wolną półgrupą nad alfabetem nazywamy zbiór wszystkich skończonych ciągów:
Używa się także określeń - wolny monoid o bazie i wolna półgrupa o bazie .
- elementy alfabetu nazywamy literami.
- Elementy wolnego monoidu (półgrupy) nazywamy słowami i oznaczać bedziemy w wykładzie najczęściej literami .
- Dowolny podzbiór wolnego monoidu (półgrupy) nazywamy językiem.
Długością słowa nazywamy liczbę będącą długością ciągu określającego to słowo. Słowo puste 1, czyli odpowiadające ciągowi pustemu ma długość równą 0.
Przykład 2.1
- (1) Wolna półgrupa składa się z ciągów binarnych.
- (2) Wolny monoid składa się z ciągów binarnych i ciągu pustego.
Definicja 2.3
Niech i będą alfabetami. Podstawieniem nazywamy homomorfizm
Twierdzenie 2.1
Niech oznacza dowolny zbiór, a dowolny monoid.
- (1) Każde odwzorowanie
- daje się jednoznacznie rozszerzyć do homomorfizmu
- (2) Homomorfizm jest epimorfizmem wtedy i tylko wtedy, gdy jest zbiorem generatorów
Dowód
- (1) Przyjmujemy
- Tak określone jest jedynym rozszerzeniem przekształcenia .
- (2) dla pewnego Parser nie mógł rozpoznać (nieznana funkcja „\Leftrightarrowh”): {\displaystyle a_1...a_n \in A^*\Leftrightarrowh} jest suriekcją
Przyjmując w powyższym twierdzeniu jako dowolny zbiór generatorów monoidu oraz jako funkcję włożenie równe identyczności na dochodzimy do następującego wniosku.

Wniosek 2.1
Każdy monoid jest homomorficznym obrazem wolnego monoidu utworzonego nad dowolnym zbiorem generatorów
Udowodnione powyżej twierdzenie oraz sformułowany wniosek prawdziwy jest również dla półgrup.
Powyższe rezultaty określają rolę wolnych monoidów (półgrup) w klasie wszystkich monoidów (półgrup).
Twierdzenie 2.2
Monoid jest wolny wtedy i tylko wtedy, gdy każdy element ma jednoznaczny rozkład na elementy zbioru
Dowód
Załóżmy, że monoid jest wolny, to znaczy dla pewnego zbioru (bazy)
- Udowodnimy, że jest zbiorem generatorów monoidu . W tym celu wykażemy, że zachodzi inkluzja
Dowód przeprowadzimy nie wprost. Załóżmy więc, że
- Udowodnimy, że jest zbiorem generatorów monoidu . W tym celu wykażemy, że zachodzi inkluzja
- i niech oznacza element z tego zbioru o najmniejszej długości w
Wnioskujemy stąd kolejno:
,
przy czym długość jest silnie mniejsza niż długość Zatem
a to oznacza, że
Otrzymana sprzeczność kończy dowód faktu, że jest zbiorem generatorów monoidu
- Pokażemy teraz, że
- Pokażemy teraz, że
Niech dla
pewnych ,
Jeśli , to , co jest sprzeczne z wyborem Zatem , co implikuje
Z definicji wolnego monoidu
wynika jednoznaczność rozkładu na elementy z bazy , a to pociąga za sobą jednoznaczność rozkładu na elementy z podzbioru
Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup.

Twierdzenie 2.3
Półgrupa jest wolna wtedy i tylko wtedy, gdy każdy element ma jednoznaczny rozkład na elementy zbioru
Wniosek 2.2
Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów.
Przykład 2.2
- (1) Półgrupa jest wolna. Każdy jej element można jednoznacznie zapisać
jako sumę jedynek - .
- (2) Dla półgrupa nie jest to półgrupą wolną.
Nie ma jednoznaczności rozkładu na elementy z .
Na przykład .