23 giugno 2017
Rispondi prima di leggere la spiegazione. I termini sottolineati offrono un aiuto rapido.
- 1
Se scoprissimo che , sapremmo dire se esistono funzioni one-way?
- 2
Supponiamo . È vero che 2-SAT non è -completo?
- 3
È falso che ?
- 4
È falso che ?
- 5
?
- 6
DP non è strettamente contenuto in ?
- 7
Un problema risolubile in spazio non può essere risolto in spazio ?
Programmare una MdT deterministica a 2 nastri che controlla se una stringa è palindroma
| # | Stato | Legge₁ | Legge₂ | Nuovo stato | Scrive₁ | Mossa₁ | Scrive₂ | Mossa₂ | Commento | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 |
Prossima transizione (riga 1): δ(s, ▷, ▷) = (s, ▷, →, ▷, →) · supera l'inizio dei due nastri
La soluzione del file di questa traccia aggiunge all'inizio un controllo per la stringa vuota: non serve, perché la macchina qui sotto accetta già la stringa vuota.
La macchina deve riconoscere una stringa che si legge nello stesso modo da sinistra e da destra. Con 2 nastri, copia l'intero input sul secondo nastro (stato ), poi riporta la prima testina all'inizio e lascia la seconda in fondo alla copia (stato ). Infine confronta l'originale da sinistra con la copia da destra (stato ): alla prima differenza rifiuta, mentre se tutti i bit coincidono e le due letture terminano insieme accetta.
| Stato | letto₁ | letto₂ | nuovo stato | scritto₁, mossa₁ | scritto₂, mossa₂ | note |
|---|---|---|---|---|---|---|
| copia l'input | ||||||
| fine dell'input: la testina 2 resta dopo la copia | ||||||
| riavvolge il 1° nastro | ||||||
| testina 1 sulla prima cifra, testina 2 sull'ultima | ||||||
| cifre simmetriche uguali | ||||||
| cifre simmetriche diverse | ||||||
| finite insieme: palindroma |
In tutti gli altri casi rigetta. è un bit qualsiasi, riscritto uguale, e è il bit opposto. È la macchina della soluzione del file, ricontrollata: fa passi tra copia, riavvolgimento e confronto, e accetta anche la stringa vuota. La verifica con un simulatore copre tutte le stringhe fino a 10 bit.
Traccia passo passo su x = 010 (accetta) e su x = 011 (rigetta)
stato nastro 1 nastro 2
s [▷] 0 1 0 ⊔ [▷] ⊔ ⊔ ⊔ ⊔
s ▷ [0] 1 0 ⊔ ▷ [⊔] ⊔ ⊔ ⊔ copio 0
s ▷ 0 [1] 0 ⊔ ▷ 0 [⊔] ⊔ ⊔ copio 1
s ▷ 0 1 [0] ⊔ ▷ 0 1 [⊔] ⊔ copio 0
s ▷ 0 1 0 [⊔] ▷ 0 1 0 [⊔] fine dell'input
r ▷ 0 1 [0] ⊔ ▷ 0 1 0 [⊔] riavvolgo il nastro 1
r ▷ 0 [1] 0 ⊔ ▷ 0 1 0 [⊔]
r ▷ [0] 1 0 ⊔ ▷ 0 1 0 [⊔]
r [▷] 0 1 0 ⊔ ▷ 0 1 0 [⊔] inizio del nastro 1
c ▷ [0] 1 0 ⊔ ▷ 0 1 [0] ⊔ 0 = 0
c ▷ 0 [1] 0 ⊔ ▷ 0 [1] 0 ⊔ 1 = 1
c ▷ 0 1 [0] ⊔ ▷ [0] 1 0 ⊔ 0 = 0
c ▷ 0 1 0 [⊔] [▷] 0 1 0 ⊔ finiti insieme
yes
Su 011 i primi nove passi sono uguali. Al primo confronto la testina 1 legge 0 e la testina 2 legge l'ultima cifra, 1: le cifre sono diverse, quindi la macchina va in no.
Con il nondeterminismo si fa in tempo n
La macchina nondeterministica indovina dove finisce la prima metà e non deve riavvolgere: ogni ramo si ferma entro passi invece di .
Eseguila passo per passo
Prossima transizione: δ(s, ▷, ▷) = (s, ▷, →, ▷, →)
Mostra il codice della soluzione
s ▷ ▷ -> s ▷ R ▷ R s b ⊔ -> s b R b R # copia l'input s ⊔ ⊔ -> r ⊔ L ⊔ S # fine dell'input: la testina 2 resta dopo la copia r b ⊔ -> r b L ⊔ S # riavvolge il 1° nastro r ▷ ⊔ -> c ▷ R ⊔ L # testina 1 sulla prima cifra, testina 2 sull'ultima c b b -> c b R b L # cifre simmetriche uguali c b b̄ -> no b S b̄ S # cifre simmetriche diverse c ⊔ ▷ -> yes ⊔ S ▷ R # finite insieme: palindroma