La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Luglio 2004Algoritmi1 ALGORITMI Luglio 2004. Algoritmi2 Lalgoritmo più antico Algoritmo di Euclide [Elementi, libro VII, proposizioni I e II, 330-320.

Presentazioni simili


Presentazione sul tema: "Luglio 2004Algoritmi1 ALGORITMI Luglio 2004. Algoritmi2 Lalgoritmo più antico Algoritmo di Euclide [Elementi, libro VII, proposizioni I e II, 330-320."— Transcript della presentazione:

1 Luglio 2004Algoritmi1 ALGORITMI Luglio 2004

2 Algoritmi2 Lalgoritmo più antico Algoritmo di Euclide [Elementi, libro VII, proposizioni I e II, a.C.] Dati due interi positivi m e n, trovare il loro massimo comune divisore, cioè il massimo intero positivo che divide senza resto sia m che n E1. [trovare il resto]: dividere m per n e chiamare r il resto E2. [è zero?]:se r=0 lalgoritmo termina e n è la risposta E3. [scambiare]:porre m n, n r e tornare indietro al passo E1 (1) m e n sono dati dingresso, presi dallinsieme degli interi positivi (2) n, dato duscita, è il massimo comune divisore dei dati dingresso (3) r decresce dopo ogni applicazione del passo E1, e una sequenza decrescente di interi positivi deve necessariamente finire con 0 (4)-(5) la divisione e il resto sono definiti matematica- mente e sono eseguibili in un tempo finito

3 Luglio 2004Algoritmi3 Proprietà del MCD (1) MCD(m,n) = MCD(n,m) (2) se m = n allora MCD(m,n) = n = m (3) se m > n e n = 0 allora MCD(m,0) = m (4) se m > n e n > 0 allora MCD(m,n) = MCD(m-n,n) = MCD(m-2*n,n) = ….. = MCD(m-q*n,n) = MCD(r,n) = MCD(n,r) CONOSCENZE SUL PROBLEMA NECESSARIE A COSTRUIRE lALGORITMO E1. [trovare il resto]: dividere m per n e chiamare r il resto E2. [è zero?]:se r=0 lalgoritmo termina e n è la risposta E3. [scambiare]:porre m n, n r e tornare indietro al passo E1

4 Luglio 2004Algoritmi4 Il concetto di algoritmo [Da Al-Kowarizmi, matematico arabo del IX secolo] Algoritmo: metodo generale, astratto ed effettivo di risoluzione di problemi formulati esplicitamente Generale:sommare 3+4 (particolare) sommare x+y (generale, per ogni coppia x,y) Astratto:indipendente dal metodo di rappresentazione Effettivo:soddisfa condizioni di definitezza ed eseguibilità Formulazione esplicita/implicita di problemi

5 Luglio 2004Algoritmi5 Diverse rappresentazioni di uno stesso algoritmo FlowchartINIZIO input m,n m m+1 n n - 1 n=0 vero output m in italiano in pseudocodice 1. Acquisisci in ingresso begin i valori di m,nread m,n 2. Incrementa m di 1repeat e decrementa n di 1 m m+1 3. Se n 0 torna a 2 n n-1 4. Produci in uscita il until n=0 valore di m write m end falso FINE

6 Luglio 2004Algoritmi6 Effettività Condizioni di definitezza ed eseguibilità di un algoritmo: (1) ha zero o più dati in ingresso (quantità assegnate prima dellinizio) (2) ha uno o più dati duscita (quantità ottenute alla fine, che hanno una relazione specificata con gli ingressi) (3) deve poter terminare dopo un numero finito e discreto di passi (4) ogni passo deve essere definito in modo preciso e non ambiguo per ogni caso possibile (5) le azioni (operazioni) devono potere essere eseguite da un esecutore, che le sa interpretare, in una quantità finita di tempo [una ricetta di cucina non è un algoritmo]

7 Luglio 2004Algoritmi7 Esecuzione e terminazione somma (m,n) INIZIO m,n n=0 m n n=0 inizio3 2inizio o giro4 1 falso 1 o giro 4 -2 falso 2 o giro5 0 vero 2 o giro 5 -3 falso ……… … …. n-esimo falso giro non termina per n 0! falso m m+1 n n-1 vero FINE

8 Luglio 2004Algoritmi8 Algoritmi che usano altri algoritmi prodotto (x,y) INIZIO x,y y y-1 z somma(z,x) y=0 vero FINE x y z somma (z,x) y=0 inizio o giro3 1 3 somma (0,3) falso 2 o giro3 0 6 somma (3,3) vero falso z 0

9 Luglio 2004Algoritmi9 Soluzione di problemi formulati implicitamente A deve determinare l'età dei tre figli di B (1) B dice ad A che il prodotto delle età dei figli è 36 A chiede un altro dato (2) B dice ad A la somma delle età dei figli A chiede ancora un altro dato (3) B dice ad A che il figlio maggiore suona il pianoforte A dice a B l'età dei tre figli Che età hanno i tre figli? Ragionamento: (1) triple il cui prodotto è 36 (2) somma delle triple precedenti = = = = = = = =13 Poiché A chiede un altro dato, la somma è 13, in quanto ci sono 2 triple con quella somma (3) il pianoforte è irrilevante, linformazione è che uno dei 3 figli è il maggiore: in non c è un maggiore, mentre c è in 2+2+9, che è la soluzione

10 Luglio 2004Algoritmi10 STORIA DEGLI ALGORITMI Donald E. Knuth (1970) americano La teoria degli algoritmi… si occupa principalmente della esistenza o non esistenza di algoritmi effettivi per calcolare particolari quantità… Lanalisi degli algoritmi… è invece intesa a significare la teoria delle proprietà di particolari algoritmi per calcolatori. Edsger W. Dijkstra (1976) olandese Un algoritmo definito in modo formale consente di farne oggetto di studio matematico e di poterlo eseguire in modo automatico Niklaus Wirth (1977) svizzero Algoritmi trattati con sistemi multiprocessore.

11 Luglio 2004Algoritmi11 Agente segreto Lagente segreto 89 sta cercando di scoprire tra quanti giorni un certo leader mondiale sarà assassinato. Il suo contatto gli dice che questa informazione si trova disseminata in una serie di 10 scatole dellufficio postale, per evitare che altri ne vengano a conoscenza, e gli dà 10 chiavi, con le seguenti istruzioni: 1. linformazione in ogni scatola è scritta in codice; 2. aprire prima la scatola 1 ed eseguire listruzione che vi si trova; 3. continuare attraverso le altre scatole in sequenza, a meno che le istruzioni non indichino diversamente; 4. una delle scatole è predisposta per esplodere se aperta. Lagente 89 prende le 10 chiavi e va allufficio postale, con il libro del codice in mano.

12 Luglio 2004Algoritmi12 Agente segreto Scatole postali : memoria, contenente istruzioni- scatole da 1) a 6) e dati - scatole da 8) a 10) I numeri delle scatole sono indirizzi di memoria Nelle scatole da 1) a 6) ci sono tre classi di istruzioni; in 1), 2), 3) e 5) istruzioni che riguardano operazioni aritmetiche in 4) unistruzione di decisione, che dipende dal risultato della precedente istruzione aritmetica in 6) istruzione di controllo (STOP) che non richiede dati nè rimanda ad altri indirizzi

13 Luglio 2004Algoritmi13 Le istruzioni di lettura di scrittura di assegnamento di controllo sono presenti in tutti i linguaggi per esprimere algoritmi

14 Luglio 2004Algoritmi14 Istruzioni di lettura LEGGI a, b, c Assegna alle variabili di nome a, b, c i valori forniti dallesterno, nellordine LEGGI I VALORI DI a, b, c abca 2 b 3 c

15 Luglio 2004Algoritmi15 Istruzioni di scrittura STAMPA x1, x2 Stampa i valori delle variabili di nome x1 e x2 STAMPA nessuna soluzione Stampa (senza alcuna elaborazione) la sequenza di caratteri contenuta tra virgolette

16 Luglio 2004Algoritmi16 Variabili e assegnamenti Una variabile: ha un nome denota un valore Istruzione di Assegnamento Esempio:A B + C calcola il valore dellespressione B + C (sommando il valore della variabile B con il valore della variabile C) e lo assegna come (nuovo) valore della variabile A il valore di A viene modificato i valori di B e C sono usati, ma non modificati

17 Luglio 2004Algoritmi17 Esempio di assegnamento X X + 1 prima della esecuzione dopo lesecuzione X 2 X 3


Scaricare ppt "Luglio 2004Algoritmi1 ALGORITMI Luglio 2004. Algoritmi2 Lalgoritmo più antico Algoritmo di Euclide [Elementi, libro VII, proposizioni I e II, 330-320."

Presentazioni simili


Annunci Google