Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNIDAD 5: DECIBILIDAD
Introducción………………………………………………………………………………………………………………. 2
UNIDAD 6: REDUCIBILIDAD
Introducción……………………………………………………………………………………………………………… 11
Conclusión………………………………………………………………………………………………………………… 24
Bibliografía………………………………………………………………………………………………………………… 25
1
INTRODUCCIÓN
¿Qué es la decibilidad?
Según definición un sistema lógico o teoría es decidible si el conjunto de todas las
fórmulas válidas en el sistema es decidible. Es decir, existe un algoritmo tal que para cada
fórmula del sistema es capaz de decidir en un número finito de pasos si la fórmula es
válida o no en el sistema.
Ejemplo: La Lógica proposicional (se define una proposición como un enunciado
declarativo que puede ser verdadero o falso, y Las proposiciones se representan mediante
variables proposicionales simbolizadas mediante letras) es decidible, porque existe para
ella un algoritmo; la tabla de verdad tal que para cada fórmula que combina M formulas
atómicas, hay un número máximo N = 2M de pasos tal que tras completar estos N pasos el
algoritmo siempre decidirá si la fórmula es válida o no. Cada "paso" del algoritmo ha sido
definido como una línea de la tabla de verdad.
Toda teoría completa recursivamente enumerable es decidible. Por otro lado, toda teoría
que incluya aritmética básica es no decidible.
También hay que mencionar que en 1936, un matemático británico, Alan Turing, publica
un ensayo titulado: “Acerca de Números Computables con una Aplicación al Problema de
le Decidibilidad” (de Hilbert).
Turing demuestra que problemas computables pueden ser resueltos por una máquina con
una cinta infinitamente larga, subdividida en pequeñas celdas cuadradas y con un
dispositivo con un número definido de estados capaz de “leer” los símbolos “escritos”
sobre esa cinta. En función del símbolo leído y del “estado” de la máquina, se puede
escribir otro símbolo y modificar el estado de la máquina. Trivialmente, la máquina puede
desplazarse sobre la cinta en ambos sentidos.
2
UNIDAD 5
“DECIBILIDAD”
Un lenguaje decidible es aquel lenguaje L para el cual existe una maquina de Turing que le
puede aceptar cualquier cadena w L.
Hay lenguajes formados por cadenas tales que una maquina de Turing logra un estado
final con las cadenas que reconoce y acepta, solamente. En este caso se dice que la
máquina de Turing semidecide al lenguaje. Los lenguajes semidecididos por una MT se
llaman recursivos numerables. Las gramáticas sin restricciones son las que generan los
lenguajes recursivos numerables. De aquí en adelante será suficiente referirse a los
lenguajes recursivos numerables, pues estos generalizan a los lenguajes recursivos, los
cuales generalizan a los lenguajes libres de contexto, y estos a los lenguajes regulares. Lo
anterior tiene relación directa con que los autómatas de Turing generalizan a los de la pila
y estos a su vez a los autómatas finitos. Por otro lado, pese a que lenguajes formales más
generales que los recursivos numerables no son reconocidos por un autómata de Turing,
no existe hasta el momento ningún autómata más poderoso capaz de reconocerlos.
Es decir, si un dado un conjunto de entradas bajo las cuales una MT logra un estado de
parada para cada entrada, la maquina corresponde a la implementación de un algoritmo.
Si es posible definir una maquina de Turing tal que reconozca al lenguaje de los teoremas,
este lenguaje es decidible y la teoría también lo es en consecuencia. Dicho en otras
palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una
máquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse entonces de
manera indistinta de teorías lógicas o de lenguajes decididles, como aquellos para los que
existe una máquina de Turing capaz de reconocerlos. Luego la correspondencia entre la
sintaxis de una teoría lógica (lenguaje formal) y reconocimiento simbólico del mismo por
parte de un autómata queda establecida.
3
Ejemplo:
Muestre que la colección de lenguajes decidibles por máquina de Turing para un alfabeto
cualquiera es infinita, pero contable.
Solución:
{Lenguajes independientes de contexto} es infinito
Ejemplo:
Esta propiedad de los lenguajes recursivos que, en general, no se cumple para los
lenguajes recursivamente enumerables. Para verlo, supongamos que es un alfabeto. Ya
que * es numerable, podemos enumerarlo como * = {w1 , w2 , w3 ,...} . En la sección de
las máquinas de Turing universales se indico que todas las máquinas de Turing sobre
podían ser enumeradas (por medio de las cadenas de símbolos generadas para
4
representar las máquinas de Turing codificadas). Por tanto, podremos listar todas las
máquinas de Turing sobre como M 1 , M 2 ,... Sea
Por otro lado, M i puede que pare sin aceptar wi o puede que no pare. En ambos
casos, M no para y no acepta wi . Así, wi L(M ) sí y solo si wi L( M i ) .
5
5.2. El problema de Halting
Alan Turing demostró en 1936 que un algoritmo general para solucionar el problema
vacilante para todos los pares de entrada de programa posibles no puede existir. Decimos
que el problema vacilante es undecidable sobre máquinas Turing.
B. Jack Copeland (2004) atributos el término real que para problema a Martin Davis.
Declaraciones formales
No se para; más bien esto continúa siempre en un lazo infinito. De otra parte, el programa
print "Hello World!"
El problema de Halting es famoso porque esto era uno de los primeros problemas
probados algorítmicamente indecidible. Esto quiere decir que no hay ningún algoritmo
que puede ser aplicado a cualquier programa arbitrario e introducir para decidir si el
programa se para cuando controlado
6
K: = {(yo, x) | el programa tarde o temprano me pararé de ser controlado con la entrada x}
representa el problema vacilante.
Este juego es recurrentemente enumerable, que quiere decir que hay una función
calculable que cataloga todos los pares (yo, x) esto contiene. Sin embargo, el
complemento de este juego no es recurrentemente enumerable.
Hay muchas formulaciones equivalentes del problema vacilante; cualquier juego cuyo
grado Turing iguala él del problema vacilante es tal formulación. Los ejemplos de tales
juegos incluyen:
{ i | hay una entrada x tal que el programa i tarde o temprano altos cuando controlado
con la entrada x}.
Importancia y consecuencias
La importancia histórica del problema de Halting está en el hecho que esto era uno de los
primeros problemas para ser demostrados indecidible. (La prueba de Turing fue a apretar
en mayo de 1936, mientras que la prueba de la Iglesia de la indecibilidad de un problema
en el cálculo de lambda ya había sido publicada en abril de 1936.) Posteriormente,
muchos otros tales problemas han sido descritos; el método típico de demostrar un
problema de ser indecidible es con la técnica de reducción. Para hacer esto, el informático
muestra que si una solución con el nuevo problema fue encontrada, esto podría ser usado
decidir un problema indecidible (por transformando los casos del problema indecidible en
los casos del nuevo problema). Ya que ya sabemos que ningún método puede decidir el
viejo problema, ningún método puede decidir el nuevo problema tampoco.
Una tal consecuencia de la indecibilidad del problema de Halting es que no puede haber
un algoritmo general que decide si una declaración dada sobre números naturales es
verdadera o no. La razón de esto es que la proposición que declara que un cierto
algoritmo parará dado una cierta entrada puede ser convertida en una declaración
equivalente sobre números naturales. Si nosotros tuviéramos un algoritmo que podría
solucionar cada declaración sobre números naturales, esto seguramente podría solucionar
éste; pero esto determinaría si los altos de programa originales, que son imposibles, desde
el problema vacilante son tras indecidible.
7
este alto de algoritmo para la entrada 0 " es ya indecidible. Note que este teorema
sostiene para la función definida por el algoritmo y no el.
Mientras la prueba de Turing muestra que no puede haber ningún método general o
algoritmo para determinar si el alto de algoritmos, los casos individuales de aquel
problema muy bien puede estar susceptible para atacar. Considerando un algoritmo
específico, uno a menudo puede mostrar que esto debe pararse para cualquier entrada, y
de hecho los informáticos a menudo hacen solamente que como la parte de una prueba
de corrección. Pero cada prueba tiene que ser desarrollada expresamente para el
algoritmo al alcance de la mano; no hay ningún modo mecánico, general de determinar si
los algoritmos sobre un Turing trabajan a máquina el alto. Sin embargo, hay alguna
heurística que puede ser usada en una manera automatizada intentar construir una
prueba, que tiene éxito con frecuencia sobre programas típicos. Conocen este campo de
investigación como el análisis de terminación automatizado.
Ya que la respuesta negativa al problema vacilante muestra que hay problemas que no
pueden ser solucionados por una máquina de Turing, los límites de tesis de Iglesia-Turing
que puede ser logrado por cualquier máquina que pone en práctica métodos eficaces. Sin
8
embargo, no todo máquinas teóricamente posibles son sujetas a la tesis de Iglesia-Turing
(p.ej. las máquinas de oráculo no son). Esto es una pregunta abierta empírica si hay tras
procesos reales deterministas físicos que, a la larga, eluden la simulación por una máquina
de Turing. Esto es también un asunto por resolver si cualquier tal proceso útilmente
podría ser enjaezado en forma de una calculadora (un hiperordenador) que podría
solucionar el problema vacilante para una máquina de Turing entre otras cosas.
Por otro lado, son muchos los problemas interesantes que se han demostrado
computables. Todas las funciones construidas por recursividad primitiva o minimalización
a partir de funciones calculables resultan ser calculables como consecuencia de los
trabajos de Church y Turing. Pero además, otras funciones más complejamente definidas
también son computables, siendo el resultado más significativo en relación con esta
cuestión el dado por el siguiente teorema:
Primer teorema de Recursión. Todo operador entre funciones calculables que sea
recursivo (esto es que se defina la imagen de f mediante una función calculable en
términos de una parte finita de f), tiene una función parcial computable que es el menor
punto fijo, es decir, esta función es un punto fijo y cualquier otro punto fijo del operador
es una extension de esa función.
Este teorema recibe su nombre porque podemos definir una función mediante una
ecuación recursiva más general que la permitida por la recursividad primitiva, a saber
donde es un operador recursivo. El primer teorema de recursión nos dice que esta
definición es posible; hay una función recursiva que satisface esta ecuación. Como en
matemáticas se requiere que la definición sea unívoca, se dice que dicha ecuación define
el menor punto fijo del operador . Así, y de acuerdo al primer teorema de recursión, la
clase de las funciones calculables es cerrada bajo una muy general forma de definición por
recursión.
9
una función calculable), entonces este nuevo problema tampoco tendrá solución efectiva.
La razón es muy simple, si tuviese solución efectiva, componiendo el algoritmo solución
con el algoritmo de transformación obtendríamos una solución para el problema
efectivamente irresoluble. En sentido inverso, si se reduce un problema a otro para el que
se conoce una solución efectiva, entonces componiendo se obtiene una solución para el
primer problema. Esta técnica es muy útil y se utiliza a menudo. Por otro lado, esta mísma
técnica es muy empleada en el campo de la complejidad algorítmica. Para asegurarse de
que un problema está en una clase de complejidad, basta reducir el problema a otro de
dicha clase sin más que asegurarse que la reducción se realiza en la correspondiente clase
de complejidad.
10
INTRODUCCIÓN
“REDUCIBILIDAD”
El identificar los problemas que son computables y los que no lo son tiene un considerable
interés, pues indica el alcance y los límites de la computabilidad, y así demuestra los
límites teóricos de los ordenadores. Además de las cuestiones sobre algoritmos, se han
encontrado numerosos problemas menos "generales" que han resultado ser no
computables. La mayoría de las demostraciones de no computabilidad se basan en el
método de la diagonal. Como ejemplos de estos problemas podemos citar:
2.- Décimo problema de Hilbert. Una ecuación diofántica es la ecuación de los ceros
enteros de un polinomio con coeficientes enteros. El décimo problema de Hilbert,
propuesto en 1900, pregunta si hay un procedimiento efectivo que determine si una
ecuación diofántica tiene o no solución. Y. Matiyasevich demostró en 1970 que este
problema no tiene solución.
Por otro lado, son muchos los problemas interesantes que se han demostrado
computables. Todas las funciones construidas por recursividad primitiva o minimalización
a partir de funciones calculables resultan ser calculables como consecuencia de los
trabajos de Church y Turing. Pero además, otras funciones más complejamente definidas
también son computables, siendo el resultado más significativo en relación con esta
cuestión el dado por el siguiente teorema:
Primer teorema de Recursión. Todo operador entre funciones calculables que sea
recursivo (esto es que se defina la imagen de f mediante una función calculable en
11
términos de una parte finita de f), tiene una función parcial computable que es el menor
punto fijo, es decir, esta función es un punto fijo y cualquier otro punto fijo del operador
es una extension de esa función.
Este teorema recibe su nombre porque podemos definir una función mediante una
ecuación recursiva más general que la permitida por la recursividad primitiva, a saber
donde es un operador recursivo. El primer teorema de recursión nos dice que esta
definición es posible; hay una función recursiva que satisface esta ecuación. Como en
matemáticas se requiere que la definición sea unívoca, se dice que dicha ecuación define
el menor punto fijo del operador . Así, y de acuerdo al primer teorema de recursión, la
clase de las funciones calculables es cerrada bajo una muy general forma de definición por
recursión.
Como ejemplo más interesante de aplicación de este tipo de recursión tenemos la función
de Ackermann :
12
UNIDAD 6
“REDUCIBILIDAD”
Problemas de decisión.
Un problema de decisión (PD) es aquel formulado por una pregunta (referida a alguna
propiedad) que requiere una respuesta de tipo “si/no”.
Otro ejemplo sería la pregunta “dada una gramática sensible al contexto y una
cadena w, ¿ w L(G) ? ”. Nuevamente obsérvese que hay infinitos casos de este
problema. Cada uno de ellos se determina mediante una gramática sensible al contexto y
una cadena. Es más, cada uno tiene una respuesta sí o no.
Se dice que los problemas de decisión son resolubles si existe un algoritmo que es
capaz de responder si o no a cada uno de dichos casos. Si el algoritmo no existe, se dice
que el problema es irresoluble. Los problemas de los ejemplos anteriores son ambos
resolubles puesto que existe un algoritmo para ellos.
13
Otros ejemplos de problemas de decisión:
Si es soluble.
Si es un problema soluble.
No es insoluble.
El problema de la Parada
Un caso del problema de parada está formado por la pareja máquina de Turing-
cadena de entrada. Una solución a dicho problema sería un algoritmo que, para cualquier
caso, respondería sí o no de forma correcta, es decir, una algoritmo lo bastante general
como para responder correctamente al problema de parada para cualquier combinación
de máquina de Turing y cadena de entrada.
14
máquinas de Turing y cadenas de entrada, una máquina de Turing que pare sobre todas
las entradas y proporcione una respuesta positiva o negativa.
Ahora supongamos que el problema de parada tiene solución. Es decir, que hay
una máquina de Turing que para sobre todas las cadenas de entrada y, que ante una
descripción de una máquina de Turing y una cadena de entrada (ambas codificadas), se
puede determinar si M para sobre la cadena de entrada. Entonces, se puede construir una
máquina de Turing M L que acepte el lenguaje anterior. Sea w una cadena. Primero, M L
enumera w1 , w2 ,... hasta que encuentre el k wk y M k a la supuesta máquina de Turing, la
cual determine si M k para sobre la entrada wk . Si se obtiene M k no para sobre la
entrada wk , entonces M L para y acepta wk = w (¿por qué?). Por otro lado, si se obtiene
que M k para sobre la entrada wk , entonces se pasan los códigos correspondientes a M k
y wk a la máquina de Turing universal que simula M k sobre wk . Si M k acepta wk ,
entonces M L para y rechaza wk . Si M k no acepta wk , entonces M L para y acepta wk .
15
Teorema 6.1.1. El problema de la parada para las máquinas de Turing es irresoluble
16
Ejemplo 2:
17
18
6.3 Funciones Computables
Las funciones computables son usadas para discutir computabilidad sin referirse a ningún
modelo de computación concreto, como máquina de Turing o máquina de registros. Los
axiomas de Blum pueden ser usados para definir una teoría de complejidad
computacional abstracta sobre el conjunto de funciones computables.
Alternativamente se pueden definir como los algoritmos que pueden ser calculados por
una máquina de Turing, una máquina de Post, o una máquina de registros.
Definición
19
Se llama computable si el gráfico de f es un conjunto recursivo. El conjunto de funciones
totalmente computables con un parámetro normalmente se escribe o .
Una función computable f se llama predicado computable si es una función con valor
booleano, o sea
20
6.4. Reducibilidad de Turing
Es posible definir reducibilidades intermedias, entre ellas las reducciones por la tabla de
variedad, que no son adaptativas.
Y, en efecto, una versión reforzada de los conjuntos simples, los hipersimples, proporciona
conjuntos que no son completos respecto de la reductibilidad por tablas de verdad. Post
demostró este hecho, y construyo un conjunto hipersimple; nosotros lo tenemos fácil por
que, de hecho, ya lo tenemos: el propio conjunto SK no solo es simple si no hipersimple.
La idea era procurar que los complementarios fueran “lo más delgados posible” en cierto
sentido intuitivo: en un inmune “no cabe” un recursivamente enumerable y en un
hiperinmune (complementario de un hipersimple) “el siguiente elemento esta siempre
demasiado lejos” para lo que puede lograr enumerar una función recursiva.
Sin embargo más adelante se estableció que existen hiper-hipersimples que son T-
completos e incluso que existen recursivamente numerables maximales respecto a la
inclusión, y por tanto con complementario “lo más delgado posible” en este sentido
intuitivo, y que son T-completos.
21
El problema de Correspondencia de Post
• Una GLC G es ambigua si hay una palabra, del lenguaje que genera, ambigua en
ella.
• Un LLC L es inherentemente ambiguo si cualquier GLC G que lo genere es ambigua.
A guisa de ejemplo se tiene que el lenguaje
es inherentemente ambiguo. Sin que presentemos aquí una demostración formal de esta
aseveración, daremos una motivación intuitiva de ella. Seguramente el lector no tendrá
ninguna dificultad en visualizar una GLC para generar L1 y otra para generar L2. Ahora,
Solución:
Proposición 2.2 PCP se reduce algorítmicamente a PRAGLC. Por tanto este último es
irresoluble.
22
posea solución en PCP si y sólo si sea ambigua. Denotemos por A al
1.
2.
23
CONCLUSIÓN:
Al finalizar este trabajo puedo concluir que la Decibilidad tiene que ver mucho con
los diferentes lenguajes que se manejan como es el lenguaje recursivo y que son
aceptados por la Máquina de Turing, así como pude encontrar diferentes problemas que
pudieron mostrar la Decibilidad como lo el problema de Halting que este es un problema
en donde también se vieron otros temas como el teorema de Rice y de Church.
24
BIBLIOGRAFÍA
Kelly Dean
Prentice Hall
http://asixteco.blogdiario.com/
http://sistemas.itlp.edu.mx/tutoriales/teoriadelacomputacion/index.htm
http://entucaramcfly.blogspot.com/2009/06/teoria-de-la-computacion-primera.html
http://www.wikipedia.com/TeoriasDecidibles.html
http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Funciones_compu
tables
http://www.slidefinder.net/m/mpu6_ilp/3904809
25