Matematyczne Podstawy Informatyki
Transkrypt
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat z epsilon przejściami Niedeterministyczny automat skończony to uporządkowana piątka NAS = (Q, Σ, δ, q0 , F ), gdzie: 1. Q to skończony zbiór stanów, 2. Σ to skończony zbiór symboli wejściowych, 3. δ to funkcja przejścia, która przyjmuje jako argumenty stan i symbol wejściowy lub symbol i zwraca podzbiór stanów Q, 4. q0 to stan początkowy (jeden ze stanów ze zbioru Q), 5. F to zbiór stanów końcowych (akceptujących). Przykład automatu 0...9 . eps,+,A 0...9 B 0...9 C 0...9 D . B F Epsilon-domknięcie I -domknięcie stanu q EDOMK(q) definiuje się: I Podstawa: Stan q należy do EDOMK(q). I Krok indukcyjny: Jeżeli stan p należy do EDOMK(q) oraz istnieje przejście ze stanu p do stanu r o etykiecie , to r należy do EDOMK(q) - jeżeli funkcją przejścia opisywanego NAS jest δ i p należy do EDOMK(q), to EDOMK(q) zawiera także stany z δ(p, ). Epsilon-domknięcie II EDOMK (q1 ) = {q1 , q2 , q3 , q4 , q6 } Determinizacja automatu z eps-przejściami I Dla danego automatu E = (QE , Σ, δE , q0 , FE ) można zbudować równoważny DAS D = (QD , Σ, δD , qD , FD ), który zdefiniowany jest następująco: 1. QD jest zbiorem podzbiorów QE . Wszystkie osiągalne stany D są -domkniętymi podzbiorami QE , to znaczy S ⊆ QE takimi, że S = EDOMK (S). Inaczej mówiąc, -domknięte zbiory stanów S ta takie zbiory S, że dowolne -przejście z dowolnego stanu z S prowadzi do stanu, który także należy do S. 2. qD = EDOMK (q0 ) - stan początkowy otrzymuje się domykając zbiór złożony jedynie ze stanu początkowego. 3. FD składa się ze zbiorów stanów, które zawierają przynajmniej jeden stan akceptujący E. Innaczej mówiąc, FD = {S|S ∈ QD oraz S ∩ FE 6= ∅} Determinizacja automatu z eps-przejściami II 4. Dla wszystkich a ∈ Σ i S ⊆ QD , wartość δ(S, a) oblicza się w sposób następujący: 4.1 Niech S = {p1 , p2 , ..., pk }. k S 4.2 Obliczyć δE (pi , a), niech tym zbiorem będzie {r1 , r2 , .., rm }. i=1 4.3 Wtedy δD (S, a) = m S j=1 EDOMK (rj ). Przykład I Przykład II I Zbiór stanów nowego automatu: {∅, {q0 }, {q1 }, {q2 }, {q0 , q1 }, {q0 , q2 }, {q1 , q2 }, {q0 , q1 , q2 }} I Stan początkowy: {q0 , q2 } I Stany akceptujące: {{q0 }, {q0 , q1 }, {q0 , q2 }, {q0 , q1 , q2 }} Przykład III I ∅ {q0 } {q1 } {q2 } Funkcja przejścia {q0 , q1 } {q0 , q2 } {q1 , q2 } {q0 , q1 , q2 } a ∅ ∅ {q1 , q2 } {q0 , q2 } {q1 , q2 } {q0 , q2 } {q0 , q1 , q2 } {q0 , q1 , q2 } b ∅ {q1 } {q2 } ∅ {q1 , q2 } {q1 } {q2 } {q1 , q2 } Przykład IV Przykład V Wyrażenie regularne Wyrażeniem regularnym R nad alfabetem Σ jest: 1. a dla pewnego symbolu z alfabetu Σ, 2. , 3. ∅ 4. R1 ∪ R2 , gdzie R1 i R2 są wyrażeniami regularnymi, 5. R1 ◦ R2 , gdzie R1 i R2 są wyrażeniami regularnymi, 6. R1∗ , gdzie R1 jest wyrażeniem regularnym, Operacje regularne I Suma: A ∪ B = {x|x ∈ A lub x ∈ B} I Konkatenacja (złożenie): A ◦ B = {xy | x ∈ A oraz y ∈ B} I Domknięcie Kleenego: A∗ = {x1 , x2 ...xk | k 0 oraz xi ∈ A} Priorytet operatorów wyrażeń regularnych 1. Najwyższy priorytet ma operator gwiazdki. 2. Następne pod względem priorytetu jest złożenie. 3. Na koniec grupuje się sumę teoriomnogościową z ich operatorami. Prawa algebraiczne dla wyrażeń regularnych I I Przemienność sumy teoriomnogościowej dwóch języków: L+M =M +L I Prawo łączności sumy teoriomnogościowej trzech języków: (L + M) + N = L + (M + N) I Prawo łączności złożenia trzech języków: (LM)N = L(MN) Prawa algebraiczne dla wyrażeń regularnych II I Element neutralny dla sumy teoriomnogościowej: ∅+L=L+∅=L I Element neutralny dla złożenia: L = L = L I Anihilator dla złożenia: ∅L = L∅ = ∅ Prawa algebraiczne dla wyrażeń regularnych III I Prawo lewostronnej rozdzielności złożenia względem sumy teoriomnogościowej: L(M + N) = LM + LN I Prawo prawostronnej rozdzielności złożenia względem sumy teoriomnogościowej: (M + N)L = ML + NL I Prawo idempotencji dla sumy teoriomnogościowej: L+L=L Prawa algebraiczne dla wyrażeń regularnych IV I Domknięcie wyrażenia, które jest domknięte: (L∗ )∗ = L∗ I Domknięcie zbioru pustego: ∅∗ = I Złożenie łańcucha pustego: ∗ = Suma Dochodzi jeden stan początkowy, z którego następują przejścia po do stanów początkowych automatów składowych (oczywiście w nowym automacie nie są już one stanami początkowymi). Automat 1 eps eps Automat 2 Konkatenacja Stany końcowe automatu pierwszego są łączone z stanem początkowym drugiego automatu (stanem początkowym automatu wynikowego jest stan początkowy pierwszego automatu, natomiast końcowymi są stany końcowe automatu drugiego). Automat 1 eps Automat 2 Domknięcie Kleenego (gwiazdka) Stanem początkowym jest dodatkowy stan (jest on równocześnie stanem końcowym - dlaczego?) - jednocześnie istnieje przejście ze stanów końcowych automatu po do starego stanu początkowego. eps Automat 1 eps Równoważność notacji języków regularnych Lemat o pompowaniu dla języków regularnych Niech L będzie językiem regularnym. Istnieje wtedy stała n (zależna od L) taka, że dowolny łańcuch w ∈ L o długości |w | >= n można rozbić na trzy łańcuchy w = xyz takie, że: 1. y 6= . 2. |xy | <= n, 3. Dla dowolnego k >= 0 łańcuch xy k także należy do L. Przykład zastosowania lematu o pompowaniu I Dowód, że język złożony z samych jedynek o długości p, gdzie p jest liczbą pierwszą nie jest regularny: 1. Jeśli byłby regularny istniałaby liczba n spełniająca warunki lematu o pompowaniu. 2. Można wtedy wybrać liczbę p >= n + 2, wtedy w = 1p . 3. Na mocy lematu o pompowaniu w można rozbić na xyz, gdzie y 6= i |xy | <= n. 4. Niech |y | = m wtedy |xz| = p − m. 5. Do rozważania łańcuch xy p−m z, musi należeć do rozważanego języka (jeżeli ten język jest regularny). Przykład zastosowania lematu o pompowaniu II 6. Można jednak wyprowadzić: |xy p−m z| = |xz|+(p−m)|y | = p−m+(p−m)m = (m+1)(p−m) 7. Można postawić hipotezę, że |xy p−m z| nie jest liczbą pierwszą. 8. m + 1 > 1 i p − m > 1 (wybrano p >= n + 2 a m <= n), czyli rozważana liczba nie ma czynników równych jeden. 9. Doprowadzono, więc do sprzeczności. Własności zamkniętości języków regularnych 1. Suma teoriomnogościowa dwóch języków regularnych jest językiem regularnym. 2. Iloczyn teoriomnogościowy dwóch języków regularnych jest językiem regularnym. 3. Dopełnienie języka regularnego jest językiem regularnym. 4. Różnica dwóch języków regularnych jest językiem regularnym. 5. Odwrócenie języka regularnego jest językiem regularnym. 6. Domknięcie języka regularnego jest językiem regularnym. 7. Obraz homomoficzny (podstawienie łańcuchów za symbole) języka regularnego jest językiem regularnym. 8. Przeciwobraz homomorficzny języka regularnego jest językiem regularnym. Literatura Do napisania materiałów wykorzystano: 1. M. Sipser “Wprowadzenie do teorii obliczeń”, WNT 2009 2. J.E. Hopcroft, R. Motwani, J.D. Ullman “Wprowadzenie do teorii, automatów, języków i obliczeń”, PWN 2005