|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
[Generale] Halting problem e funzioni computabili
Ciao a tutti, ho un dubbio riguardo la dimostrazione della tesi che non tutte le funzioni sono computabili. In particolare riguardo l'halting problem, provo a definire a grandi linee qui il problema.
Definisco la funzione totale h(x)= 1 se il programma x con input x termina e h(x)=0 se non termina. Si vuole dimostrare che non può esistere un programma che sia in grado di calcolare questa funzione. Se h(x) fosse calcolabile potrei definire il metodo "strano" in questo modo (in pseudocodice): Codice:
strano(){ if(h(strano)==1) while(true); //strano è il codice del metodo else return 1; } Ora quello che non capisco è: non ho al tempo stesso dimostrato che la funzione h(x) non è definita per x=strano? Ok, non è calcolabile ma io so che se h(strano) valesse 0 sarebbe una contraddizione e lo stesso se valesse 1, quindi h(x) non è definita in strano (secondo me) e quindi non è totale. Solo che se h(x) non fosse definita in strano l'intera dimostrazione non dimostrerebbe nulla perché parte dal principio che halt sia totale mentre pare che non lo sia. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Uppino
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:02.