Aniello Murano Overview del corso

Documenti analoghi

L interesse nella macchina di Turing

Aniello Murano Automi e Pushdown

Problemi, istanze, soluzioni

Diario delle Lezioni del Corso di Algoritmimodulo

Laboratorio di Algoritmi e Strutture Dati

Aniello Murano Decidibilità delle teorie logiche

Progettazione di Algoritmi

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Algoritmi e Strutture Dati

Grafi: definizioni e visite

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

Aniello Murano Breve Presentazione del corso

Progettazione di Algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005)

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

Lucchetto con combinazione (3 numeri tra 0 e 39)

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

SOMMARIO. DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE Università degli Studi di Padova. Introduzione. Concetti base.

MICROECONOMIA Teoria dell impresa

Algoritmi e Strutture Dati

Parole note, nuovi significati: linguaggio, determinismo e infinito

Il concetto di calcolatore e di algoritmo

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Proposte di approfondimenti

MODULO VERIFICA MACCHINA versione per CARRELLO

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Introduzione Problemi e codifiche Classe P e linguaggi Da NP a NP-C Il mondo NP-C Conclusioni. NP-Completezza

Algoritmi e Strutture dati a.a. 2012/2013

Lucchetto con combinazione (3 numeri tra 0 e 39)

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Lezione 1. Problemi Algoritmi Programmi

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Costo di esecuzione e complessità. Modello di costo e complessità di un algoritmo

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

Introduzione al Calcolo Scientifico

Tempo e spazio di calcolo

Algoritmi e Strutture Dati

Grafi: visita generica

SOMMARIO DIAGRAMMI DI ATTIVITÀ INGEGNERIA DEL SOFTWARE. Introduzione. Concetti base. Introduzione. Concetti base

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

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)

Finanziamenti alle Imprese Regionali Statali Comunitari

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Fondamenti dei linguaggi di programmazione

SOMMARIO DIAGRAMMI DI ATTIVITÀ

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

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

Teoria della Complessità Computazionale. Accettazione/riconoscimento di linguaggi in tempo/spazio

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

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

Problema del cammino minimo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

LABORATORIO DI INFORMATICA

Dall algoritmo al programma

11.4 Chiusura transitiva

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Le aree dell informatica

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Esercizi di Algoritmi e Strutture Dati

Teoria dell Informazione

Corso di Informatica di Base

Fondamenti di Informatica II Corso (HA-ZZ) Introduzione al corso

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

DISCIPLINA IVA NEL SUBAPPALTO

Corso di Matematica per la Chimica

Laboratorio di Informatica

LA METAFORA DELL UFFICIO

Architettura. Nome Modulo Tipologia lezioni Ore Docente SSD Ruolo Interno Affidamento. Vincenzo Conti

Progetto e analisi di algoritmi

ALBERTO DENNUNZIO DALLE AUTOSTRADE DIGITALI ALLE AUTOSTRADE REALI: GRAFI, WEB, FACEBOOK E NAVIGATORI SATELLITARI

UNIVERSITA DEGLI STUDI DI PERUGIA

Le aree dell informatica

Heap e code di priorità

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

Progetto: Dama. 1 - Descrizione. 2 - Regole del gioco. Appello di febbraio 2003

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Cammini minimi fra tutte le coppie

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

Linee di programmazione

Esercizi di Algoritmi e Strutture Dati

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

Tempo e spazio di calcolo (continua)

Introduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi

Parte I - Concetti Base ESEMPIO

Esercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Sistemi Web per il turismo - lezione 3 -

Algoritmi e Strutture Dati

Strutture di Controllo

Rappresentazione con i diagrammi di flusso (Flow - chart)

Introduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016

Oggetto: partecipazione a procedura aperta n. (indicare il numero della procedura) Il sottoscritto Cognome e nome (1) Nato a Il

Transcript:

Aniello Murano Overview del corso Lezione n. Parole chiave: Overview 1 Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Informazioni Generali sul Corso Esame: Calcolabilità e Complessità Libri di testo: Michael Sipser. Introduction to the Theory of Computation, PWS, 1997 Approfondimenti: Christos H. Papadimitriou. Computational Complexity, Addison Wesley, 1994 J. E. Hopcroft and J. D. Ullman, Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 1979. M. R. Garey and D. S. Johnson, Computers and Intractability: a Guide to the Theory of NP-Completeness. Freeman, 1979. H. R. Lewis and C. H. Papadimitriou, Elements of the Theory of Computation. Prentice- Hall, 1981. Michael R. Garey and David S. Johnson. Computers and Intractability, W. H. Freeman, 1979. Modalità d esame: Una prova scritta seguita da una prova orale facoltativa. In particolare, si valuterà durante lo svolgimento del corso la possibilità di una prova di verifica intermedia e delle tesine di esonero di parti di esame. Modalità Lezioni: frontale/e-learning. Durata del corso frontale: 72 ore pari a 36 lezioni da 2 ore. 24 Lezioni si svolgeranno nel periodo Ottobre-Gennaio. Le rimanenti 12 lezioni saranno svolte nel periodo Marzo-Giugno

Informazioni sul Docente Prof. Dr. Aniello Murano, ricercatore universitario presso la Sezione di Informatica del Dipartimento di Scienze Fisiche Università degli Studi di Napoli, Federico II Abilitazione a professore di II fascia - Sito web: http://people.na.infn.it/~murano/ Ricevimento: su appuntamento E-mail: murano@ na.infn.it Altre informazioni sul docente: Laurea in Scienze dell informazione, Dottorato di ricerca e post-doc in Informatica presso l Università degli Studi di Salerno. Researcher per un anno presso la Rice University di Houston (TX-USA). Post-doc per un anno presso la Hebrew University di Gerusalemme (Israele). Collabora con vari gruppi di ricerca in Italia e all estero. Altri insegnamenti: Lab. di ASD - Laurea in Informatica, Facoltà di Scienze MM.FF.NN. - Università Federico II. Fondamenti di Linguaggi di programmazione: Laurea Magistrale in Informatica, Facoltà di Scienze MM.FF.NN. - Università di Napoli Federico II. Corsi al Dottorato di Ricerca in Informatica ed altro Interessi principali di ricerca: Teoria degli Automi e dei Linguaggi Formali. Logiche Temporali discrete e real-time, Metodi Formali per la Specifica, la Verifica e la Sintesi di sistemi hardware e software, Model Checking, Teoria dei Giochi. Obiettivi del Corso Il corso è costituito da un'introduzione alla calcolabilità dei problemi e alla loro complessità strutturale. La teoria della calcolabilità si occupa di stabilire se un problema è risolvibile o meno. La teoria della com plessità è quella parte della teoria della calcolabilità che si occupa di stabilire le quantità di risorse necessarie durante la computazione per risolvere un dato problema. Solitamente, per risorse si intende: Tempo (quante operazioni occorre fare per risolvere il problema Spazio (quanta memoria ha bisogno una algoritmo per essere eseguito) Altre risorse come ad esempio quanti processi paralleli sono necessari per risolvere un dato problema. Scopo di questo corso è fornire dunque agli studenti gli strumenti necessari per comprendere e affrontare la difficoltà nel risolvere alcuni problemi comuni da un punto di vista computazionale.

Un esempio pratico(1) Il problema degli ospiti al tavolo John Mary Bob Jane Alice Problema: Dati n ospiti e una lista di preferenze (piace/non piace), posizionare tutti gli ospiti intorno al tavolo in modo che ognuno sia seduto vicino ad un suo ospite preferito Un algoritm o Naive : Per ogni possibile distribuzione degli ospiti verificare che ogni ospite è seduto vicino ad uno che gli piace Domanda: Quanto tempo richiede questo algoritmo per sistemare correttamente n ospiti? John Mary Bob Jane Alice Tavola delle preferenze John Jane Mary Alice Una possibile distribuzione Bob Un esempio pratico(2) Nel caso peggiore, l algoritmo Naive deve eseguire un numero di operazioni dell ordine di n! (n fattoriale) Viene subito da chiedersi se questo tempo, in termini pratici, è un tempo ragionevole. Facciamo un po di conti Per n=5 occorrono 120 operazioni. Per n=20 occorrono 2.4 3 2.9 0 2.0 0 8.1 7 6.6 4 0.0 0 0 ( 2 * 1 0 19 ) operazioni. Supponiamo che abbiamo una macchina in grado di eseguire 10 10 operazioni al secondo e che 3 anni sono circa 10 8 secondi. Per n=20 ci vogliono circa 60 anni!!!! Per n=100 occorrono numero di operazioni dell ordine di 10 156, dunque un numero di anni dell ordine di 10 138!!!!!

Problemi trattabili vs Problemi non trattabili Per il problema appena visto, cosa è lecito chiedersi e cosa si può concludere: Il problema e risolvibile? Sì (esiste un algoritmo che lo risolve) Esiste un algoritmo con una performance migliore? La risposta negativa si può provare formalmente con il concetto di riduzione (che vedremo in seguito). Per dare una intuizione, bisogna sapere che esistono problemi per i quali non è mai stato trovato un algoritmo migliore di una certa soglia. La riduzione della soluzione di uno di questi problemi a quello in esame, porta a concludere che anche quello in esame si deve comportare allo stesso modo. Se il miglior algoritmo ha un tempo di esecuzione che nel caso peggiore si comporta come quello Naive visto in precedenza, si conclude che il problema affrontato richiede un tempo esponenziale e dunque che si tratta di un problema intrattabile. In termini asintotici, si dice che l algoritmo ha una complessità di tempo O(2 n log n ). Programma del corso (I parte) Concetto di modello di calcolo, risorsa computazionale, algoritmo efficiente e problema trattabile. Problemi computazionali: descrizione, istanze, codifica, relazione con i linguaggi: automi e PDA. Modelli di calcolo: Macchina di Turing (MdT). Introduzione della classe P Le classi di complessità P e NP. Relazione tra NP e P. Complessità in spazio Teorema di inclusione tra classi in tempo e in spazio. Concetto di Macchina di Turing Universale. Teorema di Savitch. Riduzioni e completezza! Riduzioni e completezza! Riduzioni e completezza! Riduzioni e completezza! Riduzioni e completezza! Riduzioni e completezza! Per la seconda parte verranno trattati problemi specifici della logica temporale, teoria degli automi e della teoria dei giochi. Per tutti questi problemi verranno poi affrontate questioni di Calcolabilità e Complessità\

Alcuni concetti fondamentali Nella teoria della calcolabilità i seguenti tre concetti fondamentali si susseguono costantemente: Problema: Cosa si vuole computare Modello: Chi risolve il problema Algoritmo: Come si risolve il problema Il problema si può vedere come una funzione che dato un input (una istanza del problema) produce il corretto output. Un esempio di problema può essere la ricerca di un valore x in un ABR T, dove l input è una coppia (T,x) e l output è yes se x è in T. In questo corso ci occuperemo principalmente di problemi decisionali, di ricerca, di ottimizzazione, giochi, ecc. Un modello di computazione può essere un computer sequenziale (o una macchina di von Newman), un computer parallelo, un circuito booleano, ecc. In questo corso considereremo principalmente macchine di Turing (deterministiche, nondeterministiche, a più nastri, ecc.) nonché automi e PDA. Un algoritmo, è un metodo per risolvere il problema dato su un determinato modello computazionale. Risorse di calcolo e complessità dei problemi L esecuzione di un algoritmo comporta il dispendio di risorse di vario tipo: tempo, spazio, processori (nel caso di computazioni parallele), canali di comunicazioni (nel caso di computazione distribuita), ecc. La complessità di un algoritmo rispetto ad una data risorsa è l ammontare di quella risorsa consumata per la sua esecuzione. Dunque, a seconda della risorsa di interesse si può parlare di complessità di tempo (time-complexity), di complessità di spazio (space-complexity), ecc. In questo corso ci occuperemo quasi esclusivamente di time- e space-complexity. La com plessità di un problem a rispetto ad una data risorsa è la minima quantità di quella risorsa necessaria affinché un algoritmo possa risolvere quel problema. L obiettivo principale della teoria della complessità è Caratterizzare la complessità dei problemi e classificarli in classi di complessità Una classe di com plessità è un insieme di problemi, ognuno dei quali ha una complessità in un range ben definito.

Raggiungibilità di un nodo in un grafo Un grafo è una coppia (V, E), dove V è un insieme di nodi, chiamati vertici E è un insieme di coppie di nodi, chiamati archi Un arco è una coppia (v,w) di vertici in V Esempio: Un grafo (V,E) è non orientato se l insieme degli archi E è un insieme di coppie non ordinate Un grafo (V,E) è orientato se l insieme degli archi E è una relazione binaria tra vertici. Raggiungibilità di un nodo in un grafo Input: Grafo orientato G = (N,E), nodo sorgente s, nodo target t Questione da risolvere: verificare se c è un percorso in G da s a t? Problema decisionale: output = Si/No Graph Search for each v N-{s} do {mark[v]=0} mark[s]=1 ; Q = {s} while Q do { select a node u and delete if from Q for each v N do if (A[u,v]=1 and mark[v]=0) then {mark[v]=1; Q=Q {v} } } If mark[t]=1 then print Yes else print No Per calcolare la complessità di questo algoritmo si deve considerare come è implementato G

Matrice di adiacenza Lista di adiacenza

Time Complexity Si assuma che G sia implementato con matrice di adiacenza. L algoritmo visita ogni elemento della matrice solo una volta quando il vertice corrispondente alla sua riga è stato scelto. Inoltre, tutte le altre operazioni richieste dall algoritmo come, scegliere un elemento di Q, marcare un vertice, o dire se esso e marcato o meno, possono essere eseguite in tempo costante Siccome la matrice ha n² posizioni dove n è il numero dei nodi nel grafo, si deduce che la time-complexity è proporzionale a n². Cioè la time-complexity è O(n²). La notazione O esprime la complessità dell algoritmo nel caso peggiore. In pratica, la notazione O permette di sopprimere le costanti dal calcolo preciso della complessità. In realtà è possibile provare che la complessità è indipendente dalla implementazione di G e dalla implementazione di S. In particolare, anche nel caso in cui S sia una coda (in tal caso l elemento si scegli in base ad una BFS) o nel caso di uno stack (in tal caso l elemento si scegli in base ad una DFS). Notazione Asintotica Big O O(g(n)) ={f(n) per ogni c>0 e n 0 tale che per ogni n>n 0 : 0 f(n) c g(n)} Per indicare che una certa funzione f(n) è nell insieme appena definito, si usa scrive f(n) = O(g(n)). Si noti qui che = indica appartenenza. Esempi: 7n =O(n 2 ). 7n 2 =O(n 2 ). 7n 2 non è O(n).

Growth Rate: Sketch time n! =2O(n lg n) 2 n n 2 10n input length I problemi rispetto alla complessità per risolverli Trattabile Intrattabile polinomiale n O(1) esponenziale 2 no(1)

Un altro problema Si supponga di avere una serie di città (rappresentate da un grafo orientato). Problema: E possibile visitare tutte le città esattamente una volta. Soluzione (naive): Si cercano cioè tutte le città raggiungibile e che non sono state ancora visitate e per queste si considera una possibile visita delle città Domanda: Questo problema è trattabile? Possibili risposte: Sì! Fornendo un algoritmo efficiente. NO! Provandolo formalmente Per il No si può utilizzare il concetto di riduzione fra problemi Per esempio, uno si può chiedere se è possibile risolvere il problema degli ospiti a tavola una volta risolto il problema del tour Relazione tra Problemi Assumendo l esistenza di un algoritmo efficiente per il problema del tour, c è allora un algoritmo efficiente per il problema degli ospiti a tavola Il problema degli ospiti a tavola (OSPITI) non può essere radicalmente più difficile del problema del tour (TOUR)

Riduzione OSPITI p TOUR OSPITI non può essere più difficile di TOUR In altre parole TOUR è almeno tanto difficile quanto OSPITI Sebbene per alcuni problemi non siamo in grado di ottenere algoritmi efficienti, o provare che non ce ne sia uno, la tecnica della riduzione ci permette di definirne la sua difficoltà, mettendolo in relazione con altri problemi di cui si conosce la effettiva difficoltà La classe dei Problemi NP- completi (NP- C) Contiene una miriade di problemi Ognuno riducible a tutti gli altri? algoritmi esponenziali algoritmi efficienti

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.