Clasificación de Problemas

14
Alumno : Víctor Hugo Orellana Jaque Análisis de Algoritmos Sección 112 Profesora : Sra. Pilar Pardo Hidalgo 25-junio-2014

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.  

F I N

Gracias por su atención!