Sei sulla pagina 1di 27

PROGRAMACIN II

18:27
GEB
1
Temas
Problemas demostrablemente irresolubles
PROGRAMACIN II

Problemas resolubles
Clase P, NP, NP completa y CO-NP

Objetivo

Que el estudiante logre entender la clasificacin de problemas y su importancia


para la Ciencia de la Computacin.

18:27 22
La Teora de la Computabilidad se ocupa de construir un formalismo
matemtico para razonar sobre la existencia o no existencia de
algoritmos efectivos para problemas particulares.
PROGRAMACIN II

Uno de los resultados fundamentales de Gdel, Turing y otros lgicos y


matemticos fue el de establecer la divisin de todos los problemas
matemticos imaginables en dos clases:

los demostrablemente irresolubles

los resolubles que admiten un algoritmo para su solucin

18:28 33
Los problemas resolubles admiten un algoritmo para su
solucin.
PROGRAMACIN II

Los algoritmos poseen costos para la resolucin del problema.

El rea de las ciencias de la computacin que se ocupa


de determinar los costos (espacio y tiempo) requeridos
para la ejecucin de un algoritmo es la Teora de la
Complejidad y los resultados que produce son
medidas y criterios para determinar la eficiencia de los
algoritmos.
18:28 44
DEMOSTRABLEMENTE Problema de la detencin de la MT
IRRESOLUBLES Dcimo Problema de Hilbert
PROGRAMACIN II

CLASE P
DEMOSTRABLEMENTE
Deterministicamente
DIFCILES
Polinmicos
(algoritmos ineficientes)
CLASES
RESOLUBLES CLASE NP
Tienen algoritmos No deterministicamente
eficientes o an Polinmicos
no se ha
demostrado su CLASE NP
inexistencia COMPLETA

CLASE CO NP
Complementarios
de los NP
18:28 55
Ciertos problemas son tan difciles que no existen algoritmos que los
resuelvan. Un problema para el que no existir nunca un algoritmo que
lo resuelva es llamado irresoluble o no computable.
PROGRAMACIN II

David Hilbert formula el Entscheidungsproblem o


problema de la decisin.
La meta de Hilbert era crear un sistema matemtico formal
"completo" y "consistente", en el que todas las aseveraciones
pudieran plantearse con precisin. Su idea era encontrar un
algoritmo que determinara la verdad o falsedad de cualquier David Hilbert
proposicin en el sistema formal. (1862-1943)

Alan Turing, 1937, public un trabajo sobre nmeros calculables


que puede considerarse en parte como el origen de la
Informtica Terica.
Introdujo la mquina de Turing (MT) como un modelo
matemtico abstracto que permiti formalizar el concepto de
Alan Turing algoritmo.
6
18:28 (1912-1954) 66
El problema de parada para mquinas de Turing es el ejemplo de problema
irresoluble ms conocido. Fue adems el primer problema que se demostr
formalmente que no tena solucin.
PROGRAMACIN II

Sea M una mquina de Turing arbitraria con un alfabeto de entrada .


Sea w *. Puede decidirse si la mquina M parar con la entrada
w?

Solucin: La respuesta a esta pregunta es negativa. No se puede determinar


si una mquina de Turing se detiene con una entrada arbitraria.

Relevancia en la Prctica
Al ejecutar un programa, este puede terminar despus de un nmero finito de
pasos o puede nunca terminar (entrar en un bucle infinito).
Existe un programa P, tal que, dado un programa cualquiera q y unos datos de
entrada x, muestre como salida 1 si q con entrada x termina en un nmero
finito de pasos o muestre como salida 0 si q con x entra a un bucle infinito.
Conocer si existe el programa P es, en trminos resumidos, el problema de la
parada.
18:28 77
Hallar un algoritmo para determinar si toda ecuacin diofntica (es
decir, del tipo P(u1, u2, ..., un) = 0 donde P es un polinomio con
coeficientes enteros) tiene o no soluciones enteras.
PROGRAMACIN II

Fue demostrado recursivamente insoluble por Matiyasevich en 1971.

Por ejemplo: x2 + y2 - z2 = 0 tiene una solucin x=3; y=4;z=5

6x18 - x + 3 = 0 no tiene solucin ya que x: 6x18 > x-3

8
18:28 88
El Instituto Clay de Matemticas (Cambridge, Massachusetts, EEUU) ha
seleccionado siete problemas an no resueltos, llamados "los siete problemas
del milenio"

P versus NP
PROGRAMACIN II

La conjetura de Hodge

La conjetura de Poincar

La Hiptesis de Riemann

El problema de Yang-Mills

El problema de Navier-Stokes

La conjetura de Birch y Swinnerton-Dyer


18:28 99
PROBLEMAS DEMOSTRABLEMENTE IRRESOLUBLES
Problema de la detencin de la MT
Dcimo problema de Hilbert
PROGRAMACIN II

PROBLEMAS DEMOSTRABLEMENTE DIFCILES

PROBLEMAS RESOLUBLES

En principio, siempre es posible resolverlos, pero para los cuales, slo se


conocen algoritmos ineficientes (y, por consiguiente, la mayora de las
veces, intratables).

18:28 10
10
El objetivo primario del estudio de la complejidad es definir cules problemas
son tratables y cules no, para luego considerar distintos grados de
tratabilidad.
PROGRAMACIN II

Problema

Intratable Tratable
complejidad complejidad
exponencial polinomial

18:28 11
11
Los matemticos han podido demostrar que:
PROGRAMACIN II

Para algunos de estos difciles problemas, nunca podrn


prepararse algoritmos eficientes.

Para muchos de los problemas importantes se tiene nicamente


la sospecha de que ser imposible encontrar algoritmos eficientes.

18:28 12
12
La CLASE P est constituida por algoritmos de tiempo polinmico.
Para que un problema sea asignado a la clase P ningn caso particular
PROGRAMACIN II

del problema puede exigir para su resolucin un tiempo mayor que el


polinmico.
El mtodo de solucin es determinstico en el sentido de que
garantiza la existencia de una solucin, y ello en un tiempo inferior al
de una cierta potencia fija del tamao N del problema.

18:28 13
13
CLASE NP significa No determinsticamente polinmicos.
La CLASE NP incluye a todos los problemas de la clase P, luego P es un
subconjunto de NP.
La clase NP contiene otros problemas de status menos seguro. Todos ellos
PROGRAMACIN II

son problemas resolubles al menos en teora; aunque por el momento


solamente se conocen algoritmos de tiempo exponencial.
La clase NP corresponde a la clase de problemas cuya solucin puede ser
verificada en tiempo polinomial.
Por ejemplo: Consideremos el problema del camino Hamiltoniano:
Un camino Hamiltoneano es un camino que pase una vez y solamente
una vez por todos los puntos (nodos) de un grafo.
Tiene un grafo G un ciclo Hamiltoniano? Un posible candidato para
este problema puede ser verificado en tiempo polinomial, luego este
problema est en la categora NP.
14
18:28 14
14
La CLASE NP completa, es un subconjunto de la clase NP compuesta
con los problemas que tienen la siguiente propiedad: "si uno de ellos
PROGRAMACIN II

pudiera resolverse mediante un algoritmo eficiente, entonces todos los


dems problemas de la clase NP podran resolverse eficientemente".

Es decir, todo otro miembro de la clase puede ser eficientemente


reducido a uno de ellos.

15
18:28 15
15
PROGRAMACIN II

Stephen Cook, en 1971, formul el Problema "P versus NP" y se lo considera el problema
central de las Ciencias de la Computacin.
Se conjetura que "P = NP", pero nadie lo ha podido demostrar. Tcnicamente, P denota a
la clase de los algoritmos que utilizan tiempo polinmico, mientras NP denota a la clase de
los algoritmos no determinsticos que emplean tiempo polinmico.
La importancia de la pregunta P = NP radica en que de encontrarse un algoritmo en P
para un problema NP-completo, todos los problemas NP-completos (y por ende, todos los
problemas de NP) tendran soluciones en tiempo polinmico.
16
18:28 16
16
Recorrer los 7 puentes pasando por cada
uno de ellos una y solamente una vez.
PROGRAMACIN II

C g
c
d
C

A e D g
c d
e
a A D
B f
f
b a b

B
18:28 17
17
Averiguar si existe un cierto camino que pase
exactamente una vez por cada lnea.
C
El grafo debe cumplir dos condiciones:
PROGRAMACIN II

g
1. Ser conexo. c d
2. En todos los nodos (con la posible
e
excepcin de 2) debe haber un A D
nmero par de lneas.
f
a b

El problema de los puentes no tiene caminos


B
eulerianos (cumple la primera pero no la
segunda condicin)

Este algoritmo tiene un tiempo de ejecucin O(n) es decir


pertenece a la Clase P

18:28 18
18
Determinar si existe un camino que pase una vez y solamente
una vez por todos los puntos (nodos) de un grafo.
No se descubri un algoritmo eficiente para este problema.
El problema de los puentes de Knisberg s tienen recorrido
hamiltoniano.
PROGRAMACIN II

C C

g g
c d c

e D
A D

f A
a b
b

B
B

Este problema pertenece a la Clase NP completa 19


18:28 19
19
Problema de emparejamiento: consiste en asignar habitaciones a estudiantes
PROGRAMACIN II

compatibles (segn hbitos, gustos, etc.). El conjunto de estudiantes se


representan por puntos en un grafo y cada par de estudiantes que puedan
compartir la habitacin por una lnea.

Existe un algoritmo eficiente para el caso de dos estudiantes, pero no se conoce


ningn algoritmo eficiente para resolver el problema si cada habitacin ha de ser
compartida por tres estudiantes.

18:28 20
20
Coloreado de mapas: consiste en determinar si se
podrn colorear todos los pases del mapa usando un
PROGRAMACIN II

nmero especfico de colores distintos de forma tal


que ningn par de pases fronterizos tengan el mismo
color. En 1975 se demostr que 4 colores bastan para
todo mapa. No se dispone de ningn algoritmo
eficiente que permita responder si es posible colorear
con tres tonos las distintas regiones de un mapa.
El coloreado de mapas es un caso particular del
coloreado de grafos. Cualquier mapa puede
convertirse en un grafo reduciendo cada pas a un
punto y trazando una lnea que una todo par de
puntos cuyos pases correspondientes tengan frontera
comn.
18:28 21
21
La satisfacibilidad proposicional es el problema de determinar si existe una
asignacin de valores de verdad a los tomos de una frmula proposicional que
la hagan verdadera.
El Problema consiste en responder a la pregunta: Existe una
combinacin de valores de los elementos de una frmula
PROGRAMACIN II

proposicional que la hacen verdadera?

Si se tiene k entradas hay 2k posibles alternativas para evaluar, para


valores grandes de k el problema se vuelve intratable. 22
18:28 22
2SAT: resoluble en tiempo polinomial (problema de clase P).
Para r>2: son NP-completos (r-SAT: cada clusula tiene r literales).
Todos son equivalentes al 3SAT.
PROGRAMACIN II

Karp descubri que muchos problemas importantes de investigacin operativa,


incluido el colorear un grfico con tres colores, son tambin de la misma
dificultad que cualquiera de los problemas que pueden ser asignados a la clase
NP, en otras palabras, son NP-completos. Puede demostrarse directamente,
trasladando un problema al dominio del otro, que el problema de coloreado del
grafo y el problema de satisfactibilidad son equivalentes.

Se ha demostrado por mtodos similares que varios centenares de problemas,


que antes se tuvieron por distintos, son en realidad variantes unos de otros,
cuyas diferencias son puramente notacionales. Todos estos problemas son
equivalentes al de satisfactibilidad, y son todos, por lo tanto NP-completos.

18:28 23
23
Muchas veces transformamos un problema en otro. Una reduccin es
una transformacin especial que se utiliza para demostrar la NP-
Completitud de un problema.
La reduccin de problemas es una tcnica que permite reducir la
solucin de un problema a la solucin de otro problema cuya solubilidad
PROGRAMACIN II

o insolubilidad ya se conoce.

Si se puede encontrar un algoritmo que solucione un problema P partiendo de


la solucin de P' , deducimos que:
1- Si P' es soluble, lo es P.
2- Si P es insoluble, lo es P'.

Una reduccin de un problema P = <D, R, q, I> a un problema P'= <D',


R', q', I' > es un par de funciones (F1 , F2) tal que:
F1 : D D'
F2 : R' R y
(d D) (r' R' ): (F1 (d), r' ) q' (d, F2 (r' )) q

18:28 24
24
La CLASE CO-NP, contiene todos los problemas cuya resolucin es la
disyuntiva "s" o "no" y cuyas versiones complementarias pertenecen a NP. Es
preciso ser cuidadoso al formular las preguntas al responder con un "s" o un
"no", pues el problema "no" o "s" complementario al dado puede no
pertenecer a la misma clase.
PROGRAMACIN II

Por ejemplo:

El complementario del problema de los nmeros compuestos: es


determinar si un nmero es primo, pertenecera a la CLASE NP y esto no es
as, porque ya se descubrieron algoritmos relativamente eficientes para probar
el carcter primo de un nmero. A pesar de ello se desconoce si el problema de
los nmeros compuestos y su complementario pertenece a la CLASE P.

Se necesitaron ms de 100 aos para demostrar que cierto nmero era


compuesto. En 1640 Fermet conjetur que el nmero 4.294.697.297, que es
igual a 2^32 + 1 es un nmero primo, su error perdur hasta 1732 en que se
descubri que es igual a 6700417 x 641.

18:28 25
25
PROBLEMAS DEMOSTRABLEMENTE IRRESOLUBLES
Problema de la detencin de la MT
Dcimo problema de Hilbert

PROBLEMAS DEMOSTRABLEMENTE DIFCILES


PROGRAMACIN II

CLASE NP
Completa
Problema de Hamilton
Probl.
de los nmeros Problema SAT
compuestos Problema de la clique

CLASE co-NP CLASE P


Problema de CLASE NP
Euler

18:28 26
26
Problemas
Irresolubles
Resolubles
Problemas Demostrablemente difciles
PROGRAMACIN II

Clase P, NP y NP-Completa

La importancia de poder demostrar que un problema es NPcompleto es


que si algn problema NPcompleto tuviese un algoritmo que lo resolviese en
tiempo polinmico, entonces todos los problemas de la clase NP tambin lo
tendran.
Por desgracia no se ha podido encontrar hasta ahora tal algoritmo para
ningn problema NPcompleto.
An peor, nadie ha podido demostrar hasta ahora que tal algoritmo no
pueda existir.
Para ser un buen diseador de algoritmos, se debe
entender las base de la teora de la complititud-NP. Si se da
cuenta de que un problema es NP-Completo, entonces,
tiene bastante evidencia acerca de la intratabilidad del
problema. 27
18:28 27

Potrebbero piacerti anche