Teoria della Complessità Concetti fondamentali

Slides:



Advertisements
Presentazioni simili
Corsi di allenamento 2013 Congetturare e dimostrare.
Advertisements

Grandezze ed equazioni fondamentali
Reti sociali Reti sociali.
Appunti di analisi matematica: Integrale Definito
La matematica e l’economia
Esempio di prova per la valutazione per competenze. Parametri di base delle consegne. Forma testuale Competenza valutata Indicazioni procedurali Definizione.
Differenze tra C e C++ Commenti: Adesso puoi inserire dei commenti tra // e la fine della linea. Usare le librerie C: In C++ puoi anche chiamare una funzione.
LE CONICHE L’ ellisse.
Il concetto di misura.
Teoria delle stringhe Ricerca di tecnologia Di Alex Dichirico.
Difficoltà di contenuto Difficoltà linguistiche Difficoltà cognitive
Computational Learning Theory and PAC learning
L’econometria della funzione di produzione Cobb-Douglas
MODELLO DI REGRESSIONE LINEARE MULTIPLA
LA RETTA. Concetto primitivo La retta o linea retta è uno dei tre enti geometrici fondamentali della geometria euclidea. Viene definita da Euclide nei.
Le domande del questionario
UN MODELLO OPERATIVO PER L’INSEGNAMENTO APPRENDIMENTO DELLA LINGUA
Intelligenza Artificiale
Progettazione di una base di dati
i costi CRITERIO CLASSI
Strutture periodiche discrete: introduzione del vincolo di periodicità e studio della ricostruzione da due proiezioni. A. Del Lungo, A. Frosini, M.Nivat,
Main tools of the probabilistic method with applications in graph theory Attività formativa - Yuri Faenza Supervisore: Prof. B. Scoppola CdLS in Ingegneria.
LE POTENZE NEI TEST INVALSI, NEI QUESITI DELL’ESAME DI STATO E NEI TEST DI AMMISSIONE ALLE FACOLTÀ UNIVERSITARIE.
Federico Batini Item analisi Federico Batini
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Parte 1 Introduzione alla Teoria dei Circuiti
TEOREMA DEL SALARIO 2 Tutti conoscono il Teorema del Salario, che stabilisce che i tecnici e gli scienziati non potranno MAI guadagnare quanto gli uomini.
Prof. Cerulli – Dott.ssa Gentili
Statistica economica (6 CFU)
Fisica Ambientale III Alcuni concetti matematici.
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Gli Stati Fisici della Materia
Stati della materia e passaggi di stato
DIDATTICA DELLA MATEMATICA TFA A059
USR Liguria Anna Maria Parodi I RISULTATI DI ITALIANO e altri strumenti utili SEMINARI PROVINCIALI SNV 2011/12.
IO E LA MATEMATICA.
IL MOVIMENTO Spazio e tempo Spostamento Legge oraria Velocita’
Dopo la Scuola Secondaria
TEOREMA DEL SALARIO 2 Tutti conoscono il Teorema del Salario, che stabilisce che i tecnici e gli scienziati non potranno MAI guadagnare quanto gli uomini.
I DATABASE.
IsS P. BRANCHINA Presentazione: Cottone Letizia Di Carlo Claudia
Intervalli di Confidenza Corso di Teoria dell’Inferenza Statistica 2 a.a. 2003/2004 Quarto Periodo Prof. Filippo DOMMA Corso di Laurea in Statistica –
“Fusioni orizzontali”
MASSIMIZZAZIONE DEL PROFITTO DI UNA IMPRESA di Elvira Daddario
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Calcolo delle probabilità a cura di Maurizio Brizzi
03/06/2015Temperatura e Calore1 Teoria Cinetica ed Equazione di Stato dei Gas Perfetti.
Università degli Studi di Roma Tor Vergata
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Il simulated annealing (SA)
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Possibili percorsi di sperimentazione
La teoria quantistica 1. Fisica quantistica.
Esperimento di diffusione dei raggi x
Teoria degli Insiemi Concetto di Insieme Proprietà caratteristica
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
Misurazione Raccolta sistematica e organizzata di elementi per classificarequantificare.
TEOREMA DEL SALARIO Tutti conoscono il Teorema del Salario, che stabilisce che i tecnici e gli scienziati non potranno MAI guadagnare quanto gli uomini.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Proprietà fisiche della materia
Le Macchine Matematiche III incontro Provincia di Ravenna 1 giugno Progetto regionale Scienze e tecnologie Laboratorio delle macchine matematiche.
Campionamento procedimento attraverso il quale si estrae, da un insieme di unità (popolazione) costituenti l’oggetto delle studio, un numero ridotto di.
STORIA DELLA SCIENZA A PIÙ DIMENSIONI È importante avere un quadro complessivo per capire, almeno in parte, quale sia stato l’itinerario (spesso complesso)
Programmazione reticolare Economia e Gestione delle Imprese A. A. 2011/2012.
INFORMATICA Informatica è una parola recente; è stata inventata in Francia nel 1962 come contrazione di information automatique.
Il percorso delle discipline scientifiche ۷ Descrizione dei fenomeni ۷ Scoperta di leggi ۷ Costruzione di teorie ۷ Formulazione e test di ipotesi.
Transcript della presentazione:

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 associata a particolari istanze del problema stesso Definizione Un problema è la richiesta a rispondere ad una domanda circa le proprietà di una struttura matematica in funzione di parametri costanti e dei valori non fissati di variabili

Esempio Dato un grafo G=(V,E), esiste un percorso hamiltoniano di lunghezza <K? Struttura del problema = grafo G Struttura della soluzione = percorso hamiltoniano Parametri = i particolari nodi, archi ed i pesi degli archi

Definizioni fondamentali Istanza di un problema Un particolare caso del problema per cui sono stati specificati i valori assunti dai parametri. Un problema è l’insieme delle sue infinite istanze. Problemi di decisione Risposta SI/NO (es., $ un ciclo hamiltoniano di lunghezza <K?)

Definizioni fondamentali Problemi di ricerca Trovare una soluzione (una prova della risposta “SI”) (es., trovare un ciclo hamiltoniano di lunghezza <K) Problemi di enumerazione Trovare tutte le soluzioni (es., trovare tutti i cicli hamiltoniani di lunghezza <K) Algoritmo Metodo per passi successivi per risolvere un problema

Esiste un algoritmo di soluzione efficiente Facilità di un problema Non esiste un algoritmo di soluzione efficiente Difficoltà di un problema Stabilire la difficoltà di un problema misurare l’efficienza del (migliore) algoritmo risolutore Misurare l’efficienza di un algoritmo determinare la complessità computazionale dell’algoritmo

Efficienza di un algoritmo Tempo richiesto per trovare la soluzione Quantità di memoria richiesta per i dati del problema Dimensione dell’istanza del problema (Numero di variabili, vincoli, grandezza dei dati) Quantità di informazioni necessarie per codificare un’istanza

Codifica di un’istanza di problema Esempio: Un problema di PL Codificare i dati (n+mxn+m coeff.) ci, i=1,...n; aij, i=1,...,n, j=1,...,m; bj, j=1,...m Sistema binario (codifica di un numero x): k+1 bit, con k£log2£k+1 più 1 bit per il segno Numeri a precisione finita: interi e razionali come rapporto tra interi Codifica Ragionevole utilizza almeno 2 simboli non introduce dati irrilevanti né richiede una generazione esponenziale di dati

Esempio: Codifica decimale (ragionevole) 1 cifra (0-9) Þ 10 simboli 10 (2 cifre) Þ 100 simboli 10x10=100 (3 cifre) Þ 1000 simboli 100x10=1000 (4 cifre) Þ 10000 simboli Þ mentre il numero di simboli cresce di fattori 10 il numero di cifre cresce come il logaritmo Esempio: Codifica unaria (non ragionevole) 1 cifra (1) Þ 1 simbolo 10 decimale (10 cifre) Þ 10 simboli 100 decimale (100 cifre) Þ 100 simboli 1000 decimale (1000 cifre) Þ 10000 simboli Þ mentre il numero di simboli cresce di fattori 10 il numero di cifre cresce linearmente

Esempio: Generazione esponenziale di dati Problema di decisione difficile: dato un grafo determinare se esiste un ciclo hamiltoniano di lunghezza <K. Problema di decisione semplice: dati n numeri trovare se esiste un numero <K (sorting) Con una codifica non ragionevole (codificare il grafo e tutti i suoi cicli) si potrebbe trasformare il problema difficile del ciclo hamiltoniano nel problema semplice del sorting. La codifica non è ragionevole perché in essa è contenuta la generazione delle soluzioni del problema.

Efficienza di un algoritmo Tempo richiesto per risolvere un’istanza del problema codificata ragionevolmente Efficienza di un algoritmo Il tempo di calcolo della soluzione è definito in maniera indipendente dalle caratteristiche del particolare calcolatore utilizzato. Tempo di soluzione: numero delle operazioni elementari necessarie all’algoritmo per risolvere un’istanza di una dimensione data. Operazioni elementari: addizioni, moltiplicazioni, confronti.

Definizione La funzione di complessità nel tempo, f(k), dove k è la dimensione di un’istanza, è la funzione che restituisce il massimo numero di operazioni elementari necessarie ad un algoritmo per risolvere le istanze di dimensione k di un problema. La funzione di complessità nel tempo è determinata per mezzo della worst case analysis. Un modo alternativo di valutare la complessità è l’analisi statistica (più complicato).

Occorre conoscere solo il comportamento asintotico (k®¥) della funzione di complessità nel tempo, ossia l’ordine di f(k) Definizione La funzione f(k) è di ordine g(k), indicato come O(g(k)), se $k’ ed una costante c tali che f(k)£c×g(k) per k³k’ Esempio: un polinomio è O(kn)

Definizione Un algoritmo è di tipo polinomiale se ha una funzione di complessità nel tempo che è O(kp) per un certo p fissato. Definizione Un algoritmo è di tipo esponenziale se non ha una funzione di complessità nel tempo di tipo polinomiale.

Definizione Una funzione f(k) è di ordine esponenziale se non è limitata da alcun polinomio, ossia per k³k’, c1, c2>0 e d1, d2>1 Classe P Appartengono alla classe P tutti i problemi di decisione che possono essere risolti da algoritmi di tipo polinomiale (Polynomial time algorithm). I problemi in P sono ben risolti poiché per essi esiste un algoritmo efficiente

Esempio: tre algoritmi su un calcolatore che esegue una operazione in 10-6s k O(f(k)) polinomiale esponenziale Legenda: s=secondi, m=minuti, c=secoli (!)

La complessità computazionale non dipende dalla velocità del calcolatore utilizzato. Esempio: un calcolatore 1000 volte più veloce (10-9s) quante operazioni potrebbe eseguire in più per i tre algoritmi?

Esempio: Sono algoritmi polinomiali gli algoritmi per determinare il minimo albero ricoprente in un grafo: Kruskal è O(nlogn), Prim è O(n2) Il problema (di decisione) dello shortest spanning tree: “dato un grafo stabilire se esiste un albero ricoprente di lunghezza <K” è in P

La codifica di una soluzione è detta certificato di ammissibilità Classe NP Appartengono alla classe NP tutti i problemi di decisione per cui, essendo nota una soluzione, è possibile verificare in tempo polinomiale che la risposta è affermativa (Non deterministic Polynomial time algorithm) La codifica di una soluzione è detta certificato di ammissibilità

Esempio: Problema: Dato il grafo G, esiste un circuito hamiltoniano di lunghezza <K? Risposta: Si Certificato di ammissibilità: Una sequenza di nodi del grafo Verifica: Seguire la sequenza dei nodi verificando che corrisponde ad un circuito hamiltoniano di lunghezza <K (polinomiale)

I problemi NP sono quelli che sono risolvibili da un algoritmo di tipo polinomiale non deterministico (Non deterministic Polynomial time algorithm). Un algoritmo NP: Guessing stage) Un oracolo “indovina” la soluzione (non deterministico) Checking stage) Verifica in tempo polinomiale della soluzione (ovviamente nella realtà non esistono tali algoritmi) PÍNP NP P Congettura P¹NP

Esempi di problemi di decisione Shortest spanning tree: è P e NP PL (determinare se esiste una soluzione >K): è NP e dal 1979 è stato provato che è P (algoritmo dell’ellissoide) Ciclo hamiltoniano di lunghezza <K: è NP ma non è stato provato che sia in P

Problemi di decisione e problemi di ottimizzazione Le definizioni della teoria della complessità fanno riferimento a problemi di decisione. Quanto detto si può estendere ai problemi di ottimizzazione un algoritmo che risolve un problema di decisione può essere utilizzato all’interno di un algoritmo di tipo polinomiale per risolvere il corrispondente problema di ottimizzazione.

Esempio: Problema di decisione (CH(k)) Dato il grafo G, esiste un circuito hamiltoniano di lunghezza <K? Problema di ottimizzazione (TSP) Determinare il ciclo hamiltoniano di G di lunghezza minima.

Sia S l’algoritmo per risolvere CH(k). L’algoritmo per risolvere TSP può essere costituito dalla seguente procedura dicotomica: 1. Siano A e B la minima e massima lunghezza degli archi di G ed m il numero di nodi di G. Allora m×A£lunghezza circuto hamiltoniano£m×B Porre k= m(B-A)/2 2. Usare S per risolvere CH(k). 3. Se la risposta di S è si, porre k=k/2 altrimenti k=k(3/2) ed andare a 2. Poichè i coefficienti sono interi, al più ci saranno (log(m(B-A))+1 iterazioni.

Problema Complementare I problemi complementari (co-problemi) sono quelli per cui viene formulata una domanda in termini “negati”. Esempio: Il problema complementare del ciclo hamiltoniano di lunghezza<K: “Dato il grafo G, è vero che non esistono cicli hamiltoniano di lunghezza <K?”

la lista di tutti i possibili cicli hamiltoniani I problemi complementari dei problemi in P sono ancora in P. Congettura NP¹co-NP Þ PÍNP Ç co-NP P=co-P P NP co-NP Esempio: Il certificato di ammissibilità per il problema complementare del ciclo hamiltoniano: la lista di tutti i possibili cicli hamiltoniani per un grafo completo con m nodi è pari a m! Þ esponenziale quindi non verificabile in tempo polinomiale

Trasformazioni ed NP-completezza Definizione Si definiscono come problemi più difficili di una classe quei problemi appartenenti alla classe che risultano almeno difficili quanto ogni altro Se si riuscisse a risolvere efficientemente uno dei problemi più difficili allora si potrebbero risolvere efficientemente anche tutti gli altri problemi della classe

La trasformazione polinomiale di p a p’ E’ un algoritmo che, data un’istanza I di un problema p, produce in tempo polinomiale un’istanza I’ di un problema p’ in modo tale che, se la risposta è “SI” per I, allora la risposta è “SI” anche per I’ La trasformazione polinomiale di p a p’ p µp’ (p ridotto a p’) Le trasformazioni polinomiali sono transitive

Il problema p è NP-C se "p’ÎNP, è possibile pµp Classe NP-C (NP-Completi) Appartengono alla classe NP-C tutti i problemi di decisione della classe NP che sono almeno difficili quanto ogni altro problema in NP. Il problema p è NP-C se "p’ÎNP, è possibile pµp I problemi NP-C sono quelli a cui possono essere ridotti con una trasformazione polinomiale tutti i problemi in NP

Conseguenze: Se fosse possibile risolvere efficientemente un pÎNP-C allora tutti i problemi NP sarebbero stati risolti efficientemente. Per dimostrare P=NP basterebbe provare che un solo problema NP-C è P P NP co-NP NP-C

Il problema della soddisfacilità (SAT) E’ stato il primo problema NP di cui è stata dimostrata l’appartenenza ad NP-C SAT Problem Data un’espressione booleana in forma congiuntiva normale in n variabili, x1,..., xn, e loro complementi, dire se l’espressione è soddisfacibile. Forma congiuntiva normale: un AND di OR: dove le espressioni in parentesi sono clausole di cardinalità h

Esempio: Data dire se esiste un’assegnazione VERO-FALSO alle variabili per cui E=VERO. Teorema di Cook (1971) Il problema SAT è NP-C se h³3. Per dimostrare che pÎNP è tale che pÎNP-C, per la transitività di µ è sufficiente dimostrare che un p‘ÎNP-C (ad esempio, SAT) si riduce ad esso, pµp.

Estensione ai problemi di ottimizzazione. Problemi NP-hard Un problema è NP-hard se esiste un problema NP-C che può essere ridotto ad esso con una trasformazione polinomiale.

Sono NP-hard problemi (anche non NP) almeno difficili quanto ogni problema NP-C. Se pÎNP-C per alcune delle sue istanze (le più grandi) non potrà essere trovata la soluzione ottima in un tempo accettabile per mezzo di algoritmi esatti (enumerazione esplicita o implicita). In generale è possibili determinare soluzioni accettabili per pÎNP-C per mezzo di algoritmi approssimati (soluzioni sub-ottime) algoritmi euristici

Esempi di problemi Problemi P Programmazione Lineare Continua Matching Min Spanning Tree Shortest Path (Dijkstra O(m3), Bellman-Ford O(m2)) Sistemi equazioni lineari Problemi NP-C Travelling Salesman Problem SAT Set partitioning, packing, covering 0-1 Integer programming Knapsack