1. Alumno : Víctor Hugo Orellana Jaque!
Análisis de Algoritmos Sección 112!
Profesora : Sra. Pilar Pardo Hidalgo!
25-junio-2014!
2. Problemas Matemáticos!
Los problemas se pueden clasificar de dos
formas:!
Ø Problemas indecidibles : no se pueden resolver
con un algoritmo!
Ø Problemas decidibles : cuentan al menos con un
algoritmo para su cómputo!
Sin embargo un problema decidible no implica que
pueda ser solucionable, debido a que puede ser
muy complejo para que un computador lo aborde.!
!
3. Problemas Matemáticos parte 2!
!
Respecto a lo anterior, los problemas decidibles
se pueden dividir en :!
ü Intratables: No es factible obtener alguna
solución!
ü Tratables : Existe al menos un algoritmo para
resolver el problema en un tiempo razonable.!
4. Problemas Intratables!
u El problema no se puede resolver completamente,
sin embargo se puede resolver bajo ciertas
instancias del mismo tomando casos específicos (no
funciona para un caso general)!
u Se considera la eficiencia del algoritmo por sobre el
tiempo de ejecución!
u Los algorimos han sido divididos como buenos o
malos algoritmos. Se acepta que un buen algoritmo
es aquél para el cual existe un algoritmo polinomial
determinístico que lo resuelva. También se acepta
que un mal algoritmo es aquel para el cual dicho
algoritmo simplemente no existe. Un problema se
dice intratable, si es muy difícil que un algoritmo de
tiempo no polinomial lo resuelva. Esta clasificación
puede resultar en algunas ocasiones engañosa!
5. Algoritmos no determinísticos!
Tienen dos fases:!
Ø No determinística : alguna cadena de caracteres, “s”,
completamente al azar, es escrita a partir de algún lugar
de memoria asignado. Cada vez que el algoritmo corre,
la cadena escrita puede ser distinta.!
Ø Determinística: Es un algoritmo ordinario siendo
ejecutado. Además de la entrada del problema de
decisión, el algoritmo puede leer “s” , o puede no leerlo.
Para eventualmente con una salida de sí o no, o puede
entrar en un ciclo sin fin (no para).!
El número de pasos hechos durante la ejecución es
definido como la suma de los pasos en ambas fases, es
decir, el número de pasos tomados para escribir “s” más el
número de pasos ejecutados por la segunda fase
determinística. Esto no ocurre con los algoritmos no
determinísticos.!
!
6. Algoritmos Determinísticos!
• Tiene la propiedad que el resultado de
cada operación se define de manera
única.!
• Los problemas pueden clasificarse
también dependiendo de su
complejidad!
7. Problemas Clase P!
• Son tratables (suelen ser abordables en
la práctica!
• Los problemas que forman esa clase
son para los que se le conocen
algoritmos de esa complejidad.!
• Es decir, todos los algoritmos que se les
ha podido establecer un tiempo de
ejecución, son problemas de clase P!
8. Problemas Clase NP!
v Pueden caracterizarse algunos problemas
de que se puede aplicar un algoritmo
polinómico para comprobar si una posible
solución es válida o no.!
v Esta característica lleva a un método de
resolución no determinista que se aplican
heurísticos!
v NP : Problemas (P) no deterministas (N)!
v Problemas P ⊂ Problemas NP!
v Torres de Hanoi es un ejemplo de
problemas de esta clase.!
9. Problemas Clase NP-Completos!
v Se puede decir gráficamente que algunos
problemas se encuentran en la “frontera
extrema” de clase NP.!
v Son los peores problemas posibles de
clase NP!
v Se caracterizan por ser todos “iguales”!
v La teoría de NP completitud se basa en
el concepto de transformación
polinomial.!
10. Transformación Polinomial!
v Es una función que permite cambiar la
representación de un problema a otro,
aplicando un algoritmo determinista de
tiempo polinomial.!
v Se representa : D1 μ D2!
v Son importantes porque sirven para
determinar la pertinencia de los
problemas a las clases P y NP, y
permiten definir la clase NP-completo!
11. Soluciones a problemas NP-
Completos!
v Técnicas Heurísticas : Pueden producir una
buena solución (óptima) o pueden no
producir alguna solución o dar una solución
no muy buena. Generalmente se basa en el
conocimiento intuitivo del programador.!
v Aproximaciones Polinomiales : Encontrar
soluciones que se aproximen a la solución
óptima. Siempre que se desea realizar una
aproximación, existe un error relativo que
afecta a esta solución.!
12. Ejemplos de Problemas NP-
Completos!
!
v Ciclo Hamiltoniano: Recorre todos los
nodos en un campo simple.!
v Vendedor viajero : Recorre todos los
vértices de manera que el costo sea el
mínimo. No debe pasar más de una vez
por un mismo vértice y debe volver al
punto de partida.!
13. Cuadro Comparativo!
P
NP
NP-‐Completo
Existe
un
algoritmo
de
1empo
polinómico
para
su
resolución
Sus
mejores
algoritmos
conocidos
son
NO
determinís1cos
No
es
posible
encontrar
un
algoritmo
eficiente
para
encontrar
una
solución
óp1ma
El
1empo
de
ejecución
de
estos
algoritmos
está
dado
por
un
polinomio
Puede
aplicarse
un
algoritmo
polinómico
para
comprobar
si
una
posible
solución
es
o
no
es
válida
Se
basan
en
el
concepto
de
Transformación
Polinomial
(P1
μ
P2)
Ejemplos
conocidos
son
el
Factorial,
la
búsqueda
secuencial,
etc
Ejemplos
conocidos
son
las
Torres
de
Hanoi
,
ordenamientos
por
el
método
de
Shell
Ejemplos
como
el
Vendedor
Viajero
o
la
Mochila
entran
en
esta
categoría.