Języki, automaty i obliczenia/Ćwiczenia 4: Wyrażenia regularne. Automat minimalny

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

ĆWICZENIA 4

Ćwiczenie 1.1

Pokaż, że każdy skończony zbiór słów nad dowolnym alfabetem jest regularny, tzn. jest określony przez pewne wyrażenie regularne.

Rozwiązanie

Ćwiczenie 1.2

Sprawdź, czy język L ciągów binarnych, w których sekwencja 11 występuje dokładnie raz, da się określić wyrażeniem regularnym.

Rozwiązanie

Ćwiczenie 1.3

Udowodnij równoważności wyrażeń regularnych (α, β i γ są dowolnymi wyrażeniami regularnymi).

(1) α+α=α,
(2) α+β=β+α,
(3) αα*=α*α,
(4) (α*β*)*=(α+β)*,
(5) (1+α)*=α*,
(6) (α*+β*)*=(α+β)*.
Rozwiązanie punktu 1
Rozwiązanie punku 2
Rozwiązanie punktu 3
Rozwiązanie punktu 4
Rozwiązanie punktu 5
Rozwiązanie punktu 6

Ćwiczenie 1.4

Udowodnij, że dla dowolnych wyrażeń regularnych α, β i γ wyrażenia

αβ+γ*,(αβ+γ)*orazα(β+γ)*

nie są równoważne.

Rozwiązanie

Ćwiczenie 1.5

Sprawdź, czy następujące wyrażenia regularne są równoważne (α oraz β są dowolnymi wyrażeniami regularnymi.)

(1) (αβ+α)*α=α(βα+α)*,
(2) β(αβ+β)*α=αα*β(αα*β)*,
(3) (βα*)*=β(α+β)*+1,
Rozwiązanie punktu 1
Rozwiązanie punktu 2
Rozwiązanie punktu 3

Ćwiczenie 1.6

Określ za pomocą wyrażeń regularnych następujące języki:

(1) wszystkie czteroliterowe słowa nad alfabetem A={a,b,c,d},
(2) wszystkie trzyliterowe słowa nad alfabetem A={a,b,c,d}, w których występuje dokładnie jedna litera a,
(3) wszystkie słowa o dowolnej długości nad alfabetem A={a,b,c,d}, w których występuje dokładnie jedna litera a,
(4) język poprawnych adresów stron www, jeśli założymy, że poprawny adres strony www składa się ze słowa "http://www.", a następnie ciągu liter i cyfr zawierającego przynajmniej jedną      kropkę, przy czym ostatnim znakiem tego ciągu nie może być kropka.
(5) ogół sekwencji binarnych, w których liczba zer jest podzielna przez 3,
Rozwiązanie punktu 1
Rozwiązanie punktu 2
Rozwiązanie punktu 3
Rozwiązanie punktu 4
Rozwiązanie punktu 5

Ćwiczenie [Uzupelnij]

Niech L będzie językiem określonym przez wyrażenie regularne a*ba* nad alfabetem A={a,b} . Określ prawą kongruencję syntaktyczną PLr i kongruencję syntaktyczną PL dla tego języka.

ROZWIĄZANIE. Widać, że dwa słowa będą należały do tej samej klasy abstrakcji relacji PLr, jeśli będą miały taką samą ilość liter b. Zatem Parser nie mógł rozpoznać (nieznana funkcja „\slash”): {\displaystyle L \slash P_L^r = \{[1],[b],[bb]\}} , gdzie
[1]=a*,
[b]=a*ba*,
[bb]=A*bA*bA*

Dla języka L=a*ba* jest PLr=PL.

Ćwiczenie [Uzupelnij]

Wykorzystując ciąg relcji zdefiniowanych w twierdzeniu Uzupelnic lekcja4-w-tw3.3 | określ prawą kongruencję syntaktyczną PLr dla następujących języków.

  1. L=(a2)*
  1. L=a(a+b)*+(a+b)*b

ROZWIĄZANIE punktu 1.
ρ1: (a2)*, a*(a2)*=(a2)*a
ρ2=ρ1=PLr

ROZWIĄZANIE punktu 2.

ρ1
a(a+b)*+(a+b)*b=a(a+b)*a+b(a+b)*b+a(a+b)*b+a+b,

(a+b)*a(a+b)*+(a+b)*b=b(a+b)*a+1

ρ2
b(a+b)*b+b,
a(a+b)*a+a(a+b)*b+a,
b(a+b)*a,
1,

ρ3=ρ2=PLr

Ćwiczenie [Uzupelnij]

Zdefiniuj minimalny automat akceptujący następujące języki:

  1. L=(a2)*
  1. L=a(a+b)*+(a+b)*b

ROZWIĄZANIE. Zgodnie z wnioskiem lekcja4-w wniosek 3.1 automat minimalny rozpoznający język L ma postać

𝒜L=(A*/PLr,f*,[1]PLr,T),

gdzie T={[w]PLr:wL},. Korzystając z ćwiczenia Uzupelnic 4.7|. dostajemy

  1. S={s0,s1}, gdzie
    s0=(a2)*,s1=(a2)*a,
    a działanie automatu określone jest poprzez graf

RYSUNEK ja-lekcja4-c-rys1.JPG

  1. S={s0,s1,s2,s3}, gdzie
    s0=1,s1=b(a+b)*a,
s2=a(a+b)*a+a(a+b)*b+a,s3=b(a+b)*b+b,

a działanie automatu określone jest poprzez graf
RYSUNEK ja-lekcja4-w-rys2.pdf

ZADANIA DOMOWE

Ćwiczenie [Uzupelnij]

Udowodnij równoważności wyrażeń regularnych (α, β i γ są dowolnymi wyrażeniami regularnymi).

  1. (α+β)+γ=α+(β+γ),
  1. (αβ)γ=α(βγ),
  1. (α+β)γ=αγ+βγ,
  1. (α*)*=α*,

Ćwiczenie [Uzupelnij]

Sprawdź, czy następujące wyrażenia regularne są równoważne (α oraz β są dowolnymi wyrażeniami regularnymi.)

  1. (α+β)*=α*+β*.
  1. (α*β)*α*=(α+β)*,
  1. (α+β*)*=(α*β*)*,
  1. α(αβ+β)*α=αα*β(αα*β)*α,
  1. α(αβ+β)*α=α(βα+α)*.

Ćwiczenie [Uzupelnij]

Określ za pomocą wyrażeń regularnych następujące języki:

  1. ogół sekwencji binarnych, w których występują co najwyżej trzy zera,
  1. ogół sekwencji binarnych, w których występują co najwyżej dwa zera obok siebie,
  1. ogół sekwencji binarnych, w których liczba zer jest podzielna

przez dwa, a liczba jedynek przez 3,

  1. język poprawnych adresów e-mail. Dla uproszczenia przyjmujemy,

że poprawny adres e-mailowy składa się z niepustego identyfikatora złożonego z samych liter (maksymalnie z czterech), znaku "małpy", niepustej nazwy serwera złożonej z samych liter (maksymalnie czterech), kropki oraz dwuliterowej nazwy domeny. Alfabet składa się tylko z liter a, b i c.

Ćwiczenie [Uzupelnij]

Wykorzystując ciąg relcji zdefiniowanych w twierdzeniu lekcja4-w-tw? określ prawą kongruencję syntaktyczną PLr dla następujących języków.

  1. L=ab
  1. L=(a+b)*ab(a+b)*

Ćwiczenie [Uzupelnij]

Zdefiniuj minimalny automat akceptujący następujące języki:

  1. L=ab
  1. L=(a+b)*ab(a+b)*