La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione di calcolatori

Presentazioni simili


Presentazione sul tema: "Programmazione di calcolatori"— Transcript della presentazione:

1 Programmazione di calcolatori
Lezione IV Esistono problemi non risolvibili? Programmazione di Calcolatori: Esistono problemi non risolvibili?

2 Problemi & funzioni Risolvere un problema:
estrarre l’informazione implicita a cui siamo interessati dall’informazione esplicita in nostro possesso “calcolare” una delle funzioni che realizza tale estrazione Programmazione di Calcolatori: Esistono problemi non risolvibili?

3 Problemi risolvibili e funzioni calcolabili
un problema è risolvibile se esiste un algoritmo che lo risolve Funzioni calcolabili: una funzione è calcolabile se esiste un algoritmo che la calcola Programmazione di Calcolatori: Esistono problemi non risolvibili?

4 Esempio Problema: Funzione: Qual è il massimo tra due numeri interi?
f : N x N→N Start Stop N1, N2 N1 > N2 si N1 no N2 Programmazione di Calcolatori: Esistono problemi non risolvibili?

5 Informazione esplicita Informazione implicita
Esempio Informazione esplicita Informazione implicita 0, 0 1, 0 1 0, 1 …. 158, 641 641 2.856, 567 2.856 Programmazione di Calcolatori: Esistono problemi non risolvibili?

6 Idea “contiamo” gli algoritmi “contiamo” le funzioni
se il “numero” delle funzioni dovesse risultare “maggiore” del “numero” degli algoritmi allora esisterebbe almeno una funzione non calcolabile, e, di conseguenza, almeno un problema non risolvibile Programmazione di Calcolatori: Esistono problemi non risolvibili?

7 Equipotenza e numerabilità
Insiemi equipotenti: A e B sono equipotenti, A  B, se e solo se esiste una funzione biunivoca f : A→B Insiemi numerabili: A è numerabile se e solo A  B  N L’insieme dei numeri pari Npari è numerabile: infatti la funzione f: Npari →N definita da f(n) = n/2 è biunivoca Programmazione di Calcolatori: Esistono problemi non risolvibili?

8 Equipotenza e numerabilità
Ovviamente: se A è numerabile e B  A allora B è numerabile più informalmente qualsiasi sottoinsieme di un insieme numerabile è numerabile Programmazione di Calcolatori: Esistono problemi non risolvibili?

9 Insiemi numerabili N Elementi di A Enumerazione: a0 1 a1 2 a2 …. n an
a0 1 a1 2 a2 …. n an Programmazione di Calcolatori: Esistono problemi non risolvibili?

10 Quanti sono gli algoritmi?
Nozione intuitiva di algoritmo è una sequenza finita di istruzioni ogni istruzione è costruita a partire da un alfabeto di dimensione finita ogni istruzione nella sequenza è codificata con una quantità finita di informazione deve esistere un agente di calcolo C capace di eseguire le istruzioni dell’algoritmo C deve avere capacità di memorizzazione ….. Programmazione di Calcolatori: Esistono problemi non risolvibili?

11 Quanti sono gli algoritmi?
L’insieme S delle stringhe di lunghezza finita costruite a partire da un alfabeto di dimensione finita è numerabile definisco un ordinamento tra i caratteri dell’alfabeto (in modo analogo a quanto avviene per i caratteri dell’alfabeto della lingua italiana) enumero tutte le stringhe di lunghezza finita costruite a partire dall’alfabeto in ordine di lunghezza crescente enumero le stringhe di eguale lunghezza in ordine lessicografico Programmazione di Calcolatori: Esistono problemi non risolvibili?

12 Esempio N Alfabeto  {a, b, c} Elementi di S a 1 b 2 c 3 aa 4 ab 5 ac
a 1 b 2 c 3 aa 4 ab 5 ac 6 ba 7 bb …. 39 aaaa Programmazione di Calcolatori: Esistono problemi non risolvibili?

13 Quanti sono gli algoritmi?
L’insieme A degli algoritmi costruiti a partire dallo stesso alfabeto è numerabile ovvio in quanto A  S Programmazione di Calcolatori: Esistono problemi non risolvibili?

14 Quante sono le funzioni?
L’insieme delle funzioni F0,1  { f | f : N → {0,1}}  F non è numerabile F0,1  B, con B insieme delle stringhe binarie di lunghezza infinita funzione f(0) = 1 f(1)=0 f(2)=1 f(3)=1 f(n)=0 stringa 1 Programmazione di Calcolatori: Esistono problemi non risolvibili?

15 Quante sono le funzioni?
L’insieme B delle stringhe binarie di lunghezza inifinita non è numerabile se così non fosse potrei enumerare l’insieme di tali stringhe dimostreremo che esiste almeno una stringa mancante da qualsiasi enumerazione Programmazione di Calcolatori: Esistono problemi non risolvibili?

16 Quante sono le funzioni?
Elementi di B 1 2 3 4 5 6 7 8 9 .. consideriamo una qualsiasi enumerazione consideriamone la diagonale complementiamo tale diagonale, ottenendo una nuova stringa binaria di lunghezza infinita in quanto tale, dovrebbe comparire nella enumera- zione 1 Programmazione di Calcolatori: Esistono problemi non risolvibili?

17 Quante sono le funzioni?
Elementi di B 1 2 3 4 5 6 7 8 9 .. supponiamo compaia nella posizione i-esima, la 3a per esempio per costruzione, se la 3a cifra nella diagonale complemen- tata è 1 (risp., 0) il bit alla intersezione della 3a colonna e della 3a riga nella enume- razione è 0 (risp., 1) da cui l’assurdo di conseguenza possiamo affermare che non esistono enumerazioni per B 1 Programmazione di Calcolatori: Esistono problemi non risolvibili?

18 Concludendo l’insieme degli algoritmi (A) numerabile
se l’insieme delle stringhe binarie di lunghezza finita (B) non è numerabile allora l’insieme delle funzioni da N in {0, 1} (F0,1 ) non è numerabile se l’insieme delle funzioni da N in {0, 1} (F0,1 ) non è numerabile allora l’insieme delle funzioni (F) non è numerabile Programmazione di Calcolatori: Esistono problemi non risolvibili?

19 Concludendo se l’insieme degli algoritmi (A) è nume- rabile e l’insieme delle funzioni (F) non è numerabile allora esiste almeno una funzione non calcolabile se esiste almeno una funzione non calcolabile allora esiste almeno un problema non risolvibile Programmazione di Calcolatori: Esistono problemi non risolvibili?


Scaricare ppt "Programmazione di calcolatori"

Presentazioni simili


Annunci Google