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, Appunti di Informatica

Il documento presenta le definizioni delle complessità computazionali di algoritmi e problemi e spiega in che modo si può calcolare la complessità di una specifica funzione. L'argomento è stato così svolto in una classe quinta di un liceo scientifico opzione scienze applicate.

Tipologia: Appunti

2023/2024

In vendita dal 15/09/2024

sofia-sifanno
sofia-sifanno 🇮🇹

36 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
pf3
pf4

Anteprima parziale del testo

Scarica Complessità Computazionale e più Appunti in PDF di Informatica solo su Docsity!

-COMPLESSITÀ COMPUTAZIONALE- La complessità computazionale, come detto poc'anzi, si occupa essenzialmente di due aspetti: e Assegnato un algoritmo (soluzione di un problema), stimare la sua “complessità”, nel senso di assegnare un “costo” dell'algoritmo una volta scelto un criterio per misurare il costo suddetto; * Assegnatoun problema (di cui nonsi conosce la soluzione, oppure più soluzioni diverse), stimare la sua “complessità”, nel senso di assegnare un “costo” ai vari possibili algoritmi di risoluzione, una volta scelto un criterio per misurare il costo suddetto. Occorre innanzitutto determinare se esiste una soluzione al problema, poi capire eventualmente se esistono più soluzioni diverse al problema, infine fare una stima dei costi per ciascuna soluzione, e solo alla fine stabilire un “costo complessivo” da associare all'intero problema. * Quanta FATICA occorre per risolvere il problema? cos'è che rende complesso un algoritmo o un problema, in pratica? 1) NATURA INTRINSECA dell'algoritmo o del problema in esame, ovvero tutte quelle caratteristiche specifiche che lo rendono più o meno difficile da svolgere (nel caso dell'algoritmo), o da affrontare (nel caso del problema). Ogni algoritmo, e ogni problema, hanno delle specificità uniche, le quali contribuiscono all'ammontare di “fatica” necessario per risolvere il problema stesso o eseguire l'algoritmo. 2) DIMENSIONE: numero dei DATI DI INPUT necessario per arrivare al passo finale e alla soluzione cercata. Qualunque sia la tipologia dei dati in ingresso, una misura del numero di ingredienti perun algoritmo/problema sarà quasi certamente un numero intero ANDAMENTI A GRANDI DIMENSIONI Nel nostro ragionare sulla complessità saremo quasi sempre interessati a casi in cui la dimensione del problema è molto grande. In generale, il mondo di oggi lavora con problemi in cui la dimensione è enorme rispetto alle possibilità di analisi umane, per cuii valori di n con cui si ha quotidianamente a che fare crescono fino a diventare pressoché infiniti. Perciò: esame dell'andamento asintotico limnd ee f (n), dove f è una funzione opportuna della dimensione n di un problema o di un algoritmo, che esprime la complessità di questi. Ciò permette di ridurre le funzioni da studiare ai loro “componenti essenziali”, quelle dominanti. MISURE DI COSTO- la misura della complessità di un algoritmo esige che si parta dalla comprensione di quale indicatore adottare percapire come gli algoritmi stessisi stanno comportando in fase di esecuzione, e che tipo di risorse stanno consumando. SCELTA tra le specifiche risorse consumate dall’algoritmo stesso nel corso della sua esecuzione. Questa risorsa indica lo SFORZO necessario per COMPLETARE l’algoritmo=MISURA DI COSTO. Le più comuni: * TEMPO DI ESECUZIONE= ogni macchina può eseguire soltanto un passo dell'algoritmo alla volta. Naturale supporre che più l'algoritmo sarà complesso, piùtempo impiegherà per completarsi. Spesso molto fedele alla complessità effettiva. CICLI DELLA CPU che deve attraversare per compiere tutte le istruzioni necessarie a portare a termine l'algoritmo stesso, VALORE DISCRETO. numero di istruzioni di un algoritmo non coincide con il numero di righe di codice * IMEMORIA IMPIEGATA=un algoritmo trasformato in un programma richiederà in generale l'allocazione di una certa quota dimemoria (RAM o virtuale)