Info Corso

Teoria

Macchina di Turing

The Church-Turing Thesis Utilizzata per definire un problema risolvibile

  • nato per dare una definizione semplice di risolvibilitá
    • un qualsiasi computer puó essere ridefinito con una MdT equivalente
  • unico accesso alla memoria
    • come un nastro, legge dall’inizio fino alla fine
      • lenta
      • non é una architettura realmente implementabile

Caratterizzata da:

  • controllo
    • stati interni
      • che definiscono comportamenti diversi
  • memoria/tape
    • testa di lettura
    • alfabeto a scelta
  • l’Input é finito
  • la fine del Input é marcata con un simbolo speciale

A differenza degli Automi a Stati Finiti puó sovrascrivere, appunta per aiutarsi nell’esecuzione

  • una macchina di turing puó simulare qualsiasi macchina a differenza di un DFA

La Macchina di Turing essendo estremamente semplice é ottima per lo studio della Calcolabilitá

Definizione Formale

MT 1936 7-tupla

  1. : insieme di stati
  2. : alfabeto di Input non contenente il simbolo di blank
  3. : alfabeto del nastro
  4. : funzione di transizione
    • Left (<) / Right (>)
  • Lo stato di rifiuto non viene inserito, é sottointeso a ogni Input non riconosciuto una transizione allo stato di rifiuto, bloccante
  • Lo stato di StayPut é simulabile muovendosi continuamente e , raddoppiando gli stati
  • Il nastro infinito a destra e sinistra si simula sulle celle pari e dispari su un nastro infinito solamente a destra

Grafi

  1. Stringhe Uguali

  2. Stringa di 0 di lunghezza 2n

Macchine Turing a piú registri

Con piú tapes diventa molto piú semplice controllare stringhe, ci si avvicina nel comportamente ad una macchina di Von Neumann Il primo nastro é l’Input, gli altri sono registri

  • con simboli / tapes
  • é StayPut

Si puó simulare una MT a piú nastri con una MT ad un nastro solo

  • perché? per semplificare la definizione di calcolo
  • se un algoritmo a piú nastri é lineare su un nastro sará quadratico

Enumeratori

Sono TM che enumerano stringhe.

Si puó definire un enumeratore che enumeri un linguaggio se e solo se esiste una TM che riconosca (decida positivamente) il linguaggio Partiamo a dimostrare che se esiste un tale allora esiste una che riconosca il linguaggio enumerato

Possiamo definire su input :

  • simula
  • per ogni stringa enumerata da confrontala con
  • se é uguale accetta, altrimenti continua con la simulazione di

Da questa costruzione si evince che accetta solo le stringhe enumerate da e quindi nel linguaggio , riconosce .

Ora si dimostra l’altra direzione. Se riconosce il linguaggio definiamo un enumeratore :

  • ignora l’input
  • ripeti per
    • esegui per passi su
    • se accetta, stampa la accettata

Questa macchina di turing simula su tutte le stringhe che appartengono a per passi di simulazione, non terminando mai. In questa simulazione sostanzialmente si simula in parallelo la macchina su tutte le stringhe possibili in input (per un numero di passi di computazione sempre maggiore), stampando tutte e sole le accettate da . Viceversa se una stringa appartiene ad questa viene accettata in un numero finito di passi da , e quindi dato abbastanza tempo la stamperá. Quindi enumera il linguaggio .

Decidibilità

Per un DFA possiamo definire una TM M che lo simula e verifica l’accettazione o meno dell’Input Decidable - Turing-recognizable

  • NFA convertibili
  • RegEx convertibili

Definizioni

Sia un linguaggio definito sull’alfabeto , e quindi sottoinsieme di Allora :

  • Decidibile, esiste una che decide
    • : accetta
    • : non accetta
  • Positivamente Decidibile (riconoscibile)
    • : accetta
    • : non accetta o non termina
  • Negativamente Decidibile
    • : accetta o non termina
    • : non accetta

Allora definiamo linguaggio complemento di Per i linguaggi complemento si scambiano decidibilitá positiva e decidibilitá negativa:

  • decidibile decidibile
  • positivamente decidibile negativamente decidibile
  • negativamente decidibile positivamente decidibile

Esistono indebolimenti del decisore, ovvero decisori parziali

Teorema di Post

4.22 Linguaggio decidibile é positivamente e negativamente decidibile

  • termina sempre
  • é un decisore che simula e in parallelo
    • il primo che termina decide

Riformulando

  • un linguaggio é decidibile esattamente quando esso e il suo complemento sono positivamente decidibili

Si dimostra prima una direzione e poi l’altra della bi-implicazione

    • Se é decidibile allora segue direttamente che e sono positivamente decidibili
      • per definizione di decidibilitá e complemento di un linguaggio
    • Se e sono positivamente decidibili, definiamo e , decisori positivi di uno e dell’altro
    • Si definisce , decisore di
      • Su input :
        1. Esegui e sull’input in parallelo
        2. Se accetta, accept; se accetta, rifiuta
    • Ogni stringa appartiene a o
      • Segue che per qualsiasi input una tra e deve accettare
    • termina quando una tra e accetta
      • Segue che termina sempre, quindi é un decisore
    • Inoltre accetta tutte le e rifiuta tutte le , quindi é un decisore per
      • quindi é decidibile in quanto ne esiste un decisore

Mapping Reducible Language

Il Linguaggio é mapping reducible al linguaggio :

se esiste una funzione computazionale tale che:

Seguono i corollari:

  • Se e é decidibile é decidibile
    • si dimostra costruendo la funzione e poi eseguendo sull’input trasformato
    • stessa dimostrazione per la decidibilitá positiva
  • Se e non é positivamente decidibile non é positivamente decidibile
    • Supponendo
        • ma se fosse negativamente decidibile (quindi positivamente decidibile) allora per la proprietá di cui sopra sarebbe negativamente decidibile
        • Ma non puó esserlo, altrimenti sarebbe decidibile per il Teorema di Post: contraddizione.

Macchina di Turing Universale

  1. Simula su
  2. Se accetta, accetta; se rifiuta, rifiuta

Se cicla, cicla di conseguenza

La macchina universale é definita a partire da codificando in un alfabeto binario tutti i simboli di . La macchina é definita utilizzando un alfabeto , quindi un qualsiasi stato o simbolo di sará convertibile in una stringa binaria Nelle tape di tutti i simboli sono delimitati da #.

Queste codifiche sono utilizzate nelle 5 tape di , definite in questo modo:

  1. la funzione di transizione di , questa tape é read-only e qui sono listate tutte le transizioni di nella forma dove sono simboli di e sono o
  2. lo stato corrente di ,
  3. lo stato accettante di ,
  4. lo stato di rifiuto di ,
  5. la tape di simulazione di

La macchina universale procede leggendo lo stato corrente di e il simbolo che si trova sotto la testina di lettura di nella tape 5. Quindi scorre le quintuple nella prima tape, se non trova una corrispondenza rifiuta. Se trova una corrispondenza allora sovrascrive la tape 2 con il nuovo stato indicato dalla funzione di transizione e sovrascrive nella tape 5 con la nuova indicata dalla transizione e aggiungendo un divisore #. fatto questo simula il movimento a destra o a sinistra della testina di spostandosi nella direzione indicata fino ad un #.

Problemi Decibidili

  • decidibile studiando i percorsi nel grafo delle transizioni

  • automa che descrive la differenza simmetrica dei linguaggi
  • si riduce a

  • tempo di accettazione
  • non c’é problema di fermata

Problemi Indecidibili

Per molti problemi si utilizza la tecnica della riduzione

  • se un problema che sappiamo non decidibile si puó ridurre al problema che stiamo studiando allora anche questo non sará decibidile
  1. Eguaglianza Chompsky

  2. Accettazione 4.11 Problema positivamente decidibile

    Si procede per diagonalizzazione utilizzando due TM di supporto e

    • simulabile con una macchina di Turing universale

      • macchina capace di simulare qualsiasi macchina utilizzando 5 tape
    • si osserva l’esecuzione che non termina Si prova utilizzando la tecnica della diagonalizzazione scoperta dal matematico Georg Cantor nel 1873

    • iniezione - suriezione (biezione)

      • corrispondenza 1 a 1
    • prova che non esiste una enumerazione per un dato insieme di numeri

      • per i Reali si cambia nella ennesima enumerazione la ennesima cifra dopo la virgola
        • si trova cosí un numero che differisce per una cifra da tutti i numeri enumerati
    • esistono infinite terne Si definiscono delle MT di supporto:

    • supponiamo che H esista, e accetti se M accetta w e rifiuti altrimenti
    • D prende in input una macchina M e con un decisore H che decide M con input la propria descrizione , accetta se H rifiuta e viceversa, continua con altre macchine
      • diagonalizza infinite macchine M Allora si procede diagonalizzando con applicato a
    • dovrebbe rifiutare se accetta
    • dovrebbe accettare altrimenti
      • non puó terminare perché per terminare avrebbe bisogno di dare la risposta opposta di se stesso Abbiamo raggiunto una contraddizione
  3. Immortalitá 4.23 positivamente decidibile negativamente decidibile per T.Post

    • Falso per 4.11
  4. Fermata 5.1 Il problema della decisione per si riduce al problema della decisione per se sappiamo trasformare un decisore per in un decisore per

    • Per contraddizione. Supponiamo esista una TM che decida la fermata, definiamo una TM che decide l’accettazione. Ma l’accettazione non é decidibile. Definiamo su input :

    • Se accetta procedi, altrimenti rifiuta

    • Simula su , se accetta fa altrettanto, altrimenti rifiuta in quanto se accetta significa che termina, accettando o rifiutando. Se diverge non appartiene al linguaggio riconosciuto da e puó rifiutare. Per ció accetta tutte e sole le stringhe in , ovvero riconosciute da .

    Ma questa é una contraddizione in quanto si dimostra che non é decidibile.

  5. Decibidilitá dei Linguaggi di Chompsky Simboli, Produzioni, Terminali Un linguaggio definibile da una grammatica in forma normale di Chompsky é detto context-free Si dimostra che il numero di passi per derivare una stringa di lunghezza é

    Questo implica che il problema é decidibile, anche se in tempo esponenziale

    • si scrivono sulla tape 2 tutte le deduzioni di lunghezza

    • si controlla la correttezza una ad una, se ne si trova una corretta e che corrisponde accettiamo, altrimenti continuiamo, se alche l’ultima non va bene rifiutiamo Per ridurre la complessitá si utilizza la programmazione dinamica

    • ci si appunta i risultati intermedi

  6. Emptyness 5.2 Si dimostra per assurdo, se esistesse si potrebbe risolvere l’accettazione

    • si riduce a

      • Per contraddizione. Supponiamo esista una tale che decida la emptyness, dato una stringa di input si modifica per accettare solo questa stringa. Definiamo , su input :
    • se rifiuta

    • altrimenti accetta Questa macchina decide il linguaggio che contiene la sola stringa .

    Allora , su input :

    • costruisce la modificata come specificato
    • esegue su , se accetta allora rifiuta, e viceversa In questo modo abbiamo ridotto l’accettazione alla emptyness: rifiuta se e solo se accetta , e quindi il linguaggio riconosciuto da non é vuoto. Viceversa se rifiuta allora accetterá in quanto riconosciuta da é il linguaggio vuoto. Quindi decide l’accettazione. Contraddizione in quanto l’accettazione é non decidibile.
  7. Equality 5.4 Intesa tra due MT

    • se sapessi deciderla potrei decidere anche l’Emptyness

      • In quanto é considerabile un caso particolare di
      • tra una macchiana e la macchina che rifiuta sempre Anche per i reali:
    • calcoli diversi portano anche arrotondamenti diversi, per questo reali rigorosamente uguali possono risultare diversi

      • e di conseguenza anche il < e il > Si dimostra per riduzioni:
      • questo indica che non puó essere negativamente decidibile
      • spostiamo al decidibilitá a
      • questo indica che non puó essere positivamente decidibile Ora basta raggiungere queste conclusioni per chiudere la dimostrazione.
    1. Definisco una macchina che implementa la funzione che riduce a

      • se allora accetta
        • rifiuta sempre
          • prende e lo ignora
          • esegue su e accetta se accetta
    2. Definisco una Macchina che implementa la funzione che riduce a

      • se allora non accetta
        • accetta sempre
          • prende e lo ignora
          • esegue su e accetta se accetta
  8. Corrispondenza di Post PCP - 4.22

    Questo problema (domino) contiene la Macchina di Turing

    • in quanto corrisponde alla visualizzazione della Configurazione di una TM
      • visualizzando la storia del calcolo della macchina Si definisce un Modified Post Correspondance Problem:

    Si decide che il primo elemento dell’insieme deve essere utilizzato all’inizio

    • sopra abbiamo passi di calcolo

    • sotto abbiamo passi di calcolo Questi domini rappresentano le funzioni di transizione attraverso le configurazioni della TM

    • compresi i pezzi dei singoli simboli, che si mantengono da un istante all’altro se non toccati dalla trasformazione di stato

        • utilizzato quando lo stato deve spostarsi a destra oltre l’ultimo simbolo Si devono definire dei domino per l’accettazione, che faccia match: Per arrivare a questo accept:
  9. Tassellazione - Wang Tiles Wikipedia Solo negativamente decidibile

    • le tassellazioni aperiodiche sono utilizzate per la sintesi procedurale di texture, heightfields Si dimostra che non é positivamente decidibile in quanto

    • procedendo in maniera non deterministica, il caso di non-rifiuto indica che un albero della computazione ha per caso scelto la configurazione corretta per risolvere il problema della tassellazione

    • la computazione non deterministica si ferma solo in caso di rifiuto di tutti i rami non deterministici, quindi se la computazione non si ferma si dovrebbe accettare

  10. Esistenza di un DFA equivalente 5.3

Configurazione di una TM

configurazione di 1011q701111

Recap

  • Negativamente Decidibili
  • Decidibili
  • Positivamente Decidibili
  • Né negativamente né positivamente decidibili
      • se un programma accetta sempre

Complessità Temporale

Trattata nel corso di Algoritmi: Complessitá di un algoritmo Per lo studio della complessitá consideriamo la Macchina di Turing (1 registro)

  • questo in quanto la complessitá varia anche in base all’architettura

Il tempo di calcolo della macchina é definito come

dove é il numero massimo di passi compiuti dalla macchina

Si utilizza la notazione asintotica o big-O Notation

Generalmente:

  • classe dei linguaggi la cui appartenenza puó essere decisa velocemente
  • classe dei linguaggi la cui appartenenza puó essere verificata velocemente

Non si é riuscita a provare l’esistenza di un singolo linguaggio che non sia in

Piú grande problema aperto:

P

Teorema 7.8 Sia una funzione t.c. qualsiasi macchina multitape con tempo ha un equivalente in una macchina singletape

  • chiaro riprendendo la simulazione di multitape in singletape
  • un passo della simulazione singletape impiega al massimo passi

La classe di tempo Polinomiale é definito come

Non Determinismo

Teorema 7.11 Sia una funzione dove . Allora ogni TM singletape non deterministica con complessitá temporale ha una equivalente TM determinitistica , nel caso di una macchina multiregistro Per una TM deterministica a registro singolo si avrá sempre complessitá `2^{O(t(n))}^2 = 2^{O(t(n))}`

L’esplorazione dell’albero non deterministico é svolto utilizzando l’ordine lessicografico

  • in profonditá
  • questo é posto nell’address tape della macchina deterministica corrispondente
  • a livello l’albero ha massimo nodi con numero di possibili figli
  • il numero di passi necessari all’esplorazione dell’albero é
    • profonditá dell’albero
  1. Raggiungibilitá La soluzione banale non deterministica ha esponenziale

    Con un algoritmo marcando i nodi man mano che vengono scoperti si raggiunge complessitá polinomiale

    • rappresentando il grafo con liste di adiacenza la si puó stimare nel numero di archi
  2. Algoritmo di Euclide , il MCD tra due numeri Relativamente Primi é 1 quindi procediamo:

    I passi sono eseguiti ovvero proporzionali al numero di cifre nella rappresentazione binaria: quindi polinomiale

  3. Grammatiche di Chompsky Per migliorare la complessitá si cerca di derivare tutte le sottostringhe di lunghezza crescente della stringa di input

    • si memorizzano le soluzioni delle sottostringhe
      • per ogni sottostringa la si divide in sottostringhe e si guarda la soluzione delle sottostringhe
      • in una rappresentazione matriciale la soluzione si trova nella riga precedente
    • ogni controllo richiede in quanto le sottostringhe sono sempre riconducibile ai siboli terminali Con questo algoritmo si raggiunge

NP

Un linguaggio é NP é deciso da un algoritmo non deterministico polinomiale Un NTM equivale a TM

  • da tempo polinomiale a tempo esponenziale

Un linguaggio é NP se dispone di un verificatore in tempo polinomiale, detto allora polinomialmente verificabile

Def 7.18 Un verificatore é una macchina di turing tale che per un linguaggio :

    • riguarda i dati del problema
    • riguarda le istruzioni della TM, un candidato di soluzione o almeno ci é legato in qualche maniera
      • potrebbe essere anche il cammino della macchina non deterministica
      • la address tape nella simulazione deterministica di una macchina non deterministica
  • si misura il tempo di un verificatore solo in funzione della lunghezza di
    • un verificatore polinomiale esegue in tempo polinomiale secondo la lunghezza di

Prova 7.20 Il determinismo con certificato utilizzando é convertito in non determinismo trovando il in maniera non deterministica di lunghezza massima (dove questo é il polinomio di complessitá)

Si dimostra quindi che le due definizioni sono equivalenti in quanto é sempre possibile convertire un polinomiale in una polinomiale non deterministica e viceversa.

  1. NP-completo Un linguaggio é se soddisfa le seguenti condizioni:

      • si riduce in tempo polinomiale a Ci sono quindi due possibilitá che si escludono l’un l’altra:
    • Tutti i problemi non sono polinomiali La classe descrive i problemi piú difficili in
  2. Teorema di Cook-Levin Problemi in la cui complessitá é legata a quella dell’intera classe sono detti Il problema della soddisfatibilitá (satisfiability problem) fa parte di questa classe

    • Una formula booleana é soddisfacibile se qualche assegnamento di 0 e di 1 fa si che la formula risulti 1
    • é una formula booleana soddisfacibile 7.27

    Questo teorema é implicato da 7.37: é é

    • NB - Per provare la si procede da al problema in particolare
  3. Hamilton’s Path Percorso che percorre tutti il grafo a partire da arrivando in senza ripetizioni. Si percorre il grafo non deterministicamente

    • si scartano tutti i rami in cui il primo nodo non é o non é l’ultimo
    • si scartano i rami in cui ci sono ripetizioni Non conosciuto algoritmo in

  4. Compositeness Un numero composto é un numero non primo. Esiste un algoritmo polinomiale per verificare se un numero é composto o meno ma non per trovare la sua scomposizione (o almeno non lo si é trovato) Quindi:

  5. Clique 7.32 Grafo non orientato, fornito un

    • si richiede un sottografo in cui 2 qualunque nodi distinti sono connessi di un arco Non si sa se esistono algoritmi polinomiali

    É

    Data una formula con clausole del tipo

    • Si definisce la riduzione per cui

    • genera la stringa , dove é un grafo non orientato

    • i nodi di sono raggruppati in triplette

    • gli archi di connettono tutti i nodi tranne:

      1. nodi della stessa tripletta
      2. due nodi contraddittori, come e Si dimostra che Quindi
  6. Subset-Sum 7.56 dove esistono tali che

    Si dimostra facilmente che questo é definendone un verificatore polinomiale oppure una TM non deterministica polinomiale che lo definisca.

    é

    La prova procede per riduzione polinomiale da a , convertendo elementi e strutture del problema che rappresentano variabili e clausole booleane.

Complessità Spaziale

8.1 Data la TM che termina sempre. Si dice complessitá spaziale di la funzione , dove é il massimo numero di celle di nastro che la passa su un qualsiasi input di lunghezza

Classi

8.2 Data . Le classi di complessitá spaziale e , sono definiti come:

  • é decidibile da una TM deterministica in spazio
  • é decidibile da una TM non deterministica in spazio

é la classe di linguaggi che sono decidibili in spazio polinomiale da una TM deterministica

Da 8.5 segue che

In sommario:

Questo perché:

  • in quanto una macchina in passi puó esplorare al massimo celle di memoria
  • , una machina in puó eseguire passi senza ripetersi al massimo

    f(n)\cdot 2^{O(f(n))} = \bigcup_k \textsc{time}(2^{n^k) , dopo di che é in loop

Qualsiasi di queste inclusioni potrebbero essere eguaglianze, ma non sono state trovate prove a riguardo.

Inoltre si definiscono le classi sottolineari:

E si dimostra:

Teorema di Savitch

8.5 Per qualsiasi funzione , dove ,

Il passaggio da non determinismo a determinismo per il tempo é piú impegnativo che per lo spazio, lo spazio é piú potente in quanto puó essere riutilizzato, al contrario del tempo.

  • l’equivalente deterministico di una macchina non deterministica polinomiale ha:
    • Tempo
    • Spazio

Da questo teorema segue che in quanto il quadrato di un polinomiale é ancora polinomiale.

GG

Gioco Generalizzato della Geografia

  • il gioco consiste nel spostarsi in un grafo i cui nodi sono nomi di cittá
  • gli archi vanno da un cittá il cui nome finisce con una certa lettere a un nodo/cittá che inizia per data lettera
  • ci sono due giocatori che partono da una data cittá
  • a turno scelgono un arco da percorrere, perde chi non puó scegliere un arco entrante in un nodo giá visitato

Si dimostra che é definendo una funzione ricorsiva detta di Von Neumann una volta fissato il grafo

  • vero se esiste una strategia vincente a partire da per il giocatore , che porta quindi ad una configurazione in cui non esiste una mossa per il giocatore che non violi le regole

Altro risultato della teoria é che é , quindi se si scoprisse un algoritmo in tempo polinomiale che risolva questo dimostrerebbe che:

  • .

In quanto per il teorema di Savitch .

Questa ipotesi é ritenuta improbabile, anche se non si puó escludere.