DVOP4 PIT
Bc. Matěj Cajthaml ©
Smíchovská střední průmyslová
škola a gymnázium
Jaká je delka řetězce $abcaacccc$?
Jaký je reverzní řetězec $pokrocilainformatika$?
Pro následující množiny řetězců zapište definici jazyka pomocí vlastnosti:
Pro následující jazyky proveďte následující operace:
$G = (\{S, A, B\}, \{a, b\}, P, S)$, kde:
$P = \{ \\ S \rightarrow abA, \\ A \rightarrow aA\ |\ bB, \\ B \rightarrow aB\ |\ b \\ \}$
$L_G = \{abbb, ababaaaaab, ...\} = \{aba^nba^mb\ |\ n, m \geq 0\}$
Rozeznejte, zda je gramatika regulární či neomezená. Popište jazyk, který tato gramatika generuje.
$G_1 = (\{\alpha, \beta, \gamma\}, \{1, 2\}, P_1, \alpha)$
$P_1 = \{ \\ \alpha \rightarrow 2 \alpha \beta \gamma\ |\ 1 \beta \gamma, \\ \beta \gamma \rightarrow \gamma \beta, \\ 2 \beta \rightarrow 221, \\ \gamma \rightarrow 1 \\ \}$
$G_2 = (\{S, B\}, \{1, 2\}, P_2, S)$
$P_2 = \{ \\ S \rightarrow 0S0\ |\ B, \\ 1 \rightarrow 00, \\ B \rightarrow 1B\ |\ \varepsilon \\ \}$
Rozeznejte, zda je gramatika regulární či neomezená. Popište jazyk, který tato gramatika generuje.
$G_3 = (\{S, A, B, C\}, \{a, b, c\}, P_3, S)$
$P_3 = \{ \\ S \rightarrow aA\ |\ \varepsilon, \\ A \rightarrow aA\ |\ bB\ |\ a, \\ B \rightarrow bB\ |\ cC, \\ C \rightarrow c, \\ \}$
$G_4 = (\{s, \Sigma\}, \{A, B\}, P_4, \Sigma)$
$P_4 = \{ \\ s \rightarrow AB\ |\ Bs, \\ \Sigma \rightarrow AB\ |\ s \\ \}$
$L = \{a^nb^m\ |\ n, m \geq 0\} = \{\varepsilon, a, b, ab, aabbbbb, bbbbb, ...\}$
$L = \{a^nb^m\ |\ n, m \geq 0\} = \{\varepsilon, a, b, ab, aabbbbb, bbbbb, ...\}$
$L = \{a^nb^m\ |\ n, m \geq 0\} = \{\varepsilon, a, b, ab, aabbbbb, bbbbb, ...\}$
$G = (\{S, A, B\}, \{a, b\}, P, S)$, kde:
$P = \{ \\ S \rightarrow \varepsilon\ |\ aA\ |\ bB, \\ A \rightarrow aA\ |\ bB\ |\ a, \\ B \rightarrow bB\ |\ b \\ \}$
$M = (\{q_0, q_1, q_2\}, \{a, b\}, \delta, q_0, \{q_2\})$
$\delta(q_0, a) = q_1$
$\delta(q_1, b) = q_2$
$\delta(q_2, a) = q_2$
$\delta(q_2, b) = q_2$
$L = \{ab, abaaaa, ababbba, ...\}$ — musí začínat $ab$
| $\delta$ | a | b |
|---|---|---|
| $\rightarrow$ $q_0$ | $q_1$ | $q_0$ |
| $q_1$ | $q_1$ | $q_2$ |
| $\leftarrow$ $q_2$ | $q_2$ | $q_2$ |
$L = \{ b^na^mbk\ |\ n \geq 0, m \geq 0, k \in \{a, b\}^* \}$
ohodnocený orientovaný graf
graph RL
start
q0(((q0)))
q1((q1))
q2(((q2)))
q0 -->| a | q1
q0 -->| b | q0
q1 -->| a | q1
q1 -->| b | q2
q2 -->| a | q2
q2 -->| b | q2
start --> q0
style start fill:#00000000,stroke:#00000000,color:#fff
style q2 stroke-width:3px
style q0 stroke-width:3px
$L = \{ \varepsilon \cup b^na^mbk\ |\ n \geq 0, m \geq 1,\\k \in \{a, b\}^* \}$
graph LR
start
q0(((q0)))
q1((q1))
q2(((q2)))
q0 -->| a | q1
q0 -->| b | q0
q1 -->| a | q1
q1 -->| b | q1
q1 -->| a | q2
q1 -->| b | q2
q2 -->| a | q2
q2 -->| b | q2
start --> q0
style start fill:#00000000,stroke:#00000000,color:#fff
style q2 stroke-width:3px
style q0 stroke-width:3px
graph LR
start
q0(((q0)))
q1((q1))
q2(((q2)))
q0 -->| a | q1
q0 -->| b | q0
q1 -->| a | q1
q1 -->| b | q1
q1 -->| a | q2
q1 -->| b | q2
q2 -->| a | q2
q2 -->| b | q2
q0 -->| ε | q2
start --> q0
style start fill:#00000000,stroke:#00000000,color:#fff
style q2 stroke-width:3px
style q0 stroke-width:3px
graph LR
start1
start2
q0(((q0)))
q1((q1))
q2(((q2)))
q0 -->| a | q1
q0 -->| b | q0
q1 -->| a | q1
q1 -->| b | q2
start1 --> q0
start2 --> q1
style start1 fill:#00000000,stroke:#00000000,color:#fff
style start2 fill:#00000000,stroke:#00000000,color:#fff
style q2 stroke-width:3px
style q0 stroke-width:3px
Kdy NKA/DKA nepřijme řetězec?
Následující jazyky převeďte na DKA/NKA:
O regulárních výrazech jste již slyšli. Co jsou?
My si ukážeme teorii, která je za nimi.
Je možné použít závorky.
K následujícím jazykům navrhněte regulární výrazy:
Ekvivalentní úpravy RV, které nezmění hodnotu RV:
$x + x = x$
$x + \emptyset = x$
$(xy)z = x(yz)$
$x^* = \varepsilon + x^*x$
$x^* + x = x^*$
($x^*+y^*)^* = (x+y)^*$
$x + y = y + x$
$x \emptyset = \emptyset x = \emptyset$
$x(y+z) = xy + xz$
$x^* = (\varepsilon + x)^*$
$(x^*)^* = x^*$
$(x + y) + z = x + (y + z)$
$x \varepsilon = \varepsilon x = x$
$(x + y)z = xz + yz$
$\emptyset^* = \varepsilon$
$(x+y)^* = (x^*y^*)^*$
Zjednodušte následující RV:
jedná se o desítky algoritmů
Najděte si další zdroje o TS. K čemu se používají?
Zjistěte, co jsou to třídy složitosti a jak se váží k TS.
Dokažte, zda platí $P = NP$.
Děkuji za pozornost!