Teoria della Complessità Computazionale. Accettazione/riconoscimento di linguaggi in tempo/spazio

Documenti analoghi
acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

Calcolabilità e Complessità. Schifano S. Fabio

MACCHINE DI TURING defnizione formale del concetto astratto di algoritmo accettare riconoscimento parziale di tutti i linguaggi di tipo 0

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Introduzione Problemi e codifiche Classe P e linguaggi Da NP a NP-C Il mondo NP-C Conclusioni. NP-Completezza

PARTE I APPROFONDIMENTI SULLA COMPLESSITA COMPUTAZIONALE: LE CLASSI P E PSPACE

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

Problemi computazionali

Informatica Teorica. Macchine a registri

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Parole note, nuovi significati: linguaggio, determinismo e infinito

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Le parole dell informatica: modello di calcolo, complessità e trattabilità

Linguaggi Regolari e Linguaggi Liberi

Diario delle Lezioni del Corso di Algoritmimodulo

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Linguaggi Regolari e Linguaggi Liberi

Macchine a registri RAM (Random Access Machines)

Problemi, istanze, soluzioni

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Il concetto di calcolatore e di algoritmo

Note aggiuntive al corso di Informatica Teorica a.a

PARTE III MACCHINE A REGISTRI

Note sulle classi di complessità P, NP e NPC per ASD (DRAFT)

PARTE III MACCHINE A REGISTRI

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Tempo e spazio di calcolo

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Algoritmi e Principi dell Informatica

11.4 Chiusura transitiva

Algoritmi e strutture di dati 2

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

La Macchina RAM Shepherdson e Sturgis (1963)

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Progettazione di Algoritmi

2.2 Alberi di supporto di costo ottimo

Cammini minimi fra tutte le coppie

UNA GERARCHIA DI MACCHINE

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Le parole dell informatica: algoritmo e decidibilità

La macchina universale

Proprieta dei Linguaggi regolari

Parte V: Rilassamento Lagrangiano

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Anno accademico 2001/2002

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen

Le grammatiche formali

Algoritmi e Principi dell Informatica

Minimo albero di copertura

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

Pumping lemma per i linguaggi Context-free

Proprietà delle notazioni asintotiche

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3.4 Metodo di Branch and Bound

Lucchetto con combinazione (3 numeri tra 0 e 39)

Appunti di Teoria descrittiva della complessità. Alessandro Achille, Giovanni Paolini

Teoria della Complessità Concetti fondamentali. la teoria della complessità computazionale tenta di rispondere a domande del tipo

Costruzione di espressioni regolari 4

Laurea Specialistica in Informatica - Università di Ferrara [1]

La codifica digitale

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

Complessità e Approssimazione

Progettazione di Algoritmi

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Macchine di Turing e Complessità

Algoritmi e Strutture Dati

Codifica binaria. Rappresentazioni medianti basi diverse

ITLCC 2006/10/6 19:09 page 7 #3

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

1 Funzioni reali di una variabile reale

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

La teoria dei grafi permette di esprimere in modo sistematico le LKT e LKC con i metodi della

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

0.1 Esercizi calcolo combinatorio

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

Ingegneria della Conoscenza e Sistemi Esperti Lezione 9: Evolutionary Computation

Introduzione ai problemi NP-completi

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Alternanza, parallelismo e complessità

1. equivalenze e implicazioni logiche. Esercizio 1.2. Trovare le implicazioni che legano i seguenti enunciati (x, y R):

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Algoritmi (9 CFU) (A.A )

Lucchetto con combinazione (3 numeri tra 0 e 39)

a + 2b + c 3d = 0, a + c d = 0 c d

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Aniello Murano Overview del corso

Laurea in Informatica e Tecnologie per la Produzione del Software Corso di Analisi Matematica Successioni e loro limiti

LA COMPLESSITA DEGLI ALGORITMI

5) Equazioni di ricorrenza

Esercizi sulla complessità di frammenti di pseudo-codice

La tesi di Church-Turing

Aniello Murano Decidibilità delle teorie logiche

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

Tipologie di macchine di Turing

Il problema di P e NP

Macchine sequenziali. Automa a Stati Finiti (ASF)

Transcript:

Teoria della Complessità Computazionale. Obiettivo: classifcare i problemi (risolubili con algoritmi) in base alle risorse di calcolo che richiedono per essere risolti. Risorse: tempo e spazio (memoria) di calcolo. Modelli di calcolo: per lo più MT multinastro con nastro di input di sola lettura. Risultati fondamentali: relazioni tra modelli di macchina relazioni tra determinismo e nondeterminismo relazioni tra spazio e tempo gerarchie di classi caratterizzazione dei problemi trattabili (risolubili effcientemente in pratica) e dei confni del concetto di trattabilità computazionale NP-completezza. Accettazione/riconoscimento di linguaggi in tempo/spazio Def. M (det. o nondet.) accetta una stringa x in τ passi se dalla confgurazione iniziale si arriva ad una fnale in al più τ passi. Def. M (det. o nondet.) accetta un linguaggio L in tempo t(n) se accetta L e se accetta stringhe di lunghezza n in t(n) passi. Def. L è accettabile in tempo t(n) (det. o non det.) se esiste una macchina deterministica (o non deterministica) che lo accetta in tempo t(n). Def. M (det.) rifuta una stringa x in τ passi se dalla confgurazione iniziale arriva ad una massimale non fnale in al più τ passi. Def. M (det.) riconosce (decide) un linguaggio L in tempo t(n) se ogni stringa di lunghezza n viene accettata in t(n) passi se appartiene ad L e rifutata in t(n) passi se non appartiene ad L Def. L è decidibile in tempo t(n) se esiste una macchina deteministica che lo decide (riconosce) in tempo t(n). Oss. Identiche defnizioni valgono per lo spazio di lavoro utilizzato, che non include le celle utilizzate per la rappresentazione dell input. Lo spazio di lavoro utilizzato è defnito su A. come il numero totale di celle utilizzate sui nastri di lavoro, mentre su H. come il numero massimo di celle utilizzate sui nastri di lavoro.

Data una funzione f: N ->N possiamo defnire le seguenti classi di complessità: DTIME (f(n)): insieme dei linguaggi riconosciuti da una MTM deterministica in tempo al più O(f(n)); DSPACE (f(n)): insieme dei linguaggi riconosciuti da una MTM deterministica in spazio al più O(f(n)). NTIME (f(n)): insieme dei linguaggi accettati da una MTM non deterministica in tempo al più O(f(n)); NSPACE (f(n)): insieme dei linguaggi accettati da una MTM non deterministica in spazio al più O(f(n)). N.B. Se ci riferiamo a modelli di macchina diversi dalle macchine di Turing multinastro con nastro di input di sola lettura dobbiamo indicarlo esplicitamente. Classi di complessità notevoli Per queste due classi il modello di MT ha nastro di input di sola lettura e nastro di output di sola scrittura: L = LOGSPACE = DSPACE(log n) NLOGSPACE = NSPACE(log n) P = k DTIME (nk) PSPACE = k DSPACE(nk) NP = k NTIME (nk) NPSPACE = k NSPACE(nk) EXPTIME = k DTIME(2nk ) NEXPTIME = k NTIME(2nk ) Separazione tra le classi spaziali e temporali. Def. Una funzione totale non decrescente f: N N è chiamata: - tempo- costruibile se: - esiste una MTM che per ogni istanza di lunghezza n si ferma dopo aver eseguito esattamente f(n) passi - f(n) n+1 Informalmente si può dire che la MTM sa contare esattamente fno a f(n). - spazio-costruibile se: - esiste una MTM che per ogni istanza di lunghezza n si ferma dopo aver usato esattamente f(n) celle di lavoro - f(n) log 2 (n+1) Informalmente si può dire che la MTM sa marcare esattamente f(n) celle, senza utilizzarne altre. Praticamente tutte le funzioni che crescono suffcientemente sono sia tempo che spazio costruibili. Se f e g lo sono, lo sono anche f+g, f*g, f g ; anche n k, k 1 è sia tempo che spazio costruibile.

Relazioni tra modelli di macchina DTIME (t(n)) DTIME RAM (t(n) log(t(n))) mod. costi log. pag.258 DTIME RAM (t(n)) DTIME (t 2 (n)) pag.259 Relazioni tra spazio e tempo di MTM deterministiche DTIME (t(n)) DSPACE (t(n)) Ogni passo può al più richiedere una nuova cella di memoria. DSPACE (s(n)) DTIME (c s(n) ) s(n) log 2 (n+1), c N Su una quantità s(n) di nastro una MTM con k nastri di lavoro può al più operare per t' passi distinti con t' (n+1) s(n) k Q Γ b s(n) 2 s(n) s(n) k Q Γ b s(n) c s(n), con la costante c che dipende dal numero di stati e di caratteri della macchina. N.B. Queste relazioni valgono anche per MTM non deterministiche. Relazioni tra macchine non deterministiche e deterministiche NTIME (t(n)) DTIME (t(n) 2 t(n) ) pag.219 Basta ricordare il risultato del teorema relativo alla simulazione di una macchina nondeterministica con una deterministica [..Se M accetta una stringa x in t passi, M' la accetta in O(t d T) passi] ed osservare che è possibile usare sempre grado di non-determinismo d = 2. NTIME (t(n)) DSPACE (t(n)) con t(n) tempo-costruibile pag.337 Dim. Sia d = 2 il grado di non-det. della macchina non deterministica. La macchina deterministica, che simula quella non deterministica, usa sul nastro dei percorsi uno spazio di lavoro t(n) e, per ogni possibile percorso, simula esattamente t(n) passi della macchina non deterministica usando spazio O(t(n)); lo stesso spazio può essere riutilizzato in tutti i cammini di computazione. Cosa possiamo dire per lo spazio dal modello non det. a quello det.? Innanzitutto che: NSPACE (s(n)) DSPACE (c s(n) ) se s(n) log 2 (n+1) Infatti se la macchina non det. usa s(n) celle e compie t(n) passi, allora la macchina deterministica che effettua la simulazione usa sul nastro dei percorsi s'(n) t(n) celle (se d=2) e sull altro nastro di lavoro usa s(n) celle, per un totale di t(n) + s(n) celle. D'altra parte se la macchina nondeterministica usa s(n) celle tutto ciò che possiamo dire sul suo tempo (v. rag. prec.) e' che t(n) c s(n). Il teorema di Savitch dice che possiamo fare molto meglio. Vanno prima dimostrati il lemma seguente (Lemma 8.3 a pag 330) e la complessità del problema decisionale seguente.

Lemma (pag. 330): Sia M una MT (det/non det) che accetta L in spazio s(n), s(n) spazio-costruibile. Esiste una MT M' (det/non det) con un nastro in più che accetta L in spazio O(s(n)) e che si ferma per ogni input. Il problema decisionale dell'esistenza di un cammino orientato da un nodo s ad un nodo t in un grafo orientato di n nodi ed m archi si può risolvere, nel modello RAM a costi uniformi, in tempo O(m+n) oppure con spazio di lavoro O(log n). Ne seguono i due risultati seguenti. Teorema di Savitch. NSPACE (s(n)) DSPACE (s(n) 2 ) se s(n) spazio-costruibile pag.339 Infne dimostriamo anche che: NSPACE (s(n)) DTIME (c s(n) ) c N, se s(n) spazio-costruibile pag.336 Teoremi di gerarchia Siano s1, s2 due funzioni : N N, s2 spazio-costruibile, tali che: lim n s1(n) / s2(n) = 0 Allora esiste un linguaggio L tale che: L DSPACE(s1(n)) ma L DSPACE(s2(n)). Siano t1, t2 due funzioni : N N, t2 tempo-costruibile, tali che: limn t1(n)(log t1(n)) / t2(n) = 0 Allora esiste un linguaggio L tale che: L DTIME(t1(n)) ma L DTIME(t2(n)). Gerarchia delle classi di complessità notevoli E aperto se le inclusioni della gerarchia sono proprie. Alcune devono esserlo poiché, grazie ai teoremi di gerarchia, possiamo affermare le seguenti separazioni tra classi: i) P EXPTIME ii) LOGSPACE PSPACE Le relazioni tra macchine deterministiche e non deterministiche e il teorema di Savitch ci permettono di asserire che: iii) PSPACE = NPSPACE iv) P NP Infne le relazioni tra classi spaziali e classi temporali ci permettono di asserire che: v) PSPACE EXPTIME vi) NP NPSPACE = PSPACE vii) LOGSPACE P NB Per classi di tempo esponenziale, con n = 10, 2n2 = 2100; se l unità fosse di 10 ns. il tempo sarebbe 1014 secoli.

Classi di complessità più elevate Classi doppiamente esponenziali 22 n (per n = 10, 22 n = 21000); complessità della decisione di teoremi dell'aritmetica di Presbuger Classi triplamente, quadruplamente...esponenziali 222... 2n (sono chiamate funzioni elementari le funzioni che, per input n, richiedono tempo 222... 2n con una catasta di k esponenziali) Classi che, per input n, richiedono tempo: 222...2 con una catasta di n esponenziali: complessità di decisione dell'equivalenza di espressioni regolari con negazione. NB Siamo ancora nel campo delle funzioni ricorsive primitive. Tipi di problemi Data una funzione f: I P (O) che associa ad una istanza x I un insieme f(x) di possibili output possiamo considerare i problemi di: calcolo: dato x I determinare f(x) decisione: dato x I decidere se esiste y f(x) ricerca: dato x I cercare un y O tale che y f(x) enumerazione: dato x I determinare f(x) ottimizzazione: data una metrica su O e dato x I determinare y f(x) che sia ottimo in f(x) rispetto alla metrica Complessità dei problemi di decisione Ogni problema di decisione P, dopo aver codifcato ragionevolmente le istanze in input e standardizzato l'output (SI, NO), può essere formulato come un problema di riconoscimento di un linguaggio. Al problema P, che ha istanze I P = Y P N P, si associa si associa l insieme Y P delle istanze-sì del problema. Se le istanze sono codifcate ragionevolmente su un alfabeto Σ, risolvere P è equivalente a riconoscere il linguaggio L P delle stringhe di Σ* che codifcano le istanze-sì Y P del problema. (Si può sempre assumere che siano riconoscibili in modo effciente tutte le stringhe di Σ* che non descrivono alcuna istanza (positiva o negativa) del problema.) I concetti di complessità di problemi di decisione possono anche essere traslati a problemi di enumerazione o a problemi di ottimizzazione.

Esempio di standardizzazione di un problema decisionale P Istanza: grafo G, intero k Proprietà: G ha un sottografo completo di k nodi? Y P ={ (G = < N, A >, k) esiste un sottoinsieme N' N tale che N' = k ed il sottografo indotto da N' è completo},. Scegliamo una codifca ragionevole delle istanze. Risolvere P equivale a riconoscere il linguaggio L P {0, 1, #, &} * : L P = {c(g) & b(k) dove c(g) e' una stringa in {0,1, #} * che codifca un grafo G, b(k) e' la rappresentazione binaria dell'intero k ed infne G ha un sottografo completo di k nodi } Schema di codifca ragionevole: - rappresenta un intero in base b 2 - rappresenta un insieme fnito enumerando le codifche degli elementi - rappresenta una relazione binaria enumerando le codifche delle coppie - rappresenta un grafo come insiemi di nodi ed di archi Lunghezza di una istanza di un problema: numero di caratteri necessari a rappresentarla in uno schema di codifca predefnito. Due schemi di codifca c, c per un problema sono polinomialmente correlati se esistono due polinomi p, p tali che, per ogni istanza I del problema : c(i) p ( c (I) ) c (I) p( c(i) ) Assumeremo, senza specifica ulteriore, di adottare schemi di codifica ragionevoli. La complessità di un algoritmo risulta invariante, a meno di un polinomio, al variare dello schema. Faremo analisi asintotiche.