Complessità degli algoritmi (cenni) CORDA – Informatica A. Ferrari.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Analisi della complessità degli algoritmi
Analisi della complessità degli algoritmi
Sommatorie Proprietà Serie aritmetica Serie geometrica Serie armonica
Lez. 51 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Complessita'
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Programmazione dinamica
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.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati.
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
Funzione di trasferimento logaritmica
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Il problema della ricerca 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.
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 Copyright © The McGraw - Hill Companies, srl Diremo che f(n) =
Algoritmi e Strutture Dati
Laboratorio di Linguaggi lezione IX Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica Anno Accademico 2007/08.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Teoria e Tecniche del Riconoscimento
Teoria e Tecniche del Riconoscimento
Introduzione all’algebra lineare
Determinazione Orbitale di Satelliti Artificiali Lezione 5
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
COMPLESSITÀ DEGLI ALGORITMI
GRAFICO DI UNA FUNZIONE
Elementi di Informatica di base
Ordinamento dell’array
Radix-Sort(A,d) // A[i] = cd...c2c1
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 3 Complessità computazionale concreta Corso di Informatica 2 a.a. 2003/04 Lezione 3.
Complessità di un algoritmo
Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante un algoritmo.
Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti
Alberi CORDA – Informatica A. Ferrari Testi da
Grafi CORDA – Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati.
Complessità del problema Se non facciamo ipotesi sul tipo degli elementi della sequenza le uniche operazioni permesse sono confronti e assegnazioni. Problema.
Algoritmi per liste CORDA – Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di 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.
Definizione di algoritmo: Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile.
1 Università degli Studi di Urbino “Carlo Bo” - Facoltà di Economia Corso di Laurea triennale in Marketing e comunicazione d’azienda a.a Corso.
1 Università degli Studi di Urbino “Carlo Bo” - Facoltà di Economia Corso di laurea triennale in Marketing e comunicazione d’azienda a.a Corso.
Array (visita e ricerca) CORDA – Informatica A. Ferrari.
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati.
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
Complessità Computazionale
Sistemi e Tecnologie Informatiche Complessità di calcolo.
A.A. 2005/2006Sintesi di volti virtuali da foto ortogonali 1 Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Università.
Informatica 3 V anno.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Rudimenti di Complessità Corso di Programmazione II Prof. Dario Catalano.
Prof.ssa Rossella Petreschi Lezione del 1 /10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitoli da 1 a3 del testo Giorgio Ausiello, Rossella.
Transcript della presentazione:

Complessità degli algoritmi (cenni) CORDA – Informatica A. Ferrari

Testo di riferimento  Dispense del Corso di Algoritmi e Strutture Dati  Marco Bernardo Edoardo Bontà  Università degli Studi di Urbino “Carlo Bo”  Facoltà di Scienze e Tecnologie  Corso di Laurea in Informatica Applicata

Confronto fra algoritmi  Confronto fra algoritmi che risolvono lo stesso problema  Si valuta il tempo di esecuzione (in numero di passi) in modo indipendente dalla tecnologia dell’esecutore  Il tempo è espresso in funzione della dimensione dei dati in ingresso T(n)  Per confrontare le funzioni tempo ottenute per i vari algoritmi si considerano le funzioni asintotiche

Funzione asintotica  Data la funzione polinomiale f(n) che rappresenta il tempo di esecuzione dell’algoritmo al variare della dimensione n dei dati di input  La funzione asintotica ignora le costanti moltiplicative e i termini non dominanti al crescere di n  Es  f(n) = 3x 4 +6x  funzione asintotica = x 4

Casi  Il tempo di esecuzione può essere calcolato in caso  pessimo – dati d’ingresso che massimizzano il tempo di esecuzione  ottimo – dati d’ingresso che minimizzano il tempo di esecuzione  medio – somma dei tempi pesata in base alla loro probabilità

Classi di complessità asintotica  O(1) complessità costante  O(log n) complessità logaritmica  O(n) complessità lineare  O(n * log n) complessità pseudolineare  O(n 2 ) complessità quadratica  O(n k ) complessità polinomiale  O(α n ) complessità esponenziale

Algoritmi non ricorsivi  Calcolo della complessità  Vengono in pratica “contate” le operazioni eseguite

Esempio: fattoriale int fattoriale(int n) { int fatt, i; fatt = 1; for (i = 2; i <= n; i++) fatt = fatt * i; return(fatt); } T(n) = 1 + (n-1)(1+1+1)+1 = 3n – 1 = O(n)

Esercizio - 1  Scrivere l’algoritmo di ricerca del valore minimo in un array di n elementi  Calcolare la complessità computazionale  Definire la classe di complessità asintotica

Esercizio 2  Scrivere l’algoritmo che ricerca il valore x in un array di n elementi e ritorna l’indice della prima occorrenza dell’elemento o -1 se non è presente  Calcolare la complessità nel caso  ottimo  pessimo  medio