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)