30 maggio 2016, prova 02
Rispondi prima di leggere la spiegazione. I termini sottolineati offrono un aiuto rapido.
- 1
È vero che MAX FLOW non è EXP-hard?
- 2
Anche se e , non è detto che
- 3
È vero che CLIQUE non appartiene a NEXP?
- 4
coNP non è strettamente contenuto in L?
- 5
?
- 6
Esistono problemi in nondet. spazio non in det. tempo ?
- 7
Supponete che non sia PH-hard. ?
Programmare una MdT che calcola il resto della divisione per 2 di una cifra binaria
| # | Stato | Legge | Nuovo stato | Scrive | Mossa | Commento | ||
|---|---|---|---|---|---|---|---|---|
| 1 | ||||||||
| 2 | ||||||||
| 3 |
Da controllare
- Riga 3: lo stato q non ha righe: lì la macchina si blocca e rigetta
Prossima transizione (riga 1): δ(s, ▷) = (s, ▷, →) · supera l'inizio del nastro
La macchina deve lasciare sul nastro solo il resto della divisione per 2, cioè 0 oppure 1. Leggi l'ultima cifra e ricordala nello stato o , cancella il numero tornando a sinistra e poi scrivi la cifra ricordata nella prima cella.
Nella tabella vale 0 o 1: le righe con e descrivono entrambi i casi.
| commento | |||
|---|---|---|---|
| fine input | |||
| ricorda 0 | |||
| ricorda 1 | |||
| cancella le altre cifre | |||
| inizio del nastro | |||
| scrive il resto |
Traccia su input 101 (= 5):
▷ 1 0 1 [⊔] s : fine input, torno indietro
▷ 1 0 [1] ⊔ q : l'ultima cifra è 1: la ricordo (c1) e la cancello
▷ 1 [0] ⊔ ⊔ c1 : cancello
▷ [1] ⊔ ⊔ ⊔ c1 : cancello
[▷] ⊔ ⊔ ⊔ ⊔ c1 : sono all'inizio
▷ [⊔] ⊔ ⊔ ⊔ w1 : scrivo la cifra ricordata e mi fermo (h)
risultato 1 = resto di 5 diviso 2 ✔
Se il testo chiedesse invece una macchina di decisione ("accetta i numeri pari"), basterebbero le righe e .
Nella tabella sono sottintese le righe del blocco «vai in fondo»: e . La macchina va in fondo all'input e, sulla prima cella vuota, comincia la parte propria di ogni esercizio.
Eseguila passo per passo
Prossima transizione: δ(s, ▷) = (s, ▷, →) · supera l'inizio del nastro
Mostra il codice della soluzione
s ▷ -> s ▷ R # supera l'inizio del nastro s b -> s b R # vai in fondo s ⊔ -> q ⊔ L # fine input q 0 -> c0 ⊔ L # ricorda 0 q 1 -> c1 ⊔ L # ricorda 1 c0 b -> c0 ⊔ L # cancella le altre cifre c1 b -> c1 ⊔ L c0 ▷ -> w0 ▷ R # inizio del nastro c1 ▷ -> w1 ▷ R w0 ⊔ -> h 0 S # scrive il resto w1 ⊔ -> h 1 S