You are on page 1of 18

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS


ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA

PROBLEMA DE LA PARADA
Curso: Teoría de la Computación

Alumna:

 Velásquez Sandoval Gianella


 Alcantara Bejarano Leydi
 Cruz Ybañez Ingrid
 Nuñez Morocho Jose
 Monzón Sandoval Dariel

Profesor: Lujan Segura Edwar Glorimer

TRUJILLO-PERU

2018
Contenido
INTRODUCCIÓN ...................................................................................................................................... 3
EL PROBLEMA DE LA PARADA ................................................................................................................ 5
Problemas y Lenguajes .................................................................................................................... 6
LENGUAJES RECURIVOS Y RECURSIVAMENTE ENUMERABLES. ........................................................ 6
PROBLEMAS DECIDIBLES RELACIONADOS LR (lenguajes regulares) ................................................ 9
PROBLEMAS DECIDIBLES RELACIONADOS CON LLC ........................................................................ 10
PROBLEMAS INDECIDIBLES .............................................................................................................. 10
INDECIDIBILIDAD .................................................................................................................................. 11
PROBLEMA DE LA DETENCION (HALTING PROBLEM) ..................................................................... 13
¿Qué pasaría si el problema de detención se pudiera resolver?........................................................ 17
CONCLUSIONES..................................................................................................................................... 18

2
INTRODUCCIÓN

Desde siempre, pero fundamentalmente desde que Galileo hiciera notar que las leyes
naturales podían describirse gracias a las matemáticas, se había dado por supuesto que todo
problema enunciado en términos matemáticos, más tarde o más temprano, podría resolverse
siguiendo una serie de pasos estipulados, ya fuese en forma geométrica, el método más usual
para los antiguos griegos, o mecanismos de tipo más algebraico, a los cuales estamos más
habituados en la actualidad.

Sin embargo, el hecho de que esto se diera por sentado no significaba que necesariamente
debiera ser así, por lo que se planteaba el despejar cualquier duda de ello. De ahí que se
planteara el que se denominó como "Entscheidungsproblem" o problema de la decisión. Este
problema fue formalizado por David Hilbert, primero parcialmente, a través de su décimo
problema de la Conferencia de París, y ya en forma más elaborada en el VIII Congreso
Internacional de Matemáticas, celebrado en Bolonia en 1928, ya casi al final de su vida. Para
Hilbert era crucial que todo problema dispusiera de una solución exacta, cuya única dificultad
rayara simplemente en encontrarla, pero sobre cuya existencia no cupiera dudas. Y así lo
plasma en una de sus reflexiones:

“Todo problema matemático definido debe ser necesariamente susceptible de un


planteamiento exacto, ya sea en forma de una respuesta real a la pregunta planteada o
debido a la constatación de la imposibilidad de resolverlo, a lo que se debería la falla
necesaria de todos los intentos. Una de las cosas que más nos atrae cuando nos dedicamos
a un problema matemático es precisamente a que dentro de nosotros siempre escuchamos
la llamada: He aquí el problema, busca la solución; puedes encontrarla por pensamiento puro,
ya que en matemáticas no existe cosa alguna que no pueda conocerse”.

3
Así pues, en dicho congreso, Hilbert planteó, nada más y nada menos, la búsqueda de un
procedimiento algorítmico general válido para resolver todas las posibles cuestiones
matemáticas. Esta cuestión encajaba en su programa formalista, puesto que su mayor interés
era situar las matemáticas sobre una base inatacable, con axiomas y reglas que quedaran
establecidas de una vez por todas. En definitiva, su planteamiento del problema era obtener
la respuesta a tres importantes preguntas:

1. ¿Son las matemáticas completas, es decir cualquier proposición puede ser probada o
rechazada?
2. ¿Son las matemáticas consistentes, es decir no es posible demostrar algo falso?
3. ¿Son las matemáticas decidibles, es decir cualquier proposición se puede demostrar
como cierta o falsa tras una secuencia finita de pasos?”

Sin embargo, poco después de este congreso, en 1930, Kurt Gödel demostró, por medio de
sus célebres Teoremas de Incompletitud que las dos primeras preguntas no pueden ser
ciertas a la vez para la teoría de los números. El primer teorema de Gödel afirma: “En
cualquier formalización consistente de las matemáticas que sea lo bastante fuerte para definir
el concepto de los números naturales, se puede construir una afirmación que ni se puede
demostrar ni se puede refutar dentro de ese sistema”, mientras que el segundo afirma:
“Ningún sistema consistente se puede usar para demostrarse a sí mismo”.

Sin embargo, aún quedaba la tercera pregunta. La dificultad de resolver esta última cuestión
estribaba, fundamentalmente, en la inexistencia de una definición precisa de lo que se debe
entender por un "procedimiento mecánico" para realizar cálculos. Y es Turing quien lo
establece en 1936 en su trabajo “On computable numbers”.

La idea de Máquina de Turing, en esencia, no es complicada, y consiste en un dispositivo


abstracto dotado de una cinta de memoria ilimitada, formada por celdas consecutivas donde
se pueden leer y escribir símbolos. Aun cuando hay infinitas celdas posibles, en cualquier
instante hay en uso sólo una cantidad finita de ellas, estando todas los demás en blanco.
Además, en dicha cinta existe un cabezal que puede estar en diferentes estados posibles.
Finalmente, su funcionamiento es como sigue; en cada paso de su ejecución, en primer lugar,
el cabezal lee la posición en la que se encuentra en la cinta, y dependiendo del estado en el
que esté, escribe en consecuencia; tras lo cual avanza o retrocede a la celda adyacente. Por
último, puede cambiar de estado, y así continúa hasta el momento en que no tiene definida
una tarea por hacer. Con la ayuda de esta máquina infernal Turing demostró que la respuesta
a la tercera pregunta era un rotundo NO.

4
EL PROBLEMA DE LA PARADA

El problema para el que encontró que no había una solución algorítmica era el que, desde
entonces, se conoce como problema de parada (Halting Problem). Es un problema también
sencillo de entender, que consiste en determinar si un determinado programa parará alguna
vez o tendrá una ejecución indefinida.

¿Puede existir un método para saber si un programa escrito en un determinado lenguaje de


programación parará?

Pues bien, no existe, y el ingenioso razonamiento de Turing para mostrarlo fue el siguiente.
Supongamos que dicho método existe. Si es así, entonces será programable y existirá, por
tanto, un programa, que denominaremos P, y que hará lo siguiente:

A priori no parece complicado, y no hay razón para suponer que ese programa no pudiera
existir. Ahora bien, el razonamiento al que llegó Turing es el siguiente. Si disponemos de
dicho programa P, podemos entonces construir, a partir de él, otro programa diferente R, que
responderá al siguiente comportamiento:

5
Y ahora viene lo mejor, pues nos podemos preguntar ¿Parará siempre el programa R tal y
como lo hemos diseñado, o existirá alguna posibilidad de que tenga una ejecución infinita?
Para saberlo, qué mejor que recurrir a chequearlo con el programa P que, hemos supuesto,
siempre nos responderá a esta cuestión y para eso sirve. Y así, tenemos dos posibilidades,
que nos responda "SI" o "NO", no cabe ninguna otra. Pero entonces:

 Si la respuesta es "SI", significa que R siempre se detendrá, en cualquier


circunstancia. Ahora bien, tal y como está definido R, tenemos que dicha respuesta
"SI" ocasiona que R no puede detenerse. Tenemos una contradicción inasumible.
 Si la respuesta es "NO", significa que R puede no detenerse. No obstante, por la
construcción del propio R, eso significa que SIEMPRE finalizará su ejecución.
También tenemos una contradicción.

En ambas circunstancias tenemos sendas contradicciones que nos llevan a que dicho
programa, simplemente no puede existir.

Este fue el primer caso de problema indecidible que la genial visión de Alan Turing nos mostró
en su artículo que haría historia, aparte de definirnos cómo debería ser un computador, y eso
antes de que existiesen. Como curiosidad, indicar que, en el primer envío del mismo, fue
rechazado con el curioso argumento de que su máquina ni existía ni podía existir.

Problemas y Lenguajes

LENGUAJES RECURIVOS Y RECURSIVAMENTE ENUMERABLES.

Sea la MT M y α ∈ Σ *, tenemos tres posibilidades:

M acepta α.

M rechaza α.

6
M no acepta ni rechaza pues entra en un ciclo infinito.

M maquina de Turing Total.

La maquina M es total si y solo si M siempre acepta o rechaza α para ∀ α ∈ Σ *.

Definiéremos dos tipos de lenguajes:

 Lenguaje Recursivo: Un lenguaje L(M) es recursivo si y solo si existe una MT M para


L(M) tal que M es total.
 Lenguaje Recursivamente Enumerable: Un lenguaje L(M) es recursivamente
enumerable si y solo si existe una MT M para L(M).

Los lenguajes recursivos son conocidos como Turing-Decidibles mientras que los
recursivamente enumerables son conocidos como Turing-Reconocibles.

De una manera más amplia:

PROBLEMAS

7
Un problema es una pregunta de tipo SI/NO acerca de un conjunto infinito de posibles
instancias. Ejemplo: El problema del ciclo Hamiltoniano.

 Cada grafo no dirigido es una instancia del problema.

Podemos decir que:

Un problema es formalmente un lenguaje

Cada cadena del lenguaje codifica una instanci

Una cadena pertenece a un lenguaje si la respuesta para la instancia que presenta es SI.

Problemas de decisión:

Es un problema formulado como una pregunta y que tiene como únicas respuestas posibles
SI – NO (o VERDADERO – FALSO)

Ejemplos:

 Dado un número natural, decidir si es par o no.


 Dada una cadena arbitraria y un lenguaje regular, determinar si la cadena pertenece
o no al lenguaje.

Los Problemas de Decisión se clasifican en:

DECIDIBLES: existe un ALGORITMO que para TODA INSTANCIA del problema devuelve
la RESPUESTA correcta.

INDECIDIBLES: existe un PROCEDIMIENTO que sólo da RESPUESTA para ALGUNAS


INSTANCIAS del problema.

POBLEMAS DECIDIBLES

Un problema es decidible si y solo un algoritmo puede resolverlo.

Un algoritmo es una máquina de Turing que se detiene para todas las entradas sean o no
aceptadas.

8
Un problema decidible es un lenguaje recursivo. Si un lenguaje no es recursivo, entonces
el problema es indecidible.

Un lenguaje L es decidible (Turing Decidible) si existe una Maquina de Turing M:

 Acepta y se detiene para∀ W ∈ L.


 Rechaza y se detiene para∀ W ∉ L.

Un lenguaje L es computable (Turing Reconocible) si existe una Maquina de Turing M.

 Acepta y se detiene para ∀ W ∈ L.


 No acepta (incluso podria no detenerse) ∀ w ∉ L.

PROBLEMAS DECIDIBLES RELACIONADOS LR (lenguajes regulares)


Sean los siguientes problemas:

 El problema de la aceptacion para un AFD si una cadena w es aceptada por un AFD


B.
 El problema de la aceptacion para un AFN. Si una cadena w es aceptada por un AFN
B.
 Determinar si una expresion regular R genera una cadena w que pertenece al
lenguaje.
 Determinar si un lenguaje AFD es vacio.
 Determinar la equivalencua entre los FD's.

Los problemas pueden ser aceptados como lenguajes:

AAFD ={(B,W)|B es un AFD que acepta la cadena W}

9
AAFN={(B,W)|B es un AFN que acepta la cadena W}

AREX ={(R,W)|R es una ER que genera la cadena W}

AAFD ={(A)|A es un AFD y L(A) = 0}

EQAFD ={(A,B)|A y B son AFD's y L(A) = L(B)}

PROBLEMAS DECIDIBLES RELACIONADOS CON LLC


Sean los siguientes problemas:

 Determinar si una gramática libre de contexto que genera la cadena W que pertenezca
al lenguaje
 Determinar si el lenguaje de una gramática es vacío.
 Determine si toda gramática libre de contexto es decidible.

Los problemas ser expresados como lenguajes:

 AGLC = {< G,W >| G es una GLC que genera la cadena W}


 EGLC = {< G >| G es una GLC y GLC y L(G) = 0 }
 Todo LLc es decidible.

PROBLEMAS INDECIDIBLES
Si un problema es una pregunta del tipo SI/NO acerca de un conjunto infinito de posibles
instancias y puede ser representado como un lengujae.

Un problema es decidible si y solo un algoritmo puede resolverlo.

Algoritmo: es una Maquina de Turing que se detiene para todas las entradas sean o no
aceptadas.

Un problema decidible es un lenguaje recursivo (siempre se detiene) sino el prblema es


indecidible (podria entrar en un ciclo infinito).

10
Maquina de Turing Universal.

Un lenguaje recursivamente enumerable pero no recursivo es el lenguaje Lu .

Una maquina Turing Universal U toma como entrada el codigo de una Maquina de Turing M
y una cadna w y acepta si y solo si M acepta w.

Una mquina de Turing Universal U simula el comportamiento de todas las MT sobre Σ .

U procesa pares (M, w), siendo M la codificacion de una MT determinada y w la codificacion


de una cadena de entrada para M.

INDECIDIBILIDAD
¿Qué pasaría si una máquina con un alfabeto definido tuviera como entrada caracteres
que no reconoce?

Preguntas como está fueron las que se planteaba a medida exploraba las posibilidades de su
invención. Luego descubrió que al resolver el problema de la entrada de caracteres no
aceptados aparecían nuevos problemas que podrían hacer que una máquina fallara. A
medida que resolvía varios de estos problemas encontraba más y más problemas de
complejidad aún mayor.

Luego de batallar con tantas validaciones y problemas tomo una decisión que marcaría el
rumbo de la matemática y la computación hacia como la conocemos hoy en día, decidió hacer
una máquina que tomara el código de otra máquina y que revisara si esta podría cumplir el
propósito para el que fue diseñada. Pronto se encontró con lo que hoy conocemos con el
límite de la computación. Dicha máquina, no existe.

11
Turing logró demostrar que el problema normalmente radica en la decisión de esta máquina.
¿Qué sucedería si a una máquina le insertáramos su propio código para ver si cumple el
propósito para el que fue hecha? Esta es la repuesta dicha pregunta:

P1, es una máquina que determina si una máquina imprimirá “Hola, Mundo” al revisar su
código. Si la máquina de entrada imprime “Hola, Mundo”, entonces P1 imprimirá SI, caso
contrario imprimirá “Hola, Mundo”.

Ahora viene la prueba: Le damos a P1 su propio código como entrada. Al revisar su propio
código, podría determinar que con certeza va a imprimir “Hola, Mundo”, por lo tanto la salida
de P1 es SI. ¿Cómo es posible de que P1 al revisar su código determine que va a imprimir
“Hola, Mundo”, pero al dar su respuesta no lo haga? Ahora bien, en el caso de que P1
determine que su código no imprimirá “Hola, Mundo”, entonces la salida de P1 debería ser
“Hola, Mundo”. Una vez más nos encontramos en una contradicción.

Una máquina como P1 no puede existir, ya que, como aclaramos antes, su problema radica
en la decisión de su salida. No importa qué salida tenga P1, esta siempre será una
contradicción. A este tipo de problemas se les llama Indecidibles.

Alan Turing marcó los límites de la computación al definir que un problema indecidible es
aquel que no puede ser representado por una Máquina de Turing (TM)

12
PROBLEMA DE LA DETENCION (HALTING PROBLEM)
Definición del problema

El problema de la detención consiste en determinar si una máquina de Turing cualquiera se


detendrá ante cualquier entrada dada. Es decir, si existe una máquina MThcapaz de
determinar si cualquier otra máquina se va a detener o no. Es conocido que el problema de
la detencion es indecidible.

Demostración de la indecibilidad

Para demostrar que el problema del alto es indecidible tenemos que probar la siguiente
afirmación:

NO existe una máquina MT NO existe una máquina MTh que tomando como entrada
cualquier máquina MT0, termine después de un tiempo finito y responda ‘SÍ’ cuando MT0
termine y ‘NO’ cuando MT0no termine.

Funcionamiento de la máquina hipotética MT Funcionamiento de la máquina hipotética MTh

Si MTh existe --> el problema es decidible

Si MTh no existe --> el problema es indecidible

Estrategia de la Demostración

 Por contradicción demostraremos que no existe una maquina MTh que resuelva el
problema del alto.
 Hipótesis:
Supondremos que existe MTh .
 Al final llegaremos a una contradicción derivada de esta hipótesis.
 Construyamos una nueva máquina MTs que se comporte de la siguiente manera:
- La nueva máquina MTs tomara como entrada una maquina dada MTo.

13
- MTs ejecutara la máquina MTh y le dará como entrada la máquina MTo Por hipótesis,
MTh terminará en algún momento y responderá ‘SÍ’ o ‘NO’ (según MTo termine o no).
- S i MTh dice ‘SÍ’, entonces MTs entra en un ciclo infinito y no termina.
- S i MT h dice ‘NO’, entonces MTs se detiene inmediatamente (la salida no importa).

La nueva maquina MTs

Si MTo termina --> MTs no termina

Si MTo no termina --> MTs termina

¿Qué sucede si MT ¿Qué sucede si MTs ses la entrada de sí misma?

 Existe cierta entrada para la cual MTs produce una contradicción.


 La máquina de entrada que causa esta contradicción es la propia MTs (MTo = MTs ).

 Para ver por qué la entrada MTscausa una contradicción, supongamos dos casos:
1. Que MTs termina cuando es entrada de sí misma.
2. Que MTs no termina cuando es entrada de sí misma.

Caso 1

MTs termina cuando es entrada de sí misma

1. MTs es dada como su propia entrada (una copia).

14
2. MTh recibe como entrada a MTs.

3. Por hipótesis, MTh responderá ‘SÍ’ ya que supusimos que MTs termina.

4. Una vez que MTh responde ‘SÍ’, comienza un ciclo infinito.

 Esto implica que la suposición de que MTs termina al aplicarse a sí misma, implica
que MTs no termina

15
Caso 2

MTs no termina cuando es la entrada de si misma.

1. MTs es dada como su propia entrada (una copia).

2. MTh recibe como entrada a MTs.

3. Por hipótesis, MTh responderá ‘NO’ ya que supusimos que MTs no termina.

16
4. Una vez que MTh responde ‘NO’, MTs termina.

 Esto implica que la suposición de que MTs no termina al aplicarse a sí misma implica
que MTs termina

¿Qué pasaría si el problema de detención se pudiera resolver?

Si el problema de detención se pudiera resolver, se podrían decidir muchos otros problemas:

 La conjetura de Goldbach podría decidirse. Es fácil construir una máquina de Turing que
pruebe cada número natural par mayor a 2 en si es la suma de dos primos o no; si
encuentra algún contraejemplo, se detiene inmediatamente e informa que se ha
encontrado un contraejemplo; de lo contrario, se ejecutará para siempre. Si el problema
de Detener fuese decidible, podríamos decidir si este programa se detendría o no, y así
dar una respuesta a la conjetura de Goldbach.
 La complejidad de Kolmogorov sería computable.

17
 La función Busy Beaver también sería computable.

Es útil conocer los tipos de problemas que son indecidibles porque nos ayuda a comprender
las limitaciones de nuestros modelos de computación

CONCLUSIONES

 En Teoría de la Computación se estudia este problema desde los años 30, al que se
denomina “el problema de la parada” o “el problema de la detención”, y es considerado
como el problema irresoluble más conocido.
 El Problema de la Parada de los Programas ha sido usado como argumento para
intentar diferenciar las capacidades de las personas de las de los programas.
 Alan Turing demostró en su famoso teorema de indecibilidad que no es posible escribir
un programa de ordenador que nos diga si otro programa cualquiera se queda o no
se queda colgado.
 Saber que un problema es indecidible, permite darse cuenta que el problema debe
ser simplificado o alterado para encontrar una solución computacional.
 Ya que MTs fue construido legalmente, la única parte que puede ser responsable de
la contradicción es la máquina hipotética MTh.
 La conclusión final es que una máquina de Turing MTh que resuelva el problema del
paro no existe.

18