Języki, automaty i obliczenia/Wykład 1: Słowa, katenacja - elementy teorii półgrup, półgrupy i monoidy wolne

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

{theor}{TWIERDZENIE}[section] {rem}{UWAGA}[section] {corol}{WNIOSEK}[section] {fact}{FAKT}[section] {ex}{PRZYK{}AD}[section] {defin}{DEFINICJA}[section] {lem}{LEMAT}[section]

{prf}{DOWÓD}

{Elementy teorii pó{}grup,
pó{}grupy i monoidy wolne}

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 ={1,2,} oznacza zbiór liczb naturalnych, a 0 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.

Zbiór S, w którym określone jest działanie łączne, to znaczy spełniające warunek

x,y,zSx(yz)=(xy)z

nazywamy półgrupą.

Ćwiczenie [Uzupelnij]

Zbiór liczb naturalnych z dodawaniem (,+) tworzy półgrupę.

Półgrupę M, w której istnieje element neutralny działania, to znaczy element 1MM spełniający warunek

xM1Mx=x1M=x

nazywamy monoidem.

Ćwiczenie [Uzupelnij]

  1. Zbiór liczb naturalnych z mnożeniem (,,1) jest monoidem.
  1. Zbiór liczb naturalnych z zerem (0,+,0) jest monoidem ze względu na dodawanie.
  1. Monoidem jest (AA,,idA) - zbiór odwzorowań dowolnego zbioru A 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 (𝐌,,1𝐌) monoid. Ze względu na łączność działania zarówno w półgrupie, jak i w monoidzie iloczyn x1...xn, a także xn=x...x (n razy) jest określony jednoznacznie bez potrzeby wprowadzania nawiasów. Dla dowolnych liczb naturalnych m,n zachodzą wzory

xm+n=xmxn=xnxm(xm)n=xmn.

Dla dowolnego

xM

przyjmujemy z definicji

x0=1M.

Strukturę monoidu M przenosimy na zbiór potęgowy 𝒫(M) wszystkich podzbiorów monoidu M, określając dla dowolnych A,B𝒫(M) działanie

Parser nie mógł rozpoznać (błąd składni): {\displaystyle A\cdot B=\left\{ x\in {\bf M}\: :\: \exists a\in A,\: \exists b\in B\: ,\: x=ab\right\} }

(𝒫(M),,{1M}) jest monoidem.
Podobnie przenosimy strukturę półgrupy z S na 𝒫(S).
Dla dowolnego podzbioru monoidu (półgrupy) i dla dowolnej liczby n zapis An oznacza n-krotny iloczyn zbioru A przez siebie rozumiany w powyższym sensie.
W szczególności A1=A.

W przypadku monoidu przyjmujemy z definicji

A0={1M}.

Homomorfizmem półgrup (S,),(S,*) nazywamy odwzorowanie

h:SS

takie, że

x,ySh(xy)=h(x)*h(y).

Homomorfizmem monoidów (M,,1M),(M,*,1M) nazywamy odwzorowanie h:MM

takie, że

x,yMh(xy)=h(x)*h(y)ih(1M)=1M.

Ćwiczenie [Uzupelnij]

Odwzorowanie h:mod3mod6 takie, że

140022

jest homomorfizmem półgrupy (mod3,) w półgrupę (mod6,), ale nie jest homomorfizmem monoidu (mod3,,1) w monoid (mod6,,1), bo wartością 1 z monoidu (mod3,,1) nie jest jedynka monoidu (mod6,,1).


dla dociekliwych - start ------

Niech (S,),(M,,1M) będą odpowiednio dowolną półgrupą, monoidem.

  • (T,) nazywamy podpółgrupą S wtedy i tylko wtedy, gdy TS i T2T.
  • (N,,1M) nazywamy podmonoidem M wtedy i tylko wtedy, gdy N jest podpółgrupą M i 1MN.

Ćwiczenie [Uzupelnij]

(mod6,) jest monoidem. Podzbiór {2,4}, jako zamknięty na działanie mod6, tworzy podpółgrupę mod6. ({2,4},mod6) jest monoidem z 4 jako elementem neutralnym, ale nie podmonoidem mod6.

Niech X będzie dowolnym podzbiorem monoidu M. Zbiór

X*={1}XX2...Xn=i=0Xi

jest podmonoidem monoidu M. Jest to najmniejszy, w sensie inkluzji podmonoid monoidu M zawierający zbiór X. Gdy spełniona jest równość X*=M, to mówimy, że X jest zbiorem generatorów monoidu M. Zachodzą następujące własności

  1. Zbiór generatorów nie jest wyznaczony jednoznacznie.
  1. Dla dowolnego monoidu istnieje zbiór generatorów, jest nim w szczególności zbiór M.

Podobnie dla dowolnego podzbioru X półgrupy S zbiór

X+=XX2...Xn=i=1Xi

jest podpółgrupą

S

i to najmniejszą w sensie

inkluzji zawierającą zbiór X.
Powyższe uwagi dotyczące zbioru generatorów monoidów przenoszą się odpowiednio dla półgrup.

Ćwiczenie [Uzupelnij]

W monoidzie (0,+,0) podmonoid generowany przez zbiór generatorów X={2} składa się z liczb parzystych i nieujemnych.


dla dociekliwych - end -----

Niech S będzie półgrupą. Relację równoważności ρS2 nazywamy:

  1. prawą kongruencją w półgrupie S,

jeśli

x,y,zSxρyxzρyz,
  1. lewą kongruencją w półgrupie S, jeśli
    x,y,zSxρyzxρzy,
  1. kongruencją, jeśli jest prawą i lewą

kongruencją, tzn.

x,y,zSxρyzxρzyixzρyz.

Zastępując w powyższej definicji półgrupę S na monoid M otrzymamy dualnie pojęcia prawej kongruencji, lewej kongruencji i kongruencji zdefiniowane w monoidzie.
Mając kongruencję ρ określoną w półgrupie S (monoidzie M) możemy utworzyć półgrupę ilorazową S/ρ (monoid ilorazowy M/ρ), której elementami są klasy równoważności (abstrakcji) relacji ρ.

Dla dowolnego homomorfizmu półgrup h:SS określamy relację

Kerh={(x,y)S×S:h(x)=h(y)}.

Relacja

Kerh

jest

kongruencją w półgrupie S.
Dla homomorfizmu monoidów h:MM relacja Kerh jest kongruencją w monoidzie M.

Podstawowe twierdzenie o epimorfizmie dla struktur algebraicznych przyjmuje dla półgrup i odpowiednio dla monoidów następującą postać.

Niech h:SS będzie dowolnym epimorfizmem półgrupy S na półgrupę S'. Półgrupa S' jest izomorficzna z półgrupą ilorazową S/Kerh.

rys-01

Niech h:MM będzie dowolnym epimorfizmem monoidu M na monoid M'. Monoid M' jest izomorficzny z monoidem ilorazowym M/Kerh.

rys-02

PÓŁGRUPY WOLNE I MONOIDY WOLNE

Niech A oznacza dowolny zbiór.

Wolnym monoidem A* o bazie A nazywamy

zbiór wszystkich skończonych ciągów:

A*={(a1,...,an):n0,aiA}

wraz z działaniem

(a1,...,an)(b1,...,bm)=(a1,...,an,b1,...,bm).

Ciąg pusty (n=0) 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:

(a)a,(a1,...,an)a1...an.

W oparciu o nią możemy

stwierdzić inkluzję AA*.


dla dociekliwych - start -----

Ta inkluzja uzasadnia użycie wprowadzonego wcześniej (Uzupelnic lab1|) oznaczenia A*.
A* jest najmniejszym podmonoidem monoidu A* zawierającym A.


dla dociekliwych - end -----

Wolną półgrupą A+ nad alfabetem A nazywamy zbiór wszystkich skończonych ciągów:

A+={(a1,...,an):n>0,aiA}

wraz z

działaniem katenacji.

Używa się także określeń - wolny monoid o bazie A i wolna półgrupa o bazie A.

  • elementy alfabetu A nazywamy literami.
  • Elementy wolnego monoidu (półgrupy) nazywamy słowami i

oznaczać bedziemy w wykładzie najczęściej literami u,v,w.

  • Dowolny podzbiór wolnego monoidu (półgrupy)

nazywamy językiem.

Długością słowa wA* nazywamy liczbę |w| 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.

Ćwiczenie [Uzupelnij]

  1. Wolna półgrupa {0,1}+ składa się z ciągów binarnych.
  1. Wolny monoid {0,1}* składa się z ciągów binarnych i ciągu pustego.

Niech A i B będą alfabetami. Podstawieniem nazywamy homomorfizm

s:A*𝒫(B*).

Odwzorowanie s jako homomorfizm monoidu A* w monoid 𝒫(B*) spełnia

dla dowolnych

v,wA*

równość

s(vw)=s(v)s(w)orazs(1)={1}

.


dla dociekliwych - start -----

Niech A oznacza dowolny zbiór, a (M,,1M) dowolny monoid.

  1. Każde odwzorowanie
    f:AM
    daje się

jednoznacznie rozszerzyć do homomorfizmu

h:A*M.
  1. Homomorfizm h jest epimorfizmem wtedy i tylko wtedy,

gdy f(A) jest zbiorem generatorów M.

  1. Przyjmujemy
a1...anA+h(a1...an)=f(a1)...f(an)orazh(1)=1M.

Tak określone

h

jest jedynym rozszerzeniem przekształcenia

f

.

  1. f(A)*=MsMs=f(a1)...f(an)=h(a1...an) 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 A dowolny zbiór generatorów monoidu M oraz jako funkcję f włożenie idA:A𝐌 równe identyczności na A dochodzimy do następującego wniosku.

Każdy monoid M jest homomorficznym obrazem wolnego monoidu A* utworzonego nad dowolnym zbiorem generatorów M.

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).

Monoid M jest wolny wtedy i tylko wtedy, gdy każdy element mS=M{1} ma jednoznaczny rozkład na elementy zbioru A=SS2.

Załóżmy, że monoid M jest wolny, to znaczy M=B* dla pewnego zbioru (bazy) B.

  • Udowodnimy, że A jest zbiorem generatorów monoidu M. W tym celu

wykażemy, że zachodzi inkluzja

S(SS2)+.

Dowód przeprowadzimy nie wprost. Załóżmy więc, że

S(SS2)+

i niech

m

oznacza element z tego zbioru o

najmniejszej długości w B*.
Wnioskujemy stąd kolejno:

m ({S} {S}^2)^+
m {S}^2
m=s_1s_2 {dla pewnych} s_1,s_2 {S},

przy czym długość s1,s2 jest silnie mniejsza niż długość m. Zatem

s1,s2(SS2)+

a to oznacza, że

m=s1s2(SS2)+.

Otrzymana sprzeczność kończy dowód faktu, że A=SS2 jest zbiorem generatorów monoidu M.

  • Pokażemy teraz, że AB.

Niech m=b1...bkSS2 dla pewnych biB, i=1,...,k.
Jeśli k>1, to mS2, co jest sprzeczne z wyborem m. Zatem k=1, co implikuje AB.

Z definicji wolnego monoidu wynika jednoznaczność rozkładu na elementy z bazy B, a to pociąga za sobą jednoznaczność rozkładu na elementy z podzbioru A=SS2.

Niech teraz M oznacza monoid z jednoznacznością rozkładu na elementy zbioru A=SS2. Rozszerzamy identyczność idA:AM do homomorfizmu h:A*M. Z założenia wynika, że każdy

element

mS

można przedstawić jako iloczyn

m=a1...angdzieaiAdlai=1,...,n.

Zatem

h(a1...an)=h(a1)...h(an)=a1...an.

Homomorfizm

h

jest

izomorfizmem, więc monoid M jako izomorficzny z A* jest wolny.

Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup.

Półgrupa S jest wolna wtedy i tylko wtedy, gdy każdy element xS ma jednoznaczny rozkład na elementy zbioru SS2.

Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów.

Ćwiczenie [Uzupelnij]

  1. Półgrupa (,+) jest wolna. Każdy jej element można jednoznacznie zapisać

jako sumę jedynek - (+)={1}.

  1. Dla 2={n:n2} półgrupa (2,+) nie jest to półgrupą wolną.

Nie ma jednoznaczności rozkładu na elementy z 2(2+2)={2,3}.
Na przykład 6=2+2+2=3+3.


dla dociekliwych - end -----