Computabilità dell'insegnamento dei problemi


22

Ho difficoltà a insegnare il concetto di funzioni calcolabili. Ho cercato di sviluppare l'idea del perché ricercatori come Hilbert / Ackermann / Godel / Turing / Church / ... hanno inventato il concetto di "calcolabilità". Gli studenti hanno immediatamente chiesto: "cosa significa calcolabilità?" e non posso rispondere a meno che non insegni loro le macchine di Turing, e quindi rispondo "una funzione è calcolabile se una macchina di Turing la calcola".

Così,

Esiste una descrizione della calcolabilità che non richiede il ricorso a macchine di Turing, calcolo λ o modelli di calcolo simili? Anche una descrizione intuitiva sarà sufficiente.


10
"Ogni funzione che un computer può calcolare"? Di solito, ricorro a linguaggi di programmazione, poiché è probabile che gli studenti ne conoscano uno. Ho anche cercato "qualsiasi ricetta per calcolare una funzione" come una definizione intuitiva di algoritmo.
Michaël Cadilhac,

5
Un problema è calcolabile se può essere risolto da un insieme finito di regole che regolano l'evoluzione del sistema dinamico discreto in un numero finito di passaggi.
Mohammad Al-Turkistany,

1
Inoltre, puoi usare il decimo problema di Hilbert per spiegare agli studenti perché è irrisolvibile e che la prova dell'insolvibilità richiedeva, tra l'altro, la formalizzazione della nozione di calcolabilità in matematica.
Mohammad Al-Turkistany,

Un'altra domanda: la tesi di Church-Turing afferma che una funzione può essere calcolata da una macchina di Turing se e solo se può essere calcolata da una macchina di qualsiasi altro modello di calcolo "ragionevole e generale" [Goldreich, 2008]. Quindi, è concepibile una nozione indipendente di modello di calcolabilità?
MS Dousti,

Risposte:


37

75 anni fa non c'erano computer in giro. Quindi si è dovuto spiegare con molta attenzione l' idea matematica di un computer.

Oggi tutti sanno cos'è un computer, e probabilmente ne trasporta uno in giro per la maggior parte del tempo. Questo può essere usato con successo nell'insegnamento perché puoi saltare l'idea piuttosto obsoleta di una macchina con un nastro. Voglio dire, chi usa un nastro? (Lo so, lo so, ti senti insultato e Turing è stato un grande uomo e tutto il resto, e sono d'accordo con te).

Entra semplicemente in classe e chiedi: quindi c'è qualcosa che i tuoi iPhone non possono calcolare? Questo ti porta immediatamente a domande sulle risorse limitate. Quindi dici: supponi che la tua macchina abbia effettivamente memoria illimitata, c'è qualcosa che non può calcolare? E idealizzi un po 'di più e limiti l'attenzione alle funzioni di teoria dei numeri (perché al momento non sei interessato a Facebook). Dovrai spiegare un po 'come funzionano i computer (come menzionato nei commenti, va bene se gli studenti conoscono un linguaggio di programmazione perché puoi usarlo invece di descrivere l'hardware), ma dopo puoi usare tutti gli argomenti classici della calcolabilità teoria per ricavare risultati. Non importa che l'immagine mentale dei tuoi studenti su una macchina sia l'iPhone. In realtà, conta:più rilevante per loro sapere che il loro iPhone non può fare certe cose.


2
Mi piace molto questa discussione, perché va dal concreto (l'iPhone) all'astratto.
Suresh Venkat,

2
Ecco un puzzle interessante: quali sono i teoremi smn e utm di Haskell?
Andrej Bauer,

18
"75 anni fa non c'erano computer in giro." Questo è semplicemente falso. 75 anni fa c'erano MOLTI computer in giro. Erano umani, per lo più donne; avevano una laurea in matematica avanzata, alcuni rudimentali strumenti di calcolo meccanico (come l'aggiunta di macchine e regole per le diapositive) e un sacco di carta. Questi computer furono la spina dorsale del Progetto Manhattan e di Bletchley Park durante la Seconda Guerra Mondiale (nonostante la Bomba e il Bombe). Questo è l'ambiente informatico che Turing stava modellando: esseri umani con carta e matita.
Jeffε

10
@Jeffe: Dai, sai cosa intendevo dire.
Andrej Bauer,

8
@JeffE: possiamo verificare la tua ipotesi. Vai ai tuoi colleghi e chiedi loro di disegnare un'immagine di "un computer che indossa una gonna corta". Per favore, segnala quanti hanno disegnato un essere umano.
Andrej Bauer,

12

"Una funzione è calcolabile se esiste una" procedura efficace "per passare da un input all'altro." Quando ho introdotto questo argomento, in passato ho sottolineato come essi (gli studenti) abbiano una procedura efficace per risolvere equazioni quadratiche, ma non ne abbiano una per risolvere equazioni di grado 5 o più. Ciò può seguire una discussione su come si potrebbe formalizzare una "procedura efficace", ma quella discussione è qualcosa che si desidera che accada, quindi penso che sia una caratteristica, piuttosto che un bug.


3
Nitpicking: il teorema di Abel – Ruffini afferma che non esiste una soluzione algebrica generale , ovvero una soluzione nei radicali, alle equazioni polinomiali di grado cinque o superiore. Tuttavia, ci sono metodi, come il radicale Bring , per ottenere soluzioni in forma chiusa di equazioni quintiche.
MS Dousti,

Il tuo nitpicking è in realtà giusto. Quando si discute della calcolabilità, si desidera parlare di cose come "operazioni consentite" e le soluzioni ai polinomi sono una di quelle cose che diventano più complesse quanto più le si guarda. Ma per un'introduzione, penso che le parole "procedura efficace" e una menzione della formula quadratica costituiscano un ottimo punto di partenza. Non sono del tutto corretti, ma l'intuizione è piuttosto giusta, IMO.
Peter Boothe,

8

Forse il punto è che tutti questi modelli miravano a catturare qual è la nozione di calcolabilità. Il fatto che siano tutti equivalenti significa che l'idea che stanno cercando di catturare è solida. Quindi, sebbene ciò non sfugga al tuo dilemma, questa solidità dà credito all'idea che "una funzione è calcolabile se esiste una macchina di Turing che la calcola".


6

Comincio chiedendo "c'è qualche domanda a cui nessun computer potrebbe mai rispondere in modo convincente?" e condurre la discussione verso domande filosofiche come "se un albero cade nella foresta emette un suono?" o "c'è un'aldilà?" Riceviamo rapidamente un consenso sul fatto che il linguaggio umano può esprimere domande sì / no che implicano paradossi o concetti che non possono essere espressi matematicamente, e quindi sì, ci sono domande non calcolabili.

Quindi chiedo retoricamente se ci sono domande non calcolabili sui concetti che possono essere rappresentati in un computer, ad esempio numeri interi e grafici. Dico che sì, un esempio è il famoso problema di arresto, che consiste nell'esaminare una descrizione di un programma e dire se ha loop infiniti. Intuitivamente, si scopre che i loop infiniti sono come buchi neri e qualsiasi programma che osserva un loop infinito potrebbe rimanere intrappolato in un loop infinito stesso. Pertanto, qualsiasi procedura che risolve questo problema può essere eseguita per sempre, quindi dalla definizione di "algoritmo" nessun algoritmo può rispondere al problema di arresto.

Poi mi tuffo di nuovo nelle prove sulle macchine di Turing.


0

Bene, una funzione è calcolabile se accetta input che sono formati o generati da un modello specifico. Un modello specifico significa che tutti gli input dovrebbero avere una relazione, un input particolare può essere generato da esso input precedente o successivo. Se gli input non hanno questo tipo di sequenza, non è possibile sviluppare un modello o una funzione che possa accettare. Un'altra cosa che voglio dire è che c'è una differenza fondamentale tra una macchina e un essere umano. Non è stato possibile formare una macchina per input non sequenziali, ma lo sono gli umani. Anche questa è una grande interruzione della realizzazione di veri robot comportamentali umani.


La domanda riguarda l'insegnamento della calcolabilità. Sarebbe utile limitare la risposta al materiale che risponde a tale domanda. Tieni presente che il PO sta insegnando agli studenti universitari, quindi le opinioni personali (come le tue ultime tre dichiarazioni) potrebbero non rientrare nell'ambito.
Vijay D,
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.