|
|
(Nie pokazano 82 wersji utworzonych przez 3 użytkowników) |
Linia 1: |
Linia 1: |
| {theor}{TWIERDZENIE}[section]
| | <quiz type="exclusive"> |
| {rem}{UWAGA}[section]
| |
| {corol}{WNIOSEK}[section]
| |
| {fact}{FAKT}[section]
| |
| {ex}{PRZYKŁAD}[section]
| |
| {defin}{DEFINICJA}[section]
| |
| {lem}{LEMAT}[section]
| |
|
| |
|
| {prf}{DOWÓD}
| |
|
| |
|
| {algorithm}{Algorytm}
| | </quiz> |
|
| |
|
| { automat skończenie stanowy}
| |
|
| |
|
| ; Wprowadzenie
| | ------------------------------ |
| : W rozdziale tym zdefiniujemy automat - drugi, obok gramatyki, model
| |
| obliczeń. Określimy język rozpoznawany przez automat i podamy warunki równoważne na to,
| |
| by język był rozpoznawany.
| |
|
| |
|
| ; Słowa kluczowe
| |
| : automat skończenie stanowy, język rozpoznawany, prawa kongruencja
| |
| automatowa, homomorfizm automatów, monoid przejść automatu.
| |
|
| |
|
| ==AUTOMATY==
| | 1111111111111111111111111111111111111111111 |
|
| |
|
| Wprowadzimy teraz pojęcie automatu. Jak już wspomnieliśmy w wykładzie drugim
| |
| automat to drugi, obok gramatyki, model obliczeń będący przedmiotem badań
| |
| teorii języków i automatów. Model realizujący warunek efektywności analitycznej,
| |
| czyli taki na podstawie którego możliwe jest sformułowanie algorytmu rozstrzygającego
| |
| w skończonej liczbie kroków, czy dowolne słowo należy
| |
| czy też nie należy do języka rozpoznawanego przez ten automat. Lub inaczej możemy
| |
| powiedzieć, że taki automat daje algorytm efektywnie rozstrzygający czy dowolne
| |
| obliczenie sformułowane nad alfabetem automatu jest poprawne.
| |
|
| |
|
| Wprowadzony w tym wykładzie automat, zwany automatem skończenie stanowym, jest jednym
| |
| z najprostszych modeli obliczeń. Jest to model z bardzo istotnie ograniczoną pamięcią.
| |
| Działanie takiego automatu sprowadza się do zmiany stanu pod
| |
| wpływem określonego zewnętrznego sygnału czy impulsu.
| |
|
| |
|
| Pomimo tych ograniczeń urządzenia techniczne oparte o modele takich automatów spotkać
| | 1111111111111111111111111111111111111111111 |
| możemy dość często. Jako przykład służyć mogą automatyczne drzwi, automaty sprzedające
| |
| napoje, winda czy też urządzenia sterujące taśmą produkcyjną.
| |
|
| |
|
| {{cwiczenie|[Uzupelnij]||
| |
|
| |
|
| Drzwi automatycznie otwierane są sterowane automatem, którego działanie opisać
| |
| można, przyjmując następujące oznaczenia. Fakt, że osoba chce wejść do pomieszczenia
| |
| zamykanego przez takie drzwi, identyfikowany przez odpowiedni czujnik, opiszemy symbolem
| |
| <math>WE</math>. Zamiar wyjścia symbolem <math>WY</math>. Symbol <math>WEWY</math> będzie związany z równoczesnym zamiarem
| |
| wejścia jakiejś osoby i wyjścia innej. Wreszcie symbol <math>BRAK</math> oznaczał będzie brak osób, które
| |
| chcą wejść lub wyjść. Zatem zbiór <math>\{ WE, WY,WEWY,BRAK \}</math>, to alfabet nad którym określimy automat
| |
| o <math>2</math> stanach: <math>OTWARTE, ZAMKNIĘTE</math> poniższym grafem.
| |
|
| |
|
| RYSUNEK ja-lekcja3-w-rys6
| | 22222222222222222222222222222222222222222 |
|
| |
|
| ANIMACJA ja-lekcja-w-rys7 działania drzwi
| | ==Ciągi w przestrzeniach metrycznych. Test== |
|
| |
|
| }}
| |
|
| |
|
| Automaty reagują więc na określone sygnały zewnętrzne reprezentowane przez
| | 3333333333333333333333333333333333333333333333333333333333333 |
| litery alfabetu <math>A</math> zmieniając swój
| |
| stan. Jeśli ustalimy stan początkowy automatu oraz dopuszczalne stany
| |
| końcowe, to automat będzie testował dowolne słowo z <math>A^{*} </math> startując ze
| |
| stanu początkowego. Jeśli rezultatem finalnym działania automatu (obliczenia)
| |
| będzie stan końcowy, to słowo będzie
| |
| rozpoznawane przez automat, a obliczenie określone takim słowem poprawne.
| |
|
| |
|
| Podamy teraz definicję automatu. Niech <math>A</math> oznacza dowolny alfabet.
| | ==Norma. Iloczyn skalarny. Test== |
| Od tego momentu wykładu zakładamy, że alfabet jest zbiorem skończonym.
| |
|
| |
|
| '''Automatem''' nad alfabetem <math>A </math> nazywamy system <math>\mathcal{A} =(S,f)</math>,
| |
| w którym
| |
|
| |
|
| <math>S</math> - jest dowolnym skończonym zbiorem zwanym zbiorem stanów,
| | 444444444444444444444444444444444444444444444444444444444444444 |
|
| |
|
| <math>f: S \times A \rightarrow S</math> - jest funkcją przejść.
| | ==Ciągi i szeregi funkcyjne. Szereg Taylora. Test== |
|
| |
|
| Automat będąc w stanie <math>s_{i} </math> po przeczytaniu litery <math>a </math> zmienia
| | <quiz> |
| stan na <math>s_{j} </math> zgodnie z funkcją przejścia <math>f(s_{i},a)=s_{j} </math>.
| | Dany jest ciąg funkcyjny <math>\{f_n\}</math> gdzie |
| | <math> |
| | f_n(x)= |
| | \left\{ |
| | \begin{array} {lll} |
| | 1 & \text{dla} & x\in[n,n+1]\\ |
| | 0 & \text{dla} & x\in \mathbb{R}\setminus[n,n+1] |
| | \end{array} |
| | \right</math> |
| | dla <math>n\in\mathbb{N}</math> |
| | Ciąg ten jest |
| | <rightoption>zbieżny punktowo do <math>f(x)\equiv 0</math></rightoption> |
| | <wrongoption>zbieżny jednostajnie do <math>f(x)\equiv 0</math></wrongoption> |
| | <wrongoption>zbieżny punktowo do funkcji <math>f(x)= |
| | \left\{ |
| | \begin{array} {lll} |
| | 1 & \text{dla} & x\geq 1\\ |
| | 0 & \text{dla} & x<0 |
| | \end{array} |
| | \right</math></wrongoption> |
| | </quiz> |
|
| |
|
| Funkcję przejść rozszerzamy na cały wolny monoid <math>A^{*} </math> do postaci <center><math>f: S \times A^* \rightarrow S</math></center> przyjmując:
| | tak, nie, nie |
|
| |
|
| dla każdego <math> s \in S\;\;\;f(s,1) = s </math> oraz
| | <quiz> |
| | Dany jest ciąg funkcyjny <math>\{f_n\}</math> gdzie |
|
| |
|
| dla każdego <math>s \in S,\;\;a \in A</math> i dla dowolnego <math>w \in A^*</math>
| | <center><math>f_n(x)= |
| | | \left\{ |
| <center><math> | | \begin{array} {lll} |
| f(s,wa) = f(f(s,w),a).
| | \frac{1-n^{-x}}{1+n^{-x}} & \text{dla} & x>0\\ |
| </math></center>
| | \\ |
| | | \frac{2-n^{x}}{2+n^{x}} & \text{dla} & x<0\\ |
| Działanie automatu pokazane jest na rysunku.
| | \\ |
| | | 0 & \text{dla} & x=0\\ |
| rys3.1
| | \end{array} |
| | | \right. |
| Zdefiniowany powyżej automat <math>\mathcal{A} </math> nazywamy '''skończonym''' lub
| | \quad</math> dla <math>\ n=1,2,\ldots |
| '''skończenie stanowym''' ze względu na założenie skończoności zbioru stanów <math>S</math>.<br>
| |
| | |
| {{cwiczenie|[Uzupelnij]||
| |
| | |
| Niech <math>A=\left\{ a,b\right\} </math> będzie alfabetem, a <math>\mathcal{A}=(S,f) </math>
| |
| automatem takim, że
| |
| | |
| <math>S=\left\{ s_{0},s_{1},s_{2}\right\} </math>, a funkcja przejść zadana jest przy
| |
| pomocy tabelki
| |
| | |
| {
| |
| | |
| {| border=1 | |
| |+ <span style="font-variant:small-caps">Uzupelnij tytul</span>
| |
| |-
| |
| |
| |
| <math>f </math> ||
| |
| <math>s_{0} </math> ||
| |
| <math>s_{1} </math> ||
| |
| <math>s_{2} </math>
| |
| |-
| |
| |
| |
| | |
| <math>a </math> ||
| |
| <math>s_{1} </math> ||
| |
| <math>s_{2} </math> ||
| |
| <math>s_{2} </math>
| |
| |-
| |
| |
| |
| <math>b </math> ||
| |
| <math>s_{0} </math> ||
| |
| <math>s_{0} </math> ||
| |
| <math>s_{0} </math>
| |
| |-
| |
| |
| |
| | |
| |}
| |
| | |
| }
| |
| | |
| Automat możemy również jednoznacznie określić przy pomocy grafu.<br>
| |
| | |
| rys3.2
| |
| | |
| }}
| |
| | |
| Podamy teraz bardzo interesujący przykład zastosowania automatów skończonych.
| |
| Przedstawimy mianowicie wykorzystanie tak zwanych
| |
| automatów synchronizujących w przemyśle. Automat synchronizujący nad alfabetem <math>A</math> to
| |
| automat <math>(S,f)</math> o
| |
| następującej własności: istnieje stan <math>t \in S</math> oraz słowo <math>w \in
| |
| A^*</math> takie, że dla każdego stanu <math>s</math> tego automatu <math> f(s, w)=t</math>. Istnieje więc pewne uniwersalne
| |
| słowo <math>w</math>, pod wpływem którego wszystkie stany przechodzą w jeden,
| |
| ustalony stan automatu <math>t \in S</math>. Mówimy, że następuje wtedy synchronizacja
| |
| wszystkich stanów automatu.
| |
| | |
| Poniżej prezentujemy przykład zaczerpnięty z pracy Ananicheva i
| |
| Volkova (D. S. Ananichev, M. V. Volkov, Synchronizing Monotonic
| |
| Automata, ''Lecture Notes in Computer Science'', 2710(2003),
| |
| 111--121.), ukazujący ideę użycia automatów synchronizujących w tej
| |
| dziedzinie.
| |
| | |
| {{cwiczenie|[Uzupelnij]|| | |
| | |
| RYSUNEK pojedynczego detalu - ja-lekcja3-w-rys-s1
| |
| | |
| Załóżmy, że pewna fabryka produkuje detale w kształcie kwadratu z
| |
| "wypustką" na jednym boku
| |
| (patrz rys. [[##ja-lekcja3-w-rys-s1|Uzupelnic ja-lekcja3-w-rys-s1|]]).
| |
| Po wyprodukowaniu detale należy umieścić w opakowaniach w ten sposób,
| |
| by wszystkie były w tej samej orientacji - mianowicie "wypustką" w
| |
| lewo.
| |
| | |
| Załóżmy ponadto dla uproszczenia, że detale mogą przyjmować jedną z
| |
| czterech orientacji (rys. [[##ja-lekcja3-w-rys-s2|Uzupelnic ja-lekcja3-w-rys-s2|]]): "wypustką" w
| |
| górę, w dół, w lewo lub w prawo.
| |
| | |
| RYSUNEK ja-lekcja3-w-rys-s2
| |
| | |
| Należy zatem skonstruować takie urządzenie (orienter), które będzie
| |
| ustawiało wszystkie detale w żądanej orientacji. Oczywiście istnieje
| |
| wiele metod rozwiązania tego problemu, ale z praktycznego punktu
| |
| widzenia potrzebne jest rozwiązanie najprostsze i najtańsze. Jednym
| |
| z takich sposobów jest umieszczanie detali na pasie transmisyjnym z
| |
| zamontowaną wzdłuż niego pewną ilością przeszkód dwojakiego rodzaju:
| |
| niskich (''low'') oraz wysokich (''HIGH''). Wysoka
| |
| przeszkoda ma tę własność, że każdy detal, który ją napotka zostanie
| |
| obrócony o 90 stopni w prawo (zakładamy, że elementy jadą od lewej
| |
| do prawej strony). Przeszkoda niska obróci o 90 stopni w prawo tylko
| |
| te detale, które są ułożone "wypustką" w dół. Na rys.
| |
| [[##ja-lekcja3-w-rys-s3|Uzupelnic ja-lekcja3-w-rys-s3|]] przedstawione zostały przejścia pomiędzy
| |
| orientacjami detali w zależności od napotkania odpowiedniej
| |
| przeszkody.
| |
| | |
| RYSUNEK ja-lekcja3-w-rys-s3
| |
| | |
| Można zauważyć, że automat z rysunku [[##ja-lekcja3-w-rys-s3|Uzupelnic ja-lekcja3-w-rys-s3|]] jest
| |
| automatem synchronizującym. Słowem, które go synchronizuje jest
| |
| następująca sekwencja przeszkód:
| |
| | |
| low-HIGH-HIGH-HIGH-low-HIGH-HIGH-HIGH-low.
| |
| | |
| Niezależnie od tego, w jakiej orientacji początkowej znajduje się
| |
| detal, po przejściu przez powyższą sekwencję przeszkód zawsze będzie
| |
| ułożony "wypustką" w lewo. Sytuację przedstawia poniższa animacja:
| |
| | |
| ANIMACJA ja-lekcja3-w-anim-s4
| |
| | |
| }}
| |
| | |
| Rozszerzymy teraz wprowadzone pojęcie automatu w ten sposób by uzyskać możliwość
| |
| efektywnego rozstrzygania czy dowolne słowo utworzone nad alfabetem <math>A</math>
| |
| reprezentuje poprawne obliczenie,
| |
| czyli spełnia kryteria określone przez rozszerzony automat.
| |
| | |
| '''Język''' <math>\; L~\subset A^* \;</math> jest '''rozpoznawany''' ('''akceptowany''')
| |
| wtedy i tylko wtedy, gdy istnieje automat skończony <math>\mathcal{A} = (S,f) , \;</math> stan <math>\; s_0 \in S \;</math> oraz zbiór <math>\; T \subset S \;</math> takie, że
| |
| <center><math>L = \{ w \in A^* \; : \; f(s_0,w) \in T \}. </math></center> Stan <math>s_0 \;</math> nazywamy '''stanem początkowym''',
| |
| a <math>\; T \;</math> '''zbiorem stanów końcowych''' automatu <math>\mathcal{A} </math>.
| |
| | |
| Rozszerzony w powyższy sposób automat, poprzez dodanie stanu początkowgo i zbioru stanów końcowych, w dalszym ciągu
| |
| nazywamy automatem i oznaczamy jako piątkę <math>\mathcal{A} = (S,A,f,s_0,T)</math> lub czwórkę <math>\mathcal{A} =(S,f,s_0,T)</math>, jeśli
| |
| wiadomo, nad jakim alfabetem rozważamy działanie automatu.
| |
| | |
| Fakt, że język <math>\; L \;</math> jest rozpoznawany przez automat <math>\mathcal{A}, </math> zapisujemy jako
| |
| | |
| <center><math>L=L(\mathcal{A}). </math></center>
| |
| | |
| Rodzinę wszystkich języków rozpoznawalnych nad alfabetem <math>A</math>
| |
| oznaczamy przez <math>\mathcal{REC}(\mathcal{A}^{*}) </math>.
| |
| | |
| Podobnie jak w przypadku gramatyk nie ma jednoznacznej odpowiedniości pomiędzy językami
| |
| rozpoznawalnymi a automatami. Wprowadza się więc relację, która identyfikuje
| |
| automaty rozpoznające ten sam język.
| |
| | |
| Automaty <math>\mathcal{A}_{1} </math> i <math>\mathcal{A}_{2} </math> są '''równoważne''',
| |
| jeśli rozpoznają ten sam język, czyli
| |
| | |
| <center><math>L(\mathcal{A}_{1})=L(\mathcal{A}_{2}).</math></center>
| |
| | |
| W dalszych rozważaniach języków rozpoznawanych ograniczymy się do automatów
| |
| <math>\mathcal{A} = (S,A,f,s_0,T)</math>,
| |
| które spełniają warunek <math>f(s_0,A^*) = S.</math>
| |
| Nie zawęża to naszych rozważań. Jeśli bowiem język <math>\; L \;</math> jest rozpoznawany
| |
| przez pewien automat <math>\mathcal{A} = (S,A,f,s_0,T)</math>, to jest również
| |
| rozpoznawany przez automat
| |
| | |
| <center><math>\mathcal{B}=\left( f(s_{0},A^{*}),A,f|_{f(s_{0},A^{*})\times A^{*}},s_{0},T\cap f(s_{0},A^{*})\right) ,</math></center>
| |
| | |
| który spełnia powyższy warunek. Zauważmy, że przyjmując to założenie upraszczamy strukturę
| |
| automatu. Z punktu widzenia grafu automatu można powiedzieć, że nie występują w nim
| |
| wierzchołki (stany) nieosiagalne ze z <math>s_0</math>. Poniżej przedstawiamy algorytm usuwający
| |
| z automatu stany nieosiągalne ze stanu początkowego.
| |
| | |
| {{UsuńStanyNieosiągalne} - usuwa z automatu
| |
| <math>\mathcal{A}</math> stany nieosiągalne}
| |
| [1]
| |
| Wejście: <math>\mathcal{A}=(S, A, f, s_0, T)</math> - automat
| |
| | |
| Wyjście: <math>\mathcal{A}'=(S', A, f', s_0, T')</math> - automat
| |
| równoważny automatowi <math>\mathcal{A}</math> bez stanów nieosiągalnych.
| |
| | |
| '''procedure''' {Oznacz}<math>(x \in S)</math>
| |
| | |
| {<math>p \in S:\ \exists a \in A\ f(x,a)=p \wedge
| |
| \mbox{\textbf{zaznaczone}}[p]==0</math>}
| |
| | |
| '''zaznaczone'''<math>[p] \leftarrow 1</math>;
| |
| | |
| {Oznacz}<math>(p)</math>;
| |
| | |
| '''end procedure'''
| |
| | |
| {<math>p \in S</math>}
| |
| | |
| '''zaznaczone'''<math>[p] \leftarrow 0</math>;
| |
| | |
| '''zaznaczone'''<math>[s_0] \leftarrow 1</math>;
| |
| | |
| {Oznacz}<math>(s_0)</math>;
| |
| | |
| <math>S' = \{s \in S:\ \mbox{\textbf{zaznaczone}}[s]==1\}</math>;
| |
| | |
| <math>T' = T \cap S'</math>;
| |
| | |
| jeśli istnieje przynajmniej jeden stan, dla którego funkcja
| |
| przejścia <math>f</math> nie jest określona dla jakiejś litery <math>a \in A</math>, dodaj
| |
| stan <math>s_f</math> do <math>S'</math> i dla każdego stanu <math>s</math> i litery <math>a</math> jeśli <math>f(s,
| |
| a)</math> jest nieokreślone, to zdefiniuj <math>f(s,a)=s_f</math>;
| |
| | |
| <math>f' \leftarrow f</math>;
| |
| | |
| <math>\mathcal{A}'=(S', A, f', s_0, T')</math>;
| |
| | |
| Powyższy algorytm, dla ustalonego alfabetu <math>A</math>, posiada złożoność <math>O(|A|
| |
| \cdot |S|)</math>, czyli liniową względem liczby stanów.
| |
| | |
| {{cwiczenie|[Uzupelnij]||
| |
| | |
| Jeśli w przykładzie [[##ex.3.1.1|Uzupelnic ex.3.1.1|]] przyjmiemy stan <math>s_{0} </math> jako stan
| |
| początkowy, <math>T=\left\{ s_{2}\right\} </math> jako zbiór stanów końcowych, to
| |
| automat <math>\mathcal{A} = (S,A,f,s_0,T)</math> rozpoznaje język
| |
| | |
| <center><math>L(\mathcal{A})= A^{*}\left\{ a^2\right\}</math></center>
| |
| | |
| złożony ze słów, kończących się na <math>a^2 </math>.<br>
| |
| Słowo <math>aba</math> nie jest akceptowane.
| |
| rys3.3<br>
| |
| Słowo <math>abaa</math> jest akceptowane.
| |
| rys3.4
| |
| }}
| |
| | |
| Każdy automat <math>\mathcal{A} = (S,A,f,s_0,T)</math> wyznacza w wolnym monoidzie <math>A^*</math>
| |
| prawą kongruencję, nazywaną '''prawą kongruencją automatową''', określoną w następujący
| |
| sposób:<br>
| |
| <math>\forall u,v \in A^*</math>
| |
| | |
| <center><math>u\sim _{\mathcal{A}}v\Longleftrightarrow f(s_{0},u)=f(s_{0},v).</math></center>
| |
| | |
| Dla automatu skończonego ( o skończonym zbiorze stanów), a takie rozważamy,
| |
| relacja <math>\sim _{A} </math> ma
| |
| skończony indeks, czyli skończoną liczbę klas równoważności.
| |
| | |
| {{cwiczenie|[Uzupelnij]||
| |
| | |
| Automat z przykładu [[##ex.3.1.1|Uzupelnic ex.3.1.1|]] ze stanem <math>s_{0} </math> jako początkowym wyznacza
| |
| relację równoważności o trzech klasach:
| |
| | |
| <math>[1]=A^*\left\{ b \right\}\cup \left\{ 1\right\}[a]=A^*\left\{ ba\right\} \cup \left\{ a\right\} [a^2]=A^*\left\{ a^2 \right\} </math>
| |
| | |
| }}
| |
| | |
| Na odwrót, każda prawa kongruencja <math>\;\rho \subset (A^*)^2\;</math> wyznacza automat, zwany
| |
| '''ilorazowym''', w następujący sposób:
| |
| | |
| <center><math>\mathcal{A}_{\rho }=(A^{*}/_{\rho },f^{*}),\; \; gdzie\; \; f^{*}([w]_{\rho },u)=[wu]_{\rho }.</math></center>
| |
| | |
| <math>\mathcal{A} </math></center>_<math> jest automatem ze stanem początkowym </math>[1]_<math>. </math>{A}_{ } <math> jest automatem skończonym
| |
| wtedy i~tylko wtedy, gdy relacja ma skończony indeks.\\
| |
| Z definicji prawej kongruencji wynika, że funkcja przejść </math>f^*<math> jest określona poprawnie.
| |
| | |
| \begindefin
| |
| | |
| Niech {A} <nowiki>=</nowiki>(S,f)<math> i </math> {B} <nowiki>=</nowiki>(T,g)<math> będą dowolnymi automatami.
| |
| Odwzorowanie </math> :S T <math>
| |
| nazywamy \textbf{homomorfizmem automatów}\index{homomorfizm automatów}
| |
| wtedy i~tylko
| |
| wte\-dy, jeśli </math></center> s S, w A^*(f(s,w)) <nowiki>=</nowiki> g((s),w).<center><math> Homomorfizm
| |
| automatów oznaczamy </math> :{A} {B} <math>.
| |
| | |
| \enddefin
| |
| | |
| \begintheor
| |
| | |
| Prawdziwe są następujące fakty:
| |
| | |
| # Dla dowolnej prawej kongruencji </math> (A^*)^2 </center> _{{A}_{ }}<nowiki>=</nowiki> ,<center><math>
| |
| | |
| # Dowolny automat </math>{A} <nowiki>=</nowiki> (S,A,f,s_0,T)<math> jest izomorficzny z automatem </math>{A}_{ _{{A}}} <math>,
| |
| | |
| # Dla dowolnych automatów </math>{A}_1<nowiki>=</nowiki> (S_1,A,f_1,s^1_0,T_1)<math>
| |
| i </math>{A}_2 <nowiki>=</nowiki> (S_2,A,f_2,s^2_0,T_2)<math> prawdziwa jest równoważność
| |
| | |
| {\par\centering </math> _{{A}_1} _{{A}_2} <math> | |
| istnieje epimorfizm </math> :{A}_1 {A}_2 <math> taki,
| |
| że </math>(s^1_0) <nowiki>=</nowiki> s^2_0<math>. \par}
| |
| | |
| \endtheor
| |
| | |
| \beginprf \hfill
| |
| | |
| # Identyczność relacji wynika wprost z~defi\-ni\-cji automatu ilorazowego </math>{A} <center><math>_\rho</math> oraz prawej kongruencji <math>\sim _{A_{\rho }} </math>.
| |
| | |
| # Rozważmy automat <math>\mathcal{A} = (S,A,f,s_0,T)</math> i odwzorowanie
| |
| | |
| <center><math>\psi :\mathcal{A}\longrightarrow \mathcal{A}_{\sim _{\mathcal{A}}}, </math></center>
| |
| | |
| gdzie
| |
| <math>\forall s\in S </math>
| |
| | |
| <center><math>\psi (s)=[w]_{\sim _{\mathcal{A}}} \;\;\text{dla}\;\; w\in A^{*} \;\;\text{i} \;\; f(s_{0},w)=s. </math></center>
| |
| | |
| Istnienie słowa <math>w</math> wynika z faktu, że <math>s_0</math> jest stanem początkowym, natomiast z definicji relacji <math>\sim _{\mathcal{A}}</math> wynika, że odwzorowanie <math>\psi</math> jest poprawnie określone.<br>
| |
| Odwzorowanie <math>\psi</math> ma być homomorfizmem, czyli dla każdego stanu <math>s\in S </math> i dowolnego
| |
| słowa <math>w\in A^{*} </math> spełniać warunek
| |
| | |
| <center><math>\psi (f(s,w))=f^{*}(\psi (s),w). </math></center>
| |
| | |
| Warunek ten wynika z następujących równości
| |
| | |
| <center><math>\begin{array} {c}
| |
| f^{*}(\psi (s),w)=f^{*}([u]_{\sim_{\mathcal{A}}},w)=[uw]_{\sim _{\mathcal{A}}}=\\
| |
| =\left\{ v\in A^{*}:f(s_{0},uw)=f(s_{0},v)\right\} = \\
| |
| \left\{ v\in A^{*}:f(f(s_{0},u),w)=f(s_{0},v)\right\} = \\
| |
| =\left\{ v\in A^{*}:f(s,w)=f(s_{0},v)\right\} =\psi (f(s,w))
| |
| \end{array} </math></center> | |
| | |
| gdzie <math>f(s_0,u)=s</math>.
| |
| | |
| Z prostych obserwacji wynika, że <math>\psi </math> jest suriekcją i iniekcją.
| |
| | |
| # Dowód implikacji "<math>\Rightarrow</math>" <br>
| |
| Załóżmy, że <math>\: \sim _{\mathcal{A}_1}\: \subseteq \: \sim _{\mathcal{A}_2 } </math>. Niech
| |
| | |
| <center><math>\varphi :\mathcal{A}_1\longrightarrow \mathcal{A}_2 </math></center>
| |
| | |
| będzie odwzorowaniem takim, że<br>
| |
| <math>\forall s\in S_1 </math> <center><math> \varphi (s) = f_2(s^2_0,w),\;\;\text{gdzie}\;\; w\in A^{*}\;\; i \;\; f_1(s^1_0,w) = s.</math></center>
| |
| Stąd, że <math>s^1_0 </math> jest stanem początkowym automatu <math>\mathcal{A}_1, </math>
| |
| wynika, że istnieje słowo <math>\; w \in A^* \;</math> potrzebne do określenia epimorfizmu <math> \varphi</math>.<br>
| |
| Z założenia <math>\: \sim _{\mathcal{A}_1}\: \subseteq \: \sim _{\mathcal{A}_2} </math>
| |
| wynika, że <math>\varphi \;</math> jest poprawnie zdefiniowaną funkcją. <br>
| |
| Uzasadnienie faktu, że <math>\varphi</math> jest
| |
| homomorfizmem, jest analogiczne jak w punkcie [[##tb|Uzupelnic tb|]] dla <math>\psi</math>.<br>
| |
| <math>\varphi</math> jest suriekcją, gdyż <math>\; s^2_0 \; </math>
| |
| jest stanem początkowym automatu <math>\mathcal{A}_2 </math>.<br>
| |
| <math>\; \varphi (s^1_0) = s^2_0, \;</math> ponieważ <math>\; f_1(s^1_0,1) = s^1_0</math>. <br>
| |
| Dowód implikacji "<math>\Leftarrow</math>" <br>
| |
| Niech <math>\varphi :\mathcal{A}_1\longrightarrow \mathcal{A}_2 </math> będzie epimorfizmem
| |
| takim, że <math>\; \varphi (s^1_0) = s^2_0 \;</math>.<br>
| |
| Wówczas prawdziwy jest następujący ciąg wnioskowań.
| |
| | |
| <center><math>\begin{array} {c}
| |
| u\sim _{\mathcal{A}_1}v \Leftrightarrow f_1(s^1_0,u)=f_1(s^1_0,v)
| |
| \Rightarrow\\
| |
| \Rightarrow \varphi (f_1(s^1_{0},u))=\varphi (f_1(s^1_{0},v))\Rightarrow f_2(s^2_{0},u)=f_2(s^2_{0}v)\Leftrightarrow
| |
| u\sim _{\mathcal{A}_2}v
| |
| \end{array}
| |
| </math></center> | | </math></center> |
|
| |
|
| To oznacza, że <math>\sim _{\mathcal{A}_1}\subseteq \sim _{\mathcal{A}_2} </math>.
| | Ten ciąg funkcyjny jest |
| | | <wrongoption>zbieżny jednostajnie</wrongoption> |
| <math>\diamondsuit</math>
| | <rightoption>zbieżny punktowo ale nie jednostajnie</rightoption> |
| | | <wrongoption>rozbieżny</wrongoption> |
| Symbolem <math>S^S</math> oznaczamy rodzinę wszystkich funkcji określonych na zbiorze <math>S</math> i przyjmujących
| | </quiz> |
| wartości w <math>S</math>. Łatwo zauważyć, iż rodzina ta wraz ze składaniem odwzorowań jest
| |
| monoidem <math>(S^S,\circ)</math> .
| |
| | |
| Niech <math>\mathcal{A} = (S,f)</math> będzie dowolnym automatem.
| |
| '''Reprezentacją automatu''' <math>\mathcal{A} </math> nazywamy funkcję
| |
| <math>\tau _{\mathcal{A}}:A^{*}\longrightarrow S^{S} </math> | |
| określoną dla dowolnych <math> w \in A^*</math> i <math>\; s \in S \;</math> równością
| |
| | |
| <center><math>\tau _{\mathcal{A}}(w)(s)=f(s,w). </math></center>
| |
| | |
| Reprezentacja automatu jest
| |
| homomorfizmem monoidu <math>A^*</math> w monoid <math>S^S</math>, bowiem dla dowolnych <math> v,w \in A^* </math>
| |
| spełnione są warunki
| |
| | |
| <center><math>\begin{array} {c}
| |
| \tau _{\mathcal{A}}(vw)=\tau _{\mathcal{A}}(w)\circ \tau _{\mathcal{A}}(v),\\
| |
| \tau _{\mathcal{A}}(1)=id_{S}.
| |
| \end{array} </math></center>
| |
| | |
| Niech <math>\mathcal{A} </math></center><nowiki>=</nowiki> (S,f)<math> będzie dowolnym automatem. \textbf{Monoidem przejść}\index{monoid przejść}
| |
| automatu </math>{A} <math> nazywamy monoid
| |
| | |
| </math></center>{M}({A})<nowiki>=</nowiki> _{{A}}(A^{*}) S^{S}.<center><math>
| |
| | |
| \enddefin
| |
| | |
| Następujace wnioski są konsekwencjami rozważań przeprowadzonych powyżej.
| |
| \begincorol \vspace{-5truemm}\\
| |
| | |
| # Monoid przejść automatu </math>{A} <math> jest podmonoidem monoidu </math> S^S <math> i zbiór
| |
| </math> _{{A}}(a):a A <math> jest zbiorem generatorów tego monoidu.
| |
| | |
| </math></center>{M}({A})<nowiki>=</nowiki> _{{A}}(a):a A ^{*} <center><math>
| |
| | |
| Wynika to z faktu, że </math> _{{A}} <math> jest epimorfizmem i z twierdzenia~[[##tw:z|Uzupelnic tw:z|]].
| |
| | |
| # Monoid przejść automatu skończonego jest skończony.
| |
| | |
| # Monoid przejść automatu </math>{A} <math> jest izomorficzny z monoidem ilorazowym </math>A^{*}/_{Ker_{ _{{A}}}} <math>.
| |
| Jest to wniosek z twierdzenia o rozkładzie epimorfizmu, które w tym przypadku ilustruje poniższy diagram.
| |
| | |
| rys3.5
| |
| \endcorol
| |
| | |
| {{cwiczenie|[Uzupelnij]||
| |
| | |
| Określimy monoid przejść dla automatu z przykładu [[##ex.3.1.1|Uzupelnic ex.3.1.1|]]. Wypisujemy kolejne
| |
| funkcje </math> _{{A}}(w) <math> dla </math>w a,b^{*} <math>. Zauważmy,
| |
| że ze względu na występujące w tabelce powtórzenia będace wynikiem równości,
| |
| np. </math> _{{A}}(b^2)<nowiki>=</nowiki> _{{A}}(b), <math> nie ma potrzeby
| |
| określać funkcji </math> _{{A}}(b^{n}) <math> dla </math>n 3 <math>. Podobna
| |
| obserwacja ma miejsce w innych przypadkach, co sprawia, że tabelka zawiera skończoną
| |
| liczbę różnych funkcji.
| |
| | |
| \vspace{0.3cm}
| |
| {\centering \begintabular {|c||c|c|c|}
| |
| \hline
| |
| &
| |
| </math>s_{0} <math>& | |
| </math>s_{1} <math>&
| |
| </math>s_{2} <math>\\
| |
| \hline
| |
| \hline
| |
| </math> _{{A}}(1) <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{1} <math>& | |
| </math>s_{2} <math>\\ | |
| \hline
| |
| </math> _{{A}}(a) <math>&
| |
| </math>s_{1} <math>&
| |
| </math>s_{2} <math>&
| |
| </math>s_{2} <math>\\
| |
| \hline
| |
| </math> _{{A}}(b) <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{0} <math>\\
| |
| \hline
| |
| </math> _{{A}}(a^{2}) <math>&
| |
| </math>s_{2} <math>&
| |
| </math>s_{2} <math>&
| |
| </math>s_{2} <math>\\
| |
| \hline
| |
| </math> _{{A}}(ab) <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{2} <math>\\
| |
| \hline
| |
| </math> _{{A}}(ba) <math>&
| |
| </math>s_{1} <math>&
| |
| </math>s_{1} <math>&
| |
| </math>s_{1} <math> \\
| |
| \hline
| |
| </math> _{{A}}(b^{2}) <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{0} <math>&
| |
| </math>s_{0} <math>\\
| |
| \hline
| |
| </math> _{{A}}(aba) <math>&
| |
| </math>s_{1} <math>&
| |
| </math>s_{1} <math>&
| |
| </math>s_{2} <math>\\
| |
| \hline
| |
| ...&
| |
| ...&
| |
| ...&
| |
| ...\\
| |
| \hline
| |
| \endtabular \par}
| |
| \vspace{0.3cm}
| |
| | |
| </math></center>M({A})<nowiki>=</nowiki> _{{A}}(1), _{{A}}(a), _{{A}}(b),
| |
| _{{A}}(a^2), _{{A}}(b), _{{A}}(ba), _{{A}}(aba)
| |
| .<center><math>
| |
| | |
| }}
| |
| | |
| Poniżej zamieszczamy algorytm obliczający monoid przejść dla automatu skończenie stanowego.
| |
| | |
| \beginalgorithm
| |
| \caption{\textsc{WyznaczMonoidPrzejść} - wyznacza monoid przejść dla
| |
| automatu}
| |
| \beginalgorithmic [1]
| |
| \STATE Wejście: </math>{A}<nowiki>=</nowiki>(S, A, f, s_0, T)<math> - automat
| |
| | |
| \STATE Wyjście: </math>M<math> - monoid przejść dla </math>{A}<math>
| |
| | |
| \STATE </math>L <math>; </math> L<math> jest listą
| |
| | |
| \STATE </math>M <math>;
| |
| | |
| \FOR{</math>a A 1<math>}
| |
| | |
| \STATE \textbf{insert}</math>(L, _{{A}}(a))<math>; gdzie
| |
| </math>_{{A}}(a)(s)<nowiki>=</nowiki>f(s, a)<math> dla każdego </math>s S<math>
| |
| | |
| \ENDFOR
| |
| | |
| \WHILE{</math>L <nowiki>=</nowiki> <math>;}
| |
| | |
| \STATE </math>_{{A}}(w) '''first'''(L)<math>;
| |
| | |
| \STATE </math>M M _{{A}}(w)<math>;
| |
| | |
| \FOR{</math>a A<math>}
| |
| | |
| \STATE </math> s S'_{{A}}(wa)(s)<nowiki>=</nowiki>f(_{{A}}(w)(s),a)<math>;
| |
| | |
| \IF{</math>'_{{A}}(wa) L M<math>}
| |
| | |
| \STATE \textbf{insert}</math>(L, '_{{A}}(wa))<math>;
| |
| | |
| \ENDIF
| |
| | |
| \ENDFOR
| |
| | |
| \ENDWHILE
| |
| | |
| \RETURN </math>M<math>;
| |
| | |
| \endalgorithmic
| |
| \endalgorithm
| |
| | |
| \eject
| |
| | |
| Procedura \textbf{insert}</math>(L, x)<math> wkłada na koniec listy </math>L<math> element
| |
| </math>x<math>. Funkcja \textbf{first}</math>(L)<math> wyjmuje pierwszy element znajdujący
| |
| się na liście </math>L<math> i zwraca go. Algorytm działa w następujący sposób:
| |
| najpierw na listę </math>L<math> wkładane są elementy monoidu przejść
| |
| </math>_{{A}}(a)<math> dla każdej litery </math>a A 1<math>. Te
| |
| funkcje można obliczyć bezpośrednio z tabelki reprezentującej
| |
| funkcję przejścia automatu </math>{A}<math>. Następnie z listy po kolei
| |
| ściągane są poszczególne funkcje </math>_{{A}}(w)<math>. Każda z
| |
| nich dodawana jest do zbioru </math>M<math>, a następnie algorytm sprawdza dla
| |
| każdej litery </math>a A<math>, czy funkcja </math>_{{A}}(wa)<math>
| |
| istnieje już na liście </math>L<math> lub w zbiorze </math>M<math>. Jeśli nie, to funkcja
| |
| ta dodawana jest do listy. Procedura powyższa trwa do czasu, gdy
| |
| lista </math>L<math> zostanie pusta. Wtedy wszystkie elementy monoidu przejść
| |
| znajdą się w zbiorze </math>M<math>.
| |
| | |
| Przeanalizujmy działanie algorytmu dla automatu z przykładu
| |
| [[##ex.3.1.1|Uzupelnic ex.3.1.1|]].
| |
| | |
| Na początku na listę </math>L<math> włożone zostaną funkcje
| |
| </math>_{{A}}(1)<math>, </math>_{{A}}(a)<math> oraz
| |
| </math>_{{A}}(b)<math>. Z listy zdejmujemy funkcję
| |
| </math>_{{A}}(1)<math> i dodajemy ją do zbioru </math>M<math>. Ponieważ
| |
| </math> a A_{{A}}(1a)<nowiki>=</nowiki>_{{A}}(a)<math>, a
| |
| funkcje </math>_{{A}}(a)<math> oraz </math>_{{A}}(b)<math>
| |
| znajdują się już na liście, zatem nie dodajemy ich do </math>L<math>. Bierzemy
| |
| kolejny element listy, </math>_{{A}}(a)<math>, dodajemy go do </math>M<math> i
| |
| obliczamy funkcje </math>_{{A}}(aa)<math> oraz
| |
| </math>_{{A}}(ab)<math>. Ponieważ </math>_{{A}}(aa)<math> nie jest
| |
| tożsama z żadną funkcją ze zbioru </math>L M<math>, dodajemy ją do listy.
| |
| Funkcja </math>_{{A}}(ab)<math> również nie jest równa żadnej z
| |
| funkcji należących do zbioru </math>L M<math>, zatem wstawiamy ją na
| |
| koniec listy. Na liście </math>L<math> mamy zatem teraz następujące elementy:
| |
| </math>_{{A}}(b)<math>, </math>_{{A}}(a^2)<math> oraz
| |
| </math>_{{A}}(ab)<math>. Zdejmujemy z listy funkcję
| |
| </math>_{{A}}(b)<math>, dodajemy ją do </math>M<math> i obliczamy
| |
| </math>_{{A}}(ba)<math> oraz </math>_{{A}}(bb)<math>. Pierwsza z
| |
| tych funkcji jest nowa, tzn. nie jest tożsama z żadną funkcją ze
| |
| zbioru </math>L M<math> więc dodajemy ją na koniec listy. Druga z nich
| |
| równa jest funkcji </math>_{{A}}(b)<math>, więc nie dodajemy jej do
| |
| listy. W tym momencie zbiór </math>M<math> zawiera następujące elementy:
| |
| </math>_{{A}}(1)<math>, </math>_{{A}}(a)<math>,
| |
| </math>_{{A}}(b)<math>, natomiast lista zawiera elementy
| |
| </math>_{{A}}(a^2)<math>, </math>_{{A}}(ab)<math>,
| |
| </math>_{{A}}(ba)<math>. Zdejmujemy z </math>L<math> funkcję
| |
| </math>_{{A}}(a^2)<math>, dodajemy ja do </math>M<math> i ponieważ
| |
| </math>_{{A}}(a^2a)<nowiki>=</nowiki>_{{A}}(a^2)<math> i
| |
| </math>_{{A}}(a^2b)<nowiki>=</nowiki>_{{A}}(b)<math> nic nie dodajemy do
| |
| </math>L<math>. Zdejmujemy teraz z listy funkcję </math>_{{A}}(ab)<math>,
| |
| dodajemy ją do </math>M<math> i ponieważ </math>_{{A}}(aba)<math> nie należy
| |
| do </math>L M<math> dodajemy ją do listy.
| |
| </math>_{{A}}(abb)<nowiki>=</nowiki>_{{A}}(b)<math>, więc tej funkcji
| |
| nie dodajemy do </math>L<math>. Z </math>L<math> ściągamy </math>_{{A}}(ba)<math>,
| |
| dodajemy ją do </math>M<math> i widzimy, że
| |
| </math>_{{A}}(baa)<nowiki>=</nowiki>_{{A}}(a^2)<math> oraz
| |
| </math>_{{A}}(bab)<nowiki>=</nowiki>_{{A}}(b)<math>, więc nic nie
| |
| dodajemy do </math>L<math>. Na liście pozostała funkcja
| |
| </math>_{{A}}(aba)<math>. Ściągamy ją z listy i dodajemy do </math>M<math>.
| |
| Widzimy, że </math>_{{A}}(abaa)<nowiki>=</nowiki>_{{A}}(a^2)<math> i
| |
| </math>_{{A}}(abab)<nowiki>=</nowiki>_{{A}}(b)<math>, zatem nic nie
| |
| dodajemy do listy </math>L<math>. Lista jest w tym momencie pusta i działanie
| |
| algorytmu zakończyło się. Ostatecznie mamy
| |
| </math></center>M({A})<nowiki>=</nowiki> _{{A}}(1),_{{A}}(a),
| |
| _{{A}}(b),_{{A}}(a^2),_{{A}}(ab),
| |
| _{{A}}(ba),_{{A}}(aba).<center><math>
| |
| Co zgadza się z wynikiem otrzymanym w przykładzie.
| |
|
| |
|
| Twierdzenie poniższe zbiera dotychczas uzyskane charakteryzacje języków rozpoznawanych.
| | nie, tak, nie |
|
| |
|
| \begintheor | | <quiz> |
| | Dany jest ciąg funkcyjny <math>f_n(x)=\sqrt[n]{x}</math> dla <math>x\ge 0</math> Ten ciąg |
| | <wrongoption>jest zbieżny punktowo i jego granica jest ciągła</wrongoption> |
| | <wrongoption>jest zbieżny jednostajnie i jego granica jest ciągła</wrongoption> |
| | <rightoption>jest zbieżny punktowo i jego granica nie jest ciągła</rightoption> |
| | </quiz> |
|
| |
|
| Niech </math> L A^* <math> będzie dowolnym językiem. Równoważne są następujące warunki:
| | nie, nie, tak |
|
| |
|
| # Język </math> L <math> jest rozpoznawalny,
| | <quiz> |
| | Dany jest szereg <math>\sum_{n=1}^{\infty}\frac{\sin nx}{2^n(x^2+1)}, \ x\in \mathbb{R}</math> Ten szereg jest |
| | <wrongoption>zbieżny jednostajnie do funkcji <math>f(x)\equiv 0</math></wrongoption> |
| | <rightoption>zbieżny jednostajnie do funkcji <math>f</math> takiej, że <math>0<f(x)<3</math></rightoption> |
| | <wrongoption>zbieżny jednostajnie do funkcji <math>f(x)=\frac{1}{2(x^2+1)}</math></wrongoption> |
| | </quiz> |
|
| |
|
| # Język </math> L <math> jest sumą wybranych klas równoważności pewnej prawej
| | nie, tak, nie |
| kongruen\-cji na </math> A^* <math> o skończonym indeksie: </math></center>L <nowiki>=</nowiki> _{w L}[w]_.<center><math>
| |
|
| |
|
| # Język </math> L <math> jest sumą wybranych klas równoważności pewnej
| | <quiz> |
| kongruencji na </math> A^* <math> o skończonym indeksie: </math></center>L <nowiki>=</nowiki> _{w L}[w]_.<center><math>
| | Funkcja <math> |
| | f(x):=\sum_{n=1}^{\infty}\frac{\sqrt[n]{x}}{n(n+1)(x^2+1)}</math> |
| | Granica <math>\lim_{x\to 3}f(x)</math> wynosi |
| | <rightoption><math>\frac{1}{10}</math></rightoption> |
| | <wrongoption><math>\sqrt{3}</math></wrongoption> |
| | <wrongoption><math>0</math></wrongoption> |
| | </quiz> |
|
| |
|
| # Istnie\-je skończony monoid </math> M <math> i istnie\-je epimorfizm </math> : A^* M<math> taki,
| | tak, nie, nie |
| że </math></center>L <nowiki>=</nowiki> ^{-1}( (L)).<center><math>
| |
|
| |
|
| \endtheor | | <quiz> |
| | Szereg <math>\sum_{n=1}^{\infty}\frac{1}{n(x^4+4)}</math> jest |
| | <wrongoption>zbieżny punktowo</wrongoption> |
| | <wrongoption>zbieżny jednostajnie </wrongoption> |
| | <rightoption>rozbieżny</rightoption> |
| | </quiz> |
|
| |
|
| \beginprf
| | nie, nie, tak |
|
| |
|
| Dowód równoważności czterech powyższych warunków przeprowa\-dzi\-my zgodnie z następującym schematem:
| | <quiz> |
| | Czwarty z kolei wyraz rozwinięcia w szereg Maclaurina funkcji <math>f(x)=\cos 2x</math> to |
| | <wrongoption><math>-\frac{2^6}{6!}</math></wrongoption> |
| | |
| | <wrongoption><math>\frac{2^6}{6!}x^6</math></wrongoption> |
| | |
| | <rightoption><math>\frac{-4}{45}x^6</math></rightoption> |
| | </quiz> |
|
| |
|
| </math></center>[[##tg|Uzupelnic tg|]][[##tf|Uzupelnic tf|]][[##te|Uzupelnic te|]][[##td|Uzupelnic td|]] [[##tg|Uzupelnic tg|]]<center><math>
| | nie, nie, tak |
|
| |
|
| [[##tg|Uzupelnic tg|]] [[##tf|Uzupelnic tf|]]
| | <quiz> |
| | Szósty z kolei wyraz rozwinięcia w szereg Taylora funkcji <math>f(x)=\frac{1}{2+x}</math> o środku w <math>x_0=0</math> wynosi |
| | <wrongoption><math>\frac{-1}{64}x^6</math></wrongoption> |
| | |
| | <rightoption><math>\frac{-1}{64}x^5</math></rightoption> |
| | |
| | <wrongoption><math>\frac{1}{2}x^6</math></wrongoption> |
| | </quiz> |
|
| |
|
| Dany jest homomorfizm </math></center>: A^* M, <center><math> gdzie </math>M<math> jest skończonym monoidem.\\
| | nie, tak, nie |
| Określamy relację na </math>A^*<math>, przyjmując dla dowolnych </math> u, v A^* </center>u v (u) <nowiki>=</nowiki> (v).<center><math>
| |
| Tak określona relacja jest kongruencją. Natomiast jej skończony indeks wynika z faktu, że monoid </math> M <math> jest skończony.
| |
| Pokażemy teraz, że:
| |
|
| |
|
| </math></center>L <nowiki>=</nowiki> _{w L}[w]_ .<center><math> Inkluzja jest oczywista.\\ | | <quiz> |
| Inkluzja w przeciwną stronę (</math>L _{w L}[w]_,<math>) oznacza, że każda klasa równoważności relacji
| | Sumujemy cztery kolejne wyrazy rozwinięcia w szereg Taylora funkcji <math>\sqrt{x}</math> ośrodku w <math>x_0=1</math> Współczynnik przy <math>x</math> wynosi |
| albo cała zawiera się w języku </math>L<math>, albo cała zawiera się w uzupełnieniu języka </math>L<math>.\\
| | <rightoption><math>\frac{15}{16}</math></rightoption> |
| Załóżmy, że </math> u [w]_<math> dla pewnego </math> w L. <math>
| | |
| Oznacza to, że
| | <wrongoption><math>\frac{5}{16}</math></wrongoption> |
| </math></center>u w (u) <nowiki>=</nowiki> (w) (L) | | |
| u ^{-1}( (u)) ^{-1}( (L)) <nowiki>=</nowiki> L.<center><math>
| | <wrongoption><math>\frac{1}{16}</math></wrongoption> |
| Implikuje to ostatecznie, że </math>u L<math>.
| | </quiz> |
|
| |
|
| [[##tf|Uzupelnic tf|]] [[##te|Uzupelnic te|]]
| | tak, nie, nie |
|
| |
|
| Każda kongruencja jest prawą kongruencją.
| | 5555555555555555555555555555555555555555555555555555 |
|
| |
|
| [[##te|Uzupelnic te|]] [[##td|Uzupelnic td|]]
| | ==Szereg potęgowy. Trygonometryczny szereg Fouriera. Test== |
|
| |
|
| Niech będzie prawą kongruencją o skończonym indeksie na </math> A^* <math> taką, że
| |
| </math></center>L <nowiki>=</nowiki> _{w L}[w]_ .<center><math>
| |
| Automat </math>{A}_{ } <nowiki>=</nowiki> (A^*/,f^*,[1]_,T),<math> dla którego
| |
|
| |
|
| </math></center>f^*([w]_,u) <nowiki>=</nowiki>[wu]_ , T <nowiki>=</nowiki> [w]_ : w L <center><math> akceptuje język </math>L<math>.
| | 101010101010101010101010101010101010101010101010101010101010 |
|
| |
|
| [[##td|Uzupelnic td|]] [[##tg|Uzupelnic tg|]]
| | ==Wielowymiarowa całka Riemanna. Test== |
|
| |
|
| Niech język </math> L<nowiki>=</nowiki>L({A}) <math>, gdzie </math>{A} <nowiki>=</nowiki> (S,f,s_0,T)<math>.\\
| |
| Określamy odwzorowanie
| |
|
| |
|
| </math></center> :A^{*} A^{*}/_{Ker _{{A}}}, <center><math>
| | 1111111111111111111111111111111111111111111111111111 |
|
| |
|
| przyjmując dla każdego </math>v A^{*} </center> (v)<nowiki>=</nowiki>[v]_{Ker _{{A}}}. <center><math>
| | ==Twierdzenie Fubiniego. Twierdzenie o zmianie zmiennych. Test== |
|
| |
|
| Jest to odwzorowanie kanoniczne monoidu </math> A^* <math> na monoid ilorazowy, a więc jest to epimorfizm.\\
| |
| </math>A^{*}/_{Ker _{{A}}} <math> jest monoidem skończonym, ponieważ </math> S <math> jest zbiorem skończonym.
| |
|
| |
|
| Dla dowodu równości </math>L <nowiki>=</nowiki> ^{-1}( (L))<math> wystarczy udowodnić
| | 1212121212121212121212121212121212121212121212121212121212 |
| inkluzję </math>L ^{-1}( (L))<math>. (Inkluzja </math> L ^{-1}( (L))<math>
| |
| wynika z~definicji przeciwobrazu.) \\
| |
| Niech </math> u ^{-1}( (L)) .<math> Oznacz to, że
| |
|
| |
|
| </math></center> {c}
| | ==Całki krzywoliniowe. Twierdzenie Greena. Test== |
| (u) (L) v L : (u)<nowiki>=</nowiki> (v)
| |
| v L : [u]_{_{Ker _{{A}}}}<nowiki>=</nowiki>[v]_{_{Ker _{{A}}}} <br>
| |
| v L : _{{A}}(u)<nowiki>=</nowiki> _{{A}}(v) ,
| |
| v L : s S f(s,u)<nowiki>=</nowiki>f(s,v)
| |
|
| |
|
| <center><math>
| |
|
| |
|
| W szczególności </math></center> f(s_0,u) <nowiki>=</nowiki> f(s_0,v) T, <center><math> czyli </math>u L.<math>
| | 1414141414141414141414141414141414141414141414141414 |
|
| |
|
| \begincenter \endcenter \endprf</math>
| | ==Równania różniczkowe zwyczajne -- przegląd metod rozwiązywania. Test== |