You are on page 1of 14

Algoritmos Heursticas

y
Algoritmos Aproximados

Juan Manuel Ussher


CI: 82.102.248

Heurstica:
- Arte de Inventar.
- Tcnica de la indagacin y del descubrimiento.

Algoritmos Heursticos:
son un procedimiento que puede producir una solucin
para nuestro problema.
Algoritmos aproximados:
son un procedimiento que siempre proporciona algn
tipo de solucin para el problema an cuando probablemente no
encuentre una solucin ptima.

Algoritmos Heursticos
Ejemplo 1
Coloreado de un grafo

3
1

5
4

1. Colorear cada nodo,


de manera que no
haya dos nodos
adyacentes del
mismo color.
2. Cual es el nmero
mnimo de colores

La solucin ptima nos dice que el mnimo son dos colores

Secuencia: 1-2-3-4-5
3
1

5
4

Selecciona el nodo 1 como inicial pinta con un color al azar.


Pasa al 2, no puede pintar(1 ya esta pintado).
Pasa al 3, pinta.
Pasa al 4, pinta.
Pasa al 5, no puede pintar(3 y 4 ya estn pintados).
Selecciona otro nodo y pinta con otro color.
Pasa al siguiente, etc.
Solucin ptima

Secuencia: 1-5-2-3-4
3
1

4
Selecciona el nodo 1 como inicial pinta con un color al azar.
Pasa al 5, pinta
Pasa al 2, no puede pintar(1 ya esta pintado).
Pasa al 3, no puede pintar(5 ya esta pintado).
Pasa al 4, no puede pintar(5 ya esta pintado).
Selecciona otro nodo(2) y pinta con otro color.
Pasa al 3 y al 4, no puede pintar(2 ya esta pintado).
Pasa al siguiente(3), y selecciona otro color.
Pasa al 4, pinta.
Solucin NO ptima

2 colores
Secuencia:
1, 3, 5,,2n-1, 2, 4, 6,, 2n
Solucin ptima

4 colores
Secuencia:
1, 2, 3, 4, 5,, 2n-1, 2nteatro
lrico
Solucin no ptima
n

Ejemplo 2
Problema del viajante

El viajante sale de una ciudad para visitar todas las dems pasando
exactamente una vez por cada una y volver al punto de partida
habiendo recorrido la menor distancia posible.
El problema se representa como un grafo no dirigido
con n nodos.
Un ciclo del grafo que pase por todos los nodos
exactamente una vez se denomina ciclo
hamiltoniano.
Por lo tanto para resolver el problema hay que hallar
el ciclo hamiltoniano ms corto del grafo.

Por ejemplo:

Desde

Hacia
Ciudad

10

11

25

12

26

20

15

2
3
4
5

18

En este caso el recorrido ptimo tiene una longitud de 58.


Est distancia se logr haciendo el recorrido 1,2,3,6,4,5,1.
Nuestro algoritmo heurstico comenzar en un nodo arbitrario y
ah decidir visitar el nodo ms cercano que no haya sido
visitado.
As, si comienzo en 1, recorriendo las distancias ms cortas
ser: 1-2-3-5-4-6-1, dando un total de 60.
Aunque este algoritmo heurstico no es tan ptimo, tampoco
est mal y puede ser utilizado.

Algoritmos Aproximados
Ejemplo
Problema de la mochila

Tenemos n objetos y una mochila. Cada objeto i tiene un peso wi


y un valor vi. La mochila tiene capacidad para cargar un peso
total W.
El problema consiste en llenar la mochila de tal forma que se
maximice el valor de los objetos cargados.

Funcin mochila-voraz (w[1..n], v[1..n], W)


se ordena el caso de modo que v[i] / w[i] >= v[j] / w[j] para todo 1 <= i <= j <= n
Peso = 0
Valor = 0
Para i=1 hasta n hacer
si peso + w[i] <= W entonces
valor = valor + v[i]
peso = peso + w[i]
Devolver valor

Este algoritmo puede ser bastante malo.


Por ejemplo tomemos un entero x > 2 tan grande como se desee y
consideramos el caso de que la capacidad de la mochila W=x.
Hay dos objetos cuyos pesos y valores son w1=1, v1=2, w2=x, v2=x

Los valores ya estn ordenados en orden no creciente de valores


por unidad de peso (v1 / w1 = 2 >= v2 / w2 = 1)
El algoritmo coloca en la mochila primero al objeto 1, luego
cuando a insertar el objeto 2, ste no entra.
El algoritmo enva como solucin el 2.
Claro est, que sta no es la solucin ptima. La solucin ptima
sera dejar el objeto uno y cargar el objeto 2 cuya solucin
devuelta sera x.
Este algoritmo proporciona un valor que esta dentro de un factor x
/ 2 del ptimo, lo cual puede llegar a ser muy malo.

Consideremos ahora el algoritmo aproximado:


Funcin mochila-aproximada ( w[1..n], v [1..n], W )
mximo = max { v[i] | 1 <= i <= n }
devolver max (mximo, mochila-voraz ( w, v, W )

Ahora si ste es nuestro algoritmo aproximado y partiendo del


hecho de que:
max ( x, y ) >= ( x + y ) / 2
Y llamando opt a la solucin ptima y opt a la solucin dada
por nuestro algoritmo aproximado.
Sabiendo tambin que mochila-voraz ( w, v, W ) es mayor o
igual que la suma de todos los valores de los objetos desde el
primero hasta el n 1

Es decir:
n 1

mochila voraz ( w, v, W ) vi
i =1

Entonces:
opt ' = max(mximo, mochila voraz ( w, v, W )
(mximo + mochila voraz ( w, v, W )
opt '
2
n 1

opt '

(vn + vi )
i =1

2
n

opt '

v
i =1

2
opt ' opt / 2
opt 2opt '

Lo cual demuestra que la solucin


aproximada est dentro de un factor
de 2 de la solucin ptima y por
supuesto esto es mejor a que los
solucin hallada con el primer
algoritmo

Gracias

Juan Manuel Ussher


CI: 82.102.248

You might also like