La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Teoria della computabilità

Presentazioni simili


Presentazione sul tema: "Teoria della computabilità"— Transcript della presentazione:

1 Teoria della computabilità
Appunti tratti dal libro di testo M. Addomine, D. Pons INFORMATICA – Zanichelli pag

2 Teoria della computabilità
Si occupa dell’esistenza o meno di algoritmi risolutivi di problemi (cosa può essere calcolato e cosa no) Si è sviluppata a partire dal secolo scorso con la nascita del computer Si basa sulla logica matematica o logica formale

3 Logica La logica è lo studio del ragionamento corretto. La possiamo considerare da almeno due punti di vista: la logica formale e la logica informale. La logica formale si propone di studiare le forme del ragionamento, ossia modelli generali comuni a molti ragionamenti, codificati in linguaggio simbolico. La logica informale, invece, s’impegna a individuare e analizzare i ragionamenti dei discorsi espressi, quindi nel linguaggio naturale corrente. L’obiettivo specifico della logica informale è lo studio di ragionamenti concreti.

4 La logica formale Si utilizzano i simboli consentiti dal contesto
3 + 5 = 7 Questa frase è corretta ma falsa La correttezza è fondamentale 3 + 5 = 8 Questa frase è corretta e vera Non è sufficiente utilizzare i simboli corretti 3 + = Questa frase non è corretta e non ha senso parlare di verità o falsità

5 Tempo di calcolo Il tempo impiegato da un computer per eseguire un calcolo e fornire la risposta dipende anche dalla complessità dell’algoritmo utilizzato. X = problema da risolvere n = ordine del problema A = algoritmo utilizzato T = f(n, X, A)

6 «Dati X ed A, quanto vale T = f(n, X, A)?»
Problema La teoria della computabilità cerca di trovare non solo la risposta al problema «Dati X ed A, quanto vale T = f(n, X, A)?» ma anche al problema «Dato un particolare X, quale A minimizza T = f(n, X, A) per tutti i valori di n?» Per definizione di algoritmo, il problema deve trovare soluzione in un numero finito di passi e quindi in un tempo finito

7 Algoritmi e problemi Non tutti gli algoritmi per risolvere un determinato problema sono equivalenti Il programmatore si rivolge all’analista e quest’ultimo al progettista di algoritmi

8 Domande Cosa significa computare? Cosa può essere computato?
Un computer, se avesse abbastanza memoria e tempo, potrebbe risolvere qualsiasi problema? Quanto velocemente si può risolvere un problema? Quanta memoria sarà necessaria? Avendo a disposizione una certa quantità di memoria (e solo quella) quali problemi potranno essere risolti e quali no? Risponde la teoria della computabilità e la teoria della complessità

9 Qualcosa di non computabile
Non esiste un metodo universale, cioè che possa essere applicato da un computer e quindi risolto attraverso la scrittura di un codice idoneo, che possa predire se un dato codice non banale – ad esempio in C – potrà funzionare comunque oppure se esistono casi in cui andrà in errore, per esempio entrando in un loop infinito.

10 Ricorsività Esiste un legame tra funzioni ricorsive e funzioni calcolabili? Sì Si definisce ricorsivo un algoritmo che viene definito in termini di se stesso. Esempio: funzione fattoriale 0! = 1 n! = n x (n – 1) x… 3 x 2 x 1 Si può riscrivere n! = n x (n – 1)! Definizione ricorsiva

11 Condizioni generali Si può ricondurre un qualsiasi algoritmo a funzioni ricorsive? NO Condizioni per ricondurre un algoritmo a funzioni ricorsive L’algoritmo deve essere espresso in funzione di se stesso Deve sempre esistere una condizione di terminazione (impedire un loop) L’algoritmo deve convergere, cioè deve avvicinarsi al valore limite della soluzione

12 Vantaggi e svantaggi della ricorsione
Una funzione ricorsiva ha un codice compatto ed elegante Svantaggi Ingente utilizzo di risorse di calcolo Elevata occupazione di memoria (superamento dei limiti dello stack) Limitata efficienza: algoritmi più lenti

13 Conclusione Se una funzione f è ricorsiva, allora essa è computabile attraverso un algoritmo Alonzo Church ( )


Scaricare ppt "Teoria della computabilità"

Presentazioni simili


Annunci Google