Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Complessità computazionale: analisi e valutazione degli algoritmi, Schemi e mappe concettuali di Informatica

schemi complessità computazionale

Tipologia: Schemi e mappe concettuali

2022/2023

Caricato il 11/03/2024

ludovico-bezzi-1
ludovico-bezzi-1 🇮🇹

5 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
La complessità computazionale
Qualità di un algoritmo
L’impiego dell’algoritmo più efficiente si traduce in un risparmio di risorse computazionali e quindi in un
risparmio di tempo e denaro.
Aspetti da valutare:
Organizzazione interna:
-Struttura data alle istruzioni
-Strutture dati utilizzate
Risorse necessarie per eseguirlo:
-Memoria
-Processore
Finora l’obiettivo dell’attività di programmazione era quello che: Dato un problema scriverne la soluzione
attraverso un algoritmo corretto e funzionante e codificarlo in un linguaggio di programmazione ora
Dati uno o più algoritmi che risolvono un problema, confrontarli per individuare il migliore sulla base di una
analisi qualitativa
Come possiamo valutare le prestazioni di un algoritmo?
Le principali caratteristiche da valutare sono:
Lo Spazio di memoria (memoria di lavoro) area di memoria occupata da un processo durante la
sua esecuzione. Indicata anche come risorsa spazio
Il Tempo di esecuzione tempo impiegato per eseguire il processo legato all’algoritmo. Indicata
anche come risorsa tempo
La VELOCITA' DI ESECUZIONE non è un buon indicatore perché il tempo di esecuzione dipende dal
PROGRAMMA ma anche dall'HARDWARE che utilizziamo.
Regole di valutazione:
- Le istruzioni semplici (come lettura,scrittura e assegnamento) hanno costo 1
-Icostrutti iterativi MENTRE ... FINEMENTRE, RIPETIFINCHE’ hanno costo pari alla somma del costo:
Del test del ciclo: costo 1
Del corpo del ciclo (dato dalla somma dei costi delle singole istruzioni)
Somma dei primi N numeri naturali 3N+6 formula importantissima
-Per valutare il costo dell’algoritmo si trascurano le operazioni meni onerose dal punto di vista esecutivo
(addizioni, incrementi, decrementi) e si considerano solo le operazioni dal costo dominante (confronti e
moltiplicazioni).
Il tempo di esecuzione di un algoritmo è proporzionale al suo costo.
1
pf3

Anteprima parziale del testo

Scarica Complessità computazionale: analisi e valutazione degli algoritmi e più Schemi e mappe concettuali in PDF di Informatica solo su Docsity!

La complessità computazionale Qualità di un algoritmo L’impiego dell’algoritmo più efficiente si traduce in un risparmio di risorse computazionali e quindi in un risparmio di tempo e denaro. Aspetti da valutare: ● Organizzazione interna : -Struttura data alle istruzioni -Strutture dati utilizzate ● Risorse necessarie per eseguirlo: -Memoria -Processore Finora l’obiettivo dell’attività di programmazione era quello che: Dato un problema scriverne la soluzione attraverso un algoritmo corretto e funzionante e codificarlo in un linguaggio di programmazione ora Dati uno o più algoritmi che risolvono un problema, confrontarli per individuare il migliore sulla base di una analisi qualitativa Come possiamo valutare le prestazioni di un algoritmo? Le principali caratteristiche da valutare sono: ● Lo Spazio di memoria (memoria di lavoro) area di memoria occupata da un processo durante la sua esecuzione. Indicata anche come risorsa spazio ● Il Tempo di esecuzione tempo impiegato per eseguire il processo legato all’algoritmo. Indicata anche come risorsa tempo La VELOCITA' DI ESECUZIONE non è un buon indicatore perché il tempo di esecuzione dipende dal PROGRAMMA ma anche dall'HARDWARE che utilizziamo. Regole di valutazione :

  • L e istruzioni semplici (come lettura,scrittura e assegnamento) hanno costo 1 - I costrutti iterativi MENTRE ... FINEMENTRE, RIPETI…FINCHE’ hanno costo pari alla somma del costo: ● Del test del ciclo : costo 1 ● Del corpo del ciclo (dato dalla somma dei costi delle singole istruzioni) Somma dei primi N numeri naturali 3N+6 formula importantissima -Per valutare il costo dell’algoritmo si trascurano le operazioni meni onerose dal punto di vista esecutivo (addizioni, incrementi, decrementi) e si considerano solo le operazioni dal costo dominante (confronti e moltiplicazioni). Il tempo di esecuzione di un algoritmo è proporzionale al suo costo.

Complessità computazionale T(N) è la funzione matematica che indica la relazione tra il numero di operazioni di un programma e la dimensione N dei dati in input. Disposizione dei dati

  • Per effettuare una buona analisi è necessario valutare anche la SEQUENZA di dati che si presentano in input e i loro specifici valori. -La complessità computazionale è legata ai valori dei dati in input e a come sono disposti , oltre che alla loro dimensione. Analisi della complessità Per valutare le prestazioni di alcuni algoritmi è utile considerare 3 tipi di complessità: ● CASO OTTIMO : configurazione che dà luogo al minimo tempo di esecuzione. Si ha quando l’elemento X da ricercare si trova a metà del vettore complessità pari a 1 ● CASO MEDIO : basato su tutte le possibili occorrenze iniziali di dati ● CASO PESSIMO : configurazione per cui l'algoritmo ha un comportamento pessimo Si ha quando è necessario suddividere il vettore fino a ridurlo a un solo elemento occorrono log N confronti Ricerca sequenziale: Se ho una lista di N numeri la complessità sarà: ● CASO MIGLIORE : ● CASO PEGGIORE : N Ricerca binaria: Se ho una lista di N numeri la complessità sarà: ● CASO MIGLIORE : ● CASO PEGGIORE : log(N) Complessità computazionale Valutare un dato ancor più significativo ossia il VALORE o la COMPLESSITA' ASINTOTICA, ossia l'ordine di grandezza della complessità. Comportamento asintotico di una funzione Per rappresentare la complessità computazionale, l'informatica teorica utilizza la notazione O-grande che descrive il comportamento asintotico di una funzione.