15 giugno 2017, prova 13
Rispondi prima di leggere la spiegazione. I termini sottolineati offrono un aiuto rapido.
- 1
Supponiamo . È vero che non esistono riduzioni da a ?
- 2
Le riduzioni per i function problems sono come quelle per i problemi di decisione?
- 3
È vero che non è NP-completo?
- 4
?
- 5
Nondet. spazio det. spazio ?
- 6
QSAT è 2-EXP-completo?
- 7
?
Programmare una MdT che moltiplica una cifra binaria per 2
| # | 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 moltiplicare per 2 il numero binario sul nastro. Raggiungi la prima cella vuota, scrivi 0 e termina in . Aggiungere uno 0 a destra equivale a moltiplicare per 2: , cioè .
Traccia su input 101 (= 5):
▷ 1 0 1 [⊔] s : fine input (dopo "vai in fondo"): scrivo 0 e mi fermo
▷ 1 0 1 [0] h : risultato 1010 = 10 = 2 · 5 ✔
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 ⊔ -> h 0 S # fine input: scrive 0 e si ferma