4.1 El paradigma de Turing

Estudiaremos el concepto de maquina de Turing, el cual fue introducido por Alam Turing para formalizar o modelizar matematicamente la idea de procedimiento efectivo. Una vez definidas las maquinas podremos dar una modelizacion matematica precisa del concepto de funcion Σ-efectivamente computable. Llamaremos a estas funciones Σ-Turing computables y seran aquellas que (en algun sentido que sera bien precisado matematicamente) pueden ser computadas por una maquina de Turing. Por supuesto, la fidedignidad de este concepto, es decir cuan buena es la modelizacion matematica dada por Turing, puede no ser clara al comienzo pero a medida que vayamos avanzando en nuestro estudio y conozcamos ademas los otros paradigmas y su relacion, quedara claro que el modelo de Turing es acertado.

Vivimos en un mundo plagado de maquinas (ascensores, celulares, relojes, taladros, etc). Una caracteristica comun a todas las maquinas es que tienen distintos estados posibles. Un estado es el conjunto de caracteristicas que determinan un momento concreto posible de la maquina cuando esta funcionando. Por ejemplo un estado posible de un ascensor seria:

  1. - esta en el tercer piso, con la primer puerta abierta y la otra cerrada, esta apretado el boton de ir al sexto piso, etc

donde ponemos etc porque dependiendo del tipo de ascensor (si es con memoria, a que pisos puede ir, etc) habra mas datos que especificar para determinar un estado concreto.

Otra caracteristica comun de las maquinas es que interactuan de distintas formas con el usuario o mas generalmente su entorno. Dependiendo de que accion se ejecute sobre la maquina y en que estado este, la maquina realizara alguna tarea y ademas cambiara de estado. En general las maquinas son deterministicas en el sentido que siempre que esten en determinado estado y se les aplique determinada accion, realizaran la misma tarea y pasaran al mismo estado.

4.1.1 Descripcion informal de las maquinas de Turing

Son un modelo abstracto de maquina con una cantidad finita de estados la cual trabaja sobre una cinta de papel dividida en cuadros e interactua o recibe acciones externas por medio de una cabeza lectora que lee de a un cuadro de la cinta a la ves y ademas puede borrar el contenido del cuadro leido y escribir en el un simbolo. Tambien la cabeza lectora puede moverse un cuadro hacia la izquierda o hacia la derecha. La cinta tiene un primer cuadro hacia su izquierda pero hacia la derecha puede extenderse todo lo necesario. En un cuadro de la cinta podra haber un simbolo o un cuadro puede simplemente estar en blanco. Es decir que habra un alfabeto Γ el cual consiste de todos los simbolos que pueden figurar en la cinta. Esto sera parte de los datos o caracteristicas de cada maquina, es decir, Γ puede cambiar dependiendo de la maquina. La maquina, en funcion del estado en que se encuentre y de lo que vea su cabeza lectora en el cuadro escaneado, podra moverse a lo sumo un cuadro (izquierda, derecha o quedarse quieta), modificar lo que encuentre en dicho cuadro (borrando y escribiendo algun nuevo simbolo) y cambiar de estado (posiblemente al mismo que tenia). Para simplificar supondremos que hay en Γ un simbolo el cual si aparece en un cuadro de la cinta, significara que dicho cuadro esta sin escribir o en blanco. Esto nos permitira describir mas facilmente el funcionamiento de la maquina. En gral llamaremos B a tal simbolo. Tambien por lo general llamaremos Q al conjunto de estados de la maquina.

Tambien cada maquina tendra un estado especial el cual sera llamado su estado inicial, generalmente denotado con q0, el cual sera el estado en el que estara la maquina al comenzar a trabajar sobre la cinta. Hay otras caracteristicas que tendran las maquinas de Turing pero para dar un primer ejemplo ya nos basta. Describiremos una maquina de Turing M que tendra Γ={@,a,b,B} y tendra dos estados, es decir Q={q0,q1}. Obviamente q0 sera su estado inicial y ademas el "comportamiento o personalidad" de M estara dado por las siguientes clausulas:

  1. - Estando en estado q0 si ve ya sea b o B o @, entonces se queda en estado q0 y se mueve a la derecha

  2. - Estando en estado q0 si ve a entonces reescribe @, se mueve a la izquierda y cambia al estado q1

  3. - Estando en estado q1 si ve a o b o B o @ entonces lo deja como esta, se mueve a la izquierda y queda en estado q1

Supongamos ahora que tomamos una palabra αΓ y la distribuimos en la cinta dejando el primer cuadro en blanco y luego poniendo los simbolos de α en los siguientes cuadros. Supongamos ademas que ponemos la maquina en estado q0 y con su cabeza lectora escaneando el primer cuadro de la cinta. Esto lo podemos representar graficamente de la siguiente manera Bα1...αnBBB...q0 donde α1,...,αn son los sucesivos simbolos de α. Supongamos ademas que a ocurre an α. Dejamos al lector ir aplicando las clausulas de M para convencerse que luego de un rato de funcionar M, la situacion sera Bβ1...βnBBB...q1 donde β1...βn es el resultado de reemplazar en α la primer ocurrencia de a por @. Dejamos como ejercicio para el lector averiguar que sucede cuando a no ocurre en α

Una cosa que puede pasar es que para un determinado estado p y un σΓ, la maquina no tenga contemplada ninguna accion posible. Por ejemplo sea M la maquina de Turing dada por Q={q0}, Γ={@,$,B} y por la siguiente clausula:

  1. - Estando en estado q0 si ve ya sea @ o B, entonces se queda en estado q0 y se mueve a la derecha

Es facil ver que si partimos de una situacion Bα1...αnBBB...q0 donde α1,...,αnΓ, entonces si ningun αi es igual a $, la maquina se movera indefinidamente hacia la derecha y en caso contrario se movera i pasos a la derecha y se detendra, donde i es el menor l tal que αl=$.

Otro caso posible de detencion de una maquina de Turing es cuando esta escaneando el primer cuadro de la cinta y su unica accion posible implica moverse un cuadro a la izquierda. Tambien en estos casos diremos que la maquina se detiene ya que la cinta no es extensible hacia la izquierda.

Otra caracteristica de las maquinas de Turing es que poseen un alfabeto de entrada el cual esta contenido en el alfabeto Γ y en el cual estan los simbolos que se usaran para formar la configuracion inicial de la cinta (exepto B). En general lo denotaremos con Σ al alfabeto de entrada y los simbolos de ΓΣ son considerados auxiliares. Tambien habra un conjunto F contenido en el conjunto Q de los estados de la maquina, cuyos elementos seran llamados estados finales.

Diremos que una palabra α=α1...αnΣ es aceptada por M por alcance de estado final si partiendo de Bα1...αnBBB...q0 en algun momento de la computacion M esta en un estado de F. Llamaremos L(M) al conjunto formado por todas las palabras que son aceptadas por alcance de estado final

Diremos que una palabra α=α1...αnΣ es aceptada por M por detencion si partiendo de Bα1...αnBBB...q0 en algun momento M se detiene. Llamaremos H(M) al conjunto formado por todas las palabras que son aceptadas por detencion

4.1.2 Definicion matematica de maquina de Turing

Una maquina de Turing es una 7-upla M=(Q,Σ,Γ,δ,q0,B,F) donde

  1. - Q es un conjunto finito cuyos elementos son llamados estados

  2. - Γ es un alfabeto que contiene a Σ

  3. - Σ es un alfabeto llamado el alfabeto de entrada

  4. - BΓΣ es un simbolo de Γ llamado el blank symbol

  5. - δ:DδQ×ΓQ×Γ×{L,R,K}

  6. - q0 es un estado llamado el estado inicial de M

  7. - FQ es un conjunto de estados llamados finales

Notese que la funcion δ da la "personalidad" de la maquina. Aqui los simbolos L,R,K serviran para especificar que hace el cabezal. O sea:

  1. - δ(p,σ)=(q,γ,L) significara que la maquina estando en estado p y leyendo el simbolo σ borrara σ y escribira γ en su lugar y luego se movera un cuadro a la izquierda (esto en caso que el cabezal no este en el cuadro de mas a la izquierda, en cuyo caso no podra realizar dicha tarea y se detendra).

  2. - δ(p,σ)=(q,γ,K) significara que la maquina estando en estado p y leyendo el simbolo σ borrara σ y escribira γ en su lugar y luego el cabezal se quedara kieto

  3. - δ(p,σ)=(q,γ,R) significara que la maquina estando en estado p y leyendo el simbolo σ borrara σ y escribira γ en su lugar y luego el cabezal se movera un cuadro a la derecha

Si bien en nuestra definicion de maquina de Turing no hay ninguna restriccion acerca de la naturaleza de los elementos de Q, para continuar nuestro analisis asumiremos siempre que Q es un alfabeto disjunto con Γ. Esto nos permitira dar definiciones matematicas precisas que formalizaran el funcionamiento de las maquinas de Turing en el contexto de las funciones mixtas. Deberia quedar claro que el hecho que solo analicemos maquinas en las cuales Q es un alfabeto disjunto con Γ, no afectara la profundidad y generalidad de nuestros resultados.

4.1.2.1 Descripciones instantaneas

Una descripcion instantanea sera una palabra de la forma αqβ, donde α,βΓ, [β]|β|B y qQ. Notese que la condicion [β]|β|B nos dice que β=ε o el ultimo simbolo de β es distinto de B. La descripcion instantanea α1...αnqβ1...βm, con α1,...,αn, β1,...,βmΓ, n,m0 representara la siguiente situacion α1α2...αnβ1β2...βmBBB...q Notese que aqui n y m pueden ser 0. Por ejemplo si n=0 tenemos que α1...αnqβ1...βm=qβ1...βm y representa la siguiente situacion β1β2...βmBBB...q Si m=0 tenemos que α1...αnqβ1...βm=α1...αnq y representa la siguiente situacion α1α2...αnBB......q Si ambos n y m son 0 entonces tenemos que α1...αnqβ1...βm=q y representa la siguiente situacion BBB...q La condicion de que en una descripcion instantanea αqβ deba suceder que [β]|β|B es para que haya una correspondencia biuniboca entre descripciones instantaneas y situaciones de funcionamiento de la maquina. Dejamos al lector meditar sobre esto hasta convenserse de su veracidad.

Usaremos Des para denotar el conjunto de las descripciones instantaneas. Definamos la funcion St:DesQ, de la siguiente manera St(d)=unico simbolo de Q que ocurre en d

4.1.2.2 La relacion

Dado α(QΓ), definamos α de la siguiente manera ε=εασ=ασ, si σBαB=α Es decir α es el resultado de remover de α el tramo final mas grande de la forma Bn. Dada cualquier palabra α definimos α={[α]2...[α]|α|si|α|2εsi|α|1                    α={[α]1...[α]|α|1si|α|2εsi|α|1 Dadas d1,d2Des, escribiremos d1d2 cuando existan σΓ, α,βΓ y p,qQ tales que se cumple alguno de los siguientes casos

Caso 1. d1=αpβδ(p,[βB]1)=(q,σ,R)d2=ασqβ

Caso 2. d1=αpβδ(p,[βB]1)=(q,σ,L) y αεd2=αq[α]|α|σβ

Caso 3. d1=αpβδ(p,[βB]1)=(q,σ,K)d2=αqσβ Escribiremos dd para expresar que no se da dd. Para d,dDes y n0, escribiremos dnd si existen d1,...,dn+1Des tales que d=d1d=dn+1didi+1, para i=1,...,n. Notese que d0d sii d=d. Finalmente definamos dd sii (nω)dnd.

4.1.2.3 Detencion

Dada dDes, diremos que M se detiene partiendo de d si existe dDes tal que

  1. - dd

  2. - dd, para cada dDes

Deberia quedar claro que es posible que αpβd, para cada descripcion instantanea d, y que δ(p,[βB]1) sea no vacio.

4.1.2.4 El lenguaje L(M)

Diremos que una palabra αΣ es aceptada por M por alcance de estado final cuando q0Bαd, con d tal que St(d)F. El lenguage aceptado por M por alcance de estado final se define de la siguiente manera L(M)={αΣ:α esaceptada por M por alcance de estadofinal}.

4.1.2.5 El lenguaje H(M)

Diremos que una palabra αΣ es aceptada por M por detencion cuando M se detiene partiendo de q0Bα. El lenguage aceptado por M por detencion se define de la siguiente manera H(M)={αΣ:α esaceptada por M por detencion}

4.1.3 Funciones Σ-Turing computables

Para poder computar funciones mixtas con una maquina de Turing necesitaremos un simbolo para representar numeros sobre la cinta. Llamaremos a este simbolo unit y lo denotaremos con . Mas formalmente una maquina de Turing con unit es una 8-upla M=(Q,Σ,Γ,δ,q0,B,,F) tal que (Q,Σ,Γ,δ,q0,B,F) es una maquina de Turing y es un simbolo distingido perteneciente a Γ({B}Σ).

Diremos que una funcion f:Dfωn×ΣmΣ es Σ-Turing computable si existe una maquina de Turing con unit, M=(Q,Σ,Γ,δ,q0,B,,F) tal que:

  1. (1) Si (x,α)Df, entonces hay un pQ tal que q0Bx1B...BxnBα1B...BαmpBf(x,α) y pBf(x,α)d, para cada dDes

  2. (2) Si (x,α)ωn×ΣmDf, entonces M no se detiene partiendo de q0Bx1B...BxnBα1B...Bαm.

En forma similar, una funcion f:Dfωn×Σmω, es llamada Σ-Turing computable si existe una maquina de Turing con unit, M=(Q,Σ,Γ,δ,q0,B,,F), tal que:

  1. (1) Si (x,α)Df, entonces hay un pQ tal que q0Bx1B...BxnBα1B...BαmpBf(x,α) y pBf(x,α)d, para cada dDes

  2. (2) Si (x,α)ωn×ΣmDf, entonces M no se detiene partiendo de q0Bx1B...BxnBα1B...Bαm

Cuando M y f cumplan los items (1) y (2) de la definicion anterior, diremos que la funcion f es computada por M.

Por supuesto esta definicion no tendria sentido como modelo matematico del concepto de funcion Σ-efectivamente computable si no sucediera que toda funcion Σ-Turing computable fuera Σ-efectivamente computable. Este hecho es intuitivamente claro y lo presentamos a continuacion en forma de proposicion. En algun sentido esto nos dice que el paradigma filosofico es mas amplio (o igual) al paradigma de Turing. Para darle un toque de humor expresaremos esto diciendo que Leibniz vence a Turing.

4.1 (Leibniz vence a Turing). Sean n,mω y O{ω,Σ}. Si f:Dfωn×ΣmO es computada por una maquina de Turing con unit M=(Q,Σ,Γ,δ,q0,B,,F), entonces f es Σ-efectivamente computable.

Proof. Haremos el caso O=Σ. Sea P el siguiente procedimiento efectivo.

- Conjunto de datos de entrada de P igual a ωn×Σm

- Conjunto de datos de salida de P contenido en O

- Funcionamiento: Hacer funcionar paso a paso la maquina M partiendo de la descripcion instantanea q0Bx1B...BxnBα1B...Bαm. Si en alguna instancia M termina, dar como salida el resultado de remover de la descripcion instantanea final los dos primeros simbolos.

Notese que este procedimiento termina solo en aquelos elementos (x,σ)ωn×Σm tales que la maquina M termina partiendo desde q0Bx1B...BxnBα1B...Bαm por lo cual termina solo en los elementos de Df ya que M computa a f. Ademas es claro que en caso de terminacion el procedimiento da como salida f(x,σ).  


Sin envargo el modelo Turingniano podria a priori no ser del todo correcto ya que podria pasar que haya una funcion que sea computada por un procedimiento efectivo pero que no exista una maquina de Turing que la compute. En otras palabras el modelo podria ser incompleto. La completitud de este modelo puede no ser clara al comienzo pero a medida que vayamos avanzando en nuestro estudio y conozcamos ademas los otros paradigmas y su relacion, quedara claro que el modelo de Turing es acertado, es decir que tambien pasa que Turing vence a Leibniz.

4.1.4 Conjuntos Σ-Turing enumerables

Ya que la nocion de funcion Σ-Turing computable es el modelo matematico de Turing del concepto de funcion Σ-efectivamente computable, nos podriamos preguntar entonces cual es el modelo matematico de Turing del concepto de conjunto Σ-efectivamente enumerable. Si prestamos atencion a la definicion de conjunto Σ-efectivamente enumerable, notaremos que depende de la existencia de cierta funcion F por lo cual la siguiente definicion cae de maduro:

Diremos que un conjunto Sωn×Σm sera llamado Σ-Turing enumerable cuando sea vacio o haya una funcion F:ωωn×Σm tal que IF=S y F(i) sea Σ-Turing computable, para cada i{1,...,n+m}.

Deberia quedar claro que si el concepto de funcion Σ-Turing computable modeliza correctamente al concepto de funcion Σ-efectivamente computable, entonces el concepto de conjunto Σ-Turing enumerable recien definido modeliza correctamente al concepto de conjunto Σ-efectivamente enumerable. Notese que segun la definicion que acabamos de escribir, un conjunto no vacio Sωn×Σm es Σ-Turing enumerable si y solo si hay maquinas de Turing con unit M1=(Q1,Σ,Γ1,δ1,q01,B,,F1)M2=(Q2,Σ,Γ2,δ2,q02,B,,F2)Mn+m=(Qn+m,Σ,Γn+m,δn+m,q0n+m,B,,Fn+m) tales que

  1. - cada Mi, con i=1,...,n, computa una funcion Fi:ωω

  2. - cada Mi, con i=n+1,...,n+m, computa una funcion Fi:ωΣ

  3. - S=Im[F1,...,Fn+m]

Como puede notarse las maquinas M1,...,Mn+m puestas secuencialmente a funcionar desde la descripciones instantaneas q01Bxq02Bx         q0n+mBx producen en forma natural un procedimiento efectivo (con dato de entrada xω) que enumera a S. Por supuesto podemos decir que en tal caso las maquinas M1,...,Mn+m enumeran a S. La siguiente proposicion muestra que tambien las cosas se pueden hacer con una sola maquina de Turing.

4.2. Sea Sωn×Σm un conjunto no vacio. Entonces S es Σ-Turing enumerable si y solo si hay una maquina de Turing con unit M=(Q,Σ,Γ,δ,q0,B,,F), tal que:

  1. (1) Para cada xω, tenemos que M se detiene partiendo de q0Bx y llega a una descripcion instantanea de la forma qBx1B...BxnBα1B...Bαm, con (x,α)S.

  2. (2) Para cada (x,α)S hay un xω tal que M se detiene partiendo de q0Bx y llega a una descripcion instantanea de la forma qBx1B...BxnBα1B...Bαm

Proof. Queda como ejercicio ver como construir la maquina M utilizando las maquinas M1,...,Mn+m y reciprocamente ver como a partir de una maquina M con las propiedades (1) y (2) se pueden construir las maquinas M1,...,Mn+m.  


4.1.5 Conjuntos Σ-Turing computables

La version Turingniana del concepto de conjunto Σ-efectivamente computable es facil de dar: un conjunto Sωn×Σm sera llamado Σ-Turing computable cuando la funcion χSωn×Σm sea Σ-Turing computable. O sea que Sωn×Σm es Σ-Turing computable sii hay una maquina de Turing con unit M=(Q,Σ,Γ,δ,q0,B,,F) la cual computa a χSωn×Σm, es decir:

  1. - Si (x,α)S, entonces hay un pQ tal que q0Bx1B...BxnBα1B...BαmpB y pBd, para cada dDes

  2. - Si (x,α)(ωn×Σm)S, entonces hay un pQ tal que q0Bx1B...BxnBα1B...BαmpB y pBd, para cada dDes

Si M es una maquina de Turing la cual computa a χSωn×Σm, diremos que M decide la pertenecia a S, con respecto al conjunto ωn×Σm.