Reducció de Turing
En teoria de la computabilitat, una reducció de Turing a partir d'un problema de decisió a un problema de decisió és una màquina oracle que decideix el problema donat un oracle per (Rogers 1967, Soare 1987). Es pot entendre com un algorisme que es podria utilitzar per resoldre si tingués a la seva disposició una subrutina per resoldre . El concepte es pot aplicar de manera anàloga a problemes de funció.[1]
Si una reducció de Turing de a existeix, llavors cada algorisme per es pot utilitzar per produir un algorisme per a , inserint l'algorisme per a cada lloc on la màquina oracle informàtica consulta l'oracle per . Tanmateix, com que la màquina oracle pot consultar l'oracle un gran nombre de vegades, l'algoritme resultant pot requerir més temps de manera asimptòtica que l'algorisme per a o la màquina informàtica oracle . Una reducció de Turing en què la màquina oracle funciona en temps polinomial es coneix com a reducció de Cook. [2]
La primera definició formal de computabilitat relativa, aleshores anomenada reductibilitat relativa, va ser donada per Alan Turing el 1939 en termes de màquines oracle. Més tard, el 1943 i el 1952, Stephen Kleene va definir un concepte equivalent en termes de funcions recursives. L'any 1944 Emil Post va utilitzar el terme "reductibilitat de Turing" per referir-se al concepte.[3]
Definició
[modifica]Donats dos conjunts dels nombres naturals, diem és Turing reductible a i escriure [4]
si i només si hi ha una màquina oracle que calcula la funció característica d' A quan s'executa amb l'oracle B. En aquest cas, també diem que A és B- recursiu i B-computable.
Si hi ha una màquina oracle que, quan s'executa amb l'oracle B, calcula una funció parcial amb el domini A, llavors es diu que A és B-enumerable recursivament i B-enumerable computablement.
Donat un conjunt , un conjunt es diu Turing dur per si per a tots . Si a més aleshores s'anomena Turing complet per .
Relació de la integritat de Turing amb la universalitat computacional
[modifica]La completitud de Turing, com acabem de definir anteriorment, correspon només parcialment a la completitud de Turing en el sentit d'universalitat computacional. Concretament, una màquina de Turing és una màquina de Turing universal si el seu problema d'aturada (és a dir, el conjunt d'entrades per a les quals finalment s'atura) és completa per al conjunt. de conjunts enumerables recursivament. Per tant, una condició necessària però insuficient perquè una màquina sigui computacionalment universal, és que el problema d'aturada de la màquina sigui complet de Turing per a . Insuficient perquè encara pot ser que el llenguatge acceptat per la màquina no sigui enumerable recursivament.
Exemple
[modifica]SI denoten el conjunt de valors d'entrada per als quals s'atura la màquina de Turing amb l'índex e. Després els conjunts i són equivalents a Turing (aquí denota una funció d'aparellament eficaç). Es mostra una reducció es pot construir utilitzant el fet que . Donat un parell , un nou índex es pot construir utilitzant el teorema smn de manera que el programa codificat per ignora la seva entrada i només simula el càlcul de la màquina amb l'índex e a l'entrada n. En particular, la màquina amb índex o s'atura en cada entrada o s'atura en cap entrada. Així val per a totes les e i n. Com que la funció i és computable, això es mostra . Les reduccions que es presenten aquí no són només reduccions de Turing, sinó moltes reduccions, que es comenten a continuació.
Propietats
[modifica]- Cada conjunt és Turing equivalent al seu complement.
- Cada conjunt computable és Turing reductible a qualsevol altre conjunt. Com que qualsevol conjunt computable es pot calcular sense oracle, pot ser calculat per una màquina oracle que ignora l'oracle donat.
- La relació és transitiu: si i aleshores . A més, s'aplica per a cada conjunt A, i per tant la relació és una comanda prèvia (no és una comanda parcial perquè i no implica necessàriament ).
- Hi ha parells de conjunts tal que A no és Turing reductible a B i B no és Turing reductible a A. Així no és una comanda total.
- Hi ha infinites seqüències decreixents de conjunts sota . Per tant, aquesta relació no està ben fundada.
- Cada conjunt és reduïble de Turing al seu propi salt de Turing, però el salt de Turing d'un conjunt mai és reduïble de Turing al conjunt original.
L'ús d'una reducció
[modifica]Ja que cada reducció d'un conjunt a un conjunt ha de determinar si hi ha un sol element en només un nombre finit de passos, només pot fer moltes consultes de pertinença al conjunt . Quan la quantitat d'informació sobre el conjunt utilitzat per calcular un sol bit de es comenta, això es concreta amb la funció d'ús. Formalment, l' ús d'una reducció és la funció que envia cada nombre natural al nombre natural més gran la pertinença del qual al conjunt va ser consultat per la reducció mentre es determinava la pertinença de en .
Referències
[modifica]- ↑ «What does it mean to be Turing reducible?» (en anglès). [Consulta: 11 desembre 2024].
- ↑ «[https://www.arjun-chandrasekhar-teaching.com/courses/Pitt/CS1502/Lecture-Notes/Turing-Reductions-and-Undecidability.pdf Theory of Computation Notes: Turing Reductions and Undecidability]» (en anglès). [Consulta: 11 desembre 2024].
- ↑ AnxiousBane. «Help me understand Turing Reductions» (en anglès), 21-12-2021. [Consulta: 11 desembre 2024].
- ↑ «Turing Machines and Reductions from the Halting Problem» (en anglès). [Consulta: 11 desembre 2024].