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



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

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

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

Ottimizzazione Multi Obiettivo

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

TSP con eliminazione di sottocicli

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi

Esercizi Capitolo 6 - Alberi binari di ricerca

Il problema del commesso viaggiatore

Esercizi di Ricerca Operativa I

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

TSP con eliminazione di sottocicli

b i 1,1,1 1,1,1 0,1,2 0,3,4

Algoritmi e strutture dati. Codici di Huffman

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

Problema del trasporto

Calcolatori: Algebra Booleana e Reti Logiche

Introduzione ai problemi NP-completi

Complessità computazionale degli algoritmi

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

4.1 Modelli di calcolo analisi asintotica e ricorrenze

Complessità Computazionale

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

(ETC) MATRICOLE DISPARI

Ricerca Operativa A.A. 2007/2008

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Il Metodo Branch and Bound

2) Codici univocamente decifrabili e codici a prefisso.

Complessità e Approssimazione

Corso di Matematica per la Chimica

UD 3.4b: Trattabilità e Intrattabilità. Dispense, cap. 4.2

Codifiche a lunghezza variabile

Esame di Ricerca Operativa del 19/01/2016

Matematica generale CTF

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Metodi Computazionali

Macchine sequenziali

Esame di Ricerca Operativa del 19/01/2016

ANALISI DEL CONDIZIONAMENTO DI UN SISTEMA LINEARE

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Approssimazione polinomiale di funzioni e dati

SVM. Veronica Piccialli. Roma 11 gennaio Università degli Studi di Roma Tor Vergata 1 / 14

Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello. V. M. Abrusci

e-dva - eni-depth Velocity Analysis

Ricerca Operativa e Logistica

Cognome:.. Nome:.. 1/5

Capitolo 3: Ottimizzazione Discreta. E. Amaldi DEIB, Politecnico di Milano

Algoritmi e Strutture Dati (Mod. B) Introduzione

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Comparatori. Comparatori di uguaglianza

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Teoria della Complessità Computazionale

Luigi Piroddi

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Programmazione dinamica

Teoria della Complessità Computazionale

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

Appunti sulla Macchina di Turing. Macchina di Turing

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Problemi computazionali

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Reti sequenziali sincrone

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

Nozione di algoritmo. Gabriella Trucco

Automazione Industriale (scheduling+mms) scheduling+mms.

Esponenziali elogaritmi

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Ottimizazione vincolata

Crittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica

Corso di Informatica


Forze come grandezze vettoriali

Problemi complessi : come trovare una soluzione soddisfacente?

Computational Game Theory

Sintesi di Reti Sequenziali Sincrone

Parte 6. Applicazioni lineari

Equazioni alle differenze finite (cenni).

I.I.S. Primo Levi Badia Polesine A.S

Tipologie di macchine di Turing

Funzioni con dominio in R n

x u v(p(x, fx) q(u, v)), e poi

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Ottimizzazione delle interrogazioni (parte I)

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni.

La Programmazione Lineare

Interpolazione ed approssimazione di funzioni

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

La programmazione. Sviluppo del software

Transcript:

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 Due tipi di obiettivi: Determinare l efficienza di un specifico algoritmo A per risolvere un dato problema P Tentare di valutare la difficoltà intrinseca di un dato problema P Particolare attenzione ai problemi di ottimizzazione combinatoria E. Amaldi Fondamenti di R.O. Politecnico di Milano 2

3.1 Complessità degli algoritmi Scopo: stimare l onere computazionale di algoritmi alternativi per risolvere un dato problema P al fine di selezionare quello più efficiente Definizione: Una istanza I di un problema P è un caso specifico del problema. Esempio Problema P : ordinare m numeri interi c 1,..., c m Istanza I : m = 3, c 1 = 2, c 2 = 7, c 3 = 5 E. Amaldi Fondamenti di R.O. Politecnico di Milano 3

Tempo di calcolo valutato in termini di numero di operazioni elementari ( aritmetiche, confronti, accessi memoria,... ) necessarie per risolvere una data istanza I Ipotesi: tutte le operazioni elementari richiedono un unità di tempo Chiaramente il numero di operazioni elementari dipende dalla dimensione dell istanza I E. Amaldi Fondamenti di R.O. Politecnico di Milano 4

Dimensione di una istanza Definizione: La dimensione di un istanza I, indicata I, è il numero di bit necessari a codificare (descrivere) I. Esempio Istanza specificata dai valori di m e c 1,..., c m Poiché la codifica di un intero i richiede lo g i bit, I log m + m log c max dove c max = max{c j : 1 j m} Per istanza m = 3, c 1 = 2, c 2 = 7, c 3 = 5 I log 3 + 3 log 7 E. Amaldi Fondamenti di R.O. Politecnico di Milano 5

Rapidità di crescita asintotica: f(n) = O(g(n)) se c > 0 tale che f(n) c g(n) per n sufficientemente grande c g(n) f (n) Si dice che f(n) è dell ordine di g(n) n 0 n Esempio Per il problema di ordinamento di m interi I log m + m log c max = O(log m + m log c max ) E. Amaldi Fondamenti di R.O. Politecnico di Milano 6

Ordine di complessità Si cerca una funzione f (n) tale che, per ogni istanza I di dimensione I n, il numero di operazioni elementari per risolvere istanza I sia f (n) Osservazioni: Poiché f (n) è un limite superiore I con I n, si considera il caso peggiore f (n) espressa in termini di rapidità di crescita asintotica Esempio Per l ordinamento di m interi esistono algoritmi con complessità O(m log m) E. Amaldi Fondamenti di R.O. Politecnico di Milano 7

Definizione: Un algoritmo è polinomiale se richiede, nel caso peggiore, un numero di operazioni elementari f(n) = O(n d ) dove d è costante e n = I è la dimensione dell istanza. Si distinguono algoritmi con ordini di complessità: O(n d ) polinomiale O(2 n ) esponenziale Un algoritmo in O(n 7 ) non è efficiente in pratica! E. Amaldi Fondamenti di R.O. Politecnico di Milano 8

Esempi Algoritmo di Dijkstra per problema dei cammini minimi Dimensione di una istanza: I = O(m log n + m log c max ) Complessità: O(n 2 ) dove n è il numero di nodi Rapidità di crescita polinomiale rispetto a I ( I m n -1) Versione di base dell algoritmo di Ford-Fulkerson per problema di flusso massimo Dimensione di una istanza: I = O(m log n + m log k max ) Complessità: O(m 2 k max ) dove m è il numero di archi Rapidità di crescita non polinomiale rispetto a I E. Amaldi Fondamenti di R.O. Politecnico di Milano 9

3.2 Complessità dei problemi Scopo: stimare la difficoltà intrinseca di un problema per adottare l approccio risolutivo più adeguato Intuitivamente, la difficoltà intrinseca corrisponde alla complessità del migliore possibile algoritmo! Definizione: Un problema P è polinomiale ( facile ) se esiste un algoritmo polinomiale che fornisce una soluzione (ottima) per ogni istanza. Esempi: cammini minimi, flussi di valore massimo,... E. Amaldi Fondamenti di R.O. Politecnico di Milano 10

? Esistono problemi difficili? Per molti problemi di ottimizzazione i migliori algoritmi noti tutt oggi richiedono un numero di operazioni elementari che cresce, nel caso peggiore, esponenzialmente con la dimensione dell istanza N.B.: Non dimostra che sono effettivamente difficili! E. Amaldi Fondamenti di R.O. Politecnico di Milano 11

Problema del commesso viaggiatore Travelling Salesman Problem (TSP) Un commesso viaggiatore deve visitare ciascuna di n città esattamente una volta e ritornare al punto di partenza nel minor tempo possibile. collegamenti con tempi Problema Dato G = (N, A) orientato con un costo c ij Z per ogni (i, j) A, determinare un circuito di costo minimo che visita esattamente una volta ogni nodo. E. Amaldi Fondamenti di R.O. Politecnico di Milano 12

Definizione: Un circuito C è hamiltoniano se passa esattamente una volta per ogni nodo. Indicando con H l insieme di tutti i circuiti hamiltoniani di G, il problema equivale a m in C H ( i, j ) C c ij H contiene un numero finito di elementi: H ( n 1 )! Applicazioni: distribuzione, sequenziamento ottimo, VLSI, Numerose varianti ed estensioni (Vehicle Routing Problem --VRP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 13

http://www.tsp.gatech.edu 14

3.3 Teoria della NP-completezza Si fa riferimento ai problemi di riconoscimento e non a quelli di ottimizzazione Definizione: Un problema di riconoscimento è un problema che richiede una risposta si / no Ad ogni problema di ottimizzazione viene associata una versione di riconoscimento Esempio TSP-r Dato G = (N, A) con distanze c ij intere e un intero L, esiste un circuito hamiltoniano di lunghezza L? E. Amaldi Fondamenti di R.O. Politecnico di Milano 15

Problemi di riconoscimento Qualsiasi problema di ottimizzazione è almeno altrettanto difficile della sua versione di riconoscimento Esempio Se si riesce a individuare un circuito hamiltoniano di lunghezza minima si può chiaramente rispondere alla domanda di TSP-r (ne esiste uno di lunghezza L?) Se versione di riconoscimento è difficile il problema di ottimizzazione è anch esso difficile E. Amaldi Fondamenti di R.O. Politecnico di Milano 16

Classe di complessità P Definizione: P indica l insieme dei problemi di riconoscimento che si possono risolvere in tempo polinomiale. Esempi: quelli associati ai problemi di alberi ottimi, di cammini minimi e di flussi massimi Per ciascuno di essi esiste un algoritmo che permette di stabilire per ogni istanza I se la risposta è si o no in tempo polinomiale in I Definizione formale di P in termini di macchina di Turing (deterministica) polinomiale E. Amaldi Fondamenti di R.O. Politecnico di Milano 17

Classe di complessità NP Definizione: NP indica l insieme dei problemi di riconoscimento tali che per ogni istanza con risposta si esiste una prova concisa (certificato) che permette di verificare in tempo polinomiale che la risposta è si. Esempio TSP-r poiché si può verificare in tempo polinomiale se una sequenza di nodi è un circuito hamiltoniano e se lunghezza L E. Amaldi Fondamenti di R.O. Politecnico di Milano 18

Definizione formale: NP indica l insieme dei problemi di riconoscimento per i quali un polinomio p(n) e un algoritmo di verifica del certificato A vc tale che : istanza I ha risposta si un certificato (I) di dimensione polinomiale ( (I) p( I ) ) e A vc applicato all input I, (I) da risposta si in un numero di operazioni elementari p( I ). N.B.: Non importa quanto è difficile ottenere il certificato (può essere fornito da un oracolo ) basta che esista e sia verificabile in tempo polinomiale! E. Amaldi Fondamenti di R.O. Politecnico di Milano 19

Chiaramente P NP P P NP Congettura P NP Uno dei Millennium Prize Problems 2000!! NP non sta per Non Polinomiale ma per Nondeterministico Polinomiale (fa riferimento alle macchine di Turing non-deterministiche polinomiali) E. Amaldi Fondamenti di R.O. Politecnico di Milano 20

Riduzione polinomiale tra problemi Concetto di riduzione polinomiale permette di confrontare i problemi di riconoscimento ed individuare quelli più difficili Definizione: Sia P 1 e P 2 NP, P 1 si riduce in tempo polinomiale a P 2 (P 1 P 2 ) se esiste un algoritmo per risolvere P 1 che chiama un certo numero di volte un ipotetico algoritmo per P 2, e risulta polinomiale se si suppone che quello per P 2 richieda un unica unità di tempo. E. Amaldi Fondamenti di R.O. Politecnico di Milano 21

Caso più semplice: l algoritmo per P 2 viene chiamato un unica volta. Esempio P 1 : Dato un grafo non orientato G = ( N, E ) con costi e un intero L, un ciclo hamiltoniano di lunghezza L? P 2 : Dato un grafo orientato G = ( N, A ) con costi e un intero L, un circuito hamiltoniano di lunghezza L? P 1 P 2 E. Amaldi Fondamenti di R.O. Politecnico di Milano 22

Riduzione polinomiale dal caso non orientato a quello orientato : in tempo e spazio polinomiale I 1 P 1 è facile costruire una particolare I 2 P 2 4 1 2 1 4 2 2 6 G=(N,E) 4 5 3 G =(N,A ) L = 15 L = 15 5 2 3 4 6 4 1 2 5 1 4 2 5 2 2 3 3 tale che I 1 ha risposta si I 2 ha la risposta si E. Amaldi Fondamenti di R.O. Politecnico di Milano 23

Conseguenza: Se P 1 P 2 e P 2 è risolubile mediante un algoritmo polinomiale, allora anche P 1 può essere risolto in tempo polinomiale. P 2 P P 1 P E. Amaldi Fondamenti di R.O. Politecnico di Milano 24

Problemi NP-completi Definizione: Un problema P è NP-completo se e solo se 1) appartiene a NP 2) ogni altro problema in NP è riducibile ad esso in tempo polinomiale ( P P, P NP ) NP-completi P NP E. Amaldi Fondamenti di R.O. Politecnico di Milano 25

Proprietà: Se un problema NP-completo P fosse risolubile in tempo polinomiale (se P ), allora lo sarebbero tutti i problemi di NP, cioè si avrebbe P =NP!! eventualità considerata estremamente improbabile La NP-completezza è quindi un forte indizio di difficoltà intrinseca cf. lunga lista di problemi di riconoscimento importanti che risultano NP-completi e per i quali non sono noti algoritmi polinomiali E. Amaldi Fondamenti di R.O. Politecnico di Milano 26

Esistono problemi NP-completi? Soddisfacibilità (SAT) Date m clausole booleane C 1,, C m ( disgiunzioni -- OR -- di variabili booleane y j e loro complementi y j ), esiste un assegnamento di valori vero o falso alle variabili che rende vere tutte le clausole? Esempio C 1 : ( y 1 y 2 y 3 ) C 2 : ( y 1 y 2 ) C 3 : ( y 2 y 3 ) assegnamento: y 1 = vero, y 2 = falso, y 3 = falso E. Amaldi Fondamenti di R.O. Politecnico di Milano 27

Primo problema dimostrato NP-completo: Teorema (Cook 1971) SAT è NP-completo Stephen A.Cook 1939- Tramite i concetti di macchina di Turing e riduzione polinomiale E. Amaldi Fondamenti di R.O. Politecnico di Milano 28

(1974) Richard M. Karp 1935- Mostra che le versioni di riconoscimento di 21 problemi di ottimizzazione combinatoria sono NP-completi E. Amaldi Fondamenti di R.O. Politecnico di Milano 29

Come mostrare la NP-completezza? Per stabilire che P 2 NP è NP-completo basta mostrare che un problema NP-completo P 1 si riduce polinomialmente a P 2 : P P 1, P NP, e P 1 P 2 implica per transitività che P P 2, P NP Esempio P 1 : Dato G non orientato con costi e un intero L, un ciclo hamiltoniano di lunghezza L? P 2 : Dato G orientato con costi e un intero L, un circuito hamiltoniano di lunghezza L? P 2 NP e P 1 P 2 con P 1 NP-completo E. Amaldi Fondamenti di R.O. Politecnico di Milano 30

Dato G = (N, E) non orientato, esiste un ciclo hamiltoniano? (Karp 74) Dato un sistema lineare A x b con coefficienti interi, esiste una soluzione x con componenti 0-1?. Esempi di problemi NP-completi Dato G = (N, A) orientato, due nodi assegnati s e t, e un intero L, esiste un cammino semplice (con nodi distinti) da s a t che contiene un numero di archi L? Dato G = (N, A) orientato con costi sugli archi, due nodi s e t, e un intero L, esiste un cammino semplice da s a t di costo L? E. Amaldi Fondamenti di R.O. Politecnico di Milano 31

Problemi NP-difficili Definizione: Un problema è NP-difficile se ogni problema in NP è riducibile ad esso in tempo polinomiale (anche se non appartiene ad NP ) Esempio TSP poiché TSP-r (esiste un circuito hamiltoniano di lunghezza L?) è NP-completo. Tutti i problemi di otttimizzazione di cui la versione di riconoscimento è NP-completa sono NP-difficili. E. Amaldi Fondamenti di R.O. Politecnico di Milano 32

Programmazione Lineare Intera (PLI): Dati A m n, b m 1 e c n 1 con coefficienti interi, trovare x con componenti intere tale che Ax b e minimizza c T x. Proposizione (Karp 74): PLI è NP-difficile. 1) Verificare che la versione di riconoscimento del caso binario, r-pl0-1, appartiene a NP. r-pl0-1: Dato A x b con coefficienti interi, esiste una soluzione x {0, 1} n? 2) Mostrare che SAT (NP-completo) si riduce polinomialmente a r-pl0-1. (cf. esercizio 3.3) E. Amaldi Fondamenti di R.O. Politecnico di Milano 33

Esempi di problemi NP-difficili Dato G = (N, A) orientato con costi sugli archi, due nodi assegnati s e t, determinare un cammino semplice di costo massimo tra s e t. Dato G = (N, A) orientato con costi sugli archi, due nodi s e t, determinare un cammino semplice di costo minimo tra s e t. Dati matrice A m n, e vettori b m 1 e c n 1 con componenti intere, trovare un x {0, 1} n che soddisfi Ax b e minimizzi c T x.. E. Amaldi Fondamenti di R.O. Politecnico di Milano 34

Esercizio Qual è la dimensione di un istanza del problema dell albero di supporto di costo minimo? E. Amaldi Fondamenti di R.O. Politecnico di Milano 35