13 Espacio y Tiempo Polinomial

Tamaño: px
Comenzar la demostración a partir de la página:

Download "13 Espacio y Tiempo Polinomial"

Transcripción

1 1 Curso Básico de Computación 13 Espacio y Tiempo Polinomial Los lenguajes reconocidos en tiempo polinomial determinístico forman, de manera natural una clase importante, la clase i 1 DTIME(ni ), la cual denotaremos por P. Esto nos dice intuitivamente o nos da una noción de que P es la clase de problemas que pueden ser resueltos eficientemente. Uno podría argumentar que n 57 pasos en un algoritmo no es muy eficiente, en la practica encontramos que los problemas en P usualmente tienen soluciones en tiempo polinomial cuyo polinomio es de grado pequeño. Hay un número importante de problemas que no están en P pero tienen algoritmos no determinísticos muy eficientes. Estos problemas caen dentro de la clase de i 1 NTIME(ni ), que denotaremos por N P. Un ejemplo es el problema del circuito Hamiltoniano: un grafo dado contiene un ciclo en el cual cada vértice aparece exactamente una vez? No parece haber un algoritmo en tiempo polinomial determinístico para reconocer aquellos grafos con circuitos Hamiltonianos. Más aún, hay un algoritmo no determinístico muy simple: suponer que las aristas están en el ciclo y verificar que forman un circuito Hamiltoniano. La diferencia entre P y N P es análogo a la diferencia entre: encontrar eficientemente una prueba de un enunciado (tal como: ésta gráfica tiene un circuito Hamiltoniano ) y verificar eficientemente una prueba (i.e. checar que en particular un circuito es Hamiltoniano). Sentimos intuitivamente que comprobar una prueba dada es más fácil que encontrar una; pero no sabemos si esto es un hecho. Otras dos clases naturales son: PSPACE = i 1 DSPACE(n i ) y NSPACE = i 1 NSPACE(n i ) Note que el teorema de Savitch (Teorema 12.11) DSPACE=NSPACE, pues NSPACE(n i ) DSPACE(n 2i ). Obviamente P N P PSPACE, aún no se sabe si alguna de estás contenciones son propias. Además, como veremos, es poco probable que las herramientas matemáticas necesarias para resolver las preguntas de una manera u otra hayan sido desarrolladas. Dentro de PSPACE tenemos dos jerarquías de clases de complejidad: y DSPACE(log n) DSPACE(log 2 n) DSPACE(log 3 n)... NSPACE(log n) NSPACE(log 2 n) NSPACE(log 3 n)...

2 Feliú Sagols Troncoso Matemáticas-Cinvestav 2 Claramente y así por el teorema de Savitch DSPACE(log k n) NSPACE(log k n) k 1 NSPACE(log k n) = i 1 Aun cuando uno puede mostrar que P i 1 DSPACE(log k n) DSPACE(log k n) La contención de una clase en la otra es desconocida. Sin embargo DSPACE(log n) P N P PSPACE y por lo menos una de las contenciones es propia, como DSPACE(log n) PSPACE por el teorema de la jerarquía del espacio. Reducciones entre problemas para acotar sus complejidades Recuerde que en el capitulo 8 mostramos la indecibilidad de un lenguaje L, al tomar un lenguaje L (que de antemano sabíamos era indecible) y reducirlo a L. Esto es, exhibimos un mapeo g calculado por una MT que siempre para, tal que para todas las cadenas x, x está en L si y sólo si g(x) está en L. Entonces si L fuera recursivo, L podría ser reconocido calculando g(x) y decidiendo si g(x) está o no en L. Restringiendo g a una función de manera que se pueda calcular fácilmente, podemos estáblecer si L está o no en alguna de las siguientes clases: P, N P o PSPACE. Debemos interesarnos particularmente en dos tipos de reducción: reducción en tiempo polinomial y reducción espacio-log (espacio-logarítmica). Decimos que L es reducible en tiempo polinomial a L si hay una MT acotada en tiempo polinomial tal que para cada entrada x produce una salida y que está en L si y sólo si x L. Lema 13.1 Sea L reducible en tiempo polinomial a L. Entonces a) L está en N P si L está en N P b) L está en P si L está en P Prueba. Las pruebas de a) y b) son similares. Así que sólo probaremos b). Asumimos que la reducción en tiempo es p 1 (n), acotado y que L es reconocible en el tiempo p 2 (n), donde p 1 y p 2 son polinomios. Entonces L puede ser reconocido en tiempo polinomial como sigue: Dada la entrada x de longitud

3 3 Curso Básico de Computación n, produce y usando la reducción en tiempo polinomial. Como la reducción es p 1 (n) acotada y a lo más un símbolo puede ser impreso por movimiento, se sigue que y p 1 (n). Entonces podemos probar si y está en L en tiempo p 2 (p 1 (n)). Así que el tiempo total para decir si x está en L es p 1 (n)+p 2 (p 1 (n)) el cual es polinomial en n. Por lo tanto L P Un transductor espacio-logarítmico es una MT fuera de línea que siempre para, que usa un almacenamiento de tamaño log n y tiene una cinta de salida de sólo escritura que nunca mueve su cabeza hacia la izquierda. Decimos que L es espacio-logarítmico reducible a L si hay un transductor espacio-logarítmico que dada una entrada x produce una cadena de salida y que está en L si y sólo si x está en L. Lema 13.2 Si L es espacio-logarítmico reducible a L, entonces a) L está en P si L está en P b) L está en NSPACE(log k n) si L está en NSPACE(log k n) c) L está en DSPACE(log k n) si L está en DSPACE(log k n) Prueba. a) Es suficiente mostrar que una reducción espacio-logarítmica no puede tomar más que tiempo-polinomial, así el resultado se sigue del lema 13.1 b). En la prueba, notese que el contenido de la cinta de salida no puede tener influencia en el cálculo, así el producto del número de: estádos, contenido de las cintas de almacenamiento y de entrada,y posiciones de las cabezas de las cintas de almacenamiento y entrada es una cota superior sobre el número de movimientos que pueden ser hechos antes de que el transductor espacio-logarítmico entre en un ciclo, lo cual contradice el hecho de que siempre para. Si la cinta de almacenamiento tiene longitud log n, se ve con facilidad que la cota es polinomial en n. Hay una sutileza involucrada en las pruebas de b) y c). Sólo probaremos c), la prueba para b) es esencialmente la misma que para c). c) Sea M 1 el transductor espacio-logarítmico que reduce L a L y sea M 2 una MT espacio log k n acotada que acepta L. Sobre la entrada x de longitud n, M 1 produce una salida de longitud acotada por n c para alguna constante c. Como la salida no puede ser escrita en espacio log k n, M 1 y M 2 no pueden ser simuladas almacenando la salida de M 1 sobre una cinta. La salida de M 1 puede alimentar directamente a M 2 un símbolo a la vez. Esto trabaja tanto como M 2 se mueve a la derecha sobre su entrada. M 2 debe moverse a la izquierda, M 1, debe ser reiniciada para determinar el símbolo de entrada para M 2, pues la salida de M 1 no fue guardada. Construimos M 3 para aceptar L como sigue: una cinta de almacenamiento de M 3 tiene la posición de entrada de M 2 en base 2 c. Como la posición de entrada no puede exceder n c, este número puede ser almacenado en espacio-logn. Las otras cintas de almacenamiento de M 3 simulan las cintas de almacenamiento

4 Feliú Sagols Troncoso Matemáticas-Cinvestav 4 de M 1 y M 2. Suponga al mismo tiempo que las cabezas de entrada están en la posición i y M 2 hace un movimiento hacia la izquierda o derecha. M 3 ajusta el estádo y las cintas de almacenamiento de M 2 de una manera adecuada. Entonces M 3 reinicia la simulación de M 1 desde el principio y espera hasta que M 1 ha producido los símbolos de salida i 1 o i + 1 si la cabeza de entrada de M 2 fue movida a la izquierda o a la derecha, respectivamente. El último símbolo de salida producido es el nuevo símbolo obtenido por la cabeza de M 2, así M 3 está lista para simular el siguiente movimiento de M 2. Como casos especiales, si i = 1 y M 2 se mueve a la izquierda suponemos que M 2 lee la marca del final a la derecha (endmarkers), M 3 acepta su propia entrada siempre que M 2 acepta su entrada simulada. De ésta manera M 3 es una MT espacio log k n acotada que acepta L. Lema 13.3 La composición de dos reducciones espacio-logaritmicas (resp. tiempo-polinomial) es una reducción espacio-logarítmica (resp. tiempo-polinomial). Prueba. Es una generalización de las construcciones en los lemas 13.1 y Problemas Completos Como lo hemos mencionado, no sabemos si N P contiene a los lenguajes que no están en P, por lo que el problema de la contención es un problema abierto. Una manera de encontrar un lenguaje en N P - P es observar un problema muy difícil en N P. Intuitivamente un lenguaje L 0 es un problema muy difícil, si cada lenguaje en N P es reducible a L 0 por una reducción fácil de calcular. Dependiendo exactamente del tipo de reducción, podemos concluir algunas cosas acerca de L 0. Por ejemplo si todos los lenguajes de N P son reducibles en espacio-logarítmo a L 0 podemos concluir que si L 0 estuviese en P entonces P sería igual a N P. Análogamente si L 0 estuviese en DSPACE(log n), entonces N P=DSPACE(log n). Si todos los lenguajes de N P fuesen reducibles en tiempo-polinomial a L 0, entonces podríamos concluir aún que si L 0 estuviese en P, entonces P sería igual a N P, pero no podríamos concluir de lo anteriormente mencionado, que si L 0 está en DSPACE(log n) tendríamos N P=DSPACE(log n). Vemos, de los ejemplos anteriores que la noción de muy difícil puede depender del tipo de reducción involucrada. Esto es, puede haber lenguajes L 0 tales que todos los lenguajes en N P tienen reducciones en tiempo-polinomial a L 0, pero que no todos tienen reducciones espacio-logarítmicas a L 0. Además, las reducciones espacio-logarítmicas y tiempo-polinomial no son las únicas reducciones que podríamos considerar. Con esto en mente definimos la noción de problemas muy difíciles (completos) para una clase general de lenguajes con respecto a un tipo en particular de reducción. Claramente lo siguiente generaliza a un tipo arbitrario de reducción. Sea C una clase de lenguajes. Decimos que el lenguaje L es completo para

5 5 Curso Básico de Computación C con respecto a la reducción tiempo-polinomial (resp. espacio-logarítmica) si L está en C y cada lenguaje en C es reducible en tiempo-polinomial (resp. espacio-logarítmico) a L. Decimos que L es difícil para C con respecto a la reducción tiempo-polinomial (resp. espacio-logarítmica). Si cada lenguaje en C es reducible en tiempo-polinomial (resp. espacio-logarítmica) a L, pero L no necesariamente está en C. Dos casos especiales son de gran importancia e introducimos notación para ellos. L es NP completo (NP-difícil) si L es completo (difícil) para N P con respecto a las reducciones espacio-logarítmicas. L es PSPACE completo (PSPACE-difícil), si L es completo (difícil) para PSPACE con respecto a las reducciones de tiempo-polinomial. Para mostrar un primer lenguaje L 0 NP completo debemos dar una reducción espacio-logarítmica de cada lenguaje en N P a L 0. Una vez que tenemos un problema L 0 NP completo, podemos probar que hay otro lenguaje L 1 en N P que es N P completo, mostrando una reducción espacio-logarítmica de L 0 a L 1, pues la composición de dos reducciones espacio-logarítmicas es una reducción espacio-logarítmica por el lema Esta misma técnica será usada para estáblecer problemas completos para otras clases Algunos Problemas NP-Completos La importancia de la clase de problemas NP-completos es que incluyen muchos problemas que son naturales y han sido analizados seriamente para soluciones eficientes. Para ninguno de estos problemas se sabe si tienen solución en tiempo-polinomial. El hecho de que si alguno de estos problemas estuviese en P, todos lo estarían, refuerza la idea que es poco probable que tengan soluciones en tiempo polinomial. Además, si para un nuevo problema se prueba que es NP-completo entonces tenemos el mismo grado de confianza de que el nuevo problema es difícil para los problemas clásicos que tenemos. En el primer problema mostramos que era NP-completo y sucede que históricamente el primero de tales problemas es el de la satisfiabilidad para expresiones Booleanas. El problema de la satisfiabilidad Una expresión Booleana es una expresión compuesta de variables, paréntesis y el operador (lógico AND), (lógico OR) y (negación). La prioridad de estos operadores es: la más alta, luego y luego. Las variables toman valores 0 (falso) y 1 (verdadero) y con ellas forman expresiones. Si E 1 y E 2 son expresiones Booleanas, entonces el valor de E 1 E 2 es 1 si E 1 y E 2 tienen valores de 1 y 0 en otro caso. El valor de E 1 E 2 es 1 si E 1 o E 2 tienen valor de 1, 0 en otro caso. El valor de E 1 es 1 si E 1 es 0 y 0 si E 1 es 1. Una expresión es satisfiable si hay algún asignamiento de ceros y unos a las variables que dan la expresión de valor 1. El problema de la satisfiabilidad es para determinar, cuando, dada una expresión Booleana es o no satisfiable.

6 Feliú Sagols Troncoso Matemáticas-Cinvestav 6 Podemos representar el problema de la satisfiabilidad como un lenguaje L sat como sigue: sean las variables de algunas expresiones x 1,..., x m para alguna m. Codifica x i como el símbolo x seguido por i escrita en binario. El alfabeto de L sat es: {,,, (, ), x, 0, 1} La longitud de la versión codificada de una expresión de n símbolos es fácil de ver que no puede tener más de [n log 2 n] símbolos. Cada símbolo, como otras variables, será codificado por un símbolo, no hay más que [ n ] variables diferentes en una expresión de longitud n y el código para una variable requiere no 2 más de 1+[log 2 n] símbolos. Debemos de ahora en adelante tratar las palabras en L sat, como aquellas que representan una expresión de longitud n. Nuestros resultados no dependen de sí nosotros usamos n o n log n para la longitud de la palabra, pues log(n log n) 2 log n, y debemos de distribuir con reducciones espacio-logarítmicas. Una expresión Booleana se le puede llamar una forma normal conjunctiva (FNC) si es de la forma E 1 E2... Ek y cada E i, llamada una cláusula (o conjunción), es de la forma α i1 αi2... αiri, donde cada α ij es una literal, esto es, o es x o x, para alguna variable x. Usualmente escribimos x en lugar de x. Por ejemplo (x 1 x2 ) (x 1 x3 x4 ) x 3 está en FNC. La expresión se dice que esta en 3-FNC si cada cláusula tiene exactamente tres letras diferentes. El ejemplo anterior no está en 3-FNC porque la primera y la tercera cláusula tienen menos de tres literales. La satisfiabilidad es NP-Completa Empecemos por dar una reducción espacio-logarítmica de cada lenguaje en N P a L sat. Teorema 13.1 El problema de la satisfiabilidad es NP-Completo. Prueba. La parte fácil de la prueba es ver que L sat está en N P. Para determinar si una expresión de longitud n es satisfiable, de manera no determinística suponemos valores para todas las variables y luego evaluamos la expresión. De ésta manera L sat esta en N P. Para mostrar que cada lenguaje en N P es reducible a L sat, para cada MTN M que es acotada en tiempo por un polinomio p(n), daremos un algoritmo espacio-logarítmico, que toma como entrada una cadena x y produce una formula Booleana E x que es satisfiable si y solo si M acepta x. Ahora describiremos E x. Sea #β 0 #β 1 #... #β p(n) un cálculo de M, donde cada β i es una DI que consiste de exactamente p(n) símbolos. Si la aceptación ocurre antes del p(n)-esimo movimiento, permitimos aceptar el repetir la DI, así cada cálculo tiene exactamente p(n) + 1 DI s. En cada DI agrupamos el estado con el símbolo leído para formar un símbolo

7 7 Curso Básico de Computación compuesto. Además el símbolo compuesto en la i-esima DI que contiene un entero m indica el movimiento por el cual la i+1-esima DI se sigue de la i- esima. Los números son asignados a los movimientos arbitrarios, esto ordena el conjunto finito de elecciones que M puede hacer dado un estado y un símbolo de la cinta. Para cada símbolo que puede aparecer en un cálculo y para cada i, con 0 i < (p(n) + 1) 2, creamos una variable Booleana C ix para indicar si el i-esimo símbolo en el cálculo es X. (El 0-esimo símbolo en el cálculo es el inicial #.) La expresión E x que debemos construir será verdadera para un asignamiento dado a las C ix si y solo si las C ix que son verdaderas corresponden a un cálculo válido. La expresión E x establece lo siguiente: 1. Las C ix que son verdaderas corresponden a una cadena de símbolos en la que exactamente una C ix es verdadera para cada i. 2. La DI β 0 es una DI inicial de M con entradas x. 3. La última DI contiene un estado final. 4. Cada DI se sigue de la previa por el movimiento de M que es indicado La formula E x es el AND lógico de cuatro formulas, cada una cumple las condiciones de arriba. La primera formula, dice que para cada i entre 0 y (p(n) + 1) 2 1, exactamente una C ix es verdadera, es: [ C ix ( (C ix C iy ))] i X X Y Para un valor dado de i, el término V x C ix obliga a que al menos un C ix sea cierto y X Y (C ix CiY ) obliga que a lo más uno sea cierto. Sea x = a 1 a 2... a n. La segunda formula expresa el hecho que β 0 es una DI inicial esto es en cambio el AND de las siguientes expresiones. i) c 0# cp(n)+1,#. Los símbolos en la posición 0 y p(n) + 1 son #. ii) c 1Y1 c 1Y2... c 1Yk donde Y 1, Y 2,..., Y k son todos símbolos compuestos que representan símbolos de la cinta a i, el estado inicial q 0 y el número de un movimiento legal de M en el estado q 0 leyendo el símbolo a i. Esta cláusula establece que el primer símbolo de β 0 es correcto. iii) 2 i n c ia i. El segundo hasta el n-esimo símbolo de β 0 son correctos. iv) n<i<p(n) c ib. El resto de los símbolos de β 0 son blancos.

8 Feliú Sagols Troncoso Matemáticas-Cinvestav 8 La última formula nos dice que la última DI tiene un estado de aceptación. Esto puede ser escrito como: ( ) c ix p(n)(p(n)+1)<i<(p(n)+1) 2 Donde F es el conjunto de símbolos compuestos que incluyen un estado final. Para ver como escribir la cuarta formula declarando que cada DI β i, i 1, se sigue de β i 1 por el movimiento que aparece en el símbolo compuesto de β i 1, observe que podemos esencialmente deducir cada símbolo de β i del correspondiente símbolo de β i 1 y los símbolos sobre cada lugar (que podría ser #). Esto es, el símbolo en β i es el mismo que el símbolo correspondiente en β i 1 a menos que el símbolo tenga el estado y movimiento, o uno de los símbolos adyacentes tenga el estado o movimiento. Y el movimiento causa el cambio de la posición de la cabeza a donde el símbolo en cuestión de β i. Note que este símbolo de β i debe ser el único que representa el estado, también representa un movimiento arbitrario permitido de M, así, podría haber más de un símbolo permitido. También note que si la DI previa tiene un estado de aceptación, la DI actual y previa son iguales. Podemos por lo tanto fácilmente especificar f(w, X, Y, Z) que es verdadera si y solo si el símbolo Z aparece en posición j de alguna DI dado que W, X y Y son los símbolos en las posiciones j 1, j y j + 1 de las DI s previas [W es # si j=1 y Y es # si j=p(n)]. Es conveniente también decir que f(w, #, X, #) es verdadera, así podemos tratar a los marcadores entre las DI s como tratamos a los símbolos en las DI s. Podemos ahora expresar la cuarta fórmula como: ^ p(n)<j<(p(n)+1) 2 _ W, X, Y, Z tal que f(w, X, Y, Z) X F (c j p(n) 2,W c j p(n),y c jz )! Es fácil, dado un cálculo aceptable de M sobre x, encontrar valores verdaderos para las C ix que hacen E x verdadera. Solo se hace C ix verdadera si y solo si el símbolo i-esimo del cálculo es X. A la inversa, dado un asignamiento de valores verdaderos que hacen E x verdadero, la cuarta formula de arriba garantiza que hay un cálculo aceptable de M sobre x. Note que aunque M es no determinístico, el hecho de que un movimiento elegido es incorporado dentro de cada DI, garantiza, que el siguiente estado, que el símbolo impreso y la dirección del movimiento de la cabeza va de una DI a la siguiente, todo será consistente para alguna elección de M. Además, las formulas que componen a E x son de longitud O(p 2 (n)) y es suficientemente simple que una M T espacio-logarítmica puede generarlos dado x sobre su entrada. La MT solo necesita suficiente almacenaje para contar a

9 9 Curso Básico de Computación (p(n)+1) 2. Como el logaritmo de un polinomio en n es algunas veces de tiempo constante log n, esto puede ser hecho almacenando O(log n). Hemos mostrado de ésta manera que cada lenguaje en NP es espacio-logarítmico reducible a L sat, demostrando que L sat es NP-completo. x Algoritmo que construye Ex a partir de x E x Algoritmo para Lsat Algoritmo determinístico en tiempo polinomial para un lenguaje arbitrario NP Figura 13.1 Algoritmo para un conjunto arbitrario L en N P dado un algoritmo para L sat. Solo hemos mostrado que la satisfiabilidad para expresiones Booleanas es NPcompleto. Esto significa que un algoritmo en tiempo-polinomial que acepta L sat debería ser usado para aceptar algún lenguaje en N P. Sea L el lenguaje aceptado por alguna maquina de Turing M no determinista acotada en tiempo p(n), y sea A el transductor espacio-logarítmico (en consecuencia en tiempopolinomial) que convierte x a E x, donde E x es satisfiable si y solo si M acepta x. Entonces A combinada con el algoritmo para L sat como se muestra en la figura 13.1 es un algoritmo de tiempo-polinomial determinístico que acepta L. De esta manera tenemos la existencia de un algoritmo en tiempo polinomial para este único problema, la satisfiabilidad de expresiones Booleanas, implicaría P=N P. Restricciones de Problemás de Satisfiabilidad que son NP-completos Recordemos que una formula Booleana es una forma normal conjuntiva (FNC) si es el símbolo lógico AND de las cláusulas, las cuales son el símbolo lógico OR, de literales. Decimos que la formula está en k-fnc si cada cláusula tiene k literales. Por ejemplo (x y) (x z) (y z) está en 2-FNC. Ahora debemos considerar dos lenguajes, L csat, el conjunto de formulas satisfiables en FNC, y L 3sat, el conjunto de formulas satisfiables en 3-FNC. Damos reducciones espacio-logarítmicas de L sat a L csat y L csat a L 3sat, mostrando los dos problemás más recientes NP-completos por el Lema En cada caso mapeamos una expresión a otra expresión que puede no ser equivalente, pero es satisfiable si y solo si la expresión original es satisfiable. Teorema 13.2 L csat, el problema de satisfiabilidad para expresiones FNC, es NP-completo. Prueba. Claramente L csat está en N P, como lo esta L sat. Reducimos L sat a L csat como sigue: sea E una expresión Booleana arbitraria de longitud n. Ciertamente el numero de la ocurrencia de las variables en M no excede n, ni

10 Feliú Sagols Troncoso Matemáticas-Cinvestav 10 es el número de los operadores y. Usando las identidades: (E 1 E 2 ) = (E) (E 2 ) (E 1 E 2 ) = (E) (E 2 )... (13.1) E 1 = E 1 podemos transformar E a una expresión equivalente E, en la cual el operador es aplicado solo a variables, nunca a expresiones más complejas. La validez de las ecuaciones (13.1) puede ser revisada considerando los cuatro asignamientos de los valores 0 y 1 a E 1 y a E 2. Incidentalmente, las primeras dos de estas ecuaciones son conocidas como leyes de De Morgan. La transformación puede ser vista como una composición de dos transformaciones espacio-logarítmicas. Como un resultado de la primera transformación, cada símbolo de negación que precede inmediatamente a una variable es reemplazado por una barra sobre la variable, y cada paréntesis que cierra debe estar apareado con un paréntesis que abre, son inmediatamente precedidos por un signo de negación y son reemplazados por ). El símbolo indica el final del alcance de una negación. Esta primera transformación esta fácilmente dotada en espacio-logarítmico usando un contador para localizar los paréntesis apareados. La segunda transformación esta dotada por un automata finito que lee la entrada de izquierda a derecha dejando la paridad (modulo 2 sum) de las negaciones activas, las cuales están seguidas de paréntesis abiertos pero no han sido vistas en paréntesis cerrados. Cuando la igualdad de negaciones es impar, x es reemplazada por x, x por x, por y por. Los símbolo y son eliminados. Esta transformación es correcta y puede ser probada usando la ecuación 13.1 por inducción sobre la longitud de una expresión. Ahora tenemos una expresión E en la cual todas las negaciones son aplicadas directamente a variables. Ahora creamos E, una expresión en FNC que es satisfiable si y solo si E es satisfiable. Sean V 1 y V 2 dos conjuntos de variables, con V 1 V 2. Decimos que un asignamiento de valores para V 2 es una extensión de un asignamiento de valores para V 1 si los asignamientos concuerdan con las variables de V 1. Debemos probar por inducción sobre r, el número de s y s en una expresión E, cuyas negaciones son aplicadas a variables, que si E = n, entonces hay una lista de a lo más n cláusulas, F 1,..., F k sobre un conjunto de variables que incluyen las variables de E y a lo más otras n variables, de tal manera que E tiene el valor de 1, por una asignación a sus variables, si y solo si hay una extensión del asignamiento que satisface F 1 F 2... F k. Base. r = 0. Entonces E es una literal, y debemos tomar esa literal en una cláusula para satisfacer las condiciones.

11 11 Curso Básico de Computación Inducción Si E = E 1 E 2, sean F 1, F 2,..., F k y G 1, G 2,..., G l las cláusulas para E 1 y E 2, las cuales existen por hipótesis de inducción. Asumimos, sin perdida de generalidad que ninguna variable que no está en E aparecen al mismo tiempo entre las F s y entre las G s. Entonces las F 1, F 2,..., F k y G 1, G 2,..., G l satisfacen las condiciones para E. Si E = E 1 E 2, sean las F s y las G s como arriba, y sea y una nueva variable. Entonces y F 1, y F 2,..., F k, y G 1, y G 2,..., y G l satisfacen las condiciones. En la prueba, supusimos una asignación de valores que satisfacen E. Entonces debe de satisfacer a E 1 o a E 2. Si la asignación satisface a E 1, entonces alguna extension de la asignación satisface F 1,..., F k. Para alguna extensión de éste asignamiento que asigna y = 0 satsfará todas las cláusulas para E. Si la asignación satisface a E 2 un argumento similar es suficiente. En cambio, supongamos que todas las cláusulas para E son satisfechas para alguna asignación. Si esa asignación nos da y = 1, entonces todas las G 1,..., G l deben de satisfacerse, así E 2 deberá satisfacerse. Un argumento similar se aplica si y = 0. La expresión deseada E esta compuesta por todas las cláusulas para E conectadas por s. Para ver que la trnsformación anterior puede ser dotado en espacio-logarítmico, considere el árbol de parse para E. Sea y i la variable introducida por la i-esima. La expresión final es el AND lógico de las cláusulas, donde cada cláusula contiene una literal de la expresión original. Además si la literal está en el subárbol izquierdo de la i-esima, entonces la cláusula también contiene a y i. Si la literal está en el subárbol derecho de la i-esima, entonces la cláusula contiene a y i. La entrada es leída de izquierda a derecha. Cada vez que una literal es encontrada, una cláusula es producida. Para determinar cuales y i s y y i s están incluidas en la cláusula, usamos un contador de longitud log n para recordar nuestro lugar sobre la entrada. Entonces leemos la entrada intacta, y para cada símbolo, decimos que el i-esimo de la izquierda, determinamos sus operadores izquierdo y derecho, usando otro contador de longitud log n para contar los paréntesis. Si la ocurrencia de la literal es en el operando izquierdo, generamos y i ; si es en el operando derecho, generamos y i, y si no hay ocurrencia de la literal en ninguno de los operandos no generamos ni a y i ni a y i. De ésta manera hemos reducido cada expresión Booleana E a una expresión E en F NC que está en L csat si y solo si E está en L sat. Como la reducción es dotada en espacio-logarítmico, la NP-completes de L sat implica la NP-completes de L csat. Ejemplo 13.1 Sea: E = ( (x 1 x 2 ) ( x 1 x 2 )) Si aplicamos las leyes de De Morgan, tenemos: E = (x 1 x 2 ) (x 1 x 3 )

12 Feliú Sagols Troncoso Matemáticas-Cinvestav 12 La transformación a la FNC introduce variables y 1 y y 2 que nos da: E = (x 1 y 1 y 2 ) (x 2 y 1 y 2 ) (x 1 y 2 ) (x 3 y 2 ) Teorema 13.3 L 3sat, el problema de la satisfiabilidad para expresiones 3-FNC es NP-completo. Prueba. Claramente, L 3sat está en N P, pues L sat lo está. Sea E = F 1 F 2... F k una expresión en FNC. Supongamos que algunas cláusulas F i tienen más de tres literales, digamos: F i = α 1 α 2... α l l > 3 Introducimos nuevas variables y 1, y 2,... y l 3, y reemplazamos F i por la ecuación (13.2) que es: (α 1 α 2 y 1 ) (α 3 y 1 y 2 ) (α 4 y 2 y 3 )... (α l 2 y l 4 y l 3 ) (α l 1 α l y l 3 ) Entonces F i se satisface por una asignación si y solo si una extensión de esa asignación satisface (13.2). Una asignación que satisface a F i debe tener α j =1 para algún j. De ésta manera asumimos que la asignación les da el valor de 0 a las literales α 1,..., α j 1 y α j tiene el valor 1- Entonces y m = 1 para m j 2 y y m = 0 para m j 1 es una extensión de la asignación que satisface (13.2). De manera inversa, debemos mostrar que algúna asignación que satisface (13.2) debe cumplir que α j = 1 para algún j y que de ésta manera satisface F i. Supongamos lo contrario, esto es que la asignación dada otorga el valor de 0 a todas las a ms. Entonces, como la primera cláusula tiene el valor 1, se sigue que y 1 = 1. Como la segunda cláusula tiene el valor 1, y 2 debe ser 1, y por inducción, y m = 1 para todo m. Pero entonces la última cláusula tendría el valor 0, contradiciendo el hecho de que se satisfacía (13.2). De ésta manera algúna asignación que satisface (13.2) también satisface F i. El único cambio necesario que hace falta es cuando F i consiste de una o dos literales. En el último caso reemplazamos α 1 α 2 por (α 1 α 2 y) (α 1 α 2 y), donde y es una nueva variable, y en el caso anterior una introducción de dos nuevas variables fue suficiente. De ésta manera E puede ser convertido a una expresión 3-FNC que es satisfiable si y solo si E es satisfiable. Es fácil dotar en espacio-logaritmo a la transformación. Tenemos así una reducción espacio-logarítmica de L csat a L 3sat y concluimos que L 3sat es NP-completo. El problema de la cubierta por vértices Resulta que la satisfiabilidad 3-FNC es un problema conveniente para reducirlo a otro problema y mostrar que ambos son NP-completos, solo como un problema de correspondencia ya destinado es útil para mostrar otros problemas indecidibles.

13 13 Curso Básico de Computación Otro problema NP-completo que es a menudo fácil de reducir a otro problema es el problema de la cubierta por vértices. Sea G = (V, E) una gráfica (no dirigida) con conjunto de vertices V y aristas E. Un subconjunto A V se llama una cubierta por vertices de G si cada arista (u, v) en E, por lo menos uno de los dos está en A. El problema de la cubierta por vertices es: dada una gráfica G y un entero k, G tiene una cubierta por vertices de tamaño k o menor? Podemos representar este problema como un lenguaje L vc que consiste de las cadenas de la forma: k en binario, seguido por una marca, seguido por una lista de vertices, donde v i está representado por v seguido por i escrito en binario, y una lista de aristas, donde (v i, v j ) están representados por los códigos de v i y v j rodeados de paréntesis. L vc consiste de todas aquellas cadenas que representa a k y G, tales que G tiene una cubierta por vertices de tamaño k o menor. Teorema 13.4 L vc, el problema de la cubierta por vertices es NP-completo. Prueba. Para mostrar que L vc está en N P, supongamos que tenemos un subconjunto de k vertices y revisamos que cubra todas las aristas. esto se puede hacer en un tiempo proporcional al cuadrado de la longitud de la representación del problema. Se muestra que L vc es NP-completo al reducir la satisfiabilidad 3-FNC a L vc. Sea F = F 1 F 2... F q una expresión en 3-FNC, donde cada F i es una cláusula de la forma (α i1 α i2 α i3 ), y cada α ij es una literal. Construimos una gráfica no dirigida G = (V, E) cuyos vertices son pares de enteros (i, j), 1 i q,1 j 3. El vértice (i, j) representa la j-esima literal de la i-esima cláusula. Las aristas de la gráfica son: 1. [(i, j), (i, k)] siempre que j k, y 2. [(i, j), (k, l)] si α ij = α kl Cada par de vértices correspondientes a la misma cláusula están conectados por una arista en (1). Cada par de vértices correspondientes a una literal y su complemento están conectadas por una arista en (2). G ha sido construida de tal manera que tiene una cubierta por vertices de tamaño 2q si y solo si F es satisfiable. Para ver esto, asumimos que F es satisfiable y fijamos una asignación que satisface a F. Cada cláusula debe tener una literal cuyo valor es 1. Se selecciona una literal para cada cláusula. Borramos los q vertices correspondientes a estas literales de V. El resto de los vertices forman una cubierta por vertices de tamaño 2q. Claramente, para cada i, sólo un vértice de la forma (i, j) está ausente de la cubierta, y de ahí que cada arista en (1) es incidente sobre por lo menos un vértice en la cubierta. Como las aristas en (2) son incidentes sobre dos vértices correspondientes a la misma literal y su complemento, y como podríamos no haber borrado ambas (la literal y su complemento), o uno o el otro de estos vertices está en la cubierta. De ésta manera efectivamente tenemos una cubierta de tamaño 2q. De manera inversa, asumamos que tenemos una cubierta por vertices de tamaño 2q. Para cada i la cubierta debe contener a todos, pero un vértice de la forma (i, j), por si dos de tales vertices estuviese ausente, una arista [(i, j), (i, k)] podría no ser

14 Feliú Sagols Troncoso Matemáticas-Cinvestav 14 incidente sobre ningún vértice en la cubierta. Para cada i asignándole el valor 1 a la literal α ij correspondiente al vértice (i, j) que no está en la cubierta. Así no hay problemas, porque dos vertices que no están en la cubierta no pueden corresponder a una literal y su complemento, de lo contrario habría una arista en el grupo (2) que es no incidente sobre ningún vértice de la cubierta. Para ésta asignación F tiene el valor 1. De ésta manera F es satisfiable. La reducción es fácilmente dotada en espacio-logaritmo. Podemos esencialmente usar los nombres de las variables en la formula F como los vertices de G, agregando dos bits para la j-componente en el vértice (i, j). Aristas del tipo (1) son generadas directamente de las cláusulas, mientras que aquellas del tipo (2) requieren dos contadores para considerar todos los pares de literales. De ésta manera concluimos que L vc es NP-completo. Ejemplo 13.2 Considere la expresión: F = (x 1 x 2 x 3 ) (x 1 x 2 x 4 ) (x 2 x 3 x 5 ) (x 3 x 4 x 5 ). La construcción del Teorema 13.4 produce la gráfica de la Figura 13.2 x 1 = 1, x 2 = 1, x 3 = 1, x 4 = 0 satisfacen F y corresponden con la cubierta por vertices [1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 3], [4 y [4, 3]. x 1 [1,1] x 1 [2,1] x 2 [3,1] x 3 [4,1] x 2 [1,2] x 2 [2,2] x 3 [3,2] x 4 [4,2] x 3 [1,3] x 4 [2,3] x 5 [3,3] x 5 [4,3] Figura 13.2 Gráfica contruida por el Teorema 13.4 Los dobles círculos indican vértices en la cubierta por vértices.

Introducción a la Complejidad Computacional

Introducción a la Complejidad Computacional Introducción a la Complejidad Computacional El análisis sobre decidibilidad que hemos hecho nos permite saber qué podemos hacer y qué no podemos hacer. Pero nada sabemos de qué tan difícil resolver los

Más detalles

Problemas NP-completos

Problemas NP-completos Análisis de Algoritmos Problemas NP-completos Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Problemas NP-completos p. 1 Problemas NP-completos La clase NP contiene numerosos problemas

Más detalles

La lógica de segundo orden: Sintaxis

La lógica de segundo orden: Sintaxis La lógica de segundo orden: Sintaxis Dado: Vocabulario L Definición La lógica de segundo orden (LSO) sobre L es definida como la extensión de LPO que incluye las siguientes reglas: Si t 1,..., t k son

Más detalles

Un tercer problema NP-completo: Programación entera

Un tercer problema NP-completo: Programación entera Un tercer problema NP-completo: Programación entera Un problema muy estudiado por su utilidad práctica: PROG-ENT = {(A, b) A x b es un sistema de ecuaciones lineales enteras que tiene solución}. Teorema

Más detalles

3-Coloring es NP-Completo

3-Coloring es NP-Completo 3-Coloring es NP-Completo Lic. Luis Miguel Prado Llanes Posgrado en Ingeniería de Sistemas Universidad Autónoma de Nuevo León 26 de mayo de 2008 Prado Llanes (PISIS) 3-Coloring 26.05.2008 1 / 36 Contenido

Más detalles

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones 1 Curso Básico de Computación 5 Autómatas de pila 5.1 Descripción informal Un autómata de pila es esencialmente un autómata finito que controla una cinta de entrada provista de una cabeza de lectura y

Más detalles

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

8 Indecibilidad. 8.1 Problemas

8 Indecibilidad. 8.1 Problemas Curso Básico de Computación 8 Indecibilidad Ahora se considera la clase de lenguajes recursivos y recursivamente enumerables. El aspecto más interesante de este estudio trata de lenguajes cuyas cadenas

Más detalles

Clases de complejidad computacional: P y NP

Clases de complejidad computacional: P y NP 1er cuatrimestre 2006 La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización).

Más detalles

INAPROXIMABILIDAD. Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016

INAPROXIMABILIDAD. Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016 INAPROXIMABILIDAD Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016 Plan de la presentación - Definición de inaproximabilidad - Ejemplo con el problema

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 4 Gramáticas libres de contexto Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 4 Gramáticas libres

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad 300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad Pontificia niversidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Reducibilidad

Más detalles

Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional

Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo, Uruguay dictado semestre 2-2009

Más detalles

CLASES DE PROBLEMAS. 1) Introducción 2) Problemas de decisión, Lenguajes, Codificación. y la clase NP-Completa. 6) Otras clases de problemas NP-

CLASES DE PROBLEMAS. 1) Introducción 2) Problemas de decisión, Lenguajes, Codificación. y la clase NP-Completa. 6) Otras clases de problemas NP- CLASES DE PROBLEMAS 1) Introducción 2) Problemas de decisión, Lenguajes, Codificación. y la clase NP-Completa. 6) Otras clases de problemas Computers and Intractability NP- guide to the theory of 1. Introducción:

Más detalles

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial Departamento de Tecnologías de la Información Tema 5 Decidibilidad Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Lenguajes reconocibles y decidibles 5.2 Problemas decidibles sobre lenguajes

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 8 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 1 / 58 8 Indecibilidad

Más detalles

Máquinas de Turing no-determinísticas (MTND)

Máquinas de Turing no-determinísticas (MTND) Máquinas de Turing no-determinísticas (MTND) Una MTND tiene los mismos componentes que vimos para una MTD, con la siguiente excepción. Un programa en una MTND es una tabla que mapea un par (q i, t i )

Más detalles

Algoritmos en teoría de números

Algoritmos en teoría de números Algoritmos en teoría de números IIC2283 IIC2283 Algoritmos en teoría de números 1 / 92 Para recordar: aritmética modular Dados dos números a, b Z, si b > 0 entonces existen α, β Z tales que 0 β < b y a

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación Autómatas finitos y expresiones regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Autómatas

Más detalles

Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016

Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016 Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016 I Máquinas de Turing. 1. Qué es un a Máquina de Turing? Cómo se define? Cómo se llaman las teorías que

Más detalles

Sistema Axiomático para el Cálculo Proposicional

Sistema Axiomático para el Cálculo Proposicional Sistema Axiomático para el Cálculo Proposicional Lógica Matemática José de Jesús Lavalle Martínez 12 de julio de 2011 Resumen Este documento es una traducción de partes de la sección 1.4 AN AXIOM SYSTEM

Más detalles

Máquinas de Turing Definición y descripción

Máquinas de Turing Definición y descripción Capítulo 12 Máquinas de Turing 12.1. Definición y descripción Definición 1 Se llama máquina de Turing a toda séptupla M = (Γ,Σ,,Q,q 0,f,F), donde: Γ es el alfabeto de símbolos de la cinta. Σ Γ es el alfabeto

Más detalles

Máquinas de estado finito y expresiones regulares

Máquinas de estado finito y expresiones regulares Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.

Más detalles

Clases de complejidad

Clases de complejidad Análisis de Algoritmos Clases de complejidad Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Clases de complejidad p. 1 Clase de complejidad Los requisitos para definir una clase: fijar

Más detalles

MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA

MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA ALGORITMOS DE APROXIMACIÓN PARA PROBLEMAS NP DUROS MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA UNIVERSIDAD DEL CAUCA FACULTAD DE CIENCIAS NATURALES, EXACTAS Y DE LA EDUCACIÓN DEPARTAMENTO DE MATEMÁTICAS

Más detalles

Teoría de la Computación puesta en Práctica

Teoría de la Computación puesta en Práctica Teoría de la Computación puesta en Práctica Marcelo Arenas M. Arenas Teoría de la Computación puesta en Práctica 1 / 24 Problema a resolver WiMAX (Worldwide Interoperability for Microwave Access): estándar

Más detalles

Continuidad y monotonía

Continuidad y monotonía Tema 14 Continuidad y monotonía Generalizando lo que se hizo en su momento para sucesiones, definiremos la monotonía de una función, en forma bien fácil de adivinar. Probaremos entonces dos resultados

Más detalles

Definiciones Inductivas

Definiciones Inductivas Definiciones Inductivas Lógica Matemática José de Jesús Lavalle Martínez 24 de junio de 2011 Resumen Este documento es una traducción de partes de la sección 2.3 Inductive Definitions del libro Logic for

Más detalles

Algoritmos pseudo-polinomiales

Algoritmos pseudo-polinomiales Análisis de Algoritmos Algoritmos pseudo-polinomiales Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Algoritmos pseudo-polinomiales p. 1 HAMILTON PATH es NP-completo La reducción es

Más detalles

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas

Más detalles

Análisis y Diseño de Algoritmos

Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos Teoría NP-Completeness DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problemas de Decisión Teoría de NP-Completeness Diseñada para aplicarse solo a problemas

Más detalles

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad Modelos de Informática TeóricaCapítulo 2 - Clases de Complejidad p. 1/40 Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad Serafín Moral Callejón Departamento de Ciencias de la Computación

Más detalles

Clases de Complejidad

Clases de Complejidad Clases de Complejidad IIC3242 IIC3242 Clases de Complejidad 1 / 71 Clases de complejidad: Supuestos Vamos a definir y estudiar las propiedades fundamentales de algunas de las clases de complejidad más

Más detalles

7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía

7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía 1 Curso Básico de Computación 7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing Una razón para aceptar a la máquina de Turing como un modelo general de cómputo es que el modelo con el que

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Clases de Complejidad

Clases de Complejidad Clases de Complejidad IIC3242 IIC3242 Clases de Complejidad 1 / 63 Clases de complejidad: Supuestos Vamos a definir y estudiar las propiedades fundamentales de algunas de las clases de complejidad más

Más detalles

Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes

Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes FUNCIONES DE VARIABLE COMPLEJA 1 Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes Lógica Matemática Una prioridad que tiene la enseñanza de la matemática

Más detalles

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009 MÁQUINAS DE TURING Las máquinas de Turing, así como los AF y los AP se utilizan para aceptar cadenas de un lenguaje definidas sobre un alfabeto A. El modelo básico de máquina de Turing, tiene un mecanismo

Más detalles

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42 Lógica Proposicional IIC2213 IIC2213 Lógica Proposicional 1/42 Por qué necesitamos la lógica? Necesitamos un lenguaje con una sintaxis precisa y una semántica bien definida. Queremos usar este lenguaje

Más detalles

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42 Lógica Proposicional IIC2213 IIC2213 Lógica Proposicional 1/42 Por qué necesitamos la lógica? Necesitamos un lenguaje con una sintaxis precisa y una semántica bien definida. Queremos usar este lenguaje

Más detalles

Complejidad Computacional

Complejidad Computacional Análisis y Complejidad de Algoritmos Complejidad Computacional Arturo Díaz Pérez Lenguajes formales Gramáticas formales Jerarquía de Chomski Teoría de la complejidad Una desigualdad computacional Computabilidad

Más detalles

Análisis y Complejidad de Algoritmos. Completitud NP

Análisis y Complejidad de Algoritmos. Completitud NP Análisis y Complejidad de Algoritmos Completitud NP Arturo Díaz Pérez Sección de Computación Departamento de Ingeniería Eléctrica CINVESTAV-IPN Av. Instituto Politécnico Nacional No. 2508 Col. San Pedro

Más detalles

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. NÚMEROS REALES Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. Un conjunto es una colección bien definida

Más detalles

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY Para el estudio de este tema es necesario analizar dos tipos de gramáticas de la clasificación de Chomsky, las regulares y las independientes de contexto, las

Más detalles

Problemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle

Problemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle Complejidad Complejidad, in NP completos Facultad de Ingeniería. Universidad del Valle Febrero 2017 Contenido Complejidad 1 2 3 Complejidad computacional Complejidad Introducción En ciencias de la computación

Más detalles

Conceptos básicos de paralelismo

Conceptos básicos de paralelismo Capítulo 2 Conceptos básicos de paralelismo 2.1. Introducción En este capítulo introduciremos algunos conceptos del paralelismo que se requeriran en la posterior discusión. Particularmente relevantes para

Más detalles

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares Curso Básico de Computación 3 Propiedades de los conjuntos regulares 3. Lema de Bombeo para conjuntos regulares El lema de bombeo es una herramienta poderosa para probar que ciertos lenguajes son no regulares.

Más detalles

Análisis de Algoritmos Problemas de grafos

Análisis de Algoritmos Problemas de grafos Análisis de Algoritmos Problemas de grafos Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Problemas de grafos p. 1 INDEPENDENT SET es NP-completo Necesitamos un gadget : el triángulo.

Más detalles

4. Complejidad computacional

4. Complejidad computacional Fundamentos de Programación Entera 4. Complejidad computacional Carlos Testuri Germán Ferrari Departamento de Investigación Operativa Instituto de Computación Facultad de Ingeniería Universidad de la República

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

1. Ecuaciones lineales en cuerpos finitos

1. Ecuaciones lineales en cuerpos finitos 1. Ecuaciones lineales en cuerpos finitos Un cuerpo es un conjunto F dotado de dos operaciones suma y producto, usualmente denotadas por + y que satisfacen los axiomas de los números reales, exceptuando

Más detalles

CLAVE V

CLAVE V CLAVE-962-2-V-2-00 -2017 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA DEPARTAMENTO DE MATEMÁTICA CURSO: Matemática para computación 2 SEMESTRE: Segundo CÓDIGO DEL CURSO: 962 TIPO DE EXAMEN:

Más detalles

Transformaciones lineales

Transformaciones lineales CAPíTULO 4 Transformaciones lineales En este capítulo estudiamos las primeras propiedades de las transformaciones lineales entre espacios vectoriales. 1. Construcciones de transformaciones lineales Lema

Más detalles

Modelos de Computación. Guía Modelos de Computación. Tema VI: Maquinas De Estado Finito Con Salida

Modelos de Computación. Guía Modelos de Computación. Tema VI: Maquinas De Estado Finito Con Salida Guía Modelos de Computación Tema VI: Maquinas De Estado Finito Con Salida Definición: Una maquina de estado finito M = (S, I, O, f, g, s0) consiste en un conjunto finito de estados S; un alfabeto de entradas

Más detalles

sup si A no es acotado.

sup si A no es acotado. Capítulo 6 Espacios completos 1. El teorema de Cantor En este capítulo estudiaremos más a fondo los espacios métricos completos. Lo primero que haremos es establecer la equivalencia entre completitud y

Más detalles

Números primos y compuestos

Números primos y compuestos Números primos y compuestos Jorge Tipe Villanueva Sabemos que cualquier entero positivo n tiene como divisores a 1 y n. Si asumimos que n > 1 entonces n tendrá al menos dos divisores pues 1 y n son diferentes.

Más detalles

Problemas de Decisión

Problemas de Decisión Problemas de Decisión La motivación de este capítulo puede estar dado por lo siguiente: Dado un conjunto Σ de fórmulas proposicionales en L(P ), existe un algoritmo general para determinar si Σ = ϕ Qué

Más detalles

Capítulo 8: Sistemas completos de contectivos

Capítulo 8: Sistemas completos de contectivos Capítulo 8: Sistemas completos de contectivos por G 3 Agosto 2014 Resumen Un conectivo de aridad n, es una función que asigna un valor de verdad a un conjuntos de n proposiciones ordenadas Mostramos que

Más detalles

Tema IV: NP completitud

Tema IV: NP completitud Tema IV: NP completitud Definición: Un lenguaje L Σ es NP duro sii para cada L NP se tiene que L p L. Proposición 1: Si L 1 es NP duro y L 1 p L 2, entonces L 2 es NP duro. Definición: Un lenguaje L Σ

Más detalles

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo. Capítulo 5 Campos finitos 5.1. Introducción Presentaremos algunos conceptos básicos de la teoría de los campos finitos. Para mayor información, consultar el texto de McEliece [61] o el de Lidl y Niederreiter

Más detalles

En esta sección se presenta detalles acerca del diseño para computar la función Get- 6.1 Observaciónes en la Estructura de Teorías para

En esta sección se presenta detalles acerca del diseño para computar la función Get- 6.1 Observaciónes en la Estructura de Teorías para Capítulo 6 Implementación En esta sección se presenta detalles acerca del diseño para computar la función Get- SafeBeliefs y hacer posible su implementación. 6.1 Observaciónes en la Estructura de Teorías

Más detalles

Autómata de Pila (AP, PDA) Sesión 18

Autómata de Pila (AP, PDA) Sesión 18 Sesión 8 Autómata de Pila (Pushdown Automata) Autómata de Pila (AP, PDA) Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack). L = {xx r x

Más detalles

Estructuras Discretas. Conjuntos. Conjuntos & Funciones. Especificación de Conjuntos.

Estructuras Discretas. Conjuntos. Conjuntos & Funciones. Especificación de Conjuntos. Estructuras Discretas Conjuntos Conjuntos & Funciones Claudio Lobos clobos@inf.utfsm.cl niversidad Técnica Federico Santa María Estructuras Discretas INF 152 Definición: conjunto n conjunto es una colección

Más detalles

Un poco de lógica. Ramón Espinosa. Departamento de Matemáticas, ITAM

Un poco de lógica. Ramón Espinosa. Departamento de Matemáticas, ITAM Un poco de lógica Ramón Espinosa Departamento de Matemáticas, ITAM La lógica, como el whisky, pierde sus efectos benéficos cuando se consume en grandes cantidades. Lord Dunsany Uno de los principales propósitos

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 13: Completitud NP M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción P y NP La clase P (Polinómicamente acotado)

Más detalles

Clase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012

Clase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012 Lógica y Computabilidad Primer Cuatrimestre 2012 Clase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012 Definición 1. Notaremos con Form al conjunto

Más detalles

PLE: Optimización Combinatoria

PLE: Optimización Combinatoria PLE: Optimización Combinatoria CCIR / Matemáticas euresti@itesm.mx CCIR / Matemáticas () PLE: Optimización Combinatoria euresti@itesm.mx 1 / 14 Introducción Para valorar el poder expresivo de los modelos

Más detalles

Capítulo 8 Sistemas completos de contectivos

Capítulo 8 Sistemas completos de contectivos Capítulo 8 Sistemas completos de contectivos por G 3 Agosto 2014 Resumen Un conectivo de aridad n, es una función que asigna un valor de verdad a un conjunto de n proposiciones ordenadas. Mostramos que

Más detalles

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen

Más detalles

Grupos libres. Presentaciones.

Grupos libres. Presentaciones. S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad

Más detalles

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo Departamento de Investigación Operativa Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo, Uruguay

Más detalles

Guía 4: Demostraciones en Cálculo Proposicional

Guía 4: Demostraciones en Cálculo Proposicional Introducción a los Algoritmos - 2do. cuatrimestre 2014 Guía 4: Demostraciones en Cálculo Proposicional Docentes: Walter Alini y Luciana Benotti. El objetivo principal de esta guía es lograr un buen entrenamiento

Más detalles

sup si A no es acotado.

sup si A no es acotado. Capítulo 5 Teoría de Baire 1. El teorema de Cantor En este capítulo estudiaremos más a fondo los espacios métricos completos. Lo primero que haremos es establecer la equivalencia entre completitud y la

Más detalles

1 De niciones básicas

1 De niciones básicas Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Profesor Luis astorga Apuntes sobre problemas de decisión y reducción

Más detalles

Autómata de Pila (AP, PDA) Tema 18

Autómata de Pila (AP, PDA) Tema 18 Tema Autómata de Pila (Pushdown Automata Autómata de Pila (AP, PDA Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack. Dr. Luis A. Pineda

Más detalles

Máquina de estado finito con salida sin salida

Máquina de estado finito con salida sin salida Máquina de estado finito con salida sin salida Máquina de estado finito Máquinas de estados finitos se utilizan ampliamente en aplicaciones en ciencias de la computación y redes de datos. Por ejemplo,

Más detalles

Problemas computacionales, intratabilidad y problemas NP completos. 26 de agosto de Facultad de Ingeniería. Universidad del Valle

Problemas computacionales, intratabilidad y problemas NP completos. 26 de agosto de Facultad de Ingeniería. Universidad del Valle Complejidad Complejidad, in NP completos Facultad de Ingeniería. Universidad del Valle 26 de agosto de 2014 Contenido Complejidad 1 2 3 Complejidad computacional Complejidad Notación De acuerdo a la complejidad

Más detalles

Unidad 2. Notación matemática

Unidad 2. Notación matemática Unidad 2 Notación matemática Notación matemática Introducción En el transcurso del texto se hará evidente que el análisis estadístico de un conjunto de datos requiere, en general, de un buen número de

Más detalles

Tema 1: Fundamentos.

Tema 1: Fundamentos. Tema 1: Fundamentos. 1. Nociones básicas de la Teoría de Conjuntos. Definición. Un conjunto es una colección de objetos. A los objetos de un conjunto se les llama elementos del conjunto. Se denominará

Más detalles

como les va con las practicas?

como les va con las practicas? como les va con las practicas? Problemas NP-completos y Estructuras de datos básicas (representación de datos) mat-151 1 Una maquina de Turing Aceptation state Una maquina de Turing Maquina de Turing Determinística,

Más detalles

Teoremas de la función inversa, función implícita y del rango constante

Teoremas de la función inversa, función implícita y del rango constante Teoremas de la función inversa, función implícita y del rango constante Pablo Zadunaisky 13 de marzo de 2015 A lo largo de este documento usamos varias normas sobre espacios vectoriales de dimensión finita,

Más detalles

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos Semana02[1/23] 9 de marzo de 2007 Introducción Semana02[2/23] La teoría de conjuntos gira en torno a la función proposicional x A. Los valores que hacen verdadera la función proposicional x A son aquellos

Más detalles

Cálculo infinitesimal Grado en Matemáticas Curso 20014/15 Clave de soluciones n o 6. Derivadas de orden superior

Cálculo infinitesimal Grado en Matemáticas Curso 20014/15 Clave de soluciones n o 6. Derivadas de orden superior Cálculo infinitesimal Grado en Matemáticas Curso 2004/5 Clave de soluciones n o 6 Derivadas de orden superior 70. Hallar los polinomios de Taylor del grado indicado y en el punto indicado para las siguientes

Más detalles

Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos

Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 6 Ciclos y arreglos Entidad fundamental:

Más detalles

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC 1 Curso ásico de Computación 6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de ombeo para LLC El lema de ombeo para LLC nos dice que siempre existe dos subcadenas cortas muy juntas que se

Más detalles

Definición 1.3. La disyunción de dos oraciones p y q es la oración p o q. La

Definición 1.3. La disyunción de dos oraciones p y q es la oración p o q. La Capítulo 1 Lógica 1.1. Oraciones Definición 1.1. Una oración es un enunciado que podemos clasificar como cierta o falsa, pero no de ambas. Toda oración tiene un bien definido valor de veracidad: es cierta

Más detalles

Propiedades de lenguajes independientes del contexto

Propiedades de lenguajes independientes del contexto Capítulo 12. Propiedades de lenguajes independientes del contexto 12.1. Identificación de lenguajes independientes del contexto Lema de bombeo. 12.2. Propiedades Cierre, Complemento de lenguajes, Sustitución,

Más detalles

Propiedades de Lenguajes Regulares

Propiedades de Lenguajes Regulares de INAOE (INAOE) 1 / 44 Contenido 1 2 3 4 (INAOE) 2 / 44 Existen diferentes herramientas que se pueden utilizar sobre los lenguajes regulares: El lema de : cualquier lenguaje regular satisface el pumping

Más detalles

58 7. ESPACIOS COCIENTE

58 7. ESPACIOS COCIENTE CAPíULO 7 Espacios cociente En esta sección estudiamos el cociente de un espacio vectorial por un subespacio W. Este cociente se define como el conjunto cociente de por una relación de equivalencia conveniente.

Más detalles

José Humberto Serrano Devia Página 1

José Humberto Serrano Devia Página 1 Similitudes entre el espacio y las series de Fourier Funciones Ortogonales En esta sección se muestra la forma en que los conceptos vectoriales de producto interno, o producto escalar, y el de ortogonalidad

Más detalles

Capítulo 2. Conjuntos Conjuntos.

Capítulo 2. Conjuntos Conjuntos. Capítulo 2 Conjuntos 2.1. Conjuntos. Definición 2.1. Un conjunto es una agrupación de objetos, distintos unos de otros, para formar un todo. Si un objeto x es parte de un conjunto C, decimos que x es elemento

Más detalles

Complejidad Computacional

Complejidad Computacional Complejidad Computacional Clasificación de Problemas Teoría de la Complejidad Estudia la manera de clasificar algoritmos como buenos o malos. Estudia la manera de clasificar problemas de acuerdo a la dificultad

Más detalles

Introducción a la complejidad computacional

Introducción a la complejidad computacional Introducción a la complejidad computacional definida sobre anillos arbitrarios 18 de junio de 2016 Fuente: http://www.utmmcss.com/ Por qué otro modelo? Continuo vs discreto. Intuición interiorizada del

Más detalles

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64 Lógica Proposicional IIC1253 IIC1253 Lógica Proposicional 1/64 Inicio de la Lógica Originalmente, la Lógica trataba con argumentos en el lenguaje natural. Ejemplo Es el siguiente argumento válido? Todos

Más detalles