Clasificación de Problemas
-
Upload
victor-hugo-orellana-jaque -
Category
Documents
-
view
91 -
download
2
Transcript of Clasificación de Problemas
Alumno : Víctor Hugo Orellana Jaque!Análisis de Algoritmos Sección 112!Profesora : Sra. Pilar Pardo Hidalgo!
25-junio-2014!
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.!!
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.!
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!
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.!!
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!
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!
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.!
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.!
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!
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.!
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.!
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.