Języki, automaty i obliczenia/Ćwiczenia 1: Słowa, katenacja - elementy teorii półgrup, półgrupy i monoidy wolne: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
Rogoda (dyskusja | edycje)
Linia 13: Linia 13:
Zatem działanie jest łączne. Aby pokazać, że struktura jest monoidem, musimy wskazać element neutralny. Pokażemy, że jest nim '''0'''. Istotnie: <center><math>\forall x \in \mathds{Z}\ x \star 0 = 0 \star x = 0 + x - 0 \cdot x = x.</math></center> Monoid jest przemienny, gdyż <math>x \star y = x+y-xy=y+x-yx = y \star x</math>.
Zatem działanie jest łączne. Aby pokazać, że struktura jest monoidem, musimy wskazać element neutralny. Pokażemy, że jest nim '''0'''. Istotnie: <center><math>\forall x \in \mathds{Z}\ x \star 0 = 0 \star x = 0 + x - 0 \cdot x = x.</math></center> Monoid jest przemienny, gdyż <math>x \star y = x+y-xy=y+x-yx = y \star x</math>.
</div></div>
</div></div>
{{cwiczenie|[Uzupelnij]||
{{cwiczenie|1.2||


Udowodnij, że w monoidzie istnieje dokładnie jeden element  
Udowodnij, że w monoidzie istnieje dokładnie jeden element neutralny.
neutralny.
}}
}}


ROZWIĄZANIE. Nie wprost. Rozważmy monoid <math>(M, \cdot)</math> i załóżmy, że
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none">
istnieją co najmniej dwa elementy neutralne <math>e</math> oraz <math>e'</math>. Ponieważ
<math>e</math> jest elementem neutralnym, zatem <math>\forall x \in M\ e \cdot x =  
x</math>; w szczególności dla <math>x=e'</math> mamy <math>e \cdot e' = e'</math>. Z drugiej
strony, <math>e'</math> jest elementem neutralnym, zatem <math>\forall x \in M\ x
\cdot e' = x</math>; w szczególności dla <math>x=e</math> mamy <math>e \cdot e' = e</math>.
Łącząc te dwa wyniki otrzymujemy <math>e' = e \cdot e' = e</math>, czyli
<math>e=e'</math>. Zatem jeśli istniałyby dwa elementy neutralne <math>e</math> i <math>e'</math> to
musiałyby być sobie równe, a więc byłyby tym samym elementem.


{{cwiczenie|[Uzupelnij]||
Nie wprost. Rozważmy monoid <math>(M, \cdot)</math> i załóżmy, że istnieją co najmniej dwa elementy neutralne <math>e</math> oraz <math>e'</math>. Ponieważ <math>e</math> jest elementem neutralnym, zatem <math>\forall x \in M\ e \cdot x = x</math>; w szczególności dla <math>x=e'</math> mamy <math>e \cdot e' = e'</math>. Z drugiej strony, <math>e'</math> jest elementem neutralnym, zatem <math>\forall x \in M\ x \cdot e' = x</math>; w szczególności dla <math>x=e</math> mamy <math>e \cdot e' = e</math>. Łącząc te dwa wyniki otrzymujemy <math>e' = e \cdot e' = e</math>, czyli <math>e=e'</math>. Zatem jeśli istniałyby dwa elementy neutralne <math>e</math> i <math>e'</math> to musiałyby być sobie równe, a więc byłyby tym samym elementem.
</div></div>
{{cwiczenie|1.3||


Znajdź wszystkie podpółgrupy (podmonoidy) następujących półgrup  
Znajdź wszystkie podpółgrupy (podmonoidy) następujących półgrup  
(monoidów):
(monoidów):


# <math>(\mathds{Z}_{mod\ 6}, +)</math>,
: (1) <math>(\mathds{Z}_{mod\ 6}, +)</math>,


# <math>(\mathds{Z}_{mod\ 7}, +)</math>,
: (2) <math>(\mathds{Z}_{mod\ 7}, +)</math>,


# <math>(\mathds{Z}_{mod\ 4}, \cdot)</math>,
: (3) <math>(\mathds{Z}_{mod\ 4}, \cdot)</math>,


# <math>(\{0, 1\}, \vee)</math>.
: (4) <math>(\{0, 1\}, \vee)</math>.


}}
}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie punktu 1 </span><div class="mw-collapsible-content" style="display:none">.<math>(\mathds{Z}_{mod\ 6}, +)</math> jest monoidem. Jego podmonoidy mogą wyglądać następująco:


ROZWIĄZANIE punktu 1. <math>(\mathds{Z}_{mod\ 6}, +)</math> jest monoidem. Jego
: (1) <math>\{0\}</math> (generowany przez zbiór <math>\{0\}</math>),
podmonoidy mogą wyglądać następująco:


# <math>\{0\}</math> (generowany przez zbiór <math>\{0\}</math>),
: (2) <math>\{0, 2, 4\}</math> (generowany przez zbiór <math>\{2\}</math>),


# <math>\{0, 2, 4\}</math> (generowany przez zbiór <math>\{2\}</math>),
: (3) <math>\{0, 3\}</math> (generowany przez zbiór <math>\{3\}</math>),
 
# <math>\{0, 3\}</math> (generowany przez zbiór <math>\{3\}</math>),
 
# <math>\{0,1,2,3,4,5\}</math> (generowany przez zbiór <math>\{1\})</math>.


: (4) <math>\{0,1,2,3,4,5\}</math> (generowany przez zbiór <math>\{1\})</math>.
</div></div>
{{cwiczenie|[Uzupelnij]||
{{cwiczenie|[Uzupelnij]||



Wersja z 09:35, 8 sie 2006

Ćwiczenia 1

Ćwiczenie 1.1

Pokaż, że jeśli w zbiorze Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle \mathds{Z}} określimy działanie
xy=x+yxy,
to Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}, \star)} jest monoidem. Sprawdź, czy jest to monoid przemienny.
Rozwiązanie

Ćwiczenie 1.2

Udowodnij, że w monoidzie istnieje dokładnie jeden element neutralny.

Rozwiązanie

Ćwiczenie 1.3

Znajdź wszystkie podpółgrupy (podmonoidy) następujących półgrup (monoidów):

(1) Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 6}, +)} ,
(2) Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 7}, +)} ,
(3) Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 4}, \cdot)} ,
(4) ({0,1},).
Rozwiązanie punktu 1

Ćwiczenie [Uzupelnij]

Niech f:ST będzie homomorfizmem półgrup. Pokaż, że Kerf jest kongruencją.

ROZWIĄZANIE. Niech f:ST będzie homomorfizmem

półgrupy

S

w półgrupę

T

. Mamy pokazać, że

x,y,zS xKerfyzxKerfzyxzKerfyz.

Weźmy więc dowolne

x,y,zS

i załóżmy, że

xKerfy. Z definicji Kerf mamy, że f(x)=f(y), zatem zachodzą także równości f(x)f(z)=f(y)f(z) oraz f(z)f(x)=f(z)f(y). Ponieważ f jest homomorfizmem mamy f(x)f(z)=f(xz), f(y)f(z)=f(yz), f(z)f(x)=f(zx), f(z)f(y)=f(zy). Zatem zachodzą równości f(xz)=f(yz) oraz f(zx)=f(zy), ale to oznacza, że xzKerfyz oraz zxKerfzy, a to mieliśmy pokazać.

Ćwiczenie [Uzupelnij]

Skonstruuj odwzorowanie Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle h: \mathds{Z}_{mod\ 4} \rightarrow \mathds{Z}_{mod\ 2}} tak, aby było homomorfizmem monoidu Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 4}, \cdot, 1)} w monoid Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 2}, \cdot, 1)} .

ROZWIĄZANIE. Połóżmy h(0)=h(2)=0, h(1)=h(3)=1. Sprawdź, że h jest homomorfizmem oraz zauważ, że obrazem elementu neutralnego monoidu Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle \mathds{Z}_{mod\ 4}} przez homomorfizm h jest element neutralny monoidu Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle \mathds{Z}_{mod\ 2}} .

Ćwiczenie [Uzupelnij]

Niech (M,,1M) i (M,*,1M) będą monoidami, a
h:MM
suriekcją. Udowodnij, że

h jest homomorfizmem monoidu (M,,1M) na (M,*,1M) wtw gdy
x,ySh(xy)=h(x)*h(y). ( Z faktów, że h jest homomorfizmem półgrup i suriekcją należy wywnioskować, że h(1M) jest elementem neutralnym w M. )

ROZWIĄZANIE. mMmM:m=h(m)
mh(1M)=h(m)h(1M)=h(m1M)=h(m) oraz
h(1M)m=h(1M)h(m)=h(1Mm)=h(m).

Ćwiczenie [Uzupelnij]

Niech (S,) będzie dowolną półgrupą, a TS dowolnym podzbiorem S. Udowodnij, że relacja ρTrS2 taka,

że x,yS
xρTry(zSxzTyzT)
jest prawą kongruencją,

ROZWIĄZANIE.
Dowodzimy, że ρTr jest relacją równoważności.
x,y,wS

zwrotność
xρTrx(zSxzTxzT)
symetria
Parser nie mógł rozpoznać (błąd składni): {\displaystyle x\rho^r_T y \Leftrightarrow (\forall z \in S\; xz \in T \Longleftrightarrow yz \in T) \Leftrightarrow\\ \Leftrightarrow (\forall z \in S\; yz \in T \Longleftrightarrow xz \in T) \Leftrightarrow y\rho^r_T x \Leftrightarrow }
przechodniość
xρTry,yρTrw(zSxzTyzT),(zSyzTywzT)(zSxzTwzT)xρTrw

Dowodzimy, że ρTr jest prawą kongruencją.
x,yS
xρTry(z,wSxzwTyzwT)(zSxzρTryz).

Ćwiczenie [Uzupelnij]

Określ minimalny zbiór generatorów monoidów:

  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}, +, 0)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}, \cdot, 1)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 5}, \cdot, 1)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\ 4}, +, 0)} .

ROZWIĄZANIE punktu 1. Najmniejszym zbiorem generatorów jest zbiór {1,1}, choć nie jest to jedyny możliwy taki zbiór generatorów: warunek ten spełnia również na przykład zbiór {2,3}. Aby to pokazać, wystarczy dowieść, że da się z niego wygenerować elementy 1 oraz -1 i skorzystać z tego, że {1,1} jest zbiorem generatorów. Mamy 1=(2)+3 oraz 1=(2)+(2)+3.

Ćwiczenie [Uzupelnij]

Dana jest półgrupa {a,b}+ oraz jej podpółgrupa generowana przez dwuelementowy zbiór słów {a,ba}. Opisz słownie elementy tej podpółgrupy.

ROZWIĄZANIE. Jest to zbiór wszystkich (i tylko takich) słów, które nie kończą się literą b oraz w których nie występuje podsłowo bb.

Ćwiczenie [Uzupelnij]

W monoidzie wolnym {a,b}* rozważamy następujące podmonoidy:

  1. M1={ab,ba,a}*,
  1. M2={aa,ba}*,

Które z tych monoidów są wolne? W rozwiązaniu wykorzystaj twierdzenie Uzupelnic tw:b| z wykładu ja-lekcja1-w.

ROZWIĄZANIE punktu 1. Niech S=M1{1}. Po pierwsze, zauważmy, że {ab,ba,a}SS2. Weźmy element abaS. Ma on dwa rozkłady na elementy zbioru SS2, mianowicie: aba=aba=aba, zatem monoid M1 nie jest wolny.

ZADANIA DOMOWE

Ćwiczenie [Uzupelnij]

Sprawdź, które z poniższych struktur są półgrupami, które monoidami, a które ani półgrupami ani monoidami. W przypadku monoidów wskaż element neutralny.

  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}, +)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}, \cdot)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{R}, +)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{R}, \cdot)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\;5}, +)} ,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (\mathds{Z}_{mod\;6}, \cdot)} ,
  1. ({0,1},),
  1. ({0,1},),
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (M_n(\mathds{R}), +)} , gdzie Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle M_n(\mathds{R})} jest

rodziną macierzy o wymiarze n×n o elementach rzeczywistych,

  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (M_n(\mathds{R}), \cdot)} , gdzie Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle M_n(\mathds{R})} jest zdefiniowane jak powyżej,
  1. Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle (n\mathds{Z}, +)} , gdzie Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle n\mathds{Z}=\{mn:\ m \in \mathds{Z}\}} jest zbiorem liczb

całkowitych podzielnych przez Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle n \in \mathds{N}} ,

  1. zbiór B wszystkich drzew binarnych wraz z działaniem +,

zdefiniowanym w następujący sposób:

RYSUNEK NR 1 (plik JA-lekcja1-c-rys1.bmp)

(czyli działanie na drzewach T1 i T2 polega na dodaniu jednego wierzchołka, który jest nowym korzeniem, a jego lewym i prawym dzieckiem są odpowiednio drzewa T1 i T2).

Ćwiczenie [Uzupelnij]

Które z półgrup i monoidów z zadania Uzupelnic zad1| są przemienne?

Ćwiczenie [Uzupelnij]

Niech (S,S) i (T,T) będą półgrupami. Sprawdź, czy półgrupami są także:

  1. (S×T,), gdzie (s1,t1)(s2,t2)=(s1Ss2,t1Tt2),
  1. (S×S,), gdzie =S i (s1,s2)(s3,s4)=(s1s4,s2s3).

Ćwiczenie [Uzupelnij]

Podaj przykłady:

  1. jednoelementowego monoidu,
  1. jednoelementowej półgrupy,
  1. monoidów o 3, 5 i 11 elementach,
  1. nieskończonej przeliczalnej półgrupy,
  1. nieskończonej nieprzeliczalnej półgrupy.

Ćwiczenie [Uzupelnij]

Podaj przykład półgrupy S i kongruencji ρ taki, że |S|= ale Parser nie mógł rozpoznać (nieznana funkcja „\slash”): {\displaystyle S \slash \rho} jest skończona.

Ćwiczenie [Uzupelnij]

Rozważmy monoid Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle S=(\mathds{Z}, +)} i ustalmy Parser nie mógł rozpoznać (nieznana funkcja „\mathds”): {\displaystyle k \in \mathds{N}} . Znajdź monoidy ilorazowe Parser nie mógł rozpoznać (nieznana funkcja „\slash”): {\displaystyle S \slash \rho} , gdzie relacja ρ zdefiniowana jest następująco (najpierw sprawdź, czy ρ jest kongruencją!):

xρy wtw x=ymodk.

Ćwiczenie [Uzupelnij]

Niech (S,) będzie dowolną półgrupą, a TS dowolnym podzbiorem S. Udowodnij, że:

  1. relacja ρTlS2 taka, że x,yS
    xρTly(zSzxTzyT)
    jest lewą kongruencją,
  1. relacja ρTS2 taka, że x,yS
    xρTy(z1,z2Sz1xz2Tz1yz2T)
    jest kongruencją.

Ćwiczenie [Uzupelnij]

W monoidzie wolnym {a,b}* rozważamy następujące podmonoidy:

  1. M3={a,bb,ab}*,
  1. M4={ab2,ab2a,aba,ba}*.

Które z tych monoidów są wolne? W rozwiązaniu wykorzystaj twierdzenie Uzupelnic tw:b| z wykładu ja-lekcja1-w.