Програмски преводиоци 1/К1 2015 — разлика између измена
м (Greška u prepisivanju) |
м (→Rešenje) |
||
| (Нису приказане 2 међуизмене другог корисника) | |||
| Ред 165: | Ред 165: | ||
=== Rešenje === | === Rešenje === | ||
* <S> → <A> | * <S> → a <A> | ||
* <S> → <B> | * <S> → b <B> | ||
* <S> → ε | |||
* <A> → a <A> | * <A> → a <A> | ||
* <A> → ε | * <A> → ε | ||
| Ред 177: | Ред 178: | ||
=== Rešenje === | === Rešenje === | ||
* <S> → a <S> | * <S> → a <S> <X> | ||
* <S> → a < | * <S> → a <M> <X> | ||
* < | * <M> → c <M> | ||
* < | * <M> → ε | ||
* <X> → b <C> | |||
* <C> → c <C> | |||
* <C> → ε | |||
== 4. zadatak == | == 4. zadatak == | ||
=== Postavka === | === Postavka === | ||
<div class="abc-list"> | <div class="abc-list"> | ||
# Na osnovu regularnog izraza <math>(a* | b*) c+</math>, konstruisati minimalni deterministički automat metodom pozicija. | # Na osnovu regularnog izraza <math>(a^* | b^*) c^+</math>, konstruisati minimalni deterministički automat metodom pozicija. | ||
# Nacrtati graf NKA dobijenog transformacijom regularnog izraza <math>(a* | b*)+</math> primenom Tompsonovog algoritma. Nije potrebno konstruisati minDKA. | # Nacrtati graf NKA dobijenog transformacijom regularnog izraza <math>(a^* | b^*)^+</math> primenom Tompsonovog algoritma. Nije potrebno konstruisati minDKA. | ||
</div> | </div> | ||
Тренутна верзија на датум 13. август 2025. у 16:05
Prvi kolokvijum 2015. godine održan je 25. oktobra i trajao je 90 minuta. Postavka je dostupna sa stranice predmeta (arhiva).
1. zadatak
Postavka
- Opisati korake generalnog postupka kojim se za dva proizvoljna deterministička automata sa istim ulaznim azbukama konstruiše automat koji prihvata sve sekvence koje prihvata i prvi automat i dodatno sve sekvence koje NE prihvata drugi automat (i nijednu više).
- Konstruisati minimalni deterministički konačni automat prema postupku opisanom pod a) za sledeća dva automata. Prikazati svaki korak postupka.
| x | y | Prihvata | |
|---|---|---|---|
| → 0 | 1 | 0 | 1 |
| 1 | 2 | 1 | 0 |
| 2 | 2 | 0 | 0 |
| x | y | Prihvata | |
|---|---|---|---|
| → A | B | A | 0 |
| B | A | B | 1 |
Rešenje
Generalni postupak konstruisanja takvog automata jeste da se dva deterministička automata samo spoje, nova početna stanja postaju početna stanja oba automata a na drugom automatu se obrne šta su stanja prihvatanja a šta neprihvatanja kako bi se prihvatale sekvence koje drugi automat ne prihvata. Kako se ovim postupkom dobija nedeterministički konačni automat, potrebno je pretvoriti nedeterministički u deterministički konačni automat. Početno stanje se sastoji od početnih stanja oba automata, a stanja prihvatanja su sva stanja koje sadrže neko od stanja prihvatanja prethodnih automata.
Ispod je prikazan postupak konverzije gorenavedenih automata.
| x | y | Prihvata | |
|---|---|---|---|
| → 0 | 1 | 0 | 1 |
| 1 | 2 | 1 | 0 |
| 2 | 2 | 0 | 0 |
| → A | B | A | 1 |
| B | A | B | 0 |
| x | y | Prihvata | |
|---|---|---|---|
| 0, A | 1, B | 0, A | 1 |
| 1, B | 2, A | 1, B | 0 |
| 2, A | 2, B | 0, A | 1 |
| 2, B | 2, A | 0, B | 0 |
| 0, B | 1, A | 0, B | 1 |
| 1, A | 2, B | 1, A | 1 |
| x | y | Prihvata | |
|---|---|---|---|
| A | B | A | 1 |
| B | C | B | 0 |
| C | D | A | 1 |
| D | C | E | 0 |
| E | F | E | 1 |
| F | D | F | 1 |
2. zadatak
Postavka
Konstruisati regularnu gramatiku koja generiše tačno iste sekvence kao regularni izraz a* | b*.
Rešenje
- <S> → a <A>
- <S> → b <B>
- <S> → ε
- <A> → a <A>
- <A> → ε
- <B> → b <B>
- <B> → ε
3. zadatak
Postavka
Napisati beskontekstnu gramatiku koja opisuje sve sekvence koje pripadaju sledećem jeziku: , gde predstavlja skup simbola alfabeta.
Rešenje
- <S> → a <S> <X>
- <S> → a <M> <X>
- <M> → c <M>
- <M> → ε
- <X> → b <C>
- <C> → c <C>
- <C> → ε
4. zadatak
Postavka
- Na osnovu regularnog izraza , konstruisati minimalni deterministički automat metodom pozicija.
- Nacrtati graf NKA dobijenog transformacijom regularnog izraza primenom Tompsonovog algoritma. Nije potrebno konstruisati minDKA.
Rešenje
| Pozicija | Sledeća pozicija |
|---|---|
| 1 | 1, 3 |
| 2 | 2, 3 |
| 3 | 3, 4 |
| 4 | - |
| a | b | c | Prihvata | |
|---|---|---|---|---|
| 1, 2, 3 | 1, 3 | 2, 3 | 3, 4 | 0 |
| 1, 3 | 1, 3 | 3, 4 | 0 | |
| 2, 3 | 2, 3 | 3, 4 | 0 | |
| 3, 4 | 3, 4 | 1 |