

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Il concetto di complessità di calcolo degli algoritmi, un tema fondamentale nell'informatica. Vengono analizzati i problemi risolubili e la loro classificazione in base al costo di soluzione, definendo la complessità di calcolo come la misura del costo di esecuzione di un algoritmo. Il concetto di passo di calcolo e confronta diversi algoritmi di somma per illustrare l'importanza dell'efficienza e della valutazione accurata della complessità per ottimizzare le risorse. Infine, vengono discusse le differenze tra complessità temporale e spaziale e il ruolo della macchina di turing nella teoria della complessità.
Tipologia: Appunti
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Introduzione
Questa lezione si concentra sulla complessità di calcolo degli algoritmi , un concetto fondamentale dell’informatica.
● Nelle lezioni precedenti sono stati analizzati i problemi non risolubili e i limiti intrinseci del calcolo.
● Ora l’attenzione si sposta sui problemi risolubili , classificandoli in base al costo di soluzione.
Definizione di complessità di calcolo
● La complessità di calcolo di un algoritmo misura il costo della sua esecuzione per risolvere un problema risolubile.
● Anche tra i problemi risolubili, ne esistono alcuni che richiedono così tante risorse (tempo o memoria) da risultare praticamente irrisolvibili.
Concetto di passo di calcolo
● Un passo di calcolo è ogni operazione elementare che un algoritmo esegue.
● Nel modello semplificato:
○ Ogni operazione (aritmetica, logica, confronto, assegnamento) costa 1 unità di tempo.
○ Il costo è indipendente dalla tipologia di operazione.
Esempio: confronto tra algoritmi di somma
○ Somma ottenuta spostando palline.
○ Uso di un ciclo di incrementi e decrementi fino al raggiungimento del risultato.
○ Ogni spostamento conta come un passo di calcolo.
○ Esempio con 3 + 4 → richiede 6 passi.
○ Somma di due cifre in un solo passo.
○ Stesso esempio con 3 + 4 → richiede 1 passo.
Analisi dell’efficienza
● Non basta valutare la chiarezza del codice o il numero di istruzioni per stabilire la bontà di un algoritmo.
● Il parametro più corretto è il numero di passi di calcolo.
● Per sommare due numeri di L cifre :
○ Tempo di calcolo: t(L) = L + 1.
○ L’efficienza dipende dalla dimensione dei dati in ingresso.
● Questo modello semplificato consente di stimare la complessità in modo generale.
Importanza pratica della complessità
● La complessità è cruciale in contesti con grandi quantità di dati o esecuzioni frequenti di algoritmi.
● Algoritmi lenti:
○ Consumano più risorse.