Download as pdf or txt
Download as pdf or txt
You are on page 1of 56

Matematyczne podstawy informatyki

Wykład 2

dr Maciej Dziemiańczuk

Instytut Informatyki
Wydział Matematyki, Fizyki i Informatyki
Uniwersytet Gdański

Semestr letni 2023/2024


Wstępnie

Niech L jest takim językiem nad alfabetem {a, b}, który zawiera te słowa, w których
liczba liter a jest parzysta i niezerowa, natomiast liczba liter b jest dowolna.

1
Wstępnie

Niech L jest takim językiem nad alfabetem {a, b}, który zawiera te słowa, w których
liczba liter a jest parzysta i niezerowa, natomiast liczba liter b jest dowolna.

Czy język L jest językiem regularnym?

1
Wstępnie

Niech L jest takim językiem nad alfabetem {a, b}, który zawiera te słowa, w których
liczba liter a jest parzysta i niezerowa, natomiast liczba liter b jest dowolna.

Czy język L jest językiem regularnym?

Tak, ponieważ...

1
Wstępnie

Niech L jest takim językiem nad alfabetem {a, b}, który zawiera te słowa, w których
liczba liter a jest parzysta i niezerowa, natomiast liczba liter b jest dowolna.

Czy język L jest językiem regularnym?

Tak, ponieważ...

Wybieram dowolne słowo w ∈ {a, b}. Czy jest jakiś “prosty mechanizm”, który
stwierdza, że w ∈ L albo w ̸∈ L?

1
Wstępnie

Niech L jest takim językiem nad alfabetem {a, b}, który zawiera te słowa, w których
liczba liter a jest parzysta i niezerowa, natomiast liczba liter b jest dowolna.

Czy język L jest językiem regularnym?

Tak, ponieważ...

Wybieram dowolne słowo w ∈ {a, b}. Czy jest jakiś “prosty mechanizm”, który
stwierdza, że w ∈ L albo w ̸∈ L?

Tak i o tym będzie dzisiejszy wykład.

1
Deterministyczne automaty
skończone
Deterministyczny automat skończony

2
Deterministyczny automat skończony

Automat skończony
Składa się z:

2
Deterministyczny automat skończony

Automat skończony
Składa się z:

• stanów,

2
Deterministyczny automat skończony

Automat skończony
Składa się z:

• stanów,
• stanu początkowego i stanów akceptujących,

2
Deterministyczny automat skończony

Automat skończony
Składa się z:

• stanów,
• stanu początkowego i stanów akceptujących,
• przejść pomiędzy stanami.

2
Deterministyczny automat skończony

Działanie automatu skończonego


Mając dowolne słowo w nad alfabetem automatu, możemy dokonać obliczenia
automatu na tym słowie.

3
Deterministyczny automat skończony

Działanie automatu skończonego


Mając dowolne słowo w nad alfabetem automatu, możemy dokonać obliczenia
automatu na tym słowie.

Obliczenie automatu na słowie w = abbabaabba.

3
Deterministyczny automat skończony

Działanie automatu skończonego


Mając dowolne słowo w nad alfabetem automatu, możemy dokonać obliczenia
automatu na tym słowie.

Obliczenie automatu na słowie w = abbabaabba.

3
Deterministyczny automat skończony

Działanie automatu skończonego


Mając dowolne słowo w nad alfabetem automatu, możemy dokonać obliczenia
automatu na tym słowie.

Obliczenie automatu na słowie w = abbabaabba.

4
Deterministyczny automat skończony

Działanie automatu skończonego


Mając dowolne słowo w nad alfabetem automatu, możemy dokonać obliczenia
automatu na tym słowie.

Obliczenie automatu na słowie w = abbabaabba.

5
Deterministyczny automat skończony

Działanie automatu skończonego


Mając dowolne słowo w nad alfabetem automatu, możemy dokonać obliczenia
automatu na tym słowie.

Obliczenie automatu na słowie w = abbabaabba.

Pytanie: w jakim stanie zatrzyma się automat po przeczytaniu słowa w ?


5
Deterministyczny automat skończony

Akceptacja/rozpoznawanie słów przez automat


Automat akceptuje tylko słowa w , dla których zatrzyma się w stanie akceptującym.

6
Deterministyczny automat skończony

Akceptacja/rozpoznawanie słów przez automat


Automat akceptuje tylko słowa w , dla których zatrzyma się w stanie akceptującym.

Pytanie: Czy automat zaakceptuje słowa:

• aaa
• abaa
• aabaaaa

6
Deterministyczny automat skończony

Akceptacja/rozpoznawanie słów przez automat


Automat akceptuje tylko słowa w , dla których zatrzyma się w stanie akceptującym.

Pytanie: Czy automat zaakceptuje słowa:

• aaa
• abaa
• aabaaaa

Uwaga! Będą nas interesowały wszystkie słowa, które akceptuje automat.

6
Deterministyczny automat skończony

Język akceptowany przez automat


Język złożony ze wszystkich słów, które akceptuje automat A (i tylko takich słów)
będziemy oznaczali przez L(A).

7
Deterministyczny automat skończony

Język akceptowany przez automat


Język złożony ze wszystkich słów, które akceptuje automat A (i tylko takich słów)
będziemy oznaczali przez L(A).
Pytanie... Czy potrafimy podać L(A) dla powyższego automatu?

L(A) =

7
Deterministyczne automaty
skończone – pojęcia i definicje
Deterministyczny automat skończony

Definicja 1

Deterministyczny automat skończony to piątka (Q, Σ, δ, q0 , F ), gdzie:


• Q - skończony zbiór stanów,
• Σ - alfabet wejściowy,
• q0 ∈ Q - stan początkowy,
• F ⊆ Q - zbiór stanów akceptujących,
• δ : Q × Σ → Q - funkcja przejścia.

8
Deterministyczny automat skończony

Definicja 1

Deterministyczny automat skończony to piątka (Q, Σ, δ, q0 , F ), gdzie:


• Q - skończony zbiór stanów,
• Σ - alfabet wejściowy,
• q0 ∈ Q - stan początkowy,
• F ⊆ Q - zbiór stanów akceptujących,
• δ : Q × Σ → Q - funkcja przejścia.

Przykład: Weźmy automat A = (Q, Σ, δ, q0 , F ), gdzie Q = {q0 , q1 , q2 }, Σ = {a, b},


F = {q2 } oraz funkcja przejścia δ zadana jest tabelką:

δ a b
q0 q1 q0
q1 q2 q1
q2 q1 q2

8
Deterministyczny automat skończony

Definicje i pojęcia
• Konfiguracją automatu jest wyrażenie postaci qw , gdzie q ∈ Q, natomiast w jest
zawartością taśmy wejściowej, która nie została jeszcze przeczytana.

9
Deterministyczny automat skończony

Definicje i pojęcia
• Konfiguracją automatu jest wyrażenie postaci qw , gdzie q ∈ Q, natomiast w jest
zawartością taśmy wejściowej, która nie została jeszcze przeczytana.

• Konfigurację q0 w nazywamy konfiguracją początkową na słowie w .

9
Deterministyczny automat skończony

Definicje i pojęcia
• Konfiguracją automatu jest wyrażenie postaci qw , gdzie q ∈ Q, natomiast w jest
zawartością taśmy wejściowej, która nie została jeszcze przeczytana.

• Konfigurację q0 w nazywamy konfiguracją początkową na słowie w .

• Konfiguracja qw jest konfiguracją akceptującą, jeżeli w = λ oraz q ∈ F .

9
Deterministyczny automat skończony

Definicje i pojęcia
• Konfiguracją automatu jest wyrażenie postaci qw , gdzie q ∈ Q, natomiast w jest
zawartością taśmy wejściowej, która nie została jeszcze przeczytana.

• Konfigurację q0 w nazywamy konfiguracją początkową na słowie w .

• Konfiguracja qw jest konfiguracją akceptującą, jeżeli w = λ oraz q ∈ F .

• Obliczenie automatu na słowie w to ciąg konfiguracji

β0 , β1 , . . . , βk ,

w którym β0 jest konfiguracją początkową oraz każda konfiguracja βi jest


bezpośrednim następnikiem konfiguracji βi−1 dla 0 < i ¬ k.

9
Deterministyczny automat skończony

Definicje i pojęcia
• Konfiguracją automatu jest wyrażenie postaci qw , gdzie q ∈ Q, natomiast w jest
zawartością taśmy wejściowej, która nie została jeszcze przeczytana.

• Konfigurację q0 w nazywamy konfiguracją początkową na słowie w .

• Konfiguracja qw jest konfiguracją akceptującą, jeżeli w = λ oraz q ∈ F .

• Obliczenie automatu na słowie w to ciąg konfiguracji

β0 , β1 , . . . , βk ,

w którym β0 jest konfiguracją początkową oraz każda konfiguracja βi jest


bezpośrednim następnikiem konfiguracji βi−1 dla 0 < i ¬ k.

• Obliczenie akceptujące to obliczenie, które kończy się konfiguracją akceptującą.

9
Deterministyczny automat skończony

Definicje i pojęcia
• Konfiguracją automatu jest wyrażenie postaci qw , gdzie q ∈ Q, natomiast w jest
zawartością taśmy wejściowej, która nie została jeszcze przeczytana.

• Konfigurację q0 w nazywamy konfiguracją początkową na słowie w .

• Konfiguracja qw jest konfiguracją akceptującą, jeżeli w = λ oraz q ∈ F .

• Obliczenie automatu na słowie w to ciąg konfiguracji

β0 , β1 , . . . , βk ,

w którym β0 jest konfiguracją początkową oraz każda konfiguracja βi jest


bezpośrednim następnikiem konfiguracji βi−1 dla 0 < i ¬ k.

• Obliczenie akceptujące to obliczenie, które kończy się konfiguracją akceptującą.

• Język akceptowany przez automat A to zbiór

L(A) = {w ∈ Σ∗ : istnieje obliczenie akceptujące automatu A na słowie w }.

9
Deterministyczny automat skończony

Pytanie: czy mogą istnieć dwa różne automaty akceptujące ten sam język?

10
Deterministyczny automat skończony

Pytanie: czy mogą istnieć dwa różne automaty akceptujące ten sam język?

10
Deterministyczny automat skończony

Pytanie: czy mogą istnieć dwa różne automaty akceptujące ten sam język?

Definicja 2

Dwa automaty A1 i A2 nazwiemy równoważnymi, jeżeli akceptują ten sam język,


czyli, gdy zachodzi L(A1 ) = L(A2 ).

10
Przykłady automatów

10
Przykłady

Przykład 1. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, które
zaczynają się na literę a i kończą się na b.
(a) Podaj wyrażenie regularne opisujące język L.
(b) Podaj automat A akceptujący język L.

11
Przykłady

Przykład 1. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, które
zaczynają się na literę a i kończą się na b.
(a) Podaj wyrażenie regularne opisujące język L.
(b) Podaj automat A akceptujący język L.

Przykład 2. Weźmy automat A jak na rysunku


obok. Podaj wyrażenie regularne opisujące język
L akceptowany przez automat A.

11
Zadania i pytania

Zadanie 1. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, w których
liczba liter a oraz b jest parzysta.
(a) Podaj automat A akceptujący język L.
(b) Podaj wyrażenie regularne opisujące język L.

12
Zadania i pytania

Zadanie 1. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, w których
liczba liter a oraz b jest parzysta.
(a) Podaj automat A akceptujący język L.
(b) Podaj wyrażenie regularne opisujące język L.

Pytanie 1. Czy dla dowolnego automatu A, język akceptowany przez A można


opisać za pomocą wyrażenia regularnego?

12
Zadania i pytania

Zadanie 1. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, w których
liczba liter a oraz b jest parzysta.
(a) Podaj automat A akceptujący język L.
(b) Podaj wyrażenie regularne opisujące język L.

Pytanie 1. Czy dla dowolnego automatu A, język akceptowany przez A można


opisać za pomocą wyrażenia regularnego?

Pytanie 2. Czy dla każdego wyrażenia regularnego r można stworzyć determini-


styczny automat, który będzie akceptował L(r )?

12
Niedeterministyczny automat
skończony
Niedeterministyczny automat skończony

Automat deterministyczny
Obliczenie automatu na dowolnie wybranym słowie jest zawsze jednoznaczne
(deterministyczne).

13
Niedeterministyczny automat skończony

Automat deterministyczny
Obliczenie automatu na dowolnie wybranym słowie jest zawsze jednoznaczne
(deterministyczne).

Funkcja przejścia

δ a b
q0 q1 –
q1 q2 q1
q2 – –

13
Niedeterministyczny automat skończony

Automat deterministyczny
Obliczenie automatu na dowolnie wybranym słowie jest zawsze jednoznaczne
(deterministyczne).

Funkcja przejścia

δ a b
q0 q1 –
q1 q2 q1
q2 – –

Pytanie... A gdybyśmy umieścili dodatkowe strzałki z tymi samymi literami?

13
Niedeterministyczny automat skończony

Automat niedeterministyczny
Automat niedeterministyczny to taki, dla którego istnieją słowa, które mają więcej niż
jedno obliczenie.

14
Niedeterministyczny automat skończony

Automat niedeterministyczny
Automat niedeterministyczny to taki, dla którego istnieją słowa, które mają więcej niż
jedno obliczenie.

Funkcja przejścia

δ a b
q0 {q1 } –
q1 {q1 , q2 } {q1 }
q2 – –

14
Niedeterministyczny automat skończony

Automat niedeterministyczny
Automat niedeterministyczny to taki, dla którego istnieją słowa, które mają więcej niż
jedno obliczenie.

Funkcja przejścia

δ a b
q0 {q1 } –
q1 {q1 , q2 } {q1 }
q2 – –

Pytanie... Czy ten automat akceptuje słowo aaba?

14
Niedeterministyczny automat skończony

Automat niedeterministyczny
Automat niedeterministyczny to taki, dla którego istnieją słowa, które mają więcej niż
jedno obliczenie.

Język akceptowalny przez automat A to zbiór

L(A) = {w ∈ Σ∗ : istnieje obliczenie akceptujące automatu A na słowie w }.

15
Niedeterministyczny automat skończony

Automat niedeterministyczny
Automat niedeterministyczny to taki, dla którego istnieją słowa, które mają więcej niż
jedno obliczenie.

Język akceptowalny przez automat A to zbiór

L(A) = {w ∈ Σ∗ : istnieje obliczenie akceptujące automatu A na słowie w }.

Pytanie... Czy potrafimy podać L(A) dla powyższego automatu?

15
Przykłady

Przykład 3. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, które
zawierają podsłowo aba.
(a) Podaj wyrażenie regularne opisujące język L.
(b) Podaj niedeterministyczny automat A akceptujący język L.

16
Przykłady

Przykład 3. Niech L jest językiem nad alfabetem {a, b} złożonym ze słów, które
zawierają podsłowo aba.
(a) Podaj wyrażenie regularne opisujące język L.
(b) Podaj niedeterministyczny automat A akceptujący język L.

Czy istnieje automat deterministyczny akceptujący powyższy język?

16
Czy automaty niedeterministyczne

“potrafią” więcej?

16
c. d. n.

16
Ćwiczenia 2

Materiał, który obowiązuje na ćwiczeniach:


• Rozdział 2.2 (Automaty deterministyczne)
• Rozdział 2.3 (Automaty niedeterministyczne)

17
Opis zachowania przeciwnika w grze.

17

You might also like