(Falso?) Prova per la calcolabilità di una funzione?


19

Considera , una funzione che restituisce 1 iff zeri appare consecutivamente in . Ora qualcuno mi ha dato la prova che è calcolabile:f(n)nπf(n)

O per tutti n, appare in , oppure c'è am appare in e no. Per la prima possibilità ; Per il secondo iff , 0 altrimenti.0nπ0mπ0m+1f(n):=1f(n):=1nm

L'autore afferma che ciò dimostra la calcolabilità di , in quanto esiste un algoritmo per calcolarlo.f(n)

Questa prova è corretta?


2
Puoi usare il lattice nelle tue domande per renderle più leggibili.
Dave Clarke,

7
L'argomento è corretto, ma non costruttivo. La persona non ti sta dando una TM, ti sta dando due TM e ti dice che uno di loro sta calcolando la funzione che desideri, ma non sa quale.
Kaveh,

1
La tua versione è calcolabile. Tuttavia, ho letto male e per caso ho trovato una versione che ritengo imputabile. L'unica modifica: invece di esattamente n zero, chiedi se π ha al massimo n zero. Se lo fa davvero, credo che tu non possa confermarlo, dato che π ha un numero infinito di cifre e non sembra che riappaia alcun motivo (sembra?).
Chazisop,

Una volta ho corretto una pagina di Wikipedia che ha commesso un errore relativo, affermando che l'esistenza della costante di Chaitin ha dimostrato l'esistenza di "numeri integri".
Geoffrey Irving,

questi tipi di domande tendono ad essere su "linguaggi banali". ma nota come di solito una leggera riformulazione, ad esempio dove la lingua è dove m è una (o la prima) posizione della stringa 0 k o -1 se non esiste una tale stringa può essere indecidibile. vedi anche come si può decidere che π abbia qualche sequenza di cifre? / Informaticaf(n,k)=mm0kπ
vzn

Risposte:


23

Pensala in questo modo, Mike: questa dimostrazione si sta "ramificando" in più casi possibili, uno dei quali deve essere vero (usando la legge del mezzo escluso che per ogni proposizione , o p è vera o ¬ p è vera). Ma alla fine di ciascuno di questi rami, riesci sempre a dimostrare che la funzione f è calcolabile. Pertanto, indipendentemente da quale dei casi valga effettivamente nella vita reale, f deve essere calcolabile. (Tuttavia, il motivo preciso per cui f è calcolabile sarà diverso, a seconda del ramo.)pp¬pff f


16

È corretto. Questo è uguale al seguente: definire come funzione costante x 0 se Dio esiste, e x 1 se Dio non esiste. La funzione risultante è una funzione costante, quindi calcolabile. Quello che potresti non essere in grado di fare è dare quella funzione, ma la funzione stessa è calcolabile.f(x)x0x1

Qui, una delle due possibilità è vera: o esiste una tale , oppure no. La funzione è la funzione costante x 1 o una semplice funzione di soglia, definita con m .mx1m


4
Vorrei sostituire "se Dio esiste", con . :)PNP
Kaveh,

Ok, scusa per l'incomprensione, non ho problemi con la non costruttività della prova. Il problema che ho è che noi (o almeno io) non sappiamo se sia calcolabile o meno. Perché non è necessario provarlo? m
Mike B.

5
Non ha molto senso parlare se un numero intero è calcolabile o meno. Qualunque sia il valore che m assume, esiste una macchina di Turing che la emette. Trovarlo potrebbe essere difficile, ovviamente, ma questo non è così diverso dalla situazione generale: trovare algoritmi è difficile, il che rende molti di noi impiegati.
Aaron Roth,

Ancora non capisco. Quale macchina Turing potrebbe produrre questo m? Non solo dovrebbe mostrare che appare in π , più di questo dovrebbe verificare che 0 m + 1 non lo faccia - e questo è IMO il problema. 0mπ0m+1
Mike B.

Questo è il modo costruttivo di cui stai parlando. Se ti do una macchina che emette tale , non è necessario convincerti che questa è la m giusta , in quanto è la macchina per produrre tale m (beh, almeno una macchina). Questo è lo stesso dell'esempio di Dio (che BTW proviene da Sipser): se la macchina produce 0 , non ha bisogno di convincerti che Dio non esiste. È solo il caso. mmm0
Michaël Cadilhac,

14

Penso - e spero - che ogni studente di informatica si trovi di fronte a questo problema che sembra un paradosso. È un ottimo esempio per la differenza di calcolabile in senso TCS e calcolabile in senso pratico.

I miei pensieri allora erano: "Sì, se conoscessi la risposta, sarebbe ovviamente calcolabile. Ma come scoprirlo?" Il trucco è liberarti dall'illusione che devi scoprire se ha questa proprietà oppure no. Perché questo, ovviamente (leggi: imho), non può essere fatto da una macchina di Turing (fintanto che non abbiamo più conoscenza di quanto ne abbiamo di π ).ππ

Considera la tua definizione di calcolabilità: diciamo che è (Turing-) calcolabile se e solo se M T M : f M = f . Cioè devi solo dimostrare l' esistenza di una macchina Turing appropriata, non dartene una . Quello che tu - noi - proviamo a fare lì è calcolare la macchina di Turing che calcola la funzione richiesta. Questo è un problema molto più difficile!fMTM:fM=f

L'idea di base della dimostrazione è: ti do una classe infinita di funzioni, tutte calcolabili (per mostrare; banale qui). Dimostro quindi che la funzione che stai cercando è in quella classe (per mostrare; distinzione caso qui). QED


9

Sì, è vero, è calcolabile. Il problema è che la tua funzione in realtà non sta producendo la soluzione a una famiglia infinita di problemi, il modo (diciamo) una funzione che calcola una soluzione al problema di arresto è - quindi non c'è alcun problema sul calcolo. Invece, stai rappresentando in forma di funzione un singolo fatto matematico con rappresentazione finita - o un numero intero, o il fatto che f sia la funzione costantemente 1

È possibile codificare il problema di arresto in singoli numeri reali , come la costante Chaitan , ma i numeri interi hanno sempre rappresentazioni finite e quindi possono essere codificati come Macchine di Turing.Ω

Trovare l'algoritmo corretto ovviamente potrebbe essere un problema difficile. Ma trovare algoritmi corretti di solito è difficile!


3

pubblicare un po 'vecchio, ma volevo pubblicare un'altra risposta.

Questa è una prova non costruttiva (o argomento) della calcolabilità. Dice semplicemente che la funzione deve esistere in un certo senso poiché posso rappresentarla (o più correttamente indicizzarla), nell'insieme (o nell'universo) di funzioni calcolabili. Tuttavia non costruisce né la macchina stessa (cioè l'algoritmo), né l'indice (presupponendo un'enorme enumerazione di macchine calcolabili). La frase inglese " grazie per niente " sembra in questi casi più appropriata, come la seguente:

-- Look, I proved there is water somewhere! 

Now you can be happy, while dying from thirst!

Le persone nella storia della matematica hanno discusso un po 'dell'attuale validità (o intervallo di validità) e del significato di tali argomenti. Il risultato finale è che lo stesso tipo di argomenti riappaiono nei teoremi di incompletezza di Goedel e si oppongono a questo "presupposto dell'universo chiuso" .

Se non ti piacciono così tanto questi argomenti, non ti biasimerei.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.