SlideShare una empresa de Scribd logo
SEP             SEST                 DGEST




  INSTITUTO TECNOLÓGICO DE TOLUCA



INGENIERÍA EN SISTEMAS COMPUTACIONALES


              TEORIA DE LA COMPUTACIÓN



                Resumen unidad V y VI



                     PROFESORA:

              Pulido Alba Rocío Elizabeth



                   REALIZADO POR:

             SALAZAR TORRES KARLA POLET

              GARCIA VICENCIO OSVALDO

              GARCIA CARBAJAL JULIO CESAR




                            Toluca Mex. 14 de Noviembre de 2011


                                                              1
INDICE



Introducción.......................................................................................................................03
                                                                                                                              03
Planteamiento.............................................................................................................. 04
                                                                                                                            ....04

Delimitacion.......................................................................................................................04
                                                                                                                              04
Justificación………………………………………………..………………………………….….05
                                               05
Objetivos............................................................................................................................05
                                                                                                                                05
                                                         DECIBILIDAD

Lenguajes decidibles ……………………………………… ..…………………………….…….06
                                                    06
El Problema de Halting…………………………………………………………………………..09
                                                 09
Decibilidad de teorías lógicas…………………………………………………………………...12
                                                      12
                                                      REDUCIBILIDAD

Problemas insolubles para la teoría de lenguajes………………………………………….. ..13
                                                                13
Un problema simple insoluble…………………………………………………………………..14
                                                    14
Funciones Computables……………………………………………………………………..15 15
                                                 …..

Reducibilidad de Turing………………………………………………………………………….16
                                                  16
Conclusiones………………………… ……………………………………………………... ……19
                                               19
Bibliografía……………………………………………………………………………… …………20
                                             20




                                                                                                                                        2
INTRODUCCIÓN



El desarrollo de la teoría de la computabilidad ha sido íntimamente ligado al desarrollo de la
lógica matemática.

Esto ha sido así porque la decibilidad de los distintos sistemas lógicos es una cuestión
fundamental.

Podemos empezar a desarrollar el tema de decibilidad con la identificación de problemas
que son computables lo cual tiene un gran interés pues indica el alcance y los límites de la
computabilidad y así se puede demostrar los límites teóricos de los ordenadores. Esto
nos lleva a los problemas de halting el cual nos plantea la interrogante si podemos
construir una solución que nos diga si un algoritmo finaliza alguna vez o no.

También hablaremos de la decibilidad de las teorías lógicas la cual se rige por axiomas
dados a partir de un conjunto de enunciados que no son más que las reglas de inferencia
con un esquema de derivación, va íntimamente ligada al desarrollo de la lógica
matemática esto a sido así porque la decibilidad de los distintitos sistemas lógicos es una
cuestión fundamentalmente matemática.


En el tema de reducibilidad trataremos de aquellos problemas que pueden ser reducidos a
casos particulares y que pueden ser resueltos en tiempos polinomios.




                                                                                            3
PLANTEAMIENTO DEL PROBLEMA



Investigar y Comprender la teoría de la decibilidad aplicada a lenguajes.
Enfocado a temas específicos como los lenguajes decibles, los problemas de halting y la
decibilidad de teorías lógicas.
También es aplicar la teoría de la reducibilidad e indagar en los problemas insolubles de
la teoría de lenguajes, las funciones computables y la reducibilidad de turing.




                                     DELIMITACIÓN

La investigación está delimitada y guiada por los temas generales que son Decibilidad y
Reducibilidad y temas específicos los cuales son:
     Lenguajes decibles
     Los problemas de halting
     Decibilidad de teorías lógicas
     Problemas insolubles para la teoría de lenguajes
     Un problema simple insoluble
     Reducibilidad de Turing
Estos a su vez conforman las unidades 5 y 6 del temario de la materia de la teoría de la
computación.




                                                                                            4
JUSTIFICACIÓN

El presente trabajo está motivado por la comprensión del concepto de decibilidad y
reducibilidad, enfocándonos en temas específicos entre ellos pueden ser lo problemas de
halting, la decibilidad de teorías lógicas, reducibilidad de turing.

También es la búsqueda de las herramientas teóricas para la resolución de problemas
que la solución sea un ejemplo de decibilidad y reducibilidad.




                                     OBJETIVOS

Objetivos Generales
          Comprender la teoría de Decibilidad
          Comprender la teoría de Reducibilidad
          Aplicar la teoría de Reducibilidad

 Objetivos Específicos
            Comprender los Lenguajes Decidibles.
            Comprender los problemas de Halting.
            Comprender la Decidibilidad de Teorías Lógicas.
            Comprender un problema simple insoluble.
            Comprender las funciones computables.
            Comprender la Reducibilidad de Turing




                                                                                      5
DECIBILIDAD

Un problema de decisión es decidible por una máquina de Turing sı y sólo si la máquina
responde correctamente cada una de las respuestas a las preguntas asociadas al problema.
Por otro lado se han considera do formas de simplificar la construcción de máquinas de
Turing mediante la introducción de la modularidad, esto quiere decir, considerado algunas
maquinas elementales a partir de las cuales podremos construir otras con
mayor eficiencia. Primero es necesario crear un planteamiento que nos permita determinar
de manera eficiente si un problema puede ser tratado como un caso de decisión, o solamente
es un problema intratable, recordemos que la diferencia entre ambos radica en que el problema
de decisión tenemos casos en los que no existen algoritmos que nos permitan resolver el
problema, mientras que el segundo, presenta algoritmos muy extensos que ocupan todos los
recursos de una computadora, o que requieren de mucho tiempo para su solución por
Ejemplo

¿ Hay enteros tales que satisfagan la ecuación 3x + 6y = 151? R= no es un
problema de decisión.

¿ Hay enteros x, y tales que se cumple la ecuación ax + by = c? si es un
problema de decisión (aquí es importante mencionar que para cada valor de a, b y c tenemos
un problema distinto.


Lenguajes Decidibles

Un lenguaje decidible es aquel lenguaje L para el cual existe una máquina de Turing que le
puede aceptar cualquier cadena ω ∈ L. Hay lenguajes formados por cadenas tales que una
máquina 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 máquina de Turing se llaman recursivos numerables. Las gramáticas sin restricciones
son las que generan los lenguajes recursivos numerables y 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 el hecho de que las máquinas de Turing
generalizan a los autómatas de pila y estos a su vez a los autómatas finitos.
Un problema puede ser descripto con un Lenguaje y la solución algorítmica a dicho
problema se describe con un lenguaje recursivo.
Problemas de decisión (Si/No)
-Decidibles: Existe un algoritmo que da respuesta para todas las instancias.
(Se describen con lenguajes Recursivos)
-Indecidibles: Existe un procedimiento que da respuesta a algunas instancias.
(Se describen con lenguajes recursivo-enumerables)

Teoremas
Teorema1.-Si L es un lenguaje regular, entonces L es también un lenguaje recursivo.
Teorema2.- Si L es un lenguaje independiente del contexto, entonces L es también un
lenguaje recursivo.
Teorema3.- Si L1 y L2 son lenguajes recursivos, entonces L1  L2 también lo es.
                                                                                            6
Lema1.- Si L es un lenguaje recursivo, entonces * L es un lenguaje recursivo
Teorema4.-Hay un lenguaje recursivamente enumerable L para el cual *            L no es
recursivamente enumerable.
Teorema5.- Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1  L2 es
también recursivamente enumerable.
Teorema6.- Si L es un lenguaje recursivamente enumerable para el cual * L también
es recursivamente enumerable, entonces L es un lenguaje recursivo.
Teorema7.- Un lenguaje L es recursivamente enumerable si y solo si L es enumerado por
alguna máquina de Turing.
Teorema8.-Si G es una gramática no restringida, entonces L(G) es un lenguaje
recursivamente enumerable.
Teorema9.- Si L = L(M) es un lenguaje recursivamente enumerable y G se construye de la
forma descrita, entonces L = L(G).
Teorema10.- Un lenguaje L es recursivamente enumerable si y solo si L = L(G) para
alguna gramática G, no restringida
Teorema11.- Si L es un lenguaje sensible al contexto, entonces L es recursivo.
Lema2.-Hay lenguajes recursivos que no son lenguajes sensibles al contexto
Teorema12.-Los lenguajes sensibles al contexto contienen, propiamente, a los lenguajes
independientes del contexto. A su vez, los lenguajes recursivos contienen, propiamente, a
los lenguajes sensibles al contexto.
Teorema 13.- Sobre un alfabeto dado, el conjunto de los lenguajes recursivamente
enumerable contienen propiamente a los lenguajes recursivos que contienen propiamente
al conjunto de los lenguajes sensibles al contexto que contienen propiamente al conjunto
de los lenguajes independientes del contexto. Que a su vez, contienen propiamente los
lenguajes regulares.
Lregular  Li.c.  Ls.c.  Lrecursivo  Lr.e
Teorema14.- El lenguaje universal Lu no es recursivo.
Teorema15- Dadas una gramática G y una palabra w, es posible decidir si w ∈ L(G)
cuando las reglas de G cumplen la propiedad: "Para toda regla A → α, |α| > 1, o bien α
ϵ ∑, es decir el lado derecho tiene varios símbolos o si tiene exactamente un símbolo,
éste es terminal.".

Si dado conjunto de entradas bajo las cuales una máquina de Turing logra un estado de parada
para cada entrada, la máquina corresponde a la implementación de un algoritmo.
Un algoritmo es una implementación de una máquina de Turing tal que el conjunto de sus
entradas es el lenguaje decidible.
Gráficamente el algoritmo se ve de la siguiente manera




                                                                                           7
Los lenguajes que tienen asociados algoritmos son finitos, mientras que aquellos a los
cuales no les podemos asignar un algoritmo son infinitos (en términos de la cantidad de
problemas).

La clase de los lenguajes recursivos es cerrada bajo P. Para ello proporcionamos el siguiente
esquema de una máquina de Turing que para ante cualquier entrada y acepta las cadenas de
P(L) siempre que L sea recursivo




                                   Y                       acepta
                       Pref               L
           X
                           Rechaza/siguient
                                                         Rechaza

                          Fin prefijo




Ejemplos

1.-Sean los conjuntos de naturales A y B tales que A es decidible y B es r.e. pero no
decidible. Es la siguiente afirmación verdadera o falsa? Justifique.

Afirmación: B-A necesariamente es r.e.

Respuesta:
Verdadero. Observar que B-A = BAc . Como A es un conjunto decidible, su
complemento también lo es (teorema 2) y por lo tanto también es r.e.
Como los conjuntos r.e. son cerrados bajo la intersección, BAc es r.e.

2.- Utilizando los teoremas y utilizando los conjuntos del ejercicio anterior justifique porque
la afirmación siguiente es falsa:
Afirmación: B-A necesariamente no es decidible.

Respuesta:
Consideremos al conjunto K y al conjunto N. K-N es el conjunto vacío, que es
decidible.
3.- Sea P una operación sobre lenguajes definida como P(L) = {x ∈ Σ∗ | Pr(x)∩L= ∅}. ¿Es la
clase de los lenguajes recursivos cerrada bajo P ? (Nota: Pr(x) denota el conjunto de prefijos
de la cadena x)

Respuesta:
Podemos expresar P(L) = LΣ∗. Dado que Σ∗ es un lenguaje regular, entonces es recursivo y
también recursivamente enumerable. Por lo tanto, en el caso de ambas familias de
lenguajes la operación P es de cierre.



                                                                                              8
El problema de Halting

El problema de Halting o también conocido como el problema de la parada es equivalente a
construir un programa que decida si un algoritmo finaliza alguna vez o no. Respecto a este
problema Turing probó que no es posible construir una máquina de Turing que decida si otra
máquina de Turing aceptara alguna cadena durante su procesamiento, debido a que mientras la
máquina de turing trabaja, las cadenas almacenadas en la cinta, son pasos intermedios que no
tiene nada que ver con el resultado final.
El problema se desarrolla suponiendo que dada una máquina de turing MT1 existe una
cadena de símbolos ω1, que nos informa si otra máquina de turing M2 con programa P2 y
datos iniciales D2 se detendrá proporcionando una salida ω1 = P1 [P2,D2]. Suponga que
aplicamos el programa P1, que determina el comportamiento de MT1, que determina el
comportamiento sobre el mismo programa, pero tomando como datos los propios P1 [P1,D1],
entonces para que MT1 pueda informar si MT2, para o no debe existir un programa P1 que
para cuando un programa anterior P1 (recuerde que se está trabajando sobre MT1) que pare
cuando un segundo programa P1 introducido como dato anterior no para. Aquí el programa se
está ejecutando sobre sı mismo, lo cual no es posible.

Teorema.- No existe ninguna MT tal que, para cualquier palabra w y cualquier MT M,
decida si w ∈ L(M).


                                                              M para con w
                                                          1

        D(M)
         W
                                                          0   M no para con w
                     Fig1: Problema de parada de una MT

En la figura 1 se muestra como debería funcionar la máquina de turing que
resolvería el problema de la parada


                                                              M para con w
                                                          1

        D(M)
         W
                                                          0   M no para con w

                            (a)Maquina A




                                                                                          9
Copia                                  d(M)
                                    B
                                                        cicla    M para con w
                                           ˈ
                       d(M)d(M)           A

                                                          0      M no para con w

                             (b)Maquina B



                         Copia                                  d(B)

                                    B
                                                        cicla    B para con d(B)
  (c)Contradicción
                                           ˈ
                       d(B)d(B)           A

                                                          0      B no para con d(B)
                      Figura 2: prueba del paro de MT



Prueba por contradicción.- Sea A la MT de la figura 2(a). Entonces construimos
otra MT B, como se representa en la figura 2(b), esto es, se tiene una única entrada con la
codificación d(M) de la MT M, y se pasa esta palabra a una MT copiadora, que duplica la
entrada d(M). La salida de la copiadora será dos veces d(M). Esto es pasado como entrada a
una máquina A′ que es A modificada de la siguiente manera: a la salida 1 de A la
cambiamos de forma que en vez de dar el halt se cicle; debe quedar claro que esto siempre
puede hacerse. Ahora bien, comparando A con A′ se ve que la salida 1 corresponde al hecho de
que M para con d(M).
Finalmente supongamos que aplicamos la máquina B a una entrada formada por la misma
máquina codificada, esto es, d(B). Entonces cuando B se cicla, esto corresponde a la salida que
indica que "B se para con d(B)", lo cual es contradictorio. Similarmente, B entrega un
resultado 0 -esto es, se para- en el caso que corresponde a "B no se para con d(B)", que
también es contradictorio. Esto se ilustra en la figura 2(c).

Ejemplos
1.- Supóngase que fuera posible predecir la parada de un proceso; es decir, que se
dispone de una función llamada Halts, tal que

int Halts(char *P, char *I){
 /* Pre: P e I son cadenas de caracteres, siendo P */
/* el código fuente de un programa e I los datos */
  /* (1) Se determina si P es un programa correcto */
  /* Sintácticamente (compilación)*/
  /* (2) Se determina si P finaliza su ejecución */
  /* Cuando lee la cadena de entrada I */
return halt;
}
/* Devuelve 1 si P para con I, 0 en caso contrario */

                                                                                            10
Sabiendo esto, se escribe el programa siguiente:

int main() {
 char I[100000000];
/* Hacer I tan grande como se quiera, o usar malloc */
read a C program into(I);
if (Halts(I,I)) { while(1){} /* bucle infinito */
}else
return 1;
}

Este programa se almacena en el fichero Diagonal.c. y se ejecuta:

a) ¿Cuáles son los casos posibles de solución?
b) ¿Existe la función halt?

Respuesta
   a) Caso 1: Halts(I,I) devuelve 1.
   Según la definición de Halts, esto significa que él programa finaliza su ejecución
   cuando recibe como entrada Diagonal.c. Pero, según la definición de Diagonal.c, que
   Halts(I,I) devuelva 1, significa que en el condicional se ejecutara la rama “if”, que
   contiene el bucle infinito; es decir, la ejecución de Diagonal.c no finaliza NUNCA.
   Se llega a una contradicción.

   Caso 2: Halts(I,I) devuelve 0.
   Según la definición de Halts, esto significa que Diagonal.c NUNCA finaliza su
   ejecución cuando recibe como entrada Diagonal.c. PERO, según la definición de
   Diagonal.c, que Halts(I,I) devuelva 0, significa que en el condicional se ejecutara la
   rama “else”, por lo que finaliza la ejecución de Diagonal.c.
   Se llega, de nuevo, a una contradicción.

   b) Puesto que no hay más casos posibles la suposición inicial debe ser falsa: no es
      posible que exista la función Halts.

2.- dada una máquina de Turing M, ¿es cierto que M se detiene con entrada C(M)?
Problema de decisión:
H = {w ϵ {0, 1}* | existe una MT M tal que w = C(M) y M se detiene con entrada C(M)}.
Demostrar que no es decidible

Respuesta:
Asumimos que existe una MT M* que se detiene en todas las entradas y tal que H = L(M*).
Para cada MT M, si M se detiene con su propio código entonces M* con entrada C(M) se
detiene en un estado final. En caso contrario, M* se detiene en un estado que no es final.
Sea M0 una MT que con entrada w funciona de la siguiente forma:

                    Hace funcionar la maquina M* con entrada C(M0)
                           si M* se detiene en un estado final
                               entonces M0 no se detiene
                    en caso contrario M0 se detiene en un estado final


                                                                                        11
Probamos si M* acepta M0

                                       M* acepta M0
                                         si y solo si
                              M0 se detiene con entrada C(M0)
                                         si y solo si
                   M* se detiene en un estado no final con entrada C(M0)
                                         si y solo si
                                      M* no acepta M0

En esta última línea existe una contradicción por lo que el lenguaje es indecible


Decibilidad de teorías lógicas

Una teoría lógica TL se define a partir de un conjunto de enunciados dados llamados axiomas,
unas        reglas     de        inferencia      y      un      esquema        de      derivación.
A partir de los axiomas y aplicando la regla de inferencia y el esquema de derivación se
infieren los teoremas de la teoría. El conjunto de teoremas de la teoría forma un lenguaje formal.
Si es posible definir una máquina de Turing tal que reconozca al lenguaje de los teoremas,
este lenguaje es decidible y la teoría también lo es 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 decidibles, 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.

Ejemplos
1.-Muestre     que     la    colección      de      lenguajes     decidibles    por     máquina
de Turing para un alfabeto cualquiera es infinita, pero contable.

Respuesta
El conjunto de lenguajes independientes de contexto es infinito.
Los conjuntos de los lenguajes independientes de contexto, lenguajes decidibles por Turing,
lenguajes estructurados por frases son contables.
La colección de lenguajes decidibles es contable por ser un subconjunto de los lenguajes
estructurados por frases (que son contables). Es infinita porque contiene a los lenguajes
independientes de contexto, que son infinitos. Los lenguajes decidibles en tiempo polinomico
son aquellos lenguajes para los que una máquina de Turing puede determinar si una cadena
pertenece al lenguaje. Implica reconocer el complemento del lenguaje.

2.-Cite dos ejemplos de decibilidad de teorías lógicas

Respuesta
El cálculo de predicados no es decidible
La teoría de los números reales es decidible.

                                                                                               12
REDUCIBILIDAD

Problemas insolubles para la teoría de lenguajes

La teoría de la reducibilidad trata de aquellos problemas que pueden ser reducidos a
casos particulares y que pueden ser resueltos en tiempos polinomios.

Existe una línea divisoria fundamental entre los problemas que se pueden resolver en
tiempo polinomio y los que requieren de un tiempo exponencial o mayor. Los problemas
prácticos que requieren de un tiempo polinomio son casi siempre resolubles en un tiempo
tolerable, mientras que los que requieren de un tiempo exponencial, en general no se
pueden resolver, excepto en casos sencillos.

Un problema A es reducible a otro B si un método para resolver B proporciona un método
para resolver A. Cada problema puede representarse a través de una codificación como
un conjunto de números. Así, es posible estudiar la reducibilidad como una relación entre
conjuntos de números, bajo el siguiente principio, Un conjunto A es reducible al conjunto
B si un método para decidir si algo pertenece a B, proporciona un método para decidir que
algo pertenece al conjunto A.

Esta definición está fundamentada en una conjetura llamada N ≠ NP , que permite
suponer que la clase de los problemas que se pueden resolver en tiempo polinomio
mediante máquinas de Turing no determinística, contienen al menos algunos problemas
que no se pueden resolver en tiempo polinomio usando máquinas de Turing
determinística, aunque estas ocupen un tiempo polinomio de grado más alto.

Se dice que el par (A, B) es reducible al par (M, N) vía f, si f es una función recursiva
Verificando


                              XϵA        f(x) ϵ M
                              XεB        f(x) ϵ N
Esta condición equivale a que A = f -1(M) y B = f -1(N). Obsérvese que esta condición
significa que f aplica A en M, B en M y A U B en M U N
Obsérvese también que si (A, B) es reducible al par (M, N) vía f, entonces también
( A , B ) es reducible a ( M , N ) vía f




                                                                                            13
Un problema simple insoluble

Ejemplo

1.- Una partícula se mueve en el espacio de manera aleatoria, si en el instante de tiempo t se
encuentra en la posición x, ¿Cuál será la posición exacta de dicha partícula 10 segundos después?

Objeto desconocido. Una posición
Objetos conocidos. Posición en el instante de tiempo t.
Condiciones. La partícula se mueve en el espacio de manera aleatoria
Tipo de problema. Insoluble. Debido a que no existe forma de predecir la posición de la partícula,
pues se mueve de manera aleatoria

2.-De las siguiente imágenes, cual es la más llamativa?




nuestro autómata no puede saber cuál es la imagen más llamativa ya que para cada usuario la
respuesta puede variar convirtiendo en este problema insoluble.

3.-Algoritmo de Kruskal

Considere el problema de encontrar un árbol de peso mínimo asociado a un grafo AP
MAG, a continuación se presenta un ejemplo de un grafo, en el cual los nodos están
numerados del 1 al 4 y hay arcos entre pares de nodos, y cada uno tiene un peso en
entero, un árbol que abarca el grafo es un subconjunto de los arcos tal que todos los
nodos quedan conectados entre s mediante estos arcos pero no se forma ningún ciclo.

El árbol para el nodo 3 está compuesto por todas las aristas que parten de el.
El árbol de peso mínimo es el que tiene la menor suma total de pesos de los arcos entre
todos los que abarcan el grafo. Existe un algoritmo llamado algoritmo de Kruskal para
encontrar un AP MAG que consiste en los siguientes pasos:

1. Para cada nodo anotar la componente conexa en la que aparece, usando los arcos del
árbol seleccionados hasta el momento. Inicialmente no se ha seleccionado ningún arco,
por lo que cada nodo formara por si solo una componente conexa.

2. Se elige el arco de menor peso que aún no se halla examinado, y se rompen las
ligaduras como se desee. Si este arco conecta dos nodos situados actualmente en
componentes conexas distintas:

a) Se selecciona este arco, para el árbol que abarca el grafo.
b) Se unen las dos componentes conexas, cambiando el número de componente
asociado a todos los nodos de una de las componentes, para que sea el mismo que el
numero de componente de la otra.

                                                                                                14
3. Se eligen arcos hasta que todos los nodos hayan sido examinados, o hasta que el
número de arcos seleccionados para el árbol que abarca el grafo sea igual al número de
nodos menos uno. en este caso todos los nodos deben estar en una solo componente
conexa, y es posible olvidarse de todos los arcos restantes.

Para aplicar este algoritmo a las máquinas de Turing hay que resolver algunas
cuestiones:

Cuando tratamos con máquinas de Turing, los problemas se valen como lenguajes y su
único resultado es si o no, es decir aceptado o rechazado, para nuestro problema
podríamos redactarlo Dado el grafo G y el limite W, >Existe en G un árbol que lo abarque
con peso menor o igual a W?.
Este algoritmo puede ser implementado en una máquina de Turing con varias cintas en un
tiempo O(n2) utilizando las cintas de la siguiente forma:
1. Una cinta puede utilizarse para guardar los nodos y su número de componente en cada
momento. La longitud de esta tabla es O(n)
2. A medida que se analizan los arcos sobre la cinta de entrada, se puede usar otra cinta
para encontrar el peso menor encontrado hasta el momento entre todos los arcos que no
han sido marcados como usados, se puede usar una segunda pista de la cinta de entrada
para marcar los arcos que fueron seleccionados por su peso mínimo, en las pasadas
anteriores del algoritmo. La búsqueda del arco no marcado lleva un tiempo O(n).
3. Los dos nodos que unen al arco seleccionado se pueden almacenar en otra cinta, para
después buscar las componentes de esos nodos en un tiempo O(n)
4. Se puede usar otra cinta para guardar las dos componentes i y j, que se unirán cuando
se encuentre un arco que conecta dos componentes previamente no conectadas.
Después se buscara en la tabla de nodos y componentes, para cambiar a la componente
de todos los nodos que estaban en la componente i, esta búsqueda lleva un tiempo O(n).

Funciones computables

Las funciones computables son el objeto básico de estudio de la teoría de la
computabilidad y consisten en las funciones que pueden ser calculadas por una máquina
de Turing.

Las funciones computables son una formalización de la noción intuitiva de algoritmo y
según la Tesis de Church-Turing son exactamente las funciones que pueden ser
calculadas con una máquina de cálculo. La noción de la computabilidad de una función
puede ser relativizada a un conjunto arbitrario de números naturales A, o
equivalentemente a una función arbitraria f de los naturales a los naturales, por medio de
máquinas de Turing extendidas con un oráculo por A o f. Tales funciones puede ser
llamados A-computable of-computable respectivamente. Por ejemplo suponiendo que
quieres hacer un nuevo platillo. Esto podría ser fácil si se tuviera una receta. Así tú
puedes reducir el problema encontrando los ingredientes correctos, al problema de
obtener la receta exacta.
Las funciones computables son las que se calculan por programas-while

Ejercicios

1.-Demuestre que:
La suma f1 + f2; ::: + fn es una función computable.



                                                                                       15
Respuesta
Caso Base: n = 1 Por hipótesis, f1 es computable.
Paso de inducción: n n + 1
Sea h = f1 + f2; ::: + fn, que, por hipótesis de inducción es computable. Entonces:
f1 + f2; ::: + fn + fn+1 = h + fn+1 = C(+; h; fn+1) que es computable.
Para cualquier n ¸ 1, la suma de n funciones computables de igual aridad es también
computable.

2.- Dada una función f : N- N se define
Vf (x) = |{y ε N : y < x ^ f(y) = 0}|
Supongamos que f es total y GOTO{computable. Diseñar un programa GOTO que calcule
Vf , utilizando f como única macro.


Respuesta

     IF X = 0 GOTO A
    GOTO E
[A] Z2               f(Z)
    IF Z2 ≠ 0 GOTO B
    Y          Y+1
[B] X          X-1
     Z         Z+1
   IF X = 0 GOTO A

3.- Diseñar un programa GOTO que al recibir un dato de entrada n devuelva el elemento
n-esimo
De la sucesión:
0; 1; 2; 2; 3; 4; 4; 5; 6; 6; 7;

Respuesta

[A] IF X = 0 GOTO B
   GOTO E
[B] X          X -1
    Y         Y+1
    IF X ≠ 0 GOTO C
    GOTO E
[C] X          X-1
     X          X-1
     Y          Y+1
    Z           Z+1
  GOTO A




Reducibilidad de Turing

El concepto de “reducibilidad", en el cual se ha reducido el lenguaje l1 a l2 encontrando un
algoritmo que mapeaba cadenas en l1 en cadenas de l2 y cadenas que no estaban en l1
en cadenas que no estaban en l2. Este concepto de reducibilidad es a menudo llamado



                                                                                         16
reducibilidad muchos a uno, una técnica más general, se conoce como Reducibilidad de
turing, y sencillamente consiste en mostrar que l1 es recursivo en l2.
Si L1 es reducible muchos a uno en L2, entonces seguramente L1 es Turing reducible en
L2. Como prueba de esto, supóngase que f es una función calculable
por una MT que siempre para, tal que f(x) está en L2 si y sólo si x está en L1.
Entonces considérese el oráculo ML2 que, dada la entrada x, calcula f(x) y luego, entra en
el estado q? con f(x) a la derecha de su cabeza. La máquina ML2 acepta si y sólo si esta
entra en qs. Seguramente, L (ML2) = L1, L1 es Turing-reducible en L2. El recíproco es
falso.
Si L1 es Turing-reducible en L2, y L1 es indecidible, entonces L2 también lo es. Si L2
fuese recursivo, entonces el oráculo ML2 tal que L(ML2 ) = L1 puede simularse con una
MT ordinaria que siempre para. Así, se podría usar una reducción de Turing para mostrar
que L2 es indecidible, dado que L1 resultaba Indecidible, incluso en circunstancias donde
una reducción muchos a uno no existiera o fuese difícil de encontrar.

Ejercicios

1: = {0, 1}
L1 = {w * / cant1(w) es par}
L2 = {w * / cant1(w) es impar}
Donde cant1(w) es la cantidad de 1 que hay en w
Demostrar que L1 L2.



Se construye Mf, una MT que computa la función de reducibilidad.
Mf = <{q0, q1}, {a, b}{a, b, B}, q0, >




Demostrar que Mf siempre se detiene y que w L1 Mf(w) L2
Respuesta
1) Mf siempre se detiene: claramente sí, pues solamente ejecuta un movimiento
2) w L1 Mf(w) L2
Claramente si w comienza con 1 entonces cant1(Mf(w)) = cant1(w) – 1, y si w no comienza
con 1 cant1(Mf(w)) = cant1(w) + 1. Por lo tanto
a) Si w L1 cant1(w) es par cant1(Mf(w)) es impar Mf(w) L2
b) Si w L1 cant1(w) es impar cant1(Mf(w)) es par Mf(w) L2
De a) y b) se tiene que w L1Mf(w) L2.



                                                                                          17
2.- L*= {<M> / L(M) = *} no es recursivo.
Mostrar que existe una reducción Lu a LS*

Respuesta
Encontrar una función total computable tal que
(<M>,w)Lu f (<M>,w) L*
Sea Mf la máquina de Turing que computa la función f (<M>,w) = <M'> y trabaja de la
siguiente manera:
Mf construye <M'> escribiendo las quíntuplas necesarias para que M' borre la entrada y escriba
w en la cinta, posicione el cabezal y simule M sobre w. Así M' para en q AM acepta w
        1) f((<M>,w)) es computable? Claramente sí, pues Mf para, luego de realizar una
        cantidad finita de acciones
        2) (<M>,w)Lu <M’> L* ?

a) Sea (<M>,w)Lu M para en qA con input w         M' para en qA con cualquier input
M'> L*
b) Sea (<M>,w) Lu

                i. <M> no es un código válido de máquina de Turing M'> no es un código
                válido M'> L*
                ii. M rechaza w M' rechaza todo input    M'> L*

           De a) y b) se tiene que (<M>,w)Lu <M’> L*
       De 1) y 2) se tiene que Lu L*
Por lo tanto L* a R (porque Lu a R)




                                                                                           18
CONCLUSIONES


   La investigación no permitió observar los problemas que en su sencillez no son
    computables por factores humanos y lógicos
   La decibilidad de un lenguaje esta íntimamente relacionada con las maquinas de turing por
    que al aceptar todas las cadenas se dice que el lenguajes es decible
   El problemas de halting es la incertidumbre del desconocimiento del final de una maquina
    de Turín por otra externar ya que la información el la banda no tiene que relación que nos
    ayude a concluir el final
   Que la decibilidad de una Teoría lógica se puede definir a partir de axiomas que estos a su
    vez son reglas de inferencia
   Que una comprensión de la reducibilidad puede ser el transformar un problema A a uno B
    buscando simplificar el contenida del problema A
   Que las funciones computables son la formalización de un algoritmo
   El algoritmo de reducibilidad de turing esta basado en el mapeo de un problema A para así
    transfórmalo en B siendo A recursivo en B




                                                                                            19
BIBLIOGRAFÍA




Deán Kelly Teoría De Autómatas Lenguajes Formales. Editorial: Prentice Hall 1995

Elisa Viso Gurovich. Teoría de la computación. Facultad de ciencias UNAM. 2012

Ramón Brena. Autómatas y Lenguajes, Un enfoque de diseño. Tecnológico de monterrey
verano 2003

Jorge Eduardo Carrión Miramontes. Teoría de la computación. Editorial:Lumisa 2009

Denning, Dennis, Qualitz, Machines, languages y computacion. Editorial Prentice Hall
1978.

John E. Hopcroft y Jerey D. Ullman, Introducción a la teoría de autómatas, lenguajes y
computacion.Editorial CECSA 1979.




                                                                                    20

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Computacion 3
Computacion 3Computacion 3
Computacion 3
 
Types of Operating System
Types of Operating SystemTypes of Operating System
Types of Operating System
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1
 
Que es Administración de centros de información
Que es Administración de centros de informaciónQue es Administración de centros de información
Que es Administración de centros de información
 
Power Point de introducción a la Informática.
Power Point de introducción a la Informática.Power Point de introducción a la Informática.
Power Point de introducción a la Informática.
 
Arquitectura Computacional
Arquitectura ComputacionalArquitectura Computacional
Arquitectura Computacional
 
Tipos de sistemas de computo
Tipos de sistemas de computoTipos de sistemas de computo
Tipos de sistemas de computo
 
Didactica en el Uso de Recursos Informaticos
Didactica en el Uso de Recursos InformaticosDidactica en el Uso de Recursos Informaticos
Didactica en el Uso de Recursos Informaticos
 
Sistema computacional
Sistema computacionalSistema computacional
Sistema computacional
 
Fundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la ProgramaciónFundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la Programación
 
Qué es una cuenta de usuario
Qué es una cuenta de usuarioQué es una cuenta de usuario
Qué es una cuenta de usuario
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Introducción a la Informática
Introducción a la InformáticaIntroducción a la Informática
Introducción a la Informática
 
Evolution of programinglang
Evolution of programinglangEvolution of programinglang
Evolution of programinglang
 
Unidad de Control
Unidad de ControlUnidad de Control
Unidad de Control
 
Estructura y funcionamiento de una computadora
Estructura y funcionamiento de una computadoraEstructura y funcionamiento de una computadora
Estructura y funcionamiento de una computadora
 
Taller de Sistemas Operativos
Taller de Sistemas Operativos Taller de Sistemas Operativos
Taller de Sistemas Operativos
 
Win utilities
Win utilitiesWin utilities
Win utilities
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Directrices del Diseño de Interfaces de Computadora
Directrices del Diseño de Interfaces de ComputadoraDirectrices del Diseño de Interfaces de Computadora
Directrices del Diseño de Interfaces de Computadora
 

Destacado

La adquisicion del lenguaje
La adquisicion del lenguajeLa adquisicion del lenguaje
La adquisicion del lenguaje
E. N. S. D. B.
 
Trabajo practico de tics y ntics
Trabajo practico de tics y nticsTrabajo practico de tics y ntics
Trabajo practico de tics y ntics
FlorenciaFCG
 
Manejo de la información ii
Manejo de la información iiManejo de la información ii
Manejo de la información ii
Veronica Ez
 
Presentación postergestiongoogleubu nov2012
Presentación postergestiongoogleubu nov2012Presentación postergestiongoogleubu nov2012
Presentación postergestiongoogleubu nov2012
Ruben GP
 
Esteban sanchez inteligancia artificial..!!
Esteban sanchez inteligancia artificial..!!Esteban sanchez inteligancia artificial..!!
Esteban sanchez inteligancia artificial..!!
estebansanchez404
 
Elsreiscatolics 101211134427-phpapp01
Elsreiscatolics 101211134427-phpapp01Elsreiscatolics 101211134427-phpapp01
Elsreiscatolics 101211134427-phpapp01
amanecerlove
 
Florencia García - Arequito ahorra energía
Florencia García - Arequito ahorra energía Florencia García - Arequito ahorra energía
Florencia García - Arequito ahorra energía
FlorenciaFCG
 
Categorias de los sistemas operativos
Categorias de los sistemas operativosCategorias de los sistemas operativos
Categorias de los sistemas operativos
oscarvati
 
Biomasa
BiomasaBiomasa
Biomasa
Jw Gl
 
Crusigramasena
CrusigramasenaCrusigramasena
Crusigramasena
xpollox
 
Los amigos son los mas importantes
Los amigos son los mas importantesLos amigos son los mas importantes
Los amigos son los mas importantes
Criss Cuicho
 

Destacado (20)

La adquisicion del lenguaje
La adquisicion del lenguajeLa adquisicion del lenguaje
La adquisicion del lenguaje
 
Trabajo practico de tics y ntics
Trabajo practico de tics y nticsTrabajo practico de tics y ntics
Trabajo practico de tics y ntics
 
Manejo de la información ii
Manejo de la información iiManejo de la información ii
Manejo de la información ii
 
@@@
@@@@@@
@@@
 
Presentación postergestiongoogleubu nov2012
Presentación postergestiongoogleubu nov2012Presentación postergestiongoogleubu nov2012
Presentación postergestiongoogleubu nov2012
 
Nicolas esguerra
Nicolas esguerraNicolas esguerra
Nicolas esguerra
 
Esteban sanchez inteligancia artificial..!!
Esteban sanchez inteligancia artificial..!!Esteban sanchez inteligancia artificial..!!
Esteban sanchez inteligancia artificial..!!
 
Elsreiscatolics 101211134427-phpapp01
Elsreiscatolics 101211134427-phpapp01Elsreiscatolics 101211134427-phpapp01
Elsreiscatolics 101211134427-phpapp01
 
Florencia García - Arequito ahorra energía
Florencia García - Arequito ahorra energía Florencia García - Arequito ahorra energía
Florencia García - Arequito ahorra energía
 
Romanticisme Ivan i Javier
Romanticisme Ivan i JavierRomanticisme Ivan i Javier
Romanticisme Ivan i Javier
 
Categorias de los sistemas operativos
Categorias de los sistemas operativosCategorias de los sistemas operativos
Categorias de los sistemas operativos
 
Practica 9♥
Practica 9♥Practica 9♥
Practica 9♥
 
Status de conservación de una especie
Status de conservación de una especieStatus de conservación de una especie
Status de conservación de una especie
 
Fotos
FotosFotos
Fotos
 
Biomasa
BiomasaBiomasa
Biomasa
 
Crusigramasena
CrusigramasenaCrusigramasena
Crusigramasena
 
Historia computador
Historia computadorHistoria computador
Historia computador
 
Los amigos son los mas importantes
Los amigos son los mas importantesLos amigos son los mas importantes
Los amigos son los mas importantes
 
Tarea reconocimiento
Tarea reconocimientoTarea reconocimiento
Tarea reconocimiento
 
Proyecto "Enlazados por la Química"
Proyecto "Enlazados por la Química"Proyecto "Enlazados por la Química"
Proyecto "Enlazados por la Química"
 

Similar a Teoria delacompuu v-vi

69cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f10269cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f102
maritzatec
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
sergio
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
guest553c2e
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
sergio
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
guest553c2e
 
SiProfe-Lectura-critica-1.pdf
SiProfe-Lectura-critica-1.pdfSiProfe-Lectura-critica-1.pdf
SiProfe-Lectura-critica-1.pdf
Pepe Licto
 
0 SiProfe Lectur critic1 dddddddddddddddd.pdf
0 SiProfe Lectur critic1 dddddddddddddddd.pdf0 SiProfe Lectur critic1 dddddddddddddddd.pdf
0 SiProfe Lectur critic1 dddddddddddddddd.pdf
JorgeVarn
 

Similar a Teoria delacompuu v-vi (20)

Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Tecnologia
Tecnologia Tecnologia
Tecnologia
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
69cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f10269cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f102
 
memoria
memoriamemoria
memoria
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
Apuntes De Matematicas Discretas
Apuntes De Matematicas DiscretasApuntes De Matematicas Discretas
Apuntes De Matematicas Discretas
 
2010.029
2010.029   2010.029
2010.029
 
Libro logica
Libro logicaLibro logica
Libro logica
 
Pavon - Logica Proposicional.pdf
Pavon - Logica Proposicional.pdfPavon - Logica Proposicional.pdf
Pavon - Logica Proposicional.pdf
 
Diapositivas 2
Diapositivas 2Diapositivas 2
Diapositivas 2
 
Autómatas y complejidad
Autómatas y complejidadAutómatas y complejidad
Autómatas y complejidad
 
SiProfe-Lectura-critica-1.pdf
SiProfe-Lectura-critica-1.pdfSiProfe-Lectura-critica-1.pdf
SiProfe-Lectura-critica-1.pdf
 
0 SiProfe Lectur critic1 dddddddddddddddd.pdf
0 SiProfe Lectur critic1 dddddddddddddddd.pdf0 SiProfe Lectur critic1 dddddddddddddddd.pdf
0 SiProfe Lectur critic1 dddddddddddddddd.pdf
 
0 SiProfe Lectur critic1 ttttttttttt.pdf
0 SiProfe Lectur critic1 ttttttttttt.pdf0 SiProfe Lectur critic1 ttttttttttt.pdf
0 SiProfe Lectur critic1 ttttttttttt.pdf
 
Conjuntos logica y funciones mlm-feb10-2019-0743
Conjuntos logica y funciones   mlm-feb10-2019-0743Conjuntos logica y funciones   mlm-feb10-2019-0743
Conjuntos logica y funciones mlm-feb10-2019-0743
 

Último

Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestas
ansomora123
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 

Último (20)

Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptx
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
 
Escrito-Contestacion-Demanda-Filiacion.pdf
Escrito-Contestacion-Demanda-Filiacion.pdfEscrito-Contestacion-Demanda-Filiacion.pdf
Escrito-Contestacion-Demanda-Filiacion.pdf
 
6.Deícticos Dos_Enfermería_EspanolAcademico
6.Deícticos Dos_Enfermería_EspanolAcademico6.Deícticos Dos_Enfermería_EspanolAcademico
6.Deícticos Dos_Enfermería_EspanolAcademico
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
El fundamento del gobierno de Dios. El amor
El fundamento del gobierno de Dios. El amorEl fundamento del gobierno de Dios. El amor
El fundamento del gobierno de Dios. El amor
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestas
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistas
 
263818760-Un-Embrujo-de-Cinco-Siglos.doc
263818760-Un-Embrujo-de-Cinco-Siglos.doc263818760-Un-Embrujo-de-Cinco-Siglos.doc
263818760-Un-Embrujo-de-Cinco-Siglos.doc
 

Teoria delacompuu v-vi

  • 1. SEP SEST DGEST INSTITUTO TECNOLÓGICO DE TOLUCA INGENIERÍA EN SISTEMAS COMPUTACIONALES TEORIA DE LA COMPUTACIÓN Resumen unidad V y VI PROFESORA: Pulido Alba Rocío Elizabeth REALIZADO POR: SALAZAR TORRES KARLA POLET GARCIA VICENCIO OSVALDO GARCIA CARBAJAL JULIO CESAR Toluca Mex. 14 de Noviembre de 2011 1
  • 2. INDICE Introducción.......................................................................................................................03 03 Planteamiento.............................................................................................................. 04 ....04 Delimitacion.......................................................................................................................04 04 Justificación………………………………………………..………………………………….….05 05 Objetivos............................................................................................................................05 05 DECIBILIDAD Lenguajes decidibles ……………………………………… ..…………………………….…….06 06 El Problema de Halting…………………………………………………………………………..09 09 Decibilidad de teorías lógicas…………………………………………………………………...12 12 REDUCIBILIDAD Problemas insolubles para la teoría de lenguajes………………………………………….. ..13 13 Un problema simple insoluble…………………………………………………………………..14 14 Funciones Computables……………………………………………………………………..15 15 ….. Reducibilidad de Turing………………………………………………………………………….16 16 Conclusiones………………………… ……………………………………………………... ……19 19 Bibliografía……………………………………………………………………………… …………20 20 2
  • 3. INTRODUCCIÓN El desarrollo de la teoría de la computabilidad ha sido íntimamente ligado al desarrollo de la lógica matemática. Esto ha sido así porque la decibilidad de los distintos sistemas lógicos es una cuestión fundamental. Podemos empezar a desarrollar el tema de decibilidad con la identificación de problemas que son computables lo cual tiene un gran interés pues indica el alcance y los límites de la computabilidad y así se puede demostrar los límites teóricos de los ordenadores. Esto nos lleva a los problemas de halting el cual nos plantea la interrogante si podemos construir una solución que nos diga si un algoritmo finaliza alguna vez o no. También hablaremos de la decibilidad de las teorías lógicas la cual se rige por axiomas dados a partir de un conjunto de enunciados que no son más que las reglas de inferencia con un esquema de derivación, va íntimamente ligada al desarrollo de la lógica matemática esto a sido así porque la decibilidad de los distintitos sistemas lógicos es una cuestión fundamentalmente matemática. En el tema de reducibilidad trataremos de aquellos problemas que pueden ser reducidos a casos particulares y que pueden ser resueltos en tiempos polinomios. 3
  • 4. PLANTEAMIENTO DEL PROBLEMA Investigar y Comprender la teoría de la decibilidad aplicada a lenguajes. Enfocado a temas específicos como los lenguajes decibles, los problemas de halting y la decibilidad de teorías lógicas. También es aplicar la teoría de la reducibilidad e indagar en los problemas insolubles de la teoría de lenguajes, las funciones computables y la reducibilidad de turing. DELIMITACIÓN La investigación está delimitada y guiada por los temas generales que son Decibilidad y Reducibilidad y temas específicos los cuales son:  Lenguajes decibles  Los problemas de halting  Decibilidad de teorías lógicas  Problemas insolubles para la teoría de lenguajes  Un problema simple insoluble  Reducibilidad de Turing Estos a su vez conforman las unidades 5 y 6 del temario de la materia de la teoría de la computación. 4
  • 5. JUSTIFICACIÓN El presente trabajo está motivado por la comprensión del concepto de decibilidad y reducibilidad, enfocándonos en temas específicos entre ellos pueden ser lo problemas de halting, la decibilidad de teorías lógicas, reducibilidad de turing. También es la búsqueda de las herramientas teóricas para la resolución de problemas que la solución sea un ejemplo de decibilidad y reducibilidad. OBJETIVOS Objetivos Generales  Comprender la teoría de Decibilidad  Comprender la teoría de Reducibilidad  Aplicar la teoría de Reducibilidad Objetivos Específicos  Comprender los Lenguajes Decidibles.  Comprender los problemas de Halting.  Comprender la Decidibilidad de Teorías Lógicas.  Comprender un problema simple insoluble.  Comprender las funciones computables.  Comprender la Reducibilidad de Turing 5
  • 6. DECIBILIDAD Un problema de decisión es decidible por una máquina de Turing sı y sólo si la máquina responde correctamente cada una de las respuestas a las preguntas asociadas al problema. Por otro lado se han considera do formas de simplificar la construcción de máquinas de Turing mediante la introducción de la modularidad, esto quiere decir, considerado algunas maquinas elementales a partir de las cuales podremos construir otras con mayor eficiencia. Primero es necesario crear un planteamiento que nos permita determinar de manera eficiente si un problema puede ser tratado como un caso de decisión, o solamente es un problema intratable, recordemos que la diferencia entre ambos radica en que el problema de decisión tenemos casos en los que no existen algoritmos que nos permitan resolver el problema, mientras que el segundo, presenta algoritmos muy extensos que ocupan todos los recursos de una computadora, o que requieren de mucho tiempo para su solución por Ejemplo ¿ Hay enteros tales que satisfagan la ecuación 3x + 6y = 151? R= no es un problema de decisión. ¿ Hay enteros x, y tales que se cumple la ecuación ax + by = c? si es un problema de decisión (aquí es importante mencionar que para cada valor de a, b y c tenemos un problema distinto. Lenguajes Decidibles Un lenguaje decidible es aquel lenguaje L para el cual existe una máquina de Turing que le puede aceptar cualquier cadena ω ∈ L. Hay lenguajes formados por cadenas tales que una máquina 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 máquina de Turing se llaman recursivos numerables. Las gramáticas sin restricciones son las que generan los lenguajes recursivos numerables y 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 el hecho de que las máquinas de Turing generalizan a los autómatas de pila y estos a su vez a los autómatas finitos. Un problema puede ser descripto con un Lenguaje y la solución algorítmica a dicho problema se describe con un lenguaje recursivo. Problemas de decisión (Si/No) -Decidibles: Existe un algoritmo que da respuesta para todas las instancias. (Se describen con lenguajes Recursivos) -Indecidibles: Existe un procedimiento que da respuesta a algunas instancias. (Se describen con lenguajes recursivo-enumerables) Teoremas Teorema1.-Si L es un lenguaje regular, entonces L es también un lenguaje recursivo. Teorema2.- Si L es un lenguaje independiente del contexto, entonces L es también un lenguaje recursivo. Teorema3.- Si L1 y L2 son lenguajes recursivos, entonces L1  L2 también lo es. 6
  • 7. Lema1.- Si L es un lenguaje recursivo, entonces * L es un lenguaje recursivo Teorema4.-Hay un lenguaje recursivamente enumerable L para el cual * L no es recursivamente enumerable. Teorema5.- Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1  L2 es también recursivamente enumerable. Teorema6.- Si L es un lenguaje recursivamente enumerable para el cual * L también es recursivamente enumerable, entonces L es un lenguaje recursivo. Teorema7.- Un lenguaje L es recursivamente enumerable si y solo si L es enumerado por alguna máquina de Turing. Teorema8.-Si G es una gramática no restringida, entonces L(G) es un lenguaje recursivamente enumerable. Teorema9.- Si L = L(M) es un lenguaje recursivamente enumerable y G se construye de la forma descrita, entonces L = L(G). Teorema10.- Un lenguaje L es recursivamente enumerable si y solo si L = L(G) para alguna gramática G, no restringida Teorema11.- Si L es un lenguaje sensible al contexto, entonces L es recursivo. Lema2.-Hay lenguajes recursivos que no son lenguajes sensibles al contexto Teorema12.-Los lenguajes sensibles al contexto contienen, propiamente, a los lenguajes independientes del contexto. A su vez, los lenguajes recursivos contienen, propiamente, a los lenguajes sensibles al contexto. Teorema 13.- Sobre un alfabeto dado, el conjunto de los lenguajes recursivamente enumerable contienen propiamente a los lenguajes recursivos que contienen propiamente al conjunto de los lenguajes sensibles al contexto que contienen propiamente al conjunto de los lenguajes independientes del contexto. Que a su vez, contienen propiamente los lenguajes regulares. Lregular  Li.c.  Ls.c.  Lrecursivo  Lr.e Teorema14.- El lenguaje universal Lu no es recursivo. Teorema15- Dadas una gramática G y una palabra w, es posible decidir si w ∈ L(G) cuando las reglas de G cumplen la propiedad: "Para toda regla A → α, |α| > 1, o bien α ϵ ∑, es decir el lado derecho tiene varios símbolos o si tiene exactamente un símbolo, éste es terminal.". Si dado conjunto de entradas bajo las cuales una máquina de Turing logra un estado de parada para cada entrada, la máquina corresponde a la implementación de un algoritmo. Un algoritmo es una implementación de una máquina de Turing tal que el conjunto de sus entradas es el lenguaje decidible. Gráficamente el algoritmo se ve de la siguiente manera 7
  • 8. Los lenguajes que tienen asociados algoritmos son finitos, mientras que aquellos a los cuales no les podemos asignar un algoritmo son infinitos (en términos de la cantidad de problemas). La clase de los lenguajes recursivos es cerrada bajo P. Para ello proporcionamos el siguiente esquema de una máquina de Turing que para ante cualquier entrada y acepta las cadenas de P(L) siempre que L sea recursivo Y acepta Pref L X Rechaza/siguient Rechaza Fin prefijo Ejemplos 1.-Sean los conjuntos de naturales A y B tales que A es decidible y B es r.e. pero no decidible. Es la siguiente afirmación verdadera o falsa? Justifique. Afirmación: B-A necesariamente es r.e. Respuesta: Verdadero. Observar que B-A = BAc . Como A es un conjunto decidible, su complemento también lo es (teorema 2) y por lo tanto también es r.e. Como los conjuntos r.e. son cerrados bajo la intersección, BAc es r.e. 2.- Utilizando los teoremas y utilizando los conjuntos del ejercicio anterior justifique porque la afirmación siguiente es falsa: Afirmación: B-A necesariamente no es decidible. Respuesta: Consideremos al conjunto K y al conjunto N. K-N es el conjunto vacío, que es decidible. 3.- Sea P una operación sobre lenguajes definida como P(L) = {x ∈ Σ∗ | Pr(x)∩L= ∅}. ¿Es la clase de los lenguajes recursivos cerrada bajo P ? (Nota: Pr(x) denota el conjunto de prefijos de la cadena x) Respuesta: Podemos expresar P(L) = LΣ∗. Dado que Σ∗ es un lenguaje regular, entonces es recursivo y también recursivamente enumerable. Por lo tanto, en el caso de ambas familias de lenguajes la operación P es de cierre. 8
  • 9. El problema de Halting El problema de Halting o también conocido como el problema de la parada es equivalente a construir un programa que decida si un algoritmo finaliza alguna vez o no. Respecto a este problema Turing probó que no es posible construir una máquina de Turing que decida si otra máquina de Turing aceptara alguna cadena durante su procesamiento, debido a que mientras la máquina de turing trabaja, las cadenas almacenadas en la cinta, son pasos intermedios que no tiene nada que ver con el resultado final. El problema se desarrolla suponiendo que dada una máquina de turing MT1 existe una cadena de símbolos ω1, que nos informa si otra máquina de turing M2 con programa P2 y datos iniciales D2 se detendrá proporcionando una salida ω1 = P1 [P2,D2]. Suponga que aplicamos el programa P1, que determina el comportamiento de MT1, que determina el comportamiento sobre el mismo programa, pero tomando como datos los propios P1 [P1,D1], entonces para que MT1 pueda informar si MT2, para o no debe existir un programa P1 que para cuando un programa anterior P1 (recuerde que se está trabajando sobre MT1) que pare cuando un segundo programa P1 introducido como dato anterior no para. Aquí el programa se está ejecutando sobre sı mismo, lo cual no es posible. Teorema.- No existe ninguna MT tal que, para cualquier palabra w y cualquier MT M, decida si w ∈ L(M). M para con w 1 D(M) W 0 M no para con w Fig1: Problema de parada de una MT En la figura 1 se muestra como debería funcionar la máquina de turing que resolvería el problema de la parada M para con w 1 D(M) W 0 M no para con w (a)Maquina A 9
  • 10. Copia d(M) B cicla M para con w ˈ d(M)d(M) A 0 M no para con w (b)Maquina B Copia d(B) B cicla B para con d(B) (c)Contradicción ˈ d(B)d(B) A 0 B no para con d(B) Figura 2: prueba del paro de MT Prueba por contradicción.- Sea A la MT de la figura 2(a). Entonces construimos otra MT B, como se representa en la figura 2(b), esto es, se tiene una única entrada con la codificación d(M) de la MT M, y se pasa esta palabra a una MT copiadora, que duplica la entrada d(M). La salida de la copiadora será dos veces d(M). Esto es pasado como entrada a una máquina A′ que es A modificada de la siguiente manera: a la salida 1 de A la cambiamos de forma que en vez de dar el halt se cicle; debe quedar claro que esto siempre puede hacerse. Ahora bien, comparando A con A′ se ve que la salida 1 corresponde al hecho de que M para con d(M). Finalmente supongamos que aplicamos la máquina B a una entrada formada por la misma máquina codificada, esto es, d(B). Entonces cuando B se cicla, esto corresponde a la salida que indica que "B se para con d(B)", lo cual es contradictorio. Similarmente, B entrega un resultado 0 -esto es, se para- en el caso que corresponde a "B no se para con d(B)", que también es contradictorio. Esto se ilustra en la figura 2(c). Ejemplos 1.- Supóngase que fuera posible predecir la parada de un proceso; es decir, que se dispone de una función llamada Halts, tal que int Halts(char *P, char *I){ /* Pre: P e I son cadenas de caracteres, siendo P */ /* el código fuente de un programa e I los datos */ /* (1) Se determina si P es un programa correcto */ /* Sintácticamente (compilación)*/ /* (2) Se determina si P finaliza su ejecución */ /* Cuando lee la cadena de entrada I */ return halt; } /* Devuelve 1 si P para con I, 0 en caso contrario */ 10
  • 11. Sabiendo esto, se escribe el programa siguiente: int main() { char I[100000000]; /* Hacer I tan grande como se quiera, o usar malloc */ read a C program into(I); if (Halts(I,I)) { while(1){} /* bucle infinito */ }else return 1; } Este programa se almacena en el fichero Diagonal.c. y se ejecuta: a) ¿Cuáles son los casos posibles de solución? b) ¿Existe la función halt? Respuesta a) Caso 1: Halts(I,I) devuelve 1. Según la definición de Halts, esto significa que él programa finaliza su ejecución cuando recibe como entrada Diagonal.c. Pero, según la definición de Diagonal.c, que Halts(I,I) devuelva 1, significa que en el condicional se ejecutara la rama “if”, que contiene el bucle infinito; es decir, la ejecución de Diagonal.c no finaliza NUNCA. Se llega a una contradicción. Caso 2: Halts(I,I) devuelve 0. Según la definición de Halts, esto significa que Diagonal.c NUNCA finaliza su ejecución cuando recibe como entrada Diagonal.c. PERO, según la definición de Diagonal.c, que Halts(I,I) devuelva 0, significa que en el condicional se ejecutara la rama “else”, por lo que finaliza la ejecución de Diagonal.c. Se llega, de nuevo, a una contradicción. b) Puesto que no hay más casos posibles la suposición inicial debe ser falsa: no es posible que exista la función Halts. 2.- dada una máquina de Turing M, ¿es cierto que M se detiene con entrada C(M)? Problema de decisión: H = {w ϵ {0, 1}* | existe una MT M tal que w = C(M) y M se detiene con entrada C(M)}. Demostrar que no es decidible Respuesta: Asumimos que existe una MT M* que se detiene en todas las entradas y tal que H = L(M*). Para cada MT M, si M se detiene con su propio código entonces M* con entrada C(M) se detiene en un estado final. En caso contrario, M* se detiene en un estado que no es final. Sea M0 una MT que con entrada w funciona de la siguiente forma: Hace funcionar la maquina M* con entrada C(M0) si M* se detiene en un estado final entonces M0 no se detiene en caso contrario M0 se detiene en un estado final 11
  • 12. Probamos si M* acepta M0 M* acepta M0 si y solo si M0 se detiene con entrada C(M0) si y solo si M* se detiene en un estado no final con entrada C(M0) si y solo si M* no acepta M0 En esta última línea existe una contradicción por lo que el lenguaje es indecible Decibilidad de teorías lógicas Una teoría lógica TL se define a partir de un conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema de derivación. A partir de los axiomas y aplicando la regla de inferencia y el esquema de derivación se infieren los teoremas de la teoría. El conjunto de teoremas de la teoría forma un lenguaje formal. Si es posible definir una máquina de Turing tal que reconozca al lenguaje de los teoremas, este lenguaje es decidible y la teoría también lo es 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 decidibles, 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. Ejemplos 1.-Muestre que la colección de lenguajes decidibles por máquina de Turing para un alfabeto cualquiera es infinita, pero contable. Respuesta El conjunto de lenguajes independientes de contexto es infinito. Los conjuntos de los lenguajes independientes de contexto, lenguajes decidibles por Turing, lenguajes estructurados por frases son contables. La colección de lenguajes decidibles es contable por ser un subconjunto de los lenguajes estructurados por frases (que son contables). Es infinita porque contiene a los lenguajes independientes de contexto, que son infinitos. Los lenguajes decidibles en tiempo polinomico son aquellos lenguajes para los que una máquina de Turing puede determinar si una cadena pertenece al lenguaje. Implica reconocer el complemento del lenguaje. 2.-Cite dos ejemplos de decibilidad de teorías lógicas Respuesta El cálculo de predicados no es decidible La teoría de los números reales es decidible. 12
  • 13. REDUCIBILIDAD Problemas insolubles para la teoría de lenguajes La teoría de la reducibilidad trata de aquellos problemas que pueden ser reducidos a casos particulares y que pueden ser resueltos en tiempos polinomios. Existe una línea divisoria fundamental entre los problemas que se pueden resolver en tiempo polinomio y los que requieren de un tiempo exponencial o mayor. Los problemas prácticos que requieren de un tiempo polinomio son casi siempre resolubles en un tiempo tolerable, mientras que los que requieren de un tiempo exponencial, en general no se pueden resolver, excepto en casos sencillos. Un problema A es reducible a otro B si un método para resolver B proporciona un método para resolver A. Cada problema puede representarse a través de una codificación como un conjunto de números. Así, es posible estudiar la reducibilidad como una relación entre conjuntos de números, bajo el siguiente principio, Un conjunto A es reducible al conjunto B si un método para decidir si algo pertenece a B, proporciona un método para decidir que algo pertenece al conjunto A. Esta definición está fundamentada en una conjetura llamada N ≠ NP , que permite suponer que la clase de los problemas que se pueden resolver en tiempo polinomio mediante máquinas de Turing no determinística, contienen al menos algunos problemas que no se pueden resolver en tiempo polinomio usando máquinas de Turing determinística, aunque estas ocupen un tiempo polinomio de grado más alto. Se dice que el par (A, B) es reducible al par (M, N) vía f, si f es una función recursiva Verificando XϵA f(x) ϵ M XεB f(x) ϵ N Esta condición equivale a que A = f -1(M) y B = f -1(N). Obsérvese que esta condición significa que f aplica A en M, B en M y A U B en M U N Obsérvese también que si (A, B) es reducible al par (M, N) vía f, entonces también ( A , B ) es reducible a ( M , N ) vía f 13
  • 14. Un problema simple insoluble Ejemplo 1.- Una partícula se mueve en el espacio de manera aleatoria, si en el instante de tiempo t se encuentra en la posición x, ¿Cuál será la posición exacta de dicha partícula 10 segundos después? Objeto desconocido. Una posición Objetos conocidos. Posición en el instante de tiempo t. Condiciones. La partícula se mueve en el espacio de manera aleatoria Tipo de problema. Insoluble. Debido a que no existe forma de predecir la posición de la partícula, pues se mueve de manera aleatoria 2.-De las siguiente imágenes, cual es la más llamativa? nuestro autómata no puede saber cuál es la imagen más llamativa ya que para cada usuario la respuesta puede variar convirtiendo en este problema insoluble. 3.-Algoritmo de Kruskal Considere el problema de encontrar un árbol de peso mínimo asociado a un grafo AP MAG, a continuación se presenta un ejemplo de un grafo, en el cual los nodos están numerados del 1 al 4 y hay arcos entre pares de nodos, y cada uno tiene un peso en entero, un árbol que abarca el grafo es un subconjunto de los arcos tal que todos los nodos quedan conectados entre s mediante estos arcos pero no se forma ningún ciclo. El árbol para el nodo 3 está compuesto por todas las aristas que parten de el. El árbol de peso mínimo es el que tiene la menor suma total de pesos de los arcos entre todos los que abarcan el grafo. Existe un algoritmo llamado algoritmo de Kruskal para encontrar un AP MAG que consiste en los siguientes pasos: 1. Para cada nodo anotar la componente conexa en la que aparece, usando los arcos del árbol seleccionados hasta el momento. Inicialmente no se ha seleccionado ningún arco, por lo que cada nodo formara por si solo una componente conexa. 2. Se elige el arco de menor peso que aún no se halla examinado, y se rompen las ligaduras como se desee. Si este arco conecta dos nodos situados actualmente en componentes conexas distintas: a) Se selecciona este arco, para el árbol que abarca el grafo. b) Se unen las dos componentes conexas, cambiando el número de componente asociado a todos los nodos de una de las componentes, para que sea el mismo que el numero de componente de la otra. 14
  • 15. 3. Se eligen arcos hasta que todos los nodos hayan sido examinados, o hasta que el número de arcos seleccionados para el árbol que abarca el grafo sea igual al número de nodos menos uno. en este caso todos los nodos deben estar en una solo componente conexa, y es posible olvidarse de todos los arcos restantes. Para aplicar este algoritmo a las máquinas de Turing hay que resolver algunas cuestiones: Cuando tratamos con máquinas de Turing, los problemas se valen como lenguajes y su único resultado es si o no, es decir aceptado o rechazado, para nuestro problema podríamos redactarlo Dado el grafo G y el limite W, >Existe en G un árbol que lo abarque con peso menor o igual a W?. Este algoritmo puede ser implementado en una máquina de Turing con varias cintas en un tiempo O(n2) utilizando las cintas de la siguiente forma: 1. Una cinta puede utilizarse para guardar los nodos y su número de componente en cada momento. La longitud de esta tabla es O(n) 2. A medida que se analizan los arcos sobre la cinta de entrada, se puede usar otra cinta para encontrar el peso menor encontrado hasta el momento entre todos los arcos que no han sido marcados como usados, se puede usar una segunda pista de la cinta de entrada para marcar los arcos que fueron seleccionados por su peso mínimo, en las pasadas anteriores del algoritmo. La búsqueda del arco no marcado lleva un tiempo O(n). 3. Los dos nodos que unen al arco seleccionado se pueden almacenar en otra cinta, para después buscar las componentes de esos nodos en un tiempo O(n) 4. Se puede usar otra cinta para guardar las dos componentes i y j, que se unirán cuando se encuentre un arco que conecta dos componentes previamente no conectadas. Después se buscara en la tabla de nodos y componentes, para cambiar a la componente de todos los nodos que estaban en la componente i, esta búsqueda lleva un tiempo O(n). Funciones computables Las funciones computables son el objeto básico de estudio de la teoría de la computabilidad y consisten en las funciones que pueden ser calculadas por una máquina de Turing. Las funciones computables son una formalización de la noción intuitiva de algoritmo y según la Tesis de Church-Turing son exactamente las funciones que pueden ser calculadas con una máquina de cálculo. La noción de la computabilidad de una función puede ser relativizada a un conjunto arbitrario de números naturales A, o equivalentemente a una función arbitraria f de los naturales a los naturales, por medio de máquinas de Turing extendidas con un oráculo por A o f. Tales funciones puede ser llamados A-computable of-computable respectivamente. Por ejemplo suponiendo que quieres hacer un nuevo platillo. Esto podría ser fácil si se tuviera una receta. Así tú puedes reducir el problema encontrando los ingredientes correctos, al problema de obtener la receta exacta. Las funciones computables son las que se calculan por programas-while Ejercicios 1.-Demuestre que: La suma f1 + f2; ::: + fn es una función computable. 15
  • 16. Respuesta Caso Base: n = 1 Por hipótesis, f1 es computable. Paso de inducción: n n + 1 Sea h = f1 + f2; ::: + fn, que, por hipótesis de inducción es computable. Entonces: f1 + f2; ::: + fn + fn+1 = h + fn+1 = C(+; h; fn+1) que es computable. Para cualquier n ¸ 1, la suma de n funciones computables de igual aridad es también computable. 2.- Dada una función f : N- N se define Vf (x) = |{y ε N : y < x ^ f(y) = 0}| Supongamos que f es total y GOTO{computable. Diseñar un programa GOTO que calcule Vf , utilizando f como única macro. Respuesta IF X = 0 GOTO A GOTO E [A] Z2 f(Z) IF Z2 ≠ 0 GOTO B Y Y+1 [B] X X-1 Z Z+1 IF X = 0 GOTO A 3.- Diseñar un programa GOTO que al recibir un dato de entrada n devuelva el elemento n-esimo De la sucesión: 0; 1; 2; 2; 3; 4; 4; 5; 6; 6; 7; Respuesta [A] IF X = 0 GOTO B GOTO E [B] X X -1 Y Y+1 IF X ≠ 0 GOTO C GOTO E [C] X X-1 X X-1 Y Y+1 Z Z+1 GOTO A Reducibilidad de Turing El concepto de “reducibilidad", en el cual se ha reducido el lenguaje l1 a l2 encontrando un algoritmo que mapeaba cadenas en l1 en cadenas de l2 y cadenas que no estaban en l1 en cadenas que no estaban en l2. Este concepto de reducibilidad es a menudo llamado 16
  • 17. reducibilidad muchos a uno, una técnica más general, se conoce como Reducibilidad de turing, y sencillamente consiste en mostrar que l1 es recursivo en l2. Si L1 es reducible muchos a uno en L2, entonces seguramente L1 es Turing reducible en L2. Como prueba de esto, supóngase que f es una función calculable por una MT que siempre para, tal que f(x) está en L2 si y sólo si x está en L1. Entonces considérese el oráculo ML2 que, dada la entrada x, calcula f(x) y luego, entra en el estado q? con f(x) a la derecha de su cabeza. La máquina ML2 acepta si y sólo si esta entra en qs. Seguramente, L (ML2) = L1, L1 es Turing-reducible en L2. El recíproco es falso. Si L1 es Turing-reducible en L2, y L1 es indecidible, entonces L2 también lo es. Si L2 fuese recursivo, entonces el oráculo ML2 tal que L(ML2 ) = L1 puede simularse con una MT ordinaria que siempre para. Así, se podría usar una reducción de Turing para mostrar que L2 es indecidible, dado que L1 resultaba Indecidible, incluso en circunstancias donde una reducción muchos a uno no existiera o fuese difícil de encontrar. Ejercicios 1: = {0, 1} L1 = {w * / cant1(w) es par} L2 = {w * / cant1(w) es impar} Donde cant1(w) es la cantidad de 1 que hay en w Demostrar que L1 L2. Se construye Mf, una MT que computa la función de reducibilidad. Mf = <{q0, q1}, {a, b}{a, b, B}, q0, > Demostrar que Mf siempre se detiene y que w L1 Mf(w) L2 Respuesta 1) Mf siempre se detiene: claramente sí, pues solamente ejecuta un movimiento 2) w L1 Mf(w) L2 Claramente si w comienza con 1 entonces cant1(Mf(w)) = cant1(w) – 1, y si w no comienza con 1 cant1(Mf(w)) = cant1(w) + 1. Por lo tanto a) Si w L1 cant1(w) es par cant1(Mf(w)) es impar Mf(w) L2 b) Si w L1 cant1(w) es impar cant1(Mf(w)) es par Mf(w) L2 De a) y b) se tiene que w L1Mf(w) L2. 17
  • 18. 2.- L*= {<M> / L(M) = *} no es recursivo. Mostrar que existe una reducción Lu a LS* Respuesta Encontrar una función total computable tal que (<M>,w)Lu f (<M>,w) L* Sea Mf la máquina de Turing que computa la función f (<M>,w) = <M'> y trabaja de la siguiente manera: Mf construye <M'> escribiendo las quíntuplas necesarias para que M' borre la entrada y escriba w en la cinta, posicione el cabezal y simule M sobre w. Así M' para en q AM acepta w 1) f((<M>,w)) es computable? Claramente sí, pues Mf para, luego de realizar una cantidad finita de acciones 2) (<M>,w)Lu <M’> L* ? a) Sea (<M>,w)Lu M para en qA con input w M' para en qA con cualquier input M'> L* b) Sea (<M>,w) Lu  i. <M> no es un código válido de máquina de Turing M'> no es un código válido M'> L* ii. M rechaza w M' rechaza todo input M'> L* De a) y b) se tiene que (<M>,w)Lu <M’> L* De 1) y 2) se tiene que Lu L* Por lo tanto L* a R (porque Lu a R) 18
  • 19. CONCLUSIONES  La investigación no permitió observar los problemas que en su sencillez no son computables por factores humanos y lógicos  La decibilidad de un lenguaje esta íntimamente relacionada con las maquinas de turing por que al aceptar todas las cadenas se dice que el lenguajes es decible  El problemas de halting es la incertidumbre del desconocimiento del final de una maquina de Turín por otra externar ya que la información el la banda no tiene que relación que nos ayude a concluir el final  Que la decibilidad de una Teoría lógica se puede definir a partir de axiomas que estos a su vez son reglas de inferencia  Que una comprensión de la reducibilidad puede ser el transformar un problema A a uno B buscando simplificar el contenida del problema A  Que las funciones computables son la formalización de un algoritmo  El algoritmo de reducibilidad de turing esta basado en el mapeo de un problema A para así transfórmalo en B siendo A recursivo en B 19
  • 20. BIBLIOGRAFÍA Deán Kelly Teoría De Autómatas Lenguajes Formales. Editorial: Prentice Hall 1995 Elisa Viso Gurovich. Teoría de la computación. Facultad de ciencias UNAM. 2012 Ramón Brena. Autómatas y Lenguajes, Un enfoque de diseño. Tecnológico de monterrey verano 2003 Jorge Eduardo Carrión Miramontes. Teoría de la computación. Editorial:Lumisa 2009 Denning, Dennis, Qualitz, Machines, languages y computacion. Editorial Prentice Hall 1978. John E. Hopcroft y Jerey D. Ullman, Introducción a la teoría de autómatas, lenguajes y computacion.Editorial CECSA 1979. 20