Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aproximados PDF
Aproximados PDF
HEURÍSTICOS Y
APROXIMADOS
Clasificación de problemas
Problemas de decisión Problemas de optimización
Indecidibles Insolubles
Decidibles Solubles Soluciones
algorítmicas
Problemas de decisión:
Ejemplos
Un problema de decisión puede ser formulado de
manera tal que dada una entrada requiere una respuesta
simple: “si” o “no”.
Problemas decidibles
Ejemplo: Determinar la pertenencia de una cadena a
un lenguaje de tipo 2.
Problemas indecidibles
Ejemplo: Problema del Halting
Problemas de optimización:
Ejemplos
Informalmente, los problemas de optimización son un tipo
general de problemas en lso que se desea elegir el mejor de un
conjunto de elementos.
“Coloreo de un grafo”
Dado un grafo G = (V,E) y un conjunto finito de colores S, un
coloreo es un mapping C:V-> S, tal que si existe un arco
(v,w) ε E, luego C(v) < > C(w). Determinar el mínimo coloreo
de G.
“Problema de la mochila”
Dado un conjunto de n objetos de tamaños s1,s2, …sn y una
mochila de capacidad C (s1,s2, …sn y C son enteros positivos)
encontrar un subconjunto de objetos que maximice el uso de la
mochila.
Problemas de optimización:
Ejemplos
Problema del viajante
Dadas las distancias entre un conjunto de n
ciudades, determinar el circuito que debería
recorrer un viajante, que parte de una estas
ciudades, visita a todas las demás exactamente
una vez y vuelve al punto de partida, habiendo
recorrido la menor distancia posible.
Problemas de optimización:
Ejemplos
Ordenamiento de tareas con penalidades
Dadas n tareas a ser ejecutadas una por vez. Cada tarea Ji tiene
un tiempo de ejecución ti, un plazo de espera di medido desde el
comienzo de la ejecución, una penalidad pi por exceder el plazo
de espera. Un orden específico de tareas es una permutación S
de {1,2,...,n} donde Js(1) es la primera tarea ejecutada, Js(2) la
siguiente, etc. La penalidad total para un ordenamiento particular
es
n
P S = Σ [if (t s(1) + ....+ t s(i) ) > d s(i) then ps(i) else 0]
i=1
Se requiere encontrar un ordenamiento tal que minimice la
penalidad total
“Problemas de decisión” versus
“Problemas de Optimización”
La clasificación de problemas de decisión puede
basarse en modelos de procedimientos más simples
que los que requeriría una clasificación de problemas
de optimización. Por ejemplo, pueden basarse en
autómatas “reconocedores” como la máquina de
Turing.
Para todo problema de optimización se puede
construir una versión de un problema de decisión del
mismo “grado de dificultad”.
“Problemas de decisión” versus
“Problemas de Optimización”
“Problema del Coloreo de un grafo”
Versión de Optimización
Dado un grafo G = (V,E) y un conjuto finito de colores
S, un coloreo es un mapping C:V-> S, tal que si existe
un arco (v,w) ε E, luego C(v) < > C(w). Se requiere
colorear el grafo con la mínima cantidad de colores.
Versión de Decisión
Dado un grafo G y un entero positivo k ¿existe un
coloreo de k colores?
“Problemas de decisión” versus
“Problemas de Optimización”
Versión de optimización del “viajante”
Dadas las distancias entre un conjunto de n
ciudades, determinar el circuito que debería
recorrer un viajante, que parte de una estas
ciudades, visita a todas las demás exactamente
una vez y vuelve al punto de partida, habiendo
recorrido la menor distancia posible.
“Problemas de decisión” versus
“Problemas de Optimización”
Versión de decisión del “viajante”
Dadas las distancias entre un conjunto de n
ciudades, determinar si existe un circuito cuya
distancia total sea ≤ K y puede ser recorrido por
un viajante que parte de una estas ciudades,
visita a todas las demás exactamente una vez y
vuelve al punto de partida.
Clasificación de problemas decidibles
P-tiempo
Nondeterministic Polinomial
NP
Relación entre NP-tiempo y P-tiempo
Problema abierto:
¿NP-tiempo incluye a P-tiempo?
NP-Completo
Un lenguaje Lo está en NP-Completo si todo lenguaje
L1ε NP-tiempo “se reduce” a Lo en un tiempo polinomial
Relación entre NP-tiempo y P-tiempo
Un lenguaje Lo está en NP-Completo si todo lenguaje
L1∈ NP-tiempo “se reduce” a Lo en un tiempo polinomial
w1 w2 SI
MT M1 MT M2
NO
Reconoce a L1 Reconoce a Lo
NP_COMPLETO
NP
Relación entre NP-tiempo y P-tiempo
Si bien no se han encontrado algoritmos
acotados polinomialmente para problemas
NP-Completos, no se ha podido demostrar que
no existen!!!
NP-tiempo ? P-tiempo
SE CONJETURA NP-COMPLETO
NO DEMOSTRADO P-tiempo
NP-tiempo
Relación entre P-tiempo y NP-tiempo
M: codificación de MT ND
w: cadena
<M,w> describe NP-tiempo, porqué?
Relación entre NP-tiempo y P-tiempo
Para probar que un problema A en NP-tiempo es
NP-completo es suficiente probar que algún otro
problema NP-completo B “se reduce a” A. Es
decir, A es polinomialmente transformable a B.
SAT
FNC-SAT
Ciclo Hamiltoniano
Viajante
Relación entre P-tiempo y NP-tiempo
Ejemplos de NP-Completos
Versión de decisión del “viajante”
Versión de decisión del “Coloreo de un grafo”
?
¿Qué sucedería si “alguien” descubriese un
algoritmo polinomialmente acotado para un
problema NP-Completo?
Problemas “difíciles”
Siempre es posible construir una versión de decisión
para un problema de optimización que tenga el mismo
grado de dificultad.
Decisión Optimización
NP-Completo NP-Hard
Ejemplos de NP-Hard
Versión de optimización del “Viajante”
Versión de optimización del “Coloreo de un grafo”
Problemas “difíciles”
Problemas computacionalmente
TRATABLES
INTRATABLES
¿Qué relaciones existen entre los problemas
tratables, intratables y las clases de problemas
P-tiempo, NP-Tiempo, NP-Completo y
NP Hard?
Problemas “difíciles”
No podemos afirmar que todo problema en P-tiempo tiene una
solución eficiente.
Para ciertas instancias y en función de restricciones al
tiempo de ejecución un problema en P-tiempo puede ser
ineficiente.
Puede estar en P-tiempo y el orden del polinomio alto
Algoritmos aproximados
Algoritmos heurísticos
Algoritmos heurísticos versus
algoritmos aproximados
Heurística “Hallar, inventar”
Algoritmo Heurístico
Procedimiento que puede producir una solución buena, no muy alejada de la
óptima, o incluso la óptima si somos afortunados!
Algoritmo aproximado
Procedimiento que proporciona una solución aproximada, que si bien no es la
óptima, se puede “medir” cuán cerca está de la óptima.
Costo de un circuito en G:
costo ( )= Σ (costo((ai , ai+1)) + costo((ak , a1))
1 ≤ i ≤ k-1
Algoritmo de aproximación
Problema del viajante Métrico
Costo de un circuito en G:
u w
Problema del viajante métrico
Algoritmo de aproximación
1. Construir un árbol de recubrimiento de
mínimo costo . Sea T
3 4
3 4
5
5
2
2
6
7 6
1 6 7 7
1
Problema del viajante métrico
Algoritmo de aproximación
2. Doblar cada arco de T para obtener un grafo
euleriano G´.
3 4
5
2
6
7
1
Problema del viajante métrico
Algoritmo de aproximación
3. Construir un circuito euleriano E sobre G’.
<3,2,1,2,3,4,5,6,5,7,5,4,3>
3 4
5
2
3 2 1 6
4 2 7
1
5
3
7 4
5 6 5
Problema del viajante métrico
Algoritmo de aproximación
4. Construir un circuito C que visite a todos los vértices
usando la desigualdad triangular
<3,2,1,4,5,6,7,3>
3 3 4 3 4
5
2
3 2
2 6
7
1 1
7
1 1 4
6
5
Problema del viajante métrico
Algoritmo de aproximación
Propuesta:
Implementar el algoritmo de aproximación
1 2 5
4
Algoritmo Heurístico
Problema del coloreo de un grafo
for ( i=2; i <= n; i++)
{c = 1;
while (g.adyacentesColoreados(i, c))
++c;
g.colorear(i, c);
}
3
1 2 5
4
Algoritmo Heurístico
Problema del coloreo de un grafo
Colorear …
a1 a2 a3 … an
b1 b2 b3 … bn
Algoritmo Heurístico
Problema del coloreo de un grafo
Secuencia de vértices <a1,a2,..an,b1,b2,..bn>
a1 a2 a3 … an
b1 b2 b3 … bn
b1 b2 b3 … bn
n colores!!!
Algoritmo heurístico
Problema del coloreo del grafo
Depende de la secuencia de vértices usada
la cantidad de colores del coloreo.
for ( i=2; i <= n; i++)
{c = 1;
while (g. adyacentesColoreados(i, c))
++c;
g.colorear(i, c);
}
Algoritmo heurístico
Problema del coloreo del grafo
No se conocen algoritmos de aproximación para el
coloreo de un grafo que estén acotados por un factor
constante.
Se demostró que si se descubriese un algoritmo de
aproximación que en el peor de los casos duplicara la
cantidad de colores de la solución óptima, sería posible
obtener un coloreo óptimo en tiempo polinomial.
Esto implicaría
P-tiempo = NP-tiempo. !!!!
Así, obtener una “buena” solución, no necesariamente
la óptima, para el coloreo puede ser en sí mismo un
problema NP-HARD.
Problema del viajante
Se lo conoce como TSP (Traveling Salesman
Problem).
Sea G = (V, E) un grafo orientado y rotulado.
Un ciclo hamiltoniano es un ciclo que contiene a
cada uno de los vértices de G una sóla vez.
Se desea obtener un ciclo hamiltoniano de
mínimo costo.
Problema NP-HARD
Problema del viajante
a 3 b
4 3
7 4
e 8 c
2 6
6 5
d
a 3 b
4 3
7 4
e 8 c
2 6
6 5
d
a
3 4 3
a b
4 3
7 b
4 c
8 c 5 3
e
e
2 6 d
6 5 6
d
COSTO = 21
a
3 4 7
a b
4 3
7 e
4 c
8 c 5 3
e
2 6 d b
6 5 6
d
COSTO = 25
Problema del viajante
Búsqueda Local
Generar los circuitos candidatos intercambiando
pares de arcos no adyacentes.
a b
c
d
(e,b) (c,a) b
d
(b,d) (c,a)
6
Costo = 21 3
d 6 b 5
d b
7
a e
6
7 8
COSTO = 25
Costo = 22
c 5 d
Problema del viajante
Búsqueda Local
Posibles transformaciones
3 b
e
4 a 7
6 4
c e
Costo = 25 3
c d 5
5
d b
3
e b
8 3 6
COSTO = 25
Costo = 25
a 4 c
Problema del viajante
Búsqueda Local
Posibles transformaciones
6
b d
a 7
4
4 7
c e
Costo = 25
5 3
a c
4
d b
3
4 a
b
6
c
3 COSTO = 25
5 Costo = 21
d e
6
Problema del viajante
Búsqueda Local
Repetir para la solución localmente óptima
3
4 a
b
c
3
5 e
d
Posibles transformaciones 6
(a,b) (e,d)
(a,b) (d,c)
(b,e) (d,c)
(b,e) (c,a)
(e,d) (c,a)
Problema del viajante
Búsqueda Local
¿Qué cantidad de transformaciones?
Para que sea “tratable” la cantidad de
transformaciones debe ser de orden polinomial.
Transformar solamente soluciones localmente
óptimas y acotar las transformaciones a un
orden polinomial no nos garantiza llegar a la
solución óptima.
Problema del viajante
Búsqueda Local
Nuestra estrategia sólo transforma si “mejora”.
La solución óptima puede llegar a partir de
transformaciones que “empeoran” el costo!!
Pero buscaremos una buena solución en
promedio…
Problema del viajante
Búsqueda Local
3 4
a 7 a
7 c
b
4
e 4 e
6 4
6 6 b
d c d
5 “empeora” 6
Costo = 25 Costo = 27
a
4 …
2 “HACIA LA
c
ÓPTIMA”
d 4
Costo = 19
6 b
e
3
Problema del viajante
Búsqueda Local
Consideraciones
Los algoritmos heurísticos basados en esta
técnica deben ser de complejidad temporal
polinomial
No se pueden generar todas las transformaciones
posibles!! La complejidad sería exponencial.
Los algoritmos que transforman soluciones factibles
deben ser polinomiales, de orden bajo.