Lucchetto con combinazione (3 numeri tra 0 e 39)

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

Progettazione di Algoritmi

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Problemi, istanze, soluzioni

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

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

Progettazione di Algoritmi

Il problema del commesso viaggiatore: da Ulisse alla Logistica integrata. Luca Bertazzi

La teoria dell offerta

Per un vocabolario filosofico dell informatica. Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine

Algoritmi e Strutture Dati

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

Sviluppo di programmi

Crittografia a chiave pubblica

Il concetto di calcolatore e di algoritmo

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

Cosa è l Informatica?

Il problema del commesso viaggiatore

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

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

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

Corso di Informatica Modulo T1 1 - Il concetto di problema

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

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

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

La struttura elettronica degli atomi

Come ragiona il computer. Problemi e algoritmi

It s coding time. Pensiero Computazionale a scuola. Borgotaro 25 Novembre 2015

La macchina di Turing (Alan Turing, 1936)*

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Università del Piemonte Orientale

Informatica Generale Andrea Corradini I linguaggi di programmazione

Introduzione al Calcolo Scientifico

(ETC) MATRICOLE DISPARI

Pumping lemma per i linguaggi Context-free

Algoritmi e Strutture Dati

Calcolo di equilibri auto-confermanti

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Sulla nascita di questo libro. Introduzione 1

Lezioni di Economia Politica

Complessità computazionale degli algoritmi

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Struttura Elettronica degli Atomi Meccanica quantistica

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Bosi (a cura di), Corso di scienza delle finanze, il Mulino, 2012 Capitolo I, lezione 1 Il problema e alcune premesse

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

Problemi computazionali

3.4 Metodo di Branch and Bound

Come costruire un computer quantistico

Tempo e spazio di calcolo (continua)

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE

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

METODI MATEMATICI PER L INFORMATICA

Linee di programmazione

11.4 Chiusura transitiva

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

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

Il mercato e i modelli microeconomici

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.

Le parole dell informatica: algoritmo e decidibilità

Cercare il percorso minimo Ant Colony Optimization

Algoritmi di Ricerca. Esempi di programmi Java

RISOLVERE I TEMI D ESAME

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

Correlazione. Daniela Valenti, Treccani Scuola 1

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Esercizi di Ricerca Operativa I

Corso di Laurea in Ingegneria Informatica Analisi Numerica

Fondamenti di Informatica

una possibile funzione unidirezionale

collana di istruzione scientifica serie di informatica

Colorazioni di mappe e basi di Gröbner

Complessità e Approssimazione

Transcript:

Complessita computazionale ed il problema P / NP Fondamenti di Informatica 2010/11 Lucchetto con combinazione (3 numeri tra 0 e 39) Perche e sicuro? (escludendo che lo si rompa) Ans: Combinazione di 3 numberi 0-39 Un ladro dovrebbe provare 40 3 = 64,000 combinazioni 1

Tempo esponenziale Tempo 2 n per risolvere instanze di taglia n Incrementando n di 1 running time raddoppia! Da tener presente: Per n =300, 2 n > numero di atomi dell universo. Soddisfacibilita di formule Booleane (A + B + C) (D + F + G) (A + G + K) (B + P + Z) (C + U + X) = and + = or A = not A Esiste un assegnamento che la rende vera? E se abbiamo 100 variabili? 1000 variabili? Quanto impiegheremmo per trovare l assegnamento che rende vera la formula? 2

Discussione C e una differenza tra e essere creativi / brillanti essere capaci di apprezzare/comprendere creativita / genialita? Esiste una dicotomia analoga per la computazione? Genialita = Saper trovare to find l ago nel pagliaio Un Beethoven sa determinare l assegnamento giusto alla formula Booleana della bellezza musicale 3

Esistono numerosi problemi computazionali la cui soluzione richiede trovare un ago in un pagliaio. CLIQUE Problem In questo social network, esiste una CLIQUE con 5 o piu studenti? CLIQUE: Gruppo di studenti, in cui ogni coppia di studenti sono amici Qual e un buon algoritmo per determinare clique? In che misura l efficienza di tale algoritmo dipende dalla taglia della rete e della clique cercata? 4

Il problema di spargere la voce Social network Ogni nodo rappresenta uno studente Due nodi sono connessi da un arco se gli studenti sono amici Anna comincia a mettere voci in giro La voce raggiungera Benjamin? Suggerite un algoritmo per rispondere alla domanda Come cresce la complessita rispetto alla taglia della rete? I server della rete devono risolvere tale problema continuamente. Ricerca esaustiva / Esplosione Combinatoriale Algoritmi Naïve per molti problemi tipo ago nel pagliaio finiscono per testare tutte le possibili soluzioni running time esponenziale. Frequentissimo nell universo computazionale E possibile trovare algoritmi migliori (come per Spargere la Voce )? Per es., running time O(n 2 ). 5

Armonia di gruppo Dato un Social network di n studenti. Dove gli archi corrispondono a coppie di studenti che NON vanno d accordo. Decidi se esiste un insieme di k studenti che costituisca un gruppo in armonia (ognuno va d accordo con ognuno). E il problema della Clique mascherato! Il commesso viaggiatore (il problema dei corrieri UPS) Input: n locazioni e tutte le distanze tra coppie di punti, e una lunghezza k Scopo: decidere se esiste un modo per visitare tutte le locazioni percorrendo in totale una distanza <= k 6

Il problema dell Orario Input: n studenti, k corsi, liste degli studenti in ogni corso, m possibili orari per gli esami finali Conflitto : uno studente e in due corsi con l esame programmato alla stessa ora Scopo: decidere se esiste la possibilita di programmare l orario con al piu 100 conflitti? Il problema P / NP P: problemi per i quali e possibile trovare una soluzione in tempo polinomiale (n c dove c e una costante e n e la taglia dell input ). Esempi: ricerca binaria, Spargi la voce NP: problemi per i quali una buona soluzione puo essere verificata in tempo n c. Esempi: Soddisfacibilita Booleana, Commesso Viaggiatore, Clique, Orario Domanda: Vale P = NP? E possibile automatizzare la genialita? (Nota: Indipendente dal Modello computazionele --- Turing-Post, pseudocodice, C, Java, etc.) 7

Problemi NP-completi I Problemi piu difficili nella classe NP Se uno di essi in P allora ogni problema in NP e anche in P. Esempi: Soddifacibilita, Commesso Viaggiatore, Clique, Orario,. e molti molti altri ancora (migliaia) Come e possibile provare che tali problemi sono I piu difficili? Riduzione Datemi un punto d'appoggio, ed io muoverò la Terra. Archimedes (~ 250BC) Se mi date un algoritmo polinomiale per il problema della Soddifacibilita delle Formule Boolean, Vi dar un algoritmo polinomiale per ogni problema in NP. --- Cook, Levin (1971) Ogni problema in NP e un problema di soddisfacibilita mascherato 8

Cosa fare con I problemi NP-completi 1. Euristiche (algoritmi che producono soluzioni ragionevoli per istanze reali) 2. Algoritmi di Approssimazione (producono soluzioni sub-ottimali, ma con la possibilita di garantire il massimo margine di sub-ottimalita ) Teoria della Complessita Computazionale: Studio dei problemi computazionalmente difficili. Una nuova prospettiva? Studio della materia focus su massa, carica, etc. Studio dei processi focus sulla difficolta computazionale 9

Esempio 1: Economia Teoria degli equilibri: Input: n agenti, ognuno con un portafoglio iniziale (beni, denaro, etc.) e con delle preferenze (funzione per misurare il guadagno) Equilibrio: sistema di prezzi tale che per ogni bene, domanda = offerta. Equilibrio esiste [Arrow-Debreu, 1954]. Gli Economisti assumono che i mercati lo trovino (come una mano invisibile ) Ma, non e noto alcun algoritmo efficiente per calcolarlo. Come fa il mercato a computarlo? Esempio 2: Problema della Fattorizzazione Dato un numero n, trova due numberi p, q (diversi da 1) tali che n = p x q. Come possiamo risolverlo? Infatti: Si assume che tale problema sia difficile. E alla base di gran parte della crittografia. 10

Esempio 3: Quantum Computation A B Peter Shor Principio fondamentale della meccanica quantistica: quando una particella va da A a B, usa tutti i possibili cammini allo stesso tempo [Shor 97] Possiamo usare il comportamento quantistico per fattorizzare interi in maniera efficiente (e rompere protocolli crittografici) E possibile costruire un computer quantistico, o la meccanica quantistica non descrive correttamente il nostro mondo fisico? Esempio 4: Intelligenza Artificiale Qual e la complessita computazionale di problemi quali riconoscimeto del linguaggio, giocare Ottimamente a scacchi? Etc. etc. Un possibile dimostrazione che il cervello non e un computer: Mostrare che esso continuamente risolve problemi che necessariamente (dimostrato) richiedono tempo esponenziale su un computer 11

Perche la relazione P / NP e un problema da $1.000.000? Se P = NP allora soluzioni brillanti diventano la norma (best schedule, best route, best design, best math proof, etc ) Se P NP allora sappiamo qualcosa di nuovo e fondazionale non solo rispetto alla scienza dei computer (analogo a Niente viaggia piu veloce della luce ). Prossimo tema: Crittografia (mettere in pratica la complessita computazionale) 12