Dispensa di Informatica Teorica (Elementi) - Teorema di Cook
|
|
- Orazio Filippi
- 4 anni fa
- Visualizzazioni
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 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.
DettagliAlgoritmo 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
DettagliProblemi 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.
DettagliProblemi 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
DettagliPartizioni 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,
DettagliProgetto 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
DettagliCertificati 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
DettagliAniello 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
Dettagli3-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
DettagliProblemi 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
DettagliTeorema 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
DettagliRagionamento 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
DettagliCapitolo 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á
DettagliIn 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
DettagliComplessità. 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 è).
DettagliIn 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
DettagliAncora 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
DettagliMa 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?
DettagliInformatica 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
DettagliAutomi 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
Dettagli3 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
DettagliRiduzioni 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
DettagliCapitolo 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
DettagliSommario. 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
DettagliSoddisfacibilità 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
DettagliNP 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
DettagliNP 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
DettagliLinguaggio 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
DettagliLogica 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)
DettagliESAME 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
DettagliComplessità 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
DettagliCapitolo 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
DettagliTeoria 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
DettagliAniello 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
DettagliSoddisfacibilità 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
DettagliDentro 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à
DettagliEsercitazioni 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
DettagliLogica 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
DettagliNote 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
DettagliCapitolo 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
DettagliNome: 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
DettagliSommario. 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
DettagliSommario. 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
DettagliLimiti 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
DettagliAlberi 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
DettagliAutomi 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:
DettagliLinguaggi 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
DettagliLinguaggi 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
DettagliAlberi: 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
DettagliComplessità 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.
DettagliPSPACE 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
DettagliTeoria 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
DettagliComplessità 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à
DettagliLinguaggi 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
DettagliTeoria 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
DettagliLe 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=
Dettaglie 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
DettagliTEORIA 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
DettagliFondamenti 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:
DettagliConcetti 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
DettagliAgenti 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
DettagliLogica 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,
DettagliLogica 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,
Dettagli02 - 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
DettagliAlgoritmi 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
DettagliTeoria 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
DettagliTrattabilità 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
DettagliMacchine 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
DettagliAniello 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
DettagliLogica 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.
DettagliSommario. 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
DettagliEsercitazione 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(
Dettaglia 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
DettagliLogica 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
DettagliMacchine 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
DettagliLogica 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
Dettagli9 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 è
DettagliLogica 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
DettagliInformatica 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
DettagliTeoria 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
DettagliEsercitazione 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à
DettagliTeoria 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
DettagliSOLUZIONI 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)
Dettagli04 - 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,
DettagliLinguaggi 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
DettagliSommario. 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
DettagliTeoria 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
DettagliTesti 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.
DettagliCosa 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
DettagliLogica 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
DettagliSviluppo 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