Introduzione agli algoritmi Paolo Bison Fondamenti di Informatica A.A. 2001/02 October 11, 2001 Algoritmo descrizione di come si deve eseguire un lavoro o risolvere un problema sequenza di passi/istruzioni Al-Khuwarizmi luogo di origine di un matematico arabo procedimento di calcolo esistono anche in altri contesti: processo montare un mobile cucinare algoritmo passo tipico istruzioni incolla di montaggio A su B ricetta aggiungere olio P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi 1 Esecuzione esecutore uomo/calcolatore funzionalità dell’esecutore: – capire il significato di ogni passo – eseguire l’operazione corrispondente descrizione uomo calcolatore linguaggio naturale programma in un linguaggio di programmazione indipendenti dal linguaggio in cui sono espressi potenza espressiva del linguaggio P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi 2 Programmazione problema algoritmo programma più programmi per lo stesso algoritmo fasi – progettare un algoritmo – esprimerlo in un linguaggio di programmazione (programma) – far eseguire il programma P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi 3 Progettazione Dato un problema come si progetta un algoritmo che lo risolva ? NON ESISTE algoritmi un algoritmo per progettare attività intellettuale metodologie e linguaggi prevedere tutti i possibili eventi che potrebbero verificarsi durante l’esecuzione (NORAD) P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi 4 Computabilità Ci sono problemi per algoritmi? – halting problem i quali non Dato un problema, come possiamo esiste un algoritmo che lo risolva? P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi esistono sapere se 5 Correttezza Dato un algoritmo, come possiamo essere sicuri che è corretto? metodi formali metodi empirici inaffidabilità dei programmi P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi 6 Complessità dato un algoritmo quali sono le risorse necessarie per eseguirlo ? in quanto tempo ? se ci sono più algoritmi per un dato problema, qual’ è il “migliore”? esistono problemi per i quali il miglior algoritmo richiede tante risorse da rendere impossibile l’elaborazione? – crittografia P.Bison - Fond.Inf. 2001/02 - Introduzione algoritmi 7