Dispensa di Informatica Teorica (Elementi) - Teorema di Cook

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Dispensa di Informatica Teorica (Elementi) - Teorema di Cook"

Transcript

1 Teorema di ook (Idea generale) Dato L NP, costruire una trasformazione polinomiale f da L a L (sodd, e), cioè il linguaggio composto dalle stringhe che corrispondono ad istanze del problema sodd. La trasformazione f opera in questo modo: dato L e la specifica della NDTM N che decide L, e data la stringa di ingresso x f( = φ ( N, dove φ ( N, è vera su un assegnamento di verità sse una computazione accettante di N su x. φ ( N, è costruita in modo tale che l assegnamento di verità descriva un ramo di computazione di N su input x. Tre tipi di variabili utilizzate: o H(i, t) posizione della testina posizione i al tempo t o S(k, t) stato della macchina stato k al tempo t o (i, j, t) simboli sul nastro alla posizione i c è il simbolo σ j al tempo t. Per descrivere la macchina usando le precedenti variabili servono alcune condizioni, per assicurare che l espressione booleana specifichi una computazione della NDTM. Tali condizioni sono 7 e se sono TUTTE verificate φ è sodd x L. Per ogni condizione usiamo una diversa formula, costruita a partire dalle precedenti variabili. Es. Data la NDTM N, ad ogni istante di tempo la testina di N è posizionata su una sola cella del nastro. Per codificare questa condizione costruiamo un espressione A = A 0 A 1 A 2 A p(n) p(n) = tempo di computazione di N. Ogni A i assicura che al tempo i la testina è posizionata su una sola cella. NB La trasformazione è polinomiale deterministica: DTM che costruisce φ in tempo polinomiale. 1

2 Teorema di ook: SODD è NP_completo. Sodd Istanza: espressione booleana φ in FN nelle variabili (x 1, x 2, x n ). Domanda: φ è soddisfacibile? ( assegnamento di verità che soddisfi φ?) Dimostrazione: Bisogna dimostrare che: 1) SODD NP. 2) trasformazione polinomiale f da ogni linguaggio L NP a L(sodd, e) L NP si ha che L < L sat. 1) Una NDTM che risolve SODD ha le seguenti due componenti: - Guess fornisce un assegnamento di verità - heck verifica l assegnamento in tempo polinomiale. 2) Preso L NP, x *, x L sse f( L(sodd, e). Poiché L NP NDTM che decide L, NL f L ( è una codifica che ad ogni x fa corrispondere un espressione booleana. Bisogna mostrare che: x è accettata da N L f L ( è un espressione booleana soddisfacibile. L NP NDTM per L f L( sodd, e) f ( = φ( N, è sodd Identifichiamo L in NP con la NDTM che lo decide x L sse una computazione accettante di NL su x. Il passaggio a SODD lo facciamo attraverso la NDTM: una computazione accettante di N L su x sse φ ( N, è soddisfacibile. Problema: ostruire un espressione booleana a partire dalla NDTM, con le seguenti 2 richieste: 1) Data N L che decide L, costruire un espressione booleana in FN che dipende da N e da x in modo che: φ ( N, è soddisfacibile sse N accetta x. 2) La costruzione di φ ( N, deve essere fatta in tempo polinomiale da una DTM. 2

3 La trasformazione f ha in input: - N L = (K,,, q0) NDTM per L - x stringa in ingresso N L. (N L, Istanza di SODD f Poniamo: - = n simboli - K = l stati - p(n) = complessità temporale di N L ( L NP tempo polinomiale per NDTM). N accetta x in tempo p(n) sse accettante e si ha che q p(n). sequenza di configurazioni c0 c 1 c 2 c q tale che c q è Assumiamo che NL impieghi sempre p(n) passi per accettare. (Se richiede meno passi basta eseguire finte computazioni). Assumiamo che la stringa sul nastro abbia esattamente lunghezza p(n). Albero di computazione Tutti i rami hanno la stessa lunghezza: dalla radice alle foglie ci sono p(n) nodi. Stringa di computazione > s s 2 K s K i _ _ _ Lunghezza p ( n) _ = blank (vengono aggiunti affinchè la stringa raggiunga la lunghezza p(n)). 3

4 Problema: come distinguiamo con una formula φ ( N, il fatto che / o una computazione accettante di NL su x? φ ( N, è soddisfacibile sse assegnamento di verità che rende vera φ ( N, se sequenza di configurazioni c 0 c 1 c 2 c p(n) accettante dovrà corrispondere ad un assegnamento di verità alle variabili di φ, in modo che φ sia soddisfatta. Ogni assegnamento di verità alle variabili di φ dovrà rappresentare in modo univoco una computazione della macchina N. Dobbiamo costruire le variabili di φ in modo che descrivano delle configurazioni della NDTM. Per poter ottenere questo, dovremo costruire espressioni particolari utilizzando le operazioni logiche,,. Abbiamo bisogno di tre tipi di variabili (poiché ogni configurazione di TM è descritta da (q, σ, p) rispettivamente stato della macchina, stringa sul nastro e posizione della testina): S(k, t) con 1 k p(n) e 0 t p(n) S(k, t) = TRUE sse al tempo t lo stato della macchina è q k. (i, j, t) con 1 i p(n), 1 j e 0 t p(n) (i, j, t) = TRUE sse al tempo t la i-esima cella del nastro contiene il simbolo σ. j H(i, t) con 1 i p(n) e 0 t p(n) H(i, t) = TRUE sse al tempo t la testina è posizionata sull i-esima cella del nastro. Es. (tempo = 5) > σ σ _ _ 2 σ 4 3 q 4 S(4, 5) (1, 2, 5) (2, 4, 5) (3, 3, 5) H(2, 5) 4

5 Utilizzando i precedenti tre tipi di variabili posso dare una descrizione della macchina, configurazione per configurazione. Problema: costruzione dell espressione Es. (1, 1, 1) (1, 3, 1) H(2, 1) S(3, 1) Se diamo un assegnamento di verità in cui tutte queste variabili sono vere, ottengo che l espressione precedente è vera. Ma questa espressione non descrive una configurazione di una macchina (le due variabili indicano che ci sono due simboli diversi nello stesso momento, nella stessa cella). Data l espressione booleana U(x 1 x 2 x n ) che assume valore TRUE sse ESATTAMENTE UNA variabile x i assume valore true: U(x 1 x 2 x n ) = (x 1 x 2 x n ) ( ( x i, j, i j i x j ) ) vera se almeno una tra le x i è vera se ci sono due variabili entrambe vere, questa espressione risulta falsa osto per la costruzione dell espressione precedente: O(n 2 ) polinomiale per DTM. onsideriamo una stringa x. Tale stringa è accettata se: data una sequenza di configurazioni di una NDTM su ingresso x, per ciascuna configurazione c i sono verificate le seguenti condizioni: 1. La testina è posizionata su una sola cella. 2. Ogni posizione del nastro contiene un solo simbolo. 3. La macchina N si trova in un solo stato. 4. Nella configurazione c i+1, la stringa memorizzata sul nastro differisce da quella in c i in al più un simbolo, quello sotto la testina in c i. 5. La transizione tra due configurazioni è determinata dalle regole in N. 6. c 0 deve essere la configurazione iniziale, (S, >, (oppure (S, x, 0)). 7. p(n) deve essere una configurazione accettante. NB (1 4) la NDTM è costruita correttamente, (5 7) la computazione è corretta e accettante. 5

6 Dobbiamo costruire espressioni booleane garantiscano che le precedenti proprietà siano soddisfatte. ostruiamo allora le espressioni come segue: 1. A = A 0 A 1 A p(n) dove istante t, A t = U (H(1, t), H(2, t),, H(p(n), t)) 0 t p(n) (Posizioni della testina: ad ogni istante, la testina si trova su una sola cella.) OSTO: A i (p(n)) 3 A O(p (n)) 2 Dato che U( ) O(n 2 ) 2. B = Bi, t con 1 i p(n), 0 t p(n) t i, B i, t = true sse al tempo t, l i-esima cella del nastro contiene esattamente un simbolo di. B i, t = U ((i, 1, t), (i, 2, t),, (i,, t)) OSTO: B = O(p 2 (n)) ( B i, t dipende da ) 3. = 0 t p( n) t t = true sse la macchina all istante t è in un preciso stato. t = U (S(1, t), S(2, t),, S( K, t)) OSTO: = O(p 2 (n)) 4. D = Di, j, t con 1 i p(n), 1 j e 0 t p(n) i t, j, D i, j, t = true sse al tempo t, la testina è posizionata sull i-esima cella o il simbolo in i non viene modificato. (ontrolla che non venga modificato un simbolo diverso da quello sotto la testina all istante t). D i, j, t = ((i, j, t) = (i, j, t+1)) H(i, t) I simboli sul nastro non devono cambiare, solo quello sotto la testina può farlo. Se sono alla posizione i, i simboli possono cambiare (H(i, t) è vero, per cui D(i, j, t) è vero anche se (i, j, t) (i, j, t+1)). OSTO: D = O(p 2 (n)) 6

7 5. E = E i, j, k, t i, j, k, t con 1 i p(n), 1 j, 1 k K e 0 t p(n) E è vera sse nella computazione c 0 c 1 c 2 c p(n) ogni transizione tra due configurazioni successive è determinata da. E i, j, k, t = [(i, j, t) H(i, t) S(k, t)] [ ((i, jl, t+1) H(il, t+1) l I S(kl, t+1))] I = insieme degli indici l ricavati da (( σ, qk ), ( σ jl, qkl, z il )) cioè (jl, kl, il) I. j OSTO: E i, j, k, t 2 O(p (n)) 6. F = S(0, 0) H(1, 0) ( (i, ji, 0)) ( 1 i n (i, 1, 0)) n+ 1 i p( n) Inizialmente la macchina è nello stato zero. La testina è sulla prima cella. Nelle prime n celle è memorizzato l input. Nelle celle da n+1 a p(n) c è il simbolo 1 = _. F garantisce che vi sia una sola configurazione iniziale, c 0. OSTO: F = O(p(n)) 7. G = S( K, p(n)), dove K = stato di arresto. Garantisce che p(n) sia uno stato accettante. Se prendiamo φ ( N, = A B D E F G abbiamo: OSTO: ( φ ( N, ) = O(p 3 (n)) polinomiale determ. N, x φ tale che se x L c è una computazione accettante per la NDTM φ ( N, è soddisfacibile. Se φ ( N, ha un assegnamento di verità che la soddisfa questo assegnamento corrisponde ad una computazione accettante di N su x. Ne consegue: φ ( N, è soddisfacibile N accetta x. φ è costruita in tempo polinomiale da una DTM L NP, L < L(sodd, e) sodd è NP_completo. 7

8 ome ampliare la classe NP_completi una volta trovato un problema NP_completo Dato NP _ completi è sufficiente dimostrare che: o 1 NP, 1 o <, 1 per poter dire che NP _. NB < 1 NON viceversa! 3_sodd: versione ristretta di SAT; ogni istanza di 3_sodd è tale che ogni clausola ha ESATTAMENTE 3 letterali. Teorema: 3_sodd è NP_completo. Dimostrazione: 3_sodd NP: E sufficiente considerare una NDTM in cui il guessing stage fornisce un assegnamento di verità per le variabili e il checking stage verifica in tempo polinomiale se l assegnamento soddisfa tutte le clausole composte da 3 letterali. Poiché sappiamo che SODD NP_completi, dobbiamo dimostrare che sodd < 3_sodd. onsideriamo: U = {u 1, u 2,, u n } insieme di variabili = {c 1, c 2,, c n } insieme di clausole, facenti parte di un istanza di sodd. Dobbiamo costruire un insieme di clausole su un insieme di variabili U in modo che: - ogni clausola abbia 3 letterali. - soddisfacibile sse soddisfacibile. Variabili: avremo bisogno di tutte le variabili in U più alcune aggiuntive: U U m = U U ( j ) NB un insieme aggiuntivo clausola. j = 1 lausole: sarà ottenuto da sostituendo le clausole c j in con clausole costituite da 3 letterali: = U m j j = 1 8

9 Dobbiamo mostrare come costruire j e U j partendo da j. onsideriamo c j costituito da letterali {x 1, x 2,, x k }. Definiamo j e U j a seconda del valore k (cioè in base al n. di variabili che costituiscono la clausola): k = 1 c j = {x 1 } U j = { y, y j, 2 } j = {( x 1, y, y j, 2 ), (x 1, y, y j, 2 ), (x 1, y, y j, 2 ), (x 1, y, y j, 2 )} = k = 2 = (x 1 y y j, 2 ) (x1 y y j, 2 ) (x 1 y y j, 2 ). c j = {x 1, x 2 } U j = { y } j = {(x1, x 2, y ), (x 1, x 2, y )} k = 3 c j = {x 1, x 2, x 3 } U j = { } j = {c j } c k 4 c j = {x 1, x 2,, x k } U j = { yj, i 1 i k - 3} j = {( x 1, x 2, y )} {( Es. k = 4 {( x 1, x 2, y )} {( y, x 3, x 4 )} y j, i, x i+2, y j, i+1 ) : 1 i k 4} {( j, k 3 j, 2 K = 5 {( x 1, x 2, y )} {( y, x 3, y j, 2 )} {( y, x 4, x 5 )} y, x k-1, x k )} 9

10 Le clausole j sono costruite in modo da essere soddisfacibili sse le cj sono soddisfacibili (da cui è soddisfacibile sse è soddisfacibile). Dobbiamo far vedere come costruire l assegnamento di verità t, estensione di t alle variabili in U. ominciamo a far vedere che: è soddisfacibile è soddisfacibile. k = 1 e k = 2: va bene un assegnamento qualunque (per come sono costruite le clausole): possiamo prendere t (y) = TRUE, y U j. Il fatto che vera o falsa) j sia vera o falsa dipende solo da t (e quindi dal fatto che cj sia se t che soddisfa cj t che soddisfa j. k = 3: non ci sono variabili aggiuntive, quindi t = t. k > 3: prendiamo t che soddisfa c j. assegnamento t che rende vera j? Poiché t soddisfa c j, almeno un letterale deve essere vero. Prendiamo quello di indice minore e indichiamo con l tale indice. - se l = 1 o l = 2 t (y j, i ) = F i, 1 i k - 3 (tutte le variabili aggiunte vengono poste a Falso) - se l = k o l = k 1 t (yj, i) = T i, 1 i k 3 (tutte le variabili aggiunte vengono poste a Vero) - se 3 l k 2 t (yj, i) = T i, 1 i l 2 t (y j, h ) = F h, l - 1 h k 3 (precedenti vere, seguenti false). La scelta di t assicura che tutte le variabili aggiuntive siano poste ad un valore per cui j risulta VERO. Per cui: se t soddisfa ogni cj è soddisfatta ogni j può essere soddisfatta con t è soddisfacibile. Al contrario: se t soddisfa ogni j è soddisfatto la restrizione di t alle sole variabili in U soddisfa ogni c j è soddisfatta. 10

11 Ne consegue che: è soddisfacibile sse è soddisfacibile. Per dimostrare che: 3_sodd è NP_completo, rimane solo da verificare che la trasformazione può essere eseguita in tempo polinomiale. Questo si può ricavare notando che il numero di clausole in è limitato da p(m * n) e ogni clausola è costruibile in tempo polinomiale. 3_sodd è NP_completo. 11

Automi e Linguaggi Formali

Automi e Linguaggi Formali Automi e Linguaggi Formali Problemi intrattabili, classi P e NP A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Problemi intrattabili Ci occuperemo solo di problemi decidibili, cioè ricorsivi.

Dettagli

Algoritmo per A. !(x) Istanza di B

Algoritmo per A. !(x) Istanza di B Riduzioni polinomiali Una funzione f: T*!T* è detta computabile in tempo polinomiale se esiste una macchina di Turing limitata polinomialmente che la computi. Siano L 1 e L 2 " T* due linguaggi. Una funzione

Dettagli

Problemi intrattabili, classi P e NP. Problemi intrattabili, classi P e NP

Problemi intrattabili, classi P e NP. Problemi intrattabili, classi P e NP roblemi intrattabili Ci occuperemo solo di problemi decidibili, cioe ricorsivi. Tra loro, alcuni sono detti trattabili, se si puo provare che sono risolvibili in tempo polinomiale in modo deterministico.

Dettagli

Problemi intrattabili

Problemi intrattabili Tempo polinomiale ed esponenziale Una Tm M ha complessita in tempo T(n) se, dato un input w di lunghezza n, M si ferma dopo al massimo T (n) passi. Problemi intrattabili Ci occuperemo solo di problemi

Dettagli

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché

Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché Partizioni intere PARTIZIONAMENTO: Dato un insieme di n interi non negativi rappresentati in binario, trovare un sottoinsieme P! {1,2,..., n } tale che! i"p a i =! i# P a i Es: Dato {38, 17, 52, 61, 21,

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

Certificati dei problemi in NP

Certificati dei problemi in NP Certificati dei problemi in NP La stringa y viene in genere denominata un certificato Un Certificato è una informazione ausiliaria che può essere utilizzata per verificare in tempo polinomiale nella dimensione

Dettagli

Aniello Murano NP- Completezza (prima parte)

Aniello Murano NP- Completezza (prima parte) Aniello Murano NP- Completea (prima parte) 14 Leione n. Parole chiave: Npcompletea Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduione I problemi NP-completi

Dettagli

3-SAT CLIQUE VERTEX-COVER INDEPENDENT-SET 3-COLORING

3-SAT CLIQUE VERTEX-COVER INDEPENDENT-SET 3-COLORING Sommario Esempi di problemi NP-completi: 3-S CLIQUE VEREX-COVER INDEPENDEN-SE 3-COLORING HamCycle SP 3S Consideriamo formule booleane in forma normale congiuntiva (CN) con esattamente 3 letterali per clausola

Dettagli

Problemi decisionali. Esempi

Problemi decisionali. Esempi Problemi decisionali La teoria della complessità computazionale è definita principalmente in termini di problemi di decisione Essendo la risposta binaria, non ci si deve preoccupare del tempo richiesto

Dettagli

Teorema 1. Il problema AP è N P-complete.

Teorema 1. Il problema AP è N P-complete. (Dalla prova scritta d esame del 18/12/2006.) Si consideri il seguente problema AssegnazioneProgetto (AP). Input: un insieme, P, di n persone, ed un insieme V di m vincoli. Ogni vincolo ha la forma k#(l

Dettagli

Ragionamento Automatico Richiami di tableaux proposizionali

Ragionamento Automatico Richiami di tableaux proposizionali Richiami di logica e deduzione proposizionale Ragionamento Automatico Richiami di tableaux proposizionali (L. Carlucci Aiello & F. Pirri: SLL, Cap. 5) La logica proposizionale I tableau proposizionali

Dettagli

Capitolo 8: Teoria della complessitá

Capitolo 8: Teoria della complessitá Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá

Dettagli

In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni:

In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni: 6.5 Trattabilita' computazionale. In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni: - la forte differenza nell'andamento asintotico

Dettagli

Complessità. Ricorda: Problema P decidibile Linguaggio L P decidibile Taglia input x x. Esempio: G è un grafo connesso? { G G è un grafo connesso}

Complessità. Ricorda: Problema P decidibile Linguaggio L P decidibile Taglia input x x. Esempio: G è un grafo connesso? { G G è un grafo connesso} Complessità Calcolabilità: studia la frontiera tra problemi solubili e insolubili, Si limita ad aspetti qualitativi della risolubilità dei problemi (distingue ciò che è risolubile da ciò che non lo è).

Dettagli

In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni:

In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni: 6.5 Trattabilita' computazionale. In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni: - la forte differenza nell'andamento asintotico

Dettagli

Ancora su 2-SAT. può essere pensata come una coppia di implicazioni!! " 1

Ancora su 2-SAT. può essere pensata come una coppia di implicazioni!!  1 Ancora su 2-SAT Qualsiasi clausola a 1! a 2 può essere pensata come una coppia di implicazioni!! " 1 " a 2 e " 2 " a 1 Il caso di letterale singolo a viene considerato come "" a Partendo da una istanza

Dettagli

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

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

La MT come riconoscitore

La MT come riconoscitore La MT come riconoscitore Sia M =

Dettagli

Automi a stati finiti

Automi a stati finiti Automi a stati finiti Definizioni preliminari Il modello: la definizione formale, esempi. Le definizioni utili per descrivere e provare proprietà degli automi: diagramma degli stati, configurazioni, relazione

Dettagli

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

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Riduzioni che preservano l approssimazione e completezza nelle classi di approssimabilità.

Riduzioni che preservano l approssimazione e completezza nelle classi di approssimabilità. RISULTATI DI NON APPROSSIMABILITA Tecnica di base: gap. Riduzioni che preservano l approssimazione e completezza nelle classi di approssimabilità. Risultati negativi basati su prove verificabili in modo

Dettagli

Capitolo 9: Trattabilitá e intrattabilitá dei problemi

Capitolo 9: Trattabilitá e intrattabilitá dei problemi Capitolo 9: Trattabilitá e intrattabilitá dei problemi 1 La classe P : é considerata tradizionalmente come una caratterizzazione formale dei problemi trattabili. n = 2 n = 5 n = 10 n = 100 n = 1000 n 2

Dettagli

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

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same

Dettagli

Soddisfacibilità e Semantic Tableau [1]

Soddisfacibilità e Semantic Tableau [1] Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema è una relazione tra istanze

Dettagli

NP completezza. Problemi astratti

NP completezza. Problemi astratti NP completezza Vittorio Maniezzo - Università di Bologna Problemi astratti Un problema è un entità astratta (es. il TSP). Una istanzadel problema è un suo caso particolare in cui vengono specificati tutti

Dettagli

NP completezza. Vittorio Maniezzo - Università di Bologna

NP completezza. Vittorio Maniezzo - Università di Bologna NP completezza Vittorio Maniezzo - Università di Bologna Problemi astratti Un problema è un entità astratta (es. il TSP). Una istanzadel problema è un suo caso particolare in cui vengono specificati tutti

Dettagli

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

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre

Dettagli

Logica Algoritmi Cognizione

Logica Algoritmi Cognizione Logica Algoritmi Cognizione Le nozioni di DECIDIBILITÀ e COMPUTABILITÀ e i loro limiti Formulazione della logica in termini di teorie formalizzate e di dimostrazioni (all interno di teorie formalizzate)

Dettagli

ESAME di LOGICA PER INFORMATICA 24 giugno 2003

ESAME di LOGICA PER INFORMATICA 24 giugno 2003 ESAME di LOGICA PER INFORMATICA 24 giugno 2003 Compito 1 Esercizio 1. Siano Φ e Ψ due insiemi consistenti di formule. Dire, giustificando la risposta, se Φ Ψ e Φ Ψ sono consistenti. Soluzione. Se fosse

Dettagli

Complessità Strutturale e NP-Completezza

Complessità Strutturale e NP-Completezza Complessità Strutturale e NP-Completezza Una breve introduzione Francesco De Rose Alberto Giorgi Università degli Studi di Brescia Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Teoria della NP-completezza

Teoria della NP-completezza Teoria della NP-completezza Ivan Lanese Dipartimento di Informatica Scienza e Ingegneria Università di Bologna Ivan.lanese@gmail.com http://www.cs.unibo.it/~lanese/ NP-completezza 2 Complessità di problemi

Dettagli

Aniello Murano Space Complexity

Aniello Murano Space Complexity Aniello Murano Space Complexity Lezione n. Parole chiave: Space Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Definizione Space- complexity Definizione: Sia M un

Dettagli

Soddisfacibilità e Semantic Tableau [1]

Soddisfacibilità e Semantic Tableau [1] Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema In forma rigorosa, un problema è una relazione

Dettagli

Dentro P e oltre NP?

Dentro P e oltre NP? Dentro P e oltre NP? Tra P e EXPTIME? EXPTIME PSPACE conp NP P Si sa solo che P EXPTIME PSPACE completezza Un linguaggio A è PSPACE completo se 1.A è in PSPACE, cioè esiste una TM T che accetta A con complessità

Dettagli

Esercitazioni per il corso di Logica Matematica

Esercitazioni per il corso di Logica Matematica Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare

Dettagli

Logica proposizionale

Logica proposizionale Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per

Dettagli

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

Note sulle classi di complessità P, NP e NPC per ASD (DRAFT) Note sulle classi di complessità P, NP e NPC per ASD 2010-11 (DRAFT) Nicola Rebagliati 20 dicembre 2010 1 La complessità degli algoritmi Obiettivo principale della teoria della complessità: ottenere una

Dettagli

Capitolo 1 Concetti matematici di base Insiemi, relazioni e funzioni... 1

Capitolo 1 Concetti matematici di base Insiemi, relazioni e funzioni... 1 iv Indice Capitolo 1 Concetti matematici di base 1 1.1 Insiemi, relazioni e funzioni.................... 1 Capitolo 2 Linguaggi formali 35 2.1 Grammatiche di Chomsky..................... 36 2.2 Grammatiche

Dettagli

Nome: Corso di laurea: Matricola:

Nome: Corso di laurea: Matricola: Nome: Corso di laurea: Matricola: Università degli studi di Trieste Corso di Laurea in Informatica Esame di Fondamenti Logici dell Informatica 24 Aprile 2006, versione A Vero/Falso Dire se le seguenti

Dettagli

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Sommario Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Decisione vs ricerca! Se disponiamo di un efficiente algoritmo per risolvere

Dettagli

Sommario. Macchina di Turing universale Proprietà dei problemi Turing riconoscibili Linguaggi non Turing riconoscibili.

Sommario. Macchina di Turing universale Proprietà dei problemi Turing riconoscibili Linguaggi non Turing riconoscibili. Sommario Macchina di Turing universale Proprietà dei problemi Turing riconoscibili Linguaggi non Turing riconoscibili. 1 UTM: la TM universale Una TM T che accetta un linguaggio è analoga a un programma

Dettagli

Limiti della calcolabilità

Limiti della calcolabilità Limiti della calcolabilità Argomenti della lezione Macchina di Turing universale Il problema della terminazione Altri problemi indecidibili Macchine di Turing in forma ridotta Per ogni MT M esiste una

Dettagli

Alberi di sequenti per un linguaggio predicativo L 1.

Alberi di sequenti per un linguaggio predicativo L 1. Alberi di sequenti per un linguaggio predicativo L 1. Si estenda il linguaggio L 1 con un insieme C infinito numerabile di costanti individuali. Un multinsieme è un insieme con ripetizioni. Un sequente

Dettagli

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di rappresentazione per descrivere programmi e specifiche. ω-automi:

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere

Dettagli

Alberi: definizioni e dimostrazioni induttive.

Alberi: definizioni e dimostrazioni induttive. Alberi: definizioni e dimostrazioni induttive. Gennaio 2005 Iniziamo con l introdurre la nozione di albero. Con N indichiamo l insieme dei numeri naturali (zero escluso) e con N l insieme delle liste finite

Dettagli

Complessità computazionale

Complessità computazionale Complementi di Algoritmi e Strutture Dati Complessità computazionale Docente: Nicolò Cesa-Bianchi versione 6 marzo 2019 Attenzione: Questo è un riassunto di alcune lezioni messo a disposizione dal docente.

Dettagli

PSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale.

PSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale. Sommario Il problema della verità per formule booleane pienamente quantificate è PSPACE - completo PSPACE come la classe dei giochi. Il gioco geografico generalizzato è PSPACE - completo 1 PSPACE completezza

Dettagli

Teoria della complessità

Teoria della complessità Teoria della complessità Materiale consigliato: testo del corso capitolo 34 Introduzione agli algoritmi e strutture dati T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein McGraw Hill, 2005 Denise Salvi

Dettagli

Complessità computazionale. Intermezzo tecnico

Complessità computazionale. Intermezzo tecnico computazionale Intermezzo tecnico Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica Tema della lezione Normalizzazioni varie, tecnicamente utili funzioni di complessità

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Teoria della NP-completezza. Damiano Macedonio

Teoria della NP-completezza. Damiano Macedonio Teoria della NP-completezza Damiano Macedonio mace@unive.it Copyright 2010, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2009/) This work is licensed under

Dettagli

Le classi P, NP, PSPACE

Le classi P, NP, PSPACE Le classi P, NP, PSPACE Argomenti della lezione Classi di complessità notevoli I teoremi di gerarchia Il teorema di Savitch Problemi aperti Classi di complessità notevoli LOGSPACE = DSPACE(log n) P P=

Dettagli

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità Intelligenza Artificiale I Soddisfacibilità e Algoritmi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema

Dettagli

TEORIA DELLA COMPLESSITÀ

TEORIA DELLA COMPLESSITÀ TEORIA DELLA COMPLESSITÀ MATERIALE CONSIGLIATO: TESTO DI RIFERIMENTO SULLA TEORIA DELLA COMPLESSITÀ: Computers and Intractibility A Guide to the Theory of NP-Completeness M. R. Garey, D. S. Johnson Freeman

Dettagli

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino Fondamenti dell Informatica (III anno Laurea Triennale) Esercizi di preparazione al secondo compitino a.a. 2016/17 Funzioni primitive ricorsive Si definiscano come primitive ricorsive le seguenti funzioni:

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

Dettagli

Agenti Basati su Logica

Agenti Basati su Logica Agenti Basati su Logica Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 09/04/2018 Agenti basati sulla logica Generico agente logico Il mondo del Wumpus Logica proposizionale Inferenza

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 11 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

02 - Logica delle dimostrazioni

02 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 0 - Logica delle dimostrazioni Anno Accademico 015/016

Dettagli

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

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli

Teoria della Complessità Computazionale

Teoria della Complessità Computazionale Teoria della Complessità Computazionale Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 21 Ottobre 2014 Ricerca Operativa 2

Dettagli

Trattabilità computazionale.

Trattabilità computazionale. Trattabilità computazionale. Tesi di Cobham. Tutti i modelli di calcolo introdotti per defnire la calcolabilità in tempo polinomiale hanno al più lo stesso potere computazionale delle MT operanti in tempo

Dettagli

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Dettagli

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale Aniello Murano Classe dei problemi NP 13 Lezione n. Parole chiave: Classe NP Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione alla lezione Nella lezione

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Tripla di Hoare soddisfatta A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a.

Dettagli

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Sommario Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Decisione vs ricerca Se disponiamo di un efficiente algoritmo per risolvere

Dettagli

Esercitazione 3 - Linguaggi e Calcolabilità Antonio Cruciani

Esercitazione 3 - Linguaggi e Calcolabilità Antonio Cruciani Esercitazione 3 - Linguaggi e Calcolabilità 12-04-2019 Antonio Cruciani antonio.cruciani@alumni.uniroma2.eu 1 Esercizi a lezione Esercizio 1: Sia L il linguaggio definito come segue: L HB = {ÈMÍ : MèunamacchinadituringeM(

Dettagli

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo a cura di Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 tipologie di problemi e notazioni sulla complessità classi di complessità appartenenza di problemi

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione

Dettagli

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Dettagli

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Logica proposizionale classica Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Parte da una famiglia di enunciati atomici di cui non analizziamo la struttura interna, che rappresentiamo

Dettagli

9 Calcolo dei sequenti LC p

9 Calcolo dei sequenti LC p 9 Calcolo dei sequenti LC p In questa sezione mostriamo un metodo più elegante, semplice e soprattutto AUTOMATICO per mostrare se una proposizione è valida o meno e soddisfacibile o meno. Tale metodo è

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 15 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F. Bonchi Dip.to Informatica Logica per la Programmazione

Dettagli

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004 Informatica Teorica Sezione Cremona + Como Appello del 20 Luglio 2004 Coloro che recuperano la I prova risolvano gli esercizi e 2 tra quelli indicati qui sotto entro un ora. Coloro che recuperano la II

Dettagli

Teoria della Complessità Concetti fondamentali

Teoria della Complessità Concetti fondamentali Teoria della Complessità Concetti fondamentali L oggetto della teoria della complessità è stabilire se un problema sia facile o difficile La difficoltà di un problema è una caratteristica generale e non

Dettagli

Esercitazione 2 - Linguaggi e Calcolabilità Antonio Cruciani

Esercitazione 2 - Linguaggi e Calcolabilità Antonio Cruciani Esercitazione 2 - Linguaggi e Calcolabilità 05-04-2019 Antonio Cruciani antoniocruciani@alumniuniroma2eu 1 Esercizi a lezione Esercizio 1: Sia L XTM = {ÈT Í : TnonaccettaÈT Í} Si discuta la decidibilità

Dettagli

Teoria della Complessità Computazionale Parte II: Classi di Complessità

Teoria della Complessità Computazionale Parte II: Classi di Complessità Teoria della Complessità Computazionale arte II: Classi di Complessità Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 3.0 - Ottobre 2003 Classi di complessità: ed N classe dei problemi

Dettagli

SOLUZIONI DI ESERCIZI SCELTI ELEMENTI DI MATEMATICA E INFORMATICA TEORICA VERSIONE DEL 14 MAGGIO Esercizio 18

SOLUZIONI DI ESERCIZI SCELTI ELEMENTI DI MATEMATICA E INFORMATICA TEORICA VERSIONE DEL 14 MAGGIO Esercizio 18 SOLUZIONI DI ESERCIZI SCELTI ELEMENTI DI MATEMATICA E INFORMATICA TEORICA 2017-8 VERSIONE DEL 14 MAGGIO 2018 HYKEL HOSNI Esercizio 18 Scrivere le tabelle booleane per i seguenti enunciati: (1) p q (2)

Dettagli

04 - Logica delle dimostrazioni

04 - Logica delle dimostrazioni Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 04 - Logica delle dimostrazioni Anno Accademico 013/014 D. Provenzano,

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale la classe conp e le relazioni tra P, NP,coNP e EXPTIME

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale la classe conp e le relazioni tra P, NP,coNP e EXPTIME Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale la classe conp e le relazioni tra P, NP,coNP e EXPTIME HAMPATH - 1 HAMPATH = { G è un grafo diretto con un cammino hamiltoniano

Dettagli

Teoria della Complessità Computazionale

Teoria della Complessità Computazionale Teoria della Complessità Computazionale Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it Rev. 1.3, 11/00 rev. 1.3 - Novembre 2000 Teoria della Complessità Studia la difficoltà dei problemi

Dettagli

Testi di esame precedenti a.a. e soluzioni

Testi di esame precedenti a.a. e soluzioni Fondamenti di Informatica mod. 2 2018/2019 M.Di Ianni Testi di esame precedenti a.a. e soluzioni 1 Problemi Problema 6.1: Dimostrare che, per ogni costante intera positiva k, 2 nk è una funzione time-constructible.

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Logica proposizionale classica Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Parte da una famiglia di enunciati atomici di cui non analizziamo la struttura interna, che rappresentiamo

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli