

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
Appunti sugli algoritmi per il corso di informatica delle Professioni Sanitarie e Medicina
Tipologia: Appunti
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Un algoritmo è una soluzione formale ad un problema; è una procedura che costa di un numero finito di
passi, finalizzata a risolvere un problema automaticamente.
Ad ogni passo del procedimento di calcolo deve essere possibile applicare un’istruzione; non c’è un limite
al tempo necessario per eseguire il calcolo, né allo spazio di memoria richiesto
Lo scopo di progettare algoritmi è quello di risolvere un problema e quello di valutarne l’efficienza, scoprire
eventuali problemi ed individuare come migliorarli.
In qualunque momento ci sia bisogno di elaborare dati, è necessario progettare ed analizzare un algoritmo;
In qualsiasi caso, si ha bisogno di un calcolatore e di istruirlo a fare ciò di cui si ha bisogno.
Il grafo bipartito è un grafo tale che l’insieme dei suoi vertici si può dividere in due sotto-insiemi disgiunti
così che ad ogni vertice di una di queste due parti è collegato solo ai vertici dell’altra.
Nel modello di Eubank, i due sotto-insiemi sono le
persone e i luoghi;
Gli archi indicano il fatto che una certa persona
frequenta un certo luogo;
Le etichette sugli archi, sono gli intervalli
temporali in cui una certa persona si trova in un
certo luogo.
i ricercatori furono in grado di utilizzare delle stime realistiche dei pattern di controllo della città di
Portland utilizzando un sistema che analizza gli spostamenti su mezzi pubblici
la simulazione di un’epidemia di varicella a Portland ha evidenziato che strategie mirate sono più
efficaci rispetto alle indicazioni tradizionali
costruiamo un algoritmo che esegue il prodotto fra due numeri: a e b a + a + ... + a
Siano a=3 e b=
Inizialmente (linea 1) prodotto 0
La linea 2 ci dice che è necessario
ripetere per b volte ( 4 )
. i=1, prodotto= 0+3=3 1. Prodotto= . i=2, prodotto= 3+3=6 2. For i=1 to b do . i=3, prodotto= 6+3=9 3. Prodotto=prodotto + a . i=4, prodotto= 9+3=12 4. End for
Infine, si restituisce il risultato (linea 5) 5. Return (prodotto)
b volte
Un’istruzione tipo for … do … end for è detta iterativa in quanto permette di ripetere l’esecuzione di alcun
istruzioni per un certo numero di volte
Supponiamo di avere a disposizione un calcolatore capace di fare solo la sottrazione di due numeri interi e
vogliamo costruire un algoritmo che divide il numero a per il numero b
Per tale calcolo, l’algoritmo conta quante volte b è contenuto in a (metodo delle sottrazioni successive)
Siamo a=20 e b=6 inizialmente divisione =
. a=20, b=6 a≥b divisione= 1, a=20 – 6= . a=14, b=6 a≥b divisione= 2, a=14 – 6= . a=8, b=6 a≥b divisione=3, a=8 – 6= 2 . a=2, b=6 a<b linea 6 (return)
Un’istruzione di tipo while … do … end while è ancora una volta iterativa ma, differentemente dal
ciclo for, il numero di volte per cui alcune istruzioni vengono ripetute, dipende da una condizione
vero/falso;
Il numero di iterazioni non è quindi noto a priori come nel caso del ciclo for, ma dipende dal
verificarsi della condizione booleana
La complessità di un algoritmo si misura in termini di numero di operazioni eseguite, delle variabili
in ingresso;
L’unità di misura della complessità è il numero di istruzioni eseguite.
Il calcolo della complessità dell’algoritmo che calcola il prodotto fra due numeri, contando il
numero di istruzioni che segue
. 1 volta linea 1 1: prodotto= . b volte linea 3 2: for i=1 to b do . 1 volta linea 5 3: prodotto= prodotto+a
per un totale di 2 + b linee di codice eseguite 4: end for
5: return (prodotto)
Quando si parla di complessità, si ignorano le costanti e si fa riferimento al solo termine di grado
superiore;
Si afferma che l’algoritmo, che calcola il prodotto fra due numeri ha complessità 0(b);
La valutazione di complessità, permette di valutare l’efficienza di un algoritmo, ed eventualmente
di individuare misure migliorative.
La valutazione della complessità è quindi, lo strumento usato per l’analisi degli algoritmi.