Informatica Generale Alessandra Di Pierro

Slides:



Advertisements
Presentazioni simili
CONOSCERE CONOSCERSI COMUNICARE
Advertisements

Strutture dati per insiemi disgiunti
TSP Traveling Salesman’s Problem Università di Camerino
Informatica Generale Susanna Pelagatti
/ fax
Algoritmi e Strutture Dati (Mod. B)
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Informatica Generale Susanna Pelagatti
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
6. Catene di Markov a tempo continuo (CMTC)
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Algoritmi e Strutture Dati
Sintesi dei dati La sintesi dei dati comporta una perdita di informazioni, deve quindi essere privilegiato l’indice di sintesi che minimizza la perdita.
RISPARMIO, ACCUMULAZIONE DI CAPITALE E PRODUZIONE
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
6. Catene di Markov a tempo continuo (CMTC)
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Process synchronization
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Problemi intrattabili e quantum computing
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Informatica Generale Susanna Pelagatti
Francesco Cavalera Liceo Scientifico "A.Vallone"
Strutture di controllo in C -- Flow Chart --
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Intelligenza Artificiale
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
1 Informatica Senza Computer? Chiariamoci un po le idee!!! Carlo Gaibisso Informatica senza Computer?
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Algoritmi e linguaggi di programmazione
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
lun mar mer gio ven SAB DOM FEBBRAIO.
TRASFORMATA DI FOURIER
Grafi CORDA – Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati.
La quantità chimica LA MOLE La quantità chimica:la mole.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Complessità Computazionale
Transcript della presentazione:

Informatica Generale Alessandra Di Pierro email: dipierro@di.unipi.it Ricevimento: Giovedì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 362 DE Tel. 050.2212.779 o per posta elettronica Pagina web del corso: http://www.di.unipi.it/~dipierro/IG03.html

I problemi risolubili dal computer Complessità Problemi intrattabili Problemi indecidibili

La complessità degli algoritmi Nella prima parte del corso abbiamo visto alcuni esempi di algoritmi abbiamo visto come alcuni algoritmi sono ‘più veloci’ di altri Adesso: vogliamo approfondire introducendo misure ‘quantitative’ della velocità di un algoritmo (la complessità) per confrontare due algoritmi fra di loro per stabilire se un certo problema si può risolvere in tempo ragionevole o no

La complessità degli algoritmi (2) Un esempio: ricerca di un Autore in schede ordinate: algoritmo stupido : controllo tutte le schede dalla prima algoritmo ‘lettera iniziale’ : troviamo la prima scheda relativa alla lettera iniziale del campo Autore e da quella procediamo in sequenza algoritmo ‘del dizionario’ : dividiamo ripetutamente le schede a metà eliminando ogni volta la metà che sicuramente non contiene la scheda cercata la valutazione di complessità associa ad ogni algoritmo una espressione numerica che descrive il numero di operazioni effettuate (in media)

La ricerca ‘stupida’ 2. Prendi la prima scheda 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste.

La ricerca ‘stupida’ (2) Numero operazioni elementari richieste Complessità 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste. 1 1 (lettura) 1 (confronto) 2 (lettura e confronto) 1 (confronto)

La ricerca ‘stupida’ (3) Numero operazioni elementari richieste Complessità 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste. 1 1 (lettura) 1 (confronto) 2 (lettura e confronto) 1 (confronto) ? Quante volte sono ripetuti 3-4-5 ?

La ricerca stupida (4) schedario 1 N Numero complessivo delle schede Situazione iniziale

La ricerca stupida (5) schedario 1 2 ………. K N Situazione dopo aver esaminato K schede

La ricerca stupida (6) schedario 1 2 ………. K N Situazione dopo aver esaminato K schede I passi 3-4-5 vengono ripetuti finché non trovo la scheda. Supponendo che le schede vengano tutte cercate con la stessa frequenza si ha in media un numero di ripetizioni dell’ordine di N/2

La ricerca ‘stupida’ (7) Numero operazioni elementari richieste Complessità totale 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste. 1 1 (lettura) 1 (confronto) 2 (lettura e confronto) 1 (confronto) (Tl + Tc )*N/2 Tl - tempo di lettura Tc - tempo di confronto

La ricerca ‘stupida’ (8) Costo complessivo : facciamo un conto numerico (Tl = 0.01ms, Tc = 10ns, N= 400 000) (Tl + Tc )*N/2 (0.01 )*200 000 = 2000 ms = 2 secondi

La ricerca stile ‘dizionario’ 1. Apri il classificatore 2. Prendi la scheda X al centro dello schedario 3. Confronta il campo autore e titolo di X con quelli cercati 4. Se sono uguali, allora termina, altrimenti prosegui 5. Se il campo autore di X è minore di quello cercato allora prosegui la ricerca sulla metà inferiore delle schede altrimenti considera la metà superiore 6. Se la metà selezionata al passo 5 è vuota allora termina (lo schedario non contiene il libro cercato) altrimenti scegli come X la scheda al centro della metà scelta e vai al passo 3

La ricerca stile ‘dizionario’ (2) schedario Situazione iniziale

La ricerca stile ‘dizionario’ (3) Ogni volta elimino la metà delle schede, oppure mi fermo perché ho trovato la scheda cercata Ogni volta divido il numero N delle schede per 2, mi fermo quando N è diventato 1 o 0 Al più eseguo x passi dove x è il logaritmo in base 2 di N (log2 N) Scheda cercata!

La ricerca stile ‘dizionario’ (4) 1. Apri il classificatore 2. Prendi la scheda X al centro dello schedario 3. Confronta il campo autore e titolo di X con quelli cercati 4. Se sono uguali, allora termina, altrimenti prosegui 5. Se il campo autore di X è minore di quello cercato allora prosegui la ricerca sulla metà inferiore delle schede altrimenti considera la metà superiore 6. Se la metà selezionata al passo 5 è vuota allora termina (lo schedario non contiene il libro cercato) altrimenti scegli come X la scheda al centro della metà scelta e vai al passo 3 1 1 (confronto) 1 (confronto) 1 (lettura e confronto)

La ricerca stile ‘dizionario’ (5) I passi 3-6 sono effettuati log2 N volte. Quindi la complessità in questo caso è : che valutato con (Tl = 0.01ms, Tc = 10ns, N= 400 000) da (Tl + Tc) * log2 N (0.010001) * log2 400 000 = (0.010001) * 19 = 0.19 ms = 0.0019 sec

Complessità : considerazioni È importante stabilire la complessità (velocità) di un algoritmo per capire se un problema è o meno risolubile in tempi ragionevoli dal calcolatore Esistono problemi per cui non esiste un algoritmo di risoluzione che termina in tempi ragionevoli !

Complessità : considerazioni (2) Problemi indecidibili : quelli per i quali non può esistere un algoritmo di soluzione che termina sempre (in tempo finito) per qualsiasi insieme dei dati in ingresso es : problema del barbiere che fa la barba solo a tutti coloro che non se la fanno da soli (paradosso di Russel) : esiste un algoritmo che dato X umano risponde SI se X si fa la barba da solo e NO altrimenti?

Complessità : considerazioni (3) Il barbiere che fa la barba solo a tutti coloro che non se la fanno da soli (cont.) la risposta è NO, perché un tale algoritmo A porterebbe ad una contraddizione se applico A al barbiere stesso (X = barbiere) infatti se A(barbiere) risponde SI significa che il barbiere si rade da solo …

Complessità : considerazioni (3a) Il barbiere che fa la barba a tutti coloro che non se la fanno da soli (cont.) la risposta è NO, perché un tale algoritmo A porterebbe ad una contraddizione se applico A al barbiere stesso (X = barbiere) infatti se A(barbiere) risponde SI significa che il barbiere si rade da solo …contro la sua caratteristica di radere solo chi non si rade da solo analogamente per la risposta NO

Complessità : considerazioni (4) Altro esempio : trovare un algoritmo che decide se un programma P termina dato un certo insieme dei dati in ingresso D (problema di Turing o della terminazione) primo tentativo: applicare P a D ed aspettare il risultato … …. E se P(D) non termina ? Turing ha dimostrato che l’esistenza di un simile algoritmo provocherebbe un paradosso

Complessità : considerazioni (5) Quindi esistono problemi intrinsecamente insolubili (problemi indecidibili) per fortuna sono pochi Esistono però anche problemi risolubili ma solo con algoritmi di complessità molto elevata (problemi intrattabili) che sono purtroppo molto frequenti …

Complessità : considerazioni (5) Problemi intrattabili Sono problemi che richiedono di esplorare tutte le possibili combinazioni di un insieme di dati in ingresso La loro complessità ha fattori come 2N (N numero dei dato in ingresso) Con fattori esponenziali nella formula di complessità i tempi di risposta dell’algoritmo crescono rapidamente con il numero N dei dati in ingresso (es. anni) nel nostro esempio (ricerca) con N=40, avremo 10995116 sec cioè circa 127 giorni (4 mesi e mezzo)

Complessità : considerazioni (6) Problema dei ponti di Königsberg (Eulero) problema : stabilire se esiste un itinerario attraverso la città che traversi ciascun ponte una sola volta A f a b Fiume Pregel B e D Isola Kneiphof g ponti c d C

Complessità : considerazioni (7) Problemi dei ponti di Königsberg (Eulero) grafo di Königsberg : un nodo per ogni pezzo di terra e un arco per ogni ponte A arco nodo a b f B e D d c g C

Complessità : considerazioni (8) Problemi dei ponti di Königsberg (Eulero) grafo di Königsberg : un nodo per ogni pezzo di terra e un arco per ogni ponte A a b f B e D d c g C

Complessità : considerazioni (9) Problemi dei ponti di Königsberg (Eulero) nel grafo di Königsberg non esiste un itinerario con le caratteristiche cercate Eulero risolse il problema per un grafo qualsiasi mostrando che condizione necessaria e sufficiente è la presenza di nodi da cui si dipartono solo numeri pari di archi Quindi il problema si risolve esaminando una sola volta tutti i nodi

Complessità : considerazioni (10) Problema del commesso viaggiatore trovare una cammino che tocchi tutti i nodi una e una sola volta (nodi = città, archi = collegamenti) A a b f B e D d c g C

Complessità : considerazioni (11) Problema del commesso viaggiatore una soluzione per il grafo di Königsberg A a b f B e D d c g C

Complessità : considerazioni (12) Simile al problema dei ponti Però il TSP è intrattabile (NP-completo): per grafi generali TSP non può essere risolto senza considerare tutte le possibili combinazioni di cammini Morale : parecchi problemi pratici sono intrattabili spesso problemi simili hanno caratteristiche computazionali diverse per problemi intrattabili bisogna abbandonare l’idea di algoritmo esatto per passare agli algoritmi approssimati