Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Algoritmi: nozioni intuitive Lezione 1
Cos’è un algoritmo Algoritmo Un metodo totalmente esplicito per risolvere un problema Un problema è caratterizzato da: Dati disponibili in ingresso (input) Dati desiderati in uscita (output) Istanza di un problema: specifico insieme di dati in ingresso + rispettivi dati in uscita Algoritmo Dati in ingresso 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 L’insieme delle istruzioni da cui è composto deve essere finito. Se la soluzione esiste, deve poter essere ottenuta mediante un numero finito di applicazioni delle istruzioni. A ogni passo della procedura, si deve sapere esattamente quale istruzione deve essere eseguita. 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 Inizio dell’algoritmo FINE 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)