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


algoritmi seconda parte, Dispense di Informatica Medica

Slide delle lezioni del professor Del Bolgia- informatica

Tipologia: Dispense

2018/2019

Caricato il 20/03/2019

giuuuuls
giuuuuls 🇮🇹

4.5

(43)

39 documenti

1 / 13

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
27/04/2018
Informatica - Ingegneria Medica -2018 - Franco Del Bolgia 1
Università degli Studi di Roma – Tor Vergata
Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica
Algoritmi e diagrammi di flusso
Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 2 of 24
Risoluzione di un problema
Risoluzione di problemi di cui si conosce
esattamente la modellistica ed i metodi di
risoluzione
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Anteprima parziale del testo

Scarica algoritmi seconda parte e più Dispense in PDF di Informatica Medica solo su Docsity!

Università degli Studi di Roma – Tor Vergata

Facoltà di Ingegneria – Corso di Laurea in Ingegneria Medica

Algoritmi e diagrammi di flusso

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 2 of 24

Risoluzione di un problema

Risoluzione di problemi di cui si conosce

esattamente la modellistica ed i metodi di

risoluzione

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 3 of 24

Risoluzione di un problema

Risoluzione di problemi di cui NON si

conosce esattamente la dinamica o

procedimento analitico

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 4 of 24

Risoluzione dei problemi

E’ sempre possibile trovare per un problema

una soluzione descrivibile come un algoritmo

eseguibile in maniera automatica?

COMPUTABILITA’

Esiste, e se sì quali caratteristiche deve avere

un esecutore che sia in grado di eseguire un

algoritmo per la soluzione di un problema in

maniera automatica?

Macchina di Turing e

modello di von Neumann

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 7 of 24

Calcolare la somma dei primi n numeri naturali

Algoritmo che parte da 1 e per incrementi di 1 arriva ad n

Algoritmo che parte da n e per decrementi di 1 arriva ad 0

Inizio

Leggi n

0 → z 1 → i

i > n?

Stampa z

Fine

NO SI

Inizio

Leggi n

n → z

n = 0?

z + n → z n - 1 → n

Stampa z

Fine

NO SI

z è l’accumulatore della soluzione

z + i → z i + 1 → i

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 8 of 24

Calcolare la somma dei primi n numeri naturali Per n = 4 T^ Pos^ n^ i^ z^ Note 1 A ?? ?? ?? (^) Variabili non definite 2 B 4 ?? ?? (^) Legge 4 e inizializza n 3 B 4 ?? (^0) inizializza z = 0 4 B (^4 1 0) Inizializza i = 1 5 C (^4 1 0) i > n risposta no → D 6 D (^4 1 0) Esegue le operazioni in D 7 C (^4 2 1) 2 > 4 risposta no → D 8 D (^4 2 1) Esegue le operazioni in D 9 C (^4 3 3) 3 > 4 risposta no → D 10 D (^4 3 3) Esegue le operazioni in D 11 C (^4 4 6) 4 > 4 risposta no → D 12 D (^4 4 6) Esegue le operazioni in D 13 C (^4 5 10) 5 > 4 risposta si → E 14 E (^4 5 10) Stampa z (10) 15 F (^4 5 10) Fine

Inizio

Leggi n 0 → z 1 → i

i > n?

z+i → z i+1 → i

Stampa z

Fine

A

B

C

D (^) E

F

NO SI

n, i, z variabili di programma

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 9 of 24

Efficienza degli algoritmi

Non è detto che la soluzione ad un problema sia data esclusivamente da un solo algoritmo

Possono esserci molti modi per ottenere la soluzione desiderata

Un algoritmo è più efficiente di un altro quando la soluzione è ottenuta con un numero di passi inferiore

L’efficienza o complessità di un algoritmo si misura in base al numero di passi che occorrono per ottenere la soluzione T(n)

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 10 of 24

Efficienza degli algoritmi: algoritmo di Gauss

T Pos n z Note 1 A ?? ?? Variabili non definite 2 B 4 ?? Legge n = 4 3 C 4 0 Inizializza z = 0 3 D 4 10 Calcola il risultato in z 4 E 4 10 Stampa z 5 F 4 10 Fine

La misura dell’efficienza degli algoritmi è una parte importante dell’informatica

Se n=100 con la metodica

precedente dovrei svolgere ben

303 operazioni per ottenere la

soluzione qui solo 5

Karl Frederick Gauss 1777-

50 coppie di numeri che danno sempre lo

stesso risultato

*( 1 ) 2

( ) n

n somman

Per qualsiasi valore di n intero positivo partendo da 1

(n+1)*n/2 → z

Fine

Inizio

Leggi n

Stampa z

0 → z

A B C D E F

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 13 of 24

Efficienza degli algoritmi

T Pos x n i z Note 1 A ?? ?? ?? ?? Variabili non definite 2 B 3 8 ?? ?? Legge x 3 e n 8 3 C 3 8 1 3 Iniz. i=1 e z=x=3 [1=8? no] 4 D 3 8 1 3 Calcola i+i e zz 5 C 3 8 2 9 Domanda 2=8 risposta no 6 D 3 8 2 9 Calcola i+i e zz 7 C 3 8 4 81 Domanda 4=8 risposta no 8 D 3 8 4 81 Calcola i+i e z*z 9 C 3 8 8 6561 Domanda 8=8 risposta si 10 D 3 8 4 10 Stampa z

Fine

Inizio

Iniz. i=1 e z=x

Stampa z

Altro modo solo per le potenze multiple di 2

x^8 =x^4 *x^4 =x^2 *x^2 *x^2 *x^2 (7 passi alg precedente)

z=x*x (z=x^2 ) z=x^2 *x^2 z=x^4 *x^4 3 passi

1 2 3 log 2 8 = 3

Leggi x ed n

i = n?

i = i + i z = z * z

NO SI

A

B

C

D

E

i = i + i i = i * 2 (consigliabile)

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 14 of 24

Efficienza degli algoritmi

y=2 n

Se n=4 y=2 4 =16 4=log 2 16 4 passi

log 2 8 =3 passi

log 2 16 =4 passi log 2 32 =5 passi

log 2 64 =6 passi log 2 128=7 passi

k 2 0 21 22 23 2 k z xn x︵^12 48 ...^2 ︶ x *x *x *x ......x       

z=x*x (z=x^2 ) z=x^2 *x^2 z=x^4 *x^4 z=x^8 *x^8 z=x^16 *x^16 z=x^32 *x^32

Ma possiamo ricordare che qualunque numero naturale può essere espresso

con potenze di 2 es. x^18 = x^16 * x^2 = x^8 * x^8 * x^2

n=18 10 = 10010 2 n=12^4 + 02^3 + 02^2 + 12^1 + 0*2^0 5 = log 2 18 = (4,17)

e l’esponente è un qualunque numero naturale che espresso in base 2

n=Bk Bk-1 Bk-2 ….B 1 B 0 in base 2 k=log 2 n k intero superiore

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 15 of 24

Efficienza degli algoritmi

Fine

Inizio

Iniz. i=1 z=1 k=n

Stampa z

Leggi x ed n

SI No int(k) >0?

z = z * r i=i * 2 k = n/i

A

B

C

D

E

Modulo 2 riporta il valore meno

significativo di k espresso in binario

18 = 10010 (modulo 2) = 0

18/2 = 9 = 01001 (modulo 2) =

18/4 = 4 = 00100 (modulo 2) =

18/8 = 2 = 00010 (modulo 2) =

18/16 = 1 = 00001 (modulo 2) =

3^18 = 387.420.

3^1 * 3^2 * 3^4 * 3^8 * 3^

1 * 3^2 * 1 * 1 * 3^

Con k qualunquez=xk Nell’esempio k=

x^(i * (int(k) mod2)) calcola la i-esima potenza di due di X con l'algoritmo precedente

1 2 4 8 16 Indice i

r = x^(i*((int(k) mod2))

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 16 of 24

Calcolo potenza 2 i-esima di x … r = x^(i * (int(k) mod2)) x^(i * mod2 (int(k)))

Riceve x, i, k

Bin = Mod2 (int(k))

Bin può essere 0 o 1 contiene la cifra meno significativa della parte intera di k come indicato nella diapositiva precedente SI No Bin =

r = 1

Inizio

Rientra

restituendo il valore di r

SI No j < 1

j = i

r = r * r

j = j /

r = x

Creo le variabili di lavoro locali variabile j , variabile Bin , e la variabile per il risultato r i peso della cifra binaria in elaborazione (1, 2, 4 , 8, 16, 32, …)

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 19 of 24

Processo

PROBLEMATICA

ANALISI DELLE INFORMAZIONI DA OTTENERE E DELLE INFORMAZIONI NECESSARIE A PRODURLI

DEFINIZIONE DEGLI ALGORITMI DI ELABORAZIONE

REALIZZAZIONE DELLA PROCEDURA AUTOMATIZZATA

DATI DI INGRESSO

ELABORAZIONE UMANA e/o AUTOMATICA

RISULTATI INFORMAZIONI RICHIETE

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 20 of 24

Processo di realizzazione del software

Analisi

Problema

Programmazione

Soluzione informale

Soluzione formale Algoritmo

Esecuzione

Programma macchina

Formalizzazione

Programma ad alto livello

Traduzione

Sistema informativo: Strumenti di supporto evoluti

Sistema informativo: Ambiente di sviluppo

Esecutore del linguaggio macchina (HW)

Esecutore del linguaggio ad alto livello

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 21 of 24

Classi di problemi

Problemi

Risolvibili

Trattabili

Hanno una soluzione certa

raggiungibile

Intrattabili

Hanno una soluzione certa

ma irraggiungibile

Deve essere definito

Il livello di approssimazione

Non Risolvibili

Non si conosce il metodo per

ottenere la soluzione

oppure le soluzioni sono

infinite

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 22 of 24

Strategie di risoluzione dei problemi

Tecniche top-down

E’ una tecnica che partendo dalla formulazione del problema

(progetto) lo decompone successivamente in

parti sempre più dettagliate per definirne in

modo sempre più preciso

le modalità di risoluzione

Tecniche botton-up

E una tecnica che viene intrapresa quando si hanno a

disposizione delle parti già conosciute (progettate) che si vogliono

utilizzare e/o riadattare su un nuovo progetto tipicamente nella

programmazione ad oggetti oppure quando sia necessario

effettuare delle prove di validazione su elementi di base prima

di procedere con il progetto completo

Livello 4

Livello 2

Livello 1

Livello 3

BOTTON

UP

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 25 of 24

Risoluzione Top-Down Realizzazione di un dispositivo per Laser terapia

Definizione delle specifiche Individuazione normative applicabili

Progettazione Elettronica (sicurezze elettriche, ottiche) come da standard

Progettazione Software (analisi dei moduli e supervisore)

Progettazione Contenitore (design, usabilità)

Progettazione Sistema emissione

Progettazione Sistemi controllo

Progettazione interfaccia uomo macchina

Progettazione software Rilevazione dati Elaborazione dati Progettazione Componenti meccaniche

Progettazione Alimentazione (sicurezza elettrica )

Limiti di emissione (Sicurezza del trattamento)

Progettazione software di interfaccia (Errori umani nell’inserimento dati)

Progettazione moduli Acquisizione Elaborazione Memorizzazione (congruenza dei dati)

Progettazione Assemblaggi (Assistenza tecnica)

Idea

standard da prendere in considerazioneNormative di legge cogenti applicabili Lista delle norme applicabili ANALISI DEI RISCHI

Lista delle specifiche terapeutiche^ Definizione d’uso Lista delle specifiche fisico-elettriche Non basta l’idea !!!!

Informatica - Ingegneria Medica -2018 - Franco Del Bolgia Slide 26 of 24

Risoluzione Botton Up Ho un dispositivo che genera luce laser per altre applicazioni con certe specifiche Posso utilizzarlo in un altro ambito? esempio per laser terapia per esempio?

Ho già le schede elettroniche di pilotaggio e controllo cosa devo verificare - adattare modificare per renderlo conforme? (sicurezze elettriche, ottiche) come da standard)

Ho già una interfaccia utente Ho già un contenitore con lecomponenti elettroniche

Modifiche da apportare all’interfaccia utente

Ho già un sistema software Rilevazione dati Elaborazione dati Eventuali modifiche

Revisione del software Adattamenti modifiche

Revisione adattamento e modifica per la nuova applicazione Revisione degliAssemblaggi

Idea

standard da prendere in considerazioneNormative di legge cogenti applicabili Lista delle norme applicabili ANALISI DEI RISCHI

Lista delle specifiche terapeutiche^ Definizione d’uso Lista delle specifiche fisico-elettriche Non basta l’idea !!!!