Turing riduzione

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In teoria della computabilità, una Turing-riduzione da un problema decisionale ad un problema decisionale è una macchina oracolo che decide il problema dato un oracolo per (Rogers 1967, Soare 1987). Può essere inteso come un algoritmo che potrebbe essere utilizzato per risolvere se avesse a sua disposizione una subroutine per la risoluzione di . Il concetto può essere applicato in modo analogo ai problemi di funzione.

Se esiste una Turing-riduzione da a , allora ogni algoritmo per [1] può essere utilizzato per produrre un algoritmo per , inserendo l'algoritmo per in ogni punto in cui la macchina oracolo che computa interroga l'oracolo per . Tuttavia, poiché la macchina oracolo può interrogare l'oracolo un numero elevato di volte, l'algoritmo risultante potrebbe asintoticamente richiedere più tempo rispetto all'algoritmo per o alla macchina oracolo che computa . Una Turing-riduzione in cui la macchina oracolo computa in un tempo polinomiale è nota come riduzione di Cook.

La prima definizione formale di computabilità relativa, poi chiamata riducibilità relativa, fu data da Alan Turing nel 1939 in termini di macchine oracoli. Successivamente, nel 1943 e nel 1952 Stephen Kleene definì un concetto equivalente in termini di funzioni ricorsive. Nel 1944 Emil Post usò il termine "riducibilità di Turing" per riferirsi al concetto.

Definizione[modifica | modifica wikitesto]

Dati due insiemi di numeri naturali, diciamo che è Turing-riducibile a e scriviamo

se e solo se esiste una macchina oracolo che calcola la funzione caratteristica di usando un oracolo per . In questo caso, diciamo anche che è B-ricorsivo, o B-computabile.

Se esiste una macchina oracolo che, usando un oracolo per , calcola una funzione parziale che ha per dominio , allora è detto B-ricorsivamente enumerabile, o B-computabilmente enumerabile.

Diciamo che è Turing-equivalente a e scriviamo se valgono e . Le classi di equivalenza degli insiemi Turing-equivalenti sono chiamate gradi di Turing. Il grado di Turing di un insieme è indicato con .

Dato un insieme , un insieme è detto Turing-difficile per se per ogni . Se inoltre , allora è detto Turing-completo per .

Relazione tra Turing-completezza e universalità computazionale[modifica | modifica wikitesto]

La Turing-completezza, per come è definita sopra, corrisponde solo parzialmente alla Turing-equivalenza nel senso di universalità computazionale. Nello specifico, una macchina di Turing è una macchina di Turing universale se il suo problema della fermata (cioè l'insieme di input sui quali si ferma) è molti a uno-completo. Pertanto, una condizione necessaria ma non sufficiente affinché una macchina sia computazionalmente universale, è che il suo problema della fermata sia Turing-completo per la classe degli insiemi ricorsivamente enumerabili. Insufficiente perché può accadere che il linguaggio accettato dalla macchina non sia di per sé ricorsivamente enumerabile.

Esempio[modifica | modifica wikitesto]

Denotiamo con l'insieme dei valori di input per i quali la macchina di Turing con indice e si ferma. Allora, gli insiemi e sono Turing-equivalenti (qui denota una funzione di accoppiamento calcolabile). Una riduzione che prova può essere costruita utilizzando il fatto che . Data una coppia , può essere costruito un nuovo indice usando il teorema smn, tale per cui il programma codificato da ignora il suo input e simula semplicemente il calcolo della macchina con indice e sull'input n. In particolare, la macchina con indice o si ferma su ogni input o non si ferma su alcun input. Perciò, vale per tutti gli e ed n. Poiché la funzione i è calcolabile, questo dimostra . Le riduzioni qui presentate non sono solo Turing-riduzioni ma riduzioni molti a uno, discusse di seguito.

Proprietà[modifica | modifica wikitesto]

  • Ogni insieme è Turing-equivalente al suo complemento.
  • Ogni insieme calcolabile è Turing-riducibile a ogni altro insieme. Poiché qualsiasi insieme calcolabile può essere calcolato senza oracolo, può essere calcolato da una macchina oracolo che ignora l'oracolo dato.
  • La relazione è transitiva: se e , allora . Inoltre, vale per ogni insieme , e quindi la relazione è un preordine (non è un ordine parziale, poiché e non implica ).
  • Ci sono coppie di insiemi tali che non è Turing-riducibile a e non è Turing-riducibile ad , quindi non è un ordine totale.
  • Ci sono sequenze decrescenti infinite di insiemi sotto , quindi questa relazione non è ben fondata.
  • Ogni insieme è Turing-riducibile al proprio salto di Turing, ma il salto di Turing di un insieme non è mai Turing-riducibile al medesimo insieme.

L'uso di una riduzione[modifica | modifica wikitesto]

Poiché ogni riduzione da un insieme ad un insieme deve determinare se un singolo elemento è presente in in un numero finito di passaggi, può fare solo un numero finito di interrogazioni sull'appartenenza all'insieme . Quando si parla della quantità di informazioni sull'insieme utilizzate per calcolare un singolo bit di , ciò è resa precisa dalla funzione uso. Formalmente, l'uso di una riduzione è la funzione che assegna ad ogni numero naturale il più grande numero naturale la cui appartenenza all'insieme è stata domandata dalla riduzione per determinare l'appartenenza di ad .

Riduzioni più forti[modifica | modifica wikitesto]

Esistono due modi comuni per produrre riduzioni più forti della Turing-riducibilità. Il primo modo è limitare il numero e il tipo di chiamate all'oracolo.

  • L'insieme è molti a uno-riducibile a se esiste una funzione totale calcolabile tale che ogni elemento se e solo se . Tale funzione può essere utilizzata per generare una Turing-riduzione (calcolando , interrogando l'oracolo e poi interpretando il risultato).
  • Una truth table-reduction o una truth table-reduction debole deve presentare tutte le interrogazioni all'oracolo contemporaneamente. In una truth table-reduction, la riduzione fornisce anche una funzione booleana (una tavola di verità) che, una volta fornite le risposte alle interrogazioni, produrrà la risposta finale della riduzione. In una truth table-reduction debole, la riduzione utilizza le risposte dell'oracolo come base per ulteriori calcoli a seconda delle risposte fornite (ma senza usare l'oracolo). In modo equivalente, una truth table-reduction debole è tale per cui l'uso della riduzione è maggiorato da una funzione calcolabile. Per questo motivo, le truth table-reduction deboli sono talvolta chiamate Turing-riduzioni "limitate".

Il secondo modo per produrre una nozione di riducibilità più forte è limitare le risorse computazionali che il programma che implementa la Turing-riduzione può utilizzare. Questi limiti sulla complessità computazionale della riduzione sono importanti quando si studiano classi subricorsive come P. Un insieme è riducibile in tempo polinomiale a un insieme se c'è una Turing-riduzione da a che termina in tempo polinomiale. Il concetto di riduzione in spazio logaritmico è simile.

Queste riduzioni sono più forti, nel senso che forniscono una distinzione più fine in classi di equivalenza e soddisfano requisiti più restrittivi rispetto alle Turing-riduzioni. Di conseguenza, tali riduzioni sono più difficili da trovare. Potrebbe non esserci modo di costruire una riduzione molti a uno da un insieme ad un altro, anche qualora esista una Turing-riduzione per gli stessi insiemi.

Riduzioni più deboli[modifica | modifica wikitesto]

Secondo la tesi di Church-Turing, un Turing-riduzione è la forma più generale di riduzione effettivamente calcolabile. Tuttavia, vengono prese in considerazione anche riduzioni più deboli. L'insieme è detto aritmetico in se è definibile con una formula dell'aritmetica di Peano che ha per parametro. L'insieme è iperaritmetico in se esiste un ordinale ricorsivo tale per cui è calcolabile da , il salto di Turing α-iterato di . La nozione di costruibilità relativa è un'importante nozione di riducibilità nella teoria degli insiemi.

Note[modifica | modifica wikitesto]

  1. ^ È possibile che sia un problema indecidibile per il quale non esiste alcun algoritmo.

Bibliografia[modifica | modifica wikitesto]

  • M. Davis, ed., 1965. The Undecidable—Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions, Raven, New York. Reprint, Dover, 2004. ISBN 0-486-43228-9.
  • S. C. Kleene, 1952. Introduction to Metamathematics. Amsterdam: North-Holland.
  • S. C. Kleene and E. L. Post, 1954. "The upper semi-lattice of degrees of recursive unsolvability". Annals of Mathematics v. 2 n. 59, 379–407.
  • E. L. Post, Recursively enumerable sets of positive integers and their decision problems (PDF), in Bulletin of the American Mathematical Society, vol. 50, n. 5, 1944, pp. 284–316, DOI:10.1090/s0002-9904-1944-08111-1. URL consultato il 17 dicembre 2015.
  • A. Turing, 1939. "Systems of logic based on ordinals." Proceedings of the London Mathematics Society, ser. 2 v. 45, pp. 161–228. Ristampato in "The Undecidable", M. Davis ed., 1965.
  • H. Rogers, 1967. Theory of recursive functions and effective computability. McGraw-Hill.
  • R. Soare, 1987. Recursively enumerable sets and degrees, Springer.
  • Martin Davis, What is...Turing Reducibility? (PDF), in Notices of the American Mathematical Society, vol. 53, n. 10, novembre 2006, pp. 1218–1219. URL consultato il 16 gennaio 2008.

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autoritàGND (DE4477590-8