Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.

Slides:



Advertisements
Presentazioni simili
Elementi di complessità
Advertisements

Problema dellordinamento Input: Sequenza di n numeri Output: Permutazione π = tale che: a 1 a 2 …… a n Subroutine in molti problemi E possibile effettuare.
Tempo di computazione (Running Time) di programmi Misure del tempo: Misure del tempo: metodi principali 1.Benchmarking 2.Analisi.
Sottoprogrammi: funzioni e procedure
Analisi della complessità degli algoritmi
Selezione A. Ferrari.
Analisi della complessità degli algoritmi
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Lez. 51 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Complessita'
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.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Algoritmo di Ford-Fulkerson
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
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.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
1 Informazioni generali r Stefano Leonardi m Tel.: m URL: / r Ricevimento:
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
1 Informazioni generali r Luca Becchetti m Tel.: m URL: r Ricevimento: m Latina:
Introduzione alla programmazione lll
Tempo di computazione (Running Time) di programmi Misure del tempo: Misure del tempo: metodi principali 1.Benchmarking 2.Analisi Benchmarking: usato per.
Modelli simulativi per le Scienze Cognitive
Il Linguaggio Macchina
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Le funzioni.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Elementi di Informatica
Elementi di Informatica di base
Algoritmi e Strutture dati Introduzione al corso
INFORMATICA MATTEO CRISTANI.
CODIFICA Da flow-chart a C++.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Algoritmi e Strutture Dati
23 aprile 2002 Algoritmi e strutture dati1 Informazioni generali Fabrizio d'Amore o Tel.: o o URL:
COMUNICAZIONE ONLINE, RETI E VIRTUALITA MATTEO CRISTANI.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
PRIMI ELEMENTI DI PROGRAMMAZIONE
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Realizzazione software
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Quinta giornata Risolvere efficientemente un problema in P: ancora sulla sequenza di Fibonacci.
Sistemi e Tecnologie Informatiche Complessità di calcolo.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
10/5/061 Lez. 12 Previsioni di traffico Generalità Previsioni di scenario.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Transcript della presentazione:

Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa in passi che, eseguiti in sequenza, consentono di eseguire un compito in tempo finito (?) Esempio: Max. di un vettore di n elementi Algorithm arrayMax(A, n) currentMax=A[0]; for (i=0; i<n; i++) // inziare da i = 1? if (A[i]>currentMax) currentMax=A[i]; return currentMax;

Introduzione2 Nel mondo reale Gli algoritmi intervengono (in modo più o meno nascosto) in molti aspetti Vari esempi o Internet o DBMS o Motori di ricerca….. o Analisi della struttura del Web

Introduzione3 Esempio: Routing in Internet Astrazione usando grafi: I nodi rappresentano router Gli archi descrivono i link fisici o Costi sugli archi (link) : ritardo, costo in, livello di congestione Obiettivo: determinare buon cammino sorg.-dest Protocollo di Routing A E D CB F Cammino buono: o Di solito significa cammino a costo minimo o Possibili def. alternative

Introduzione4 Esempio: Accesso a basi di dati Obiettivo: rispondere rapidamente Interrogazione Data base... Interrogazione

Introduzione5 Qualità di algoritmi e strutture dati Efficienza o Tempo di esecuzione o Spazio (quantità di memoria) I due aspetti sono interdipendenti

Introduzione6 Tempo di esecuzione In generale aumenta con n (dimensione dell'input) Per lo stesso valore di n può variare con il particolare input considerato (es. Vettore da ordinare)

Introduzione7 Misura dellefficienza - obiettivi Indipendenza dallimplementazione Generale (valida per ogni input, di qualsiasi dimensione) Misura indipendente dalla piattaforma Hw/Sw In generale: una misura dipendente dalla piattaforma hw/sw è poco rappresentativa

Introduzione8 Modello di costo RAM Random Access Machine Macchina che esegue le istruzioni in sequenza. Insieme di operazioni primitive a costo unitario: Assegnazione Operazioni aritmetiche Confronto Lettura/Scrittura

Introduzione9 Modello di costo/2 Costo di operazioni complesse: Ciclo: somma costo test di fino ciclo e costo corpo del ciclo if…then…else: costo test più costo blocco istruzioni che segue then o else (a seconda del caso) Attivazione di un metodo: somma dei costi di tutte le istruzioni presenti nel metodo Costo: somma di tutti i costi

Introduzione10 Esempio/1 Nel primo caso (vett. di 3 elementi) si ha costo 1 (ass.)+1 (ass. nel for) + 6 (test e incr. nel for) + 1 (test finale for) + 3 (test if) + 1 (istruz. return) = 13 Nel secondo caso si ha 1 (ass.) + 1 (ass. nel for) + 10 (test e incr. nel for) + 1 (test finale for) + 5 (test if) + 1 (istr. ass. nellif) + 1 (istruz. return) = 20 Algorithm arrayMax(A, n) currentMax=A[0]; for (i=0; i<n; i++) if (A[i]>currentMax) currentMax=A[i]; return currentMax; n=3 n=5

Introduzione11 Modello di costo/3 Perché tale modello è accettabile? Il costo di istruzione è sempre valutato a meno di un fattore costante (eventualmente grande) perché o Il numero di operazioni elementari per ogni istruzione è finito o Ogni variabile occupa una quantità finita di memoria e quindi i tempi di accesso a due variabili diverse sono comunque legati da una costante Vantaggi: prescinde dalla piattaforma Hw/Sw e dal linguaggio di programmazione Svantaggi: lindicazione che si ottiene è qualitativa

Introduzione12 Modello di costo/4 Problema: i risultati dipendono dal particolare input, anche per lo stesso valore di n Si vuole una misura che dipenda dalla dimensione dellinput (n nel nostro esempio) ma non dal particolare input considerato Possibile alternative: o Analisi del caso peggiore (worst case): si considera il costo di esecuzione nel caso peggiore (l'analisi del caso migliore è in generale poco interessante) o Analisi del caso medio: si considera il costo medio dellalgoritmo rispetto ad una distribuzione dellinput (richiede la conoscenza della distribuzione) In ogni caso occorre definire la dimensione dellinput Nel seguito si considera lanalisi nel caso peggiore

Introduzione13 Dimensione dellinput Per ogni problema va indicata la dimensione dellinput perché è rispetto ad essa che si calcola il costo degli algoritmi Dipende dallinput, es.: o Nr. componenti per il problema di ordinare un vettore di interi o Nr. di nodi e numero di archi per problemi su grafi La scelta deve essere ragionevole. Nei casi dubbi una misura ragionevole è il numero di bit necessari a rappresentare linput Esempio: se si considera il problema di determinare la scomposizione in fattori primi di un numero intero allora la dimensione dellinput è il numero di bit necessario a rappresentare un intero. D.: numero di bit necessario a rappresentare un intero < N ?

Introduzione14 Algorithm arrayMax(A, n) currentMax=A[0]; for (i=0; i<n; i++) if (A[i]>currentMax) currentMax=A[i]; return currentMax; Analisi nel caso peggiore (esempio) Nel caso peggiore gli elementi sono ordinati in maniera crescente In questa ipotesi listruzione currentMax=A[i]; è eseguita n-1 volte. Il costo complessivo dellalgoritmo è allora (ragionando come nei casi precedenti) 1+1+2n+1+n+(n- 1)+1=4n