Modelli simulativi
per le Scienze Cognitive
Paolo Bouquet
(Università di Trento)
Marco Casarotti
(Università di Padova)
Algoritmi: nozioni intuitive
Lezione 1
Cos’è un algoritmo
●
●
Un metodo totalmente esplicito per risolvere un
problema
Un problema è caratterizzato da:
–
Dati disponibili in ingresso (input)
–
Dati desiderati in uscita (output)
Dati in ingresso
●
Algoritmo
Dati in uscita
Istanza di un problema: specifico insieme di dati
in ingresso + rispettivi dati in uscita
Esempi di algoritmi
●
Calcolare l’ipotenusa di un triangolo rettangolo
●
Decidere se una parola è palindroma
●
Riordinare una lista di oggetti
●
●
●
Ricerca di un elemento in un elenco ordinato
(ricerca sequenziale e ricerca binaria)
Decidere se una formula è soddisfacibile (SAT)
Decidere se un formula è conseguenza logica di
un’altra
Proprietà di un algoritmo
1. L’insieme delle istruzioni da cui è composto
deve essere finito.
2. Se la soluzione esiste, deve poter essere
ottenuta mediante un numero finito di
applicazioni delle istruzioni.
3. A ogni passo della procedura, si deve
sapere esattamente quale istruzione deve
essere eseguita.
4. Deve essere chiara la nozione di
terminazione.
In breve …
●
●
Gli algoritmi (o metodi effettivi) sono
procedimenti deterministici che consentono
di risolvere determinati problemi senza
ricorrere ad alcuna forma di creatività o
inventiva
Non può succedere che, eseguendo due
volte lo steso algoritmo sugli stessi dati, il
risultato sia differente
Diagrammi di flusso
INIZIO
FINE
Inizio dell’algoritmo
Termine dell’algoritmo
Operazione di input
Operazione di output
Elaborazione
SI
NO
Test
NB: i test possono essere usati per definire dei cicli
Algoritmi che non producono un
risultato
●
Alcuni algoritmi non producono risultati su
istanze particolari del problema (cioè per
certi input)
–
●
Esempio: la sottrazione per numeri naturali (fig.
1.11)
Differenza tra algoritmi che terminano senza
risultato e algoritmi che non terminano
–
Esempio: algoritmi in Fig. 1.12 e 1.13 del libro
(p. 34-35)