L'interazione è più potente degli algoritmi?


17

Ho sentito che l' interazione del motto è più potente degli algoritmi di Peter Wegner . La base dell'idea è che una (classica) macchina di Turing non può gestire l'interazione, cioè la comunicazione (input / output) con il mondo / ambiente esterno.

Come può essere così? Come può qualcosa essere più potente di una macchina di Turing? Qual è l'essenza di questa storia? Perché non è più noto?


1
Hai un riferimento da includere nella tua domanda? Conosco la definizione formale di Turing Machine, ma non so esattamente cosa intendi per "interazione".
Janoma

Inoltre, sembra che "impossibile gestire l'interazione con l'ambiente" sia simile a "impossibile gestire la vera casualità", il che potrebbe essere vero, ma entrambi possono essere approssimati abbastanza bene con sensori e pseudo-casualità. Ma questo è un commento non informato, non conoscendo una definizione di interazione.
Janoma,

2
Le macchine di Turing non hanno sensori.
Dave Clarke,

1
Ne sono consapevole. Eppure, i computer fanno sensori uso, che sono un modo particolare di superamento di un ingresso ad una macchina di Turing. Quindi TM fanno interagire con i segnali esterni / ambiente in qualche modo.
Janoma

2
La domanda non riguarda i computer. L'unica interazione con una TM è che l'ambiente fornisce un input all'inizio e riceve al massimo un output alla fine. Questa è un'interazione difficilmente generale.
Dave Clarke,

Risposte:


11

Le macchine di Turing possono gestire bene l'interazione, usando i nastri dell'oracolo. Funziona come segue: dal punto di vista di un computer che gestisce l'interazione, l'input dell'operatore è semplicemente un'altra sequenza di bit che di volta in volta inviava al computer. Sappiamo tutti che un amministratore di sistema pigro potrebbe scrivere uno script per inviare l'input al programma quando viene richiesto, in modo che l'amministratore di sistema possa andare in pausa prima. La macchina di interazione non ha modo di sapere se esiste davvero un operatore live sulla console o se l'input viene inviato da un altro programma.

Avere tutti gli input di interazione preparati in anticipo è lo stesso, in termini teorici, di avere tutti gli input su un nastro separato utilizzato da una macchina di Oracle Turing. Ogni volta che il computer normalmente richiede l'interazione da parte dell'operatore, la macchina legge invece dal nastro di input. Se la cosa letta dal nastro sembra in qualche modo non valida, la macchina di Turing fa esattamente quello che la macchina di interazione farebbe quando riceve quell'input.

Immagino che Wagner sia a conoscenza della capacità di usare i nastri oracolari per codificare l'input, quindi devi prendere i suoi commenti con un granello di sale, o devi chiedere cosa intende realmente. Credo che le persone che pensano all'interazione siano generalmente preoccupate per due cose:

  • I computer "reali" hanno interazione, ma gli algoritmi definiti da Turing no. Possiamo aggirare questo problema codificando l'input sui nastri Oracle, ma ciò non corrisponde al modo in cui funzionano i computer reali. Potrebbe essere utile studiare modelli di calcolo più allineati ai computer reali.

  • Gli algoritmi basati su Oracle non sono spesso considerati nell'informatica quotidiana perché i computer normali non hanno un "oracolo" magico per fornire dati. Ma potremmo effettivamente essere in grado di usare una persona come l'oracolo. Se la persona comprende i dati richiesti, potrebbe persino essere in grado di aiutare l'algoritmo, migliorandone così le prestazioni. In altre parole, un essere umano potrebbe essere in grado di fornire un utile nastro oracolare piuttosto che semplicemente uno casuale, e in linea di principio questo potrebbe portare a metodi di calcolo più veloci o più potenti rispetto a quelli non basati su oracoli. Una cosa simile accade con il calcolo randomizzato, dopo tutto, in cui alla macchina viene assegnata una sequenza di bit casuali come input aggiuntivo.


I nastri Oracle non modellano correttamente l'interazione. Prova a provare a dimostrare che un sistema informatico non perde informazioni private. Questo non può essere formalizzato in termini di TM con un nastro oracle fisso, perché la proprietà dipende dalla caratterizzazione del calcolo che l'ambiente può fare - esattamente ciò che astraggiamo con un nastro oracle.
Neel Krishnaswami il

Dipende da cosa intendi per "modello corretto". Alcuni articoli (ad es. Della comunità dell'ipercomputazione) sembrano suggerire che l'interazione in qualche modo allarga l'insieme delle funzioni calcolabili. Cosa che fa, esattamente come fa il calcolo dell'oracolo. Ovviamente non è possibile utilizzare le TM per studiare le proprietà dell'ambiente di calcolo effettivo; se vuoi sapere se il processore nel tuo computer è difettoso, non ti aiuterà a ignorarlo completamente e basta guardare le macchine Turing. Ma per domande che riguardano solo il funzione che viene calcolata, l'interazione e gli oracoli sono equivalenti.
Carl Mummert,

nn . (Ossia, vedendo l'input come una funzione dell'output, la funzione di input deve essere non espansiva rispetto alla metrica di Cantor.) Proprio come la calcolabilità "sembra" una topologia per un matematico classico, l'interattività "sembra" una topologia per costruttiva matematici.
Neel Krishnaswami il

Per un'elaborazione approfondita di questa analogia, vedi Peter Hancock, Pierre Hyvernat: Interfacce di programmazione e topologia di base. citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.107.919
Neel Krishnaswami

1
n qualsiasi funzione può essere calcolata da un'interazione macchina, se l'operatore è pronto a immettere valori arbitrari della funzione su richiesta.
Carl Mummert,

8

Calcolo del modello di macchine per tornitura e non hanno un concetto di interazione. In tal senso, una macchina che supportava l'interazione con un sistema esterno può fare cose che un Tornio non può fare. Ma il calcolo fatto tra bit di input da una fonte esterna può ovviamente essere sempre modellato da una Turing Machine, quindi anche una "IO Machine" non può fare nulla con input esterni che una Turing Machine non potrebbe fare.

In un certo senso, una macchina del genere potrebbe essere in grado di "decidere" problemi che non possono essere decisi dalle macchine di Turing, ma solo se si immagina che il sistema con cui interagisce ha poteri super-Turing-Machine ed è affidabile (in qualche modo; affidabilità probabilistica sarebbe abbastanza).

Immagina un programma per una IO Machine come: "per qualsiasi input di nastro iniziale, stampa il contenuto del nastro, quindi leggi un simbolo dall'input esterno; accetta se il simbolo è 1 e rifiuta diversamente". Questo programma può decidere qualsiasi problema. Ma solo se il sistema esterno con cui può interagire è in grado di decidere il problema; per me questo non è un modo molto interessante per dire che l'Io Machine of è in grado di decidere i problemi che sono indecidibili da Turing Machines.

Penso che sarebbe sempre possibile rappresentare un calcolo interattivo immaginando una macchina che accetta come input sul suo nastro una codifica di una configurazione precedente insieme a un input esterno e che la macchina si fermi con il suo nastro contenente una codifica di una configurazione insieme con uscita. Quindi il processo di "esecuzione di un programma" esegue ripetutamente questa Turing Machine in modo meccanico, con l'unica parte "non meccanica" che viene comunque fornita dall'ingresso esterno. Sono certo che potresti provare che se un tale sistema ottenne il suo input dando il suo output a un'altra macchina di Turingimpostato per funzionare in modo simile, quindi il sistema combinato ha poteri computazionali identici a una singola macchina di Turing. Trovo che un argomento convincente secondo cui il calcolo interattivo non sia più potente del calcolo non interattivo, a meno che il sistema con cui il calcolo interagisce non sia più potente di una macchina di Turing .


C'è un senso non teorico in cui l'interattività può aggiungere alla capacità di un computer di risolvere i problemi, tuttavia. Ci sono molte cose che gli umani fanno in modo molto accurato e che non sappiamo come far fare molto bene ai computer. Ma ci sono anche molte cose in cui gli umani sono spazzatura e che possiamo far fare ai computer. La combinazione di questi due può portare a progetti come reCaptcha , che sta effettivamente digitalizzando automaticamente i libri risolvendo i problemi del riconoscimento delle parole agli umani in casi difficili. Il sistema risultante di computer + lavoro umano ottiene un risultato che attualmente non è pratico da ottenere con il solo calcolo o solo con il lavoro umano.


8

Recentemente ACM ha tenuto un simposio sull'ubiquità ' Cos'è il calcolo? "in cui Peter Wegner ha pubblicato un articolo che riflette le sue opinioni sul calcolo interattivo.

Ecco due estratti dall'articolo di Peter Wegner:

Un nuovo concetto, mancante alle prime macchine di Turing, è "Interactive Computing", che consente l'interazione con l'ambiente durante il calcolo.

Le macchine di interazione possono eseguire forme di elaborazione più potenti rispetto alle macchine di Turing e possono eseguire il tipo di pensiero proposto da Turing perché l'interazione migliora le loro prestazioni rispetto a quelle delle macchine di Turing.

Tuttavia, Fortnow, che ha un articolo nello stesso simposio, sembra non essere d'accordo con le opinioni di Wegner e ritiene che il calcolo interattivo non offra alcun potere aggiuntivo sulle macchine di Turing.

Per aggiungere al mix, sembra che stiamo ancora discutendo e definendo il calcolo. Moshe Vardi ha un articolo, What is an Algorithm ?, Communications of the ACM, Vol. 55, n. 3, marzo 2012.

Vardi riporta due nuove definizioni di algoritmi. Il primo è proposto da Gurevich e il secondo da Moschovakis.

Gurevich ha sostenuto che ogni algoritmo può essere definito in termini di una macchina a stati astratti.

Moschovakis, al contrario, ha sostenuto che un algoritmo è definito in termini di ricorsore, che è una descrizione ricorsiva costruita su operazioni arbitrarie prese come primitive.


6

Non penso che i modelli con IO siano "più potenti" delle macchine di Turing, modellano solo cose diverse.

In teoria, potresti vedere l'IO come un oracolo (rumoroso?). Con un oracolo perfetto puoi computerizzare funzioni incomprensibili di Turing; ma da dove prendere l'oracolo? Gli umani sono l'unica scelta "super-Turing" (se esiste) e siamo noti per essere molto inaffidabili.

Una classe di programmi che si adatta a questo modello sono assistenti di prova interattivi (ad esempio Isabelle / HOL , Coq ). Hanno a che fare con spazi di prova indecidibili ma (probabilmente) ogni prova può essere trovata (e verificata) con input dell'utente appropriato.


Quindi le Macchine Turing con Oracoli sono più potenti delle Macchine Turing senza di loro e le Macchine Turing con Oracoli possono modellare l'interazione. Quindi la risposta sembra essere sì.
Dave Clarke,

1
@DaveClarke Se consideri gli oracoli perfetti, sì.
Raffaello

2
Penso che una macchina (o un programma) senza aiuto (da qualsiasi forma di oracolo o input) possa in linea di principio trovare ogni prova. Ci sono due problemi: (1, teorico): non sarà mai in grado di accertare che un'affermazione non abbia prove, e (2, pratico): generare ciecamente prove nella speranza di inciampare su una determinata affermazione è così terribilmente inefficiente che nessuno vuole provare, e quindi gli assistenti di prova preferiscono una ricerca guidata, abbandonando il successo "assicurato" nel caso in cui esista una prova.
Marc van Leeuwen,

2
Come sottolinea Ben nella sua risposta, il modo giusto di osservarlo non è "Le macchine di Turing con gli oracoli sono più potenti"; le macchine stesse stanno solo facendo cose calcolabili. Il modo giusto di vederlo è "alcuni oracoli non sono calcolabili, e quindi da quegli oracoli possiamo calcolare cose che non possiamo calcolare senza un oracolo". La forza computazionale viene dall'oracolo, piuttosto che dalla macchina.
Carl Mummert,

Sembra che le macchine di Turing con gli oracoli siano la cosa più potente. Perché perdere tempo con nuove definizioni?
Saadtaame,

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.