ALGORITMI - PowerPoint PPT Presentation

About This Presentation
Title:

ALGORITMI

Description:

ALGORITMI Luglio 2004 L algoritmo pi antico Algoritmo di Euclide [Elementi, libro VII, proposizioni I e II, 330-320 a.C.] Dati due interi positivi m e n, trovare ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 18
Provided by: Lanzarone
Category:

less

Transcript and Presenter's Notes

Title: ALGORITMI


1
  • ALGORITMI

Luglio 2004
2
Lalgoritmo più antico
  • Algoritmo di Euclide
  • Elementi, libro VII, proposizioni I e II,
    330-320 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 r0 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
Proprietà del MCD
  • (1) MCD(m,n) MCD(n,m)
  • (2) se m n allora MCD(m,n) n m
  • (3) se m gt n e n 0 allora MCD(m,0) m
  • (4) se m gt n e n gt 0 allora
  • MCD(m,n) MCD(m-n,n) MCD(m-2n,n)
  • .. MCD(m-qn,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 r0 lalgoritmo termina e
    n è la risposta
  • E3. scambiare porre m?n, n?r e tornare
    indietro al passo E1

4
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 34 (particolare)
  • sommare xy (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
Diverse rappresentazioni di uno stesso algoritmo
  • Flowchart INIZIO
  • input m,n
  • m ?m1
  • n ?n - 1
  • n0
  • vero
  • output m
  • in italiano
  • in pseudocodice
  • 1. Acquisisci in ingresso begin
  • i valori di m,n read m,n
  • 2. Incrementa m di 1 repeat
  • e decrementa n di 1 m?m1
  • 3. Se n?0 torna a 2 n?n-1
  • 4. Produci in uscita il until n0
  • valore di m write m
  • end

falso
FINE
6
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
Esecuzione e terminazione
  • somma (m,n)
  • INIZIO
  • m,n
  • n0
  • m n n0 m n n0
  • inizio 3 2 inizio 3 -1
  • 1o giro 4 1 falso 1o giro 4 -2
    falso
  • 2o giro 5 0 vero 2o giro 5 -3
    falso
  • .
  • n-esimo falso
  • giro
  • non termina per n?0!

m?m1 n ?n-1
falso
vero
FINE
8
Algoritmi che usano altri algoritmi
  • prodotto (x,y)
  • INIZIO
  • x,y
  • y?y-1
  • z ?somma(z,x)
  • y0
  • vero
  • FINE
  • x y z somma (z,x) y0
  • inizio 3 2 0
  • 1o giro 3 1 3 somma (0,3) falso
  • 2o giro 3 0 6 somma (3,3) vero

z?0
falso
9
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
  • lt1,1,36gt lt1,4,9gt lt2,3,6gt
  • lt1,2,18gt lt1,6,6gt lt3,3,4gt
  • lt1,3,12gt lt2,2,9gt
  • (2) somma delle triple precedenti
  • 113638 14914 23611
  • 121821 16613 33410
  • 131216 22913
  • 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

10
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
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
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
Le istruzioni
  • di lettura
  • di scrittura
  • di assegnamento
  • di controllo
  • sono presenti in tutti i linguaggi
  • per esprimere algoritmi

14
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

11
3
2
11
3
2
15
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
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
Esempio di assegnamento
  • X ? X 1
  • prima della esecuzione
  • dopo lesecuzione
Write a Comment
User Comments (0)
About PowerShow.com