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


Cenni sugli Algoritmi, Appunti di Informatica Medica

Appunti sugli algoritmi per il corso di informatica delle Professioni Sanitarie e Medicina

Tipologia: Appunti

2020/2021

In vendita dal 13/02/2021

francesca-cocco-9
francesca-cocco-9 🇮🇹

4.3

(4)

14 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
GLI ALGORITMI
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.
GRAFO BIPARTITO
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.
IL MODELLO EUBANK
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.
P1 . . L1
P2 . . L2
P3 . . L3
P4 . . L4
DISCUSSIONE
SOCIAL NETWORK
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
RISULTATI
la simulazione di un’epidemia di varicella a Portland ha evidenziato che strategie mirate sono più
efficaci rispetto alle indicazioni tradizionali
IL PRODOTTO FRA DUE NUMERI
costruiamo un algoritmo che esegue il prodotto fra due numeri: a e b a + a + ... + a
ESEMPIO
Siano a=3 e b=4
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=0
. 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
pf3

Anteprima parziale del testo

Scarica Cenni sugli Algoritmi e più Appunti in PDF di Informatica Medica solo su Docsity!

GLI ALGORITMI

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.

GRAFO BIPARTITO

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.

IL MODELLO EUBANK

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.

P1 ⃝ ⃝ L

P2 ⃝ ⃝ L

P3 ⃝ ⃝ L

P4 ⃝ ⃝ L

DISCUSSIONE

 SOCIAL NETWORK

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

 RISULTATI

la simulazione di un’epidemia di varicella a Portland ha evidenziato che strategie mirate sono più

efficaci rispetto alle indicazioni tradizionali

IL PRODOTTO FRA DUE NUMERI

costruiamo un algoritmo che esegue il prodotto fra due numeri: a e b  a + a + ... + a

ESEMPIO

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

L’ITERAZIONE (CICLO FOR)

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

LA DIVISIONE FRA NUMERI

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)

L’ITERAZIONE (CICLO WHILE)

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

COMPLESSITÀ

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

VENGONO ESEGUITE:

. 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.

IL PRODOTTO MIGLIORATO FRA DUE NUMERI

A + a … + a SE a ≥ b

a · b = b volte