0% encontró este documento útil (0 votos)
227 vistas9 páginas

Algoritmos Aproximados y Heurísticos

El documento resume diferentes tipos de algoritmos para problemas de optimización, incluyendo algoritmos exactos, heurísticos y aproximados. Explica brevemente el coloreado de grafos, el problema del viajante, la mochila 0/1, el llenado de cajas y el equilibrado de carga, y propone algunos algoritmos heurísticos y aproximados para estos problemas, analizando en algunos casos sus cotas de aproximación.

Cargado por

jsadb
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
227 vistas9 páginas

Algoritmos Aproximados y Heurísticos

El documento resume diferentes tipos de algoritmos para problemas de optimización, incluyendo algoritmos exactos, heurísticos y aproximados. Explica brevemente el coloreado de grafos, el problema del viajante, la mochila 0/1, el llenado de cajas y el equilibrado de carga, y propone algunos algoritmos heurísticos y aproximados para estos problemas, analizando en algunos casos sus cotas de aproximación.

Cargado por

jsadb
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Algoritmos exactos

Algoritmo exacto:

Algoritmos aproximados

Algoritmo que siempre calcula una solucin


ptima para un problema de optimizacin

Tcnicas para disear algoritmos exactos:


Tcnica voraz
Tcnicas de bsqueda:
Vuelta atrs
Ramificacin y poda

Programacin dinmica

Heursticas
Algoritmos no exactos:
Algoritmos que no siempre calculan una solucin
ptima (slo para algunos datos)

Algoritmos basados en una funcin de


seleccin:
Diseo similar a los voraces, pero no exactos:
Heursticas:
Algoritmos sencillos y eficientes, a menudo basados en el sentido
comn

Algoritmos aproximados:
Calculan una solucin cercana a la ptima y acotada

Coloreado de un grafo
Nmero mnimo de colores para colorear
los nodos de un grafo de forma que los
nodos adyacentes tengan colores
distintos
3
Ejemplo:
1

5
4

Coloreado de un grafo
Algoritmo heurstico:
Se ordenan los nodos y los colores
Se toma un color y se intentan colorear todos
los nodos posibles con el primer color
Se toma en siguiente color y se intentan
colorear todos los nodos posibles an no
coloreados
As sucesivamente hasta colorear todos los
nodos

Coloreado de un grafo
Casos extremos:
Orden que permite encontrar el nmero
mnimo n de colores:
Se disponen en primer lugar los nodos coloreados
en la solucin ptima con el color 1, despus los
nodos coloreados con el color 2 y as
sucesivamente hasta el ltimo color n

Coloreado de un grafo
Ejemplo:
3
1

5
4

Orden 1-3-4-2-5: 2 colores


Orden 1-5-2-3-4: 3 colores

Coloreado de un grafo
Casos extremos:
Dado un grafo bipartito, orden que hace que
esta heurstica necesite 2 colores: 1, 3, ,
2n-1, 2, 4, , 2n

Coloreado de un grafo

Problema del viajante

Casos extremos:

Ciclo hamiltoniano ms corto


Ejemplo:

Dado un grafo bipartito, orden que hace que


esta heurstica necesite n colores: 1, 2, ,
2n-1, 2n

1
2

Solucin ptima: 1-2-3-6-4-5-1,


3+8+20+15+5+7 = 58

Tomar siempre el arco de longitud menor a algn nodo


no visitado

25

10
7 11

26

20 4

18

Problema del viajante


Ejemplo:

26 9 12

15

Algoritmo heurstico:

10
7 11

25

Problema del viajante

Ejemplo:

12

20 4
15

3
10
7 11

20 4

25

3
9

6
4
Solucin heurstica: 1-2-3-5-4-6-1,
=
5
18 3+8+4+5+15+25
5
60

26 9 12

15
18

3
9

Solucin heurstica: 1-2-3-5-4-6-1,


3+8+4+5+15+25 = 60
Solucin ptima: 1-2-3-6-4-5-1, 3+8+20+15+5+7
= 58

Problema del viajante

Algoritmos aproximados
Justificacin:

Haciendo la distancia entre el primer y el


ltimo nodo arbitrariamente larga,
tenemos una solucin arbitrariamente
mala
Problema del viajante mtrico:

Problemas para los que slo hay algoritmos


ineficientes
Si es aceptable una solucin subptima pero buena

Clases de algoritmos aproximados:


Algoritmo aproximado c-absoluto:

d(i,j) d(i,k) + d(k,j)

La solucin calculada dista de la ptima en un valor mximo


de c

Esta propiedad permite sustituir dos arcos


(i,k) y (k,j) por otro (i,j) igual o menor

Algoritmo aproximado -relativo:


La solucin calculada dista de la ptima en un error relativo
mximo de

Problema del viajante

Problema del viajante


Algoritmo aproximado:

Algoritmo aproximado:
rbol de recubrimiento de
coste mnimo (ARM):
3+7+4+5+15 = 34

Long. ARM Long. ciclo


hamiltoniano ptimo
Un recorrido del rbol de
recubrimiento de coste
mnimo tiene el doble de
longitud:
1-2-1-5-3-5-4-6-4-5-1, 68

7
4

4
15

Pueden suprimirse las


visitas a nodos ya
visitados, que equivale
a sustituir dos arcos
por uno menor o igual

1
9

7
4

25

18
5

4
15

Problema del viajante

Problema del viajante

Algoritmo aproximado:
Resulta el recorrido en
preorden del ARM:
1-2-5-3-4-6-1,
3+9+4+9+15+25 = 65

Algoritmo aproximado:
3

1
25
9

5
9

Algoritmo aproximado 1-relativo:


Long. recorrido en preorden de ARM [Link]
[Link].
Como mximo tiene el doble de coste que la
solucin ptima

15

Problema del viajante


Formulacin para su resolucin por bsqueda o
por programacin dinmica:
Sea h(i,S) la longitud del camino mnimo desde el
nodo i hasta 1 que pase exactamente una vez por
cada nodo de S:
Ecuaciones:

Problema de la mochila 0/1


Algoritmos heursticos o aproximados:
Algoritmo heurstico:
El algoritmo voraz (B/P) ptimo en 81% casos
No proporciona ninguna cota en la diferencia o
proporcin con respecto a la solucin ptima
Ejemplo:
p1=1, b1=2
p2=x, b2=x, para un valor x arbitrariamente grande

Llamada inicial: h(1,S-{1})


i{1..n}, Spartes de N-{1} de tamao 2 n-1!

Podemos probar otras heursticas con GreedEx:


El algoritmo voraz B ptimo en 85% casos!

Problema de la mochila 0/1


Algoritmos heursticos o aproximados:
Algoritmo aproximado:
Tomar el mximo entre la solucin voraz y el
objeto de mayor beneficio absoluto
Algoritmo aproximado -relativo:
Como mnimo calcula la mitad de beneficio de la
solucin ptima
Vase clase Mochilas_0_1

Sistema OptimEx
Tabla de resumen:
Nmero de ejecuciones
Porcentajes de casos en que se han obtenido resultados
ptimos, subptimos o superptimos
Desviacin, como porcentaje, de los resultados no ptimos con
respecto a las soluciones ptimas

Sistema OptimEx
Sistema para la experimentacin y comparacin de
algoritmos de optimizacin:
Parecido a GreedEx, pero:
Genrico
Sin visualizaciones
Sin explicaciones

Gua de uso

Problema de seleccin de
actividades
Implementado en GreedEx
Existen algoritmos voraces ptimos:
Orden creciente de fin de actividad
Orden decreciente de comienzo de actividad

Algoritmo aproximado:
Orden creciente de duracin de actividad
Diferencia relativa la mitad (1-relativo)
Sin embargo:
Calcula la solucin ptima en ms del 95% de los casos
En la mayor parte de los casos subptimos slo difiere en 1
actividad

Problema del llenado de cajas (a)


Problema de maximizacin
Sean objetos de pesos ps={2,3,4,5} y 2
cajas de capacidad c=7:
Nmero mximo de objetos que pueden
meterse: 4, {2,5},{3,4}

Problema del llenado de cajas (a)


Algoritmo aproximado para k cajas:
Se ordenan los objetos en orden creciente de
peso y se van metiendo en cada caja y en
orden todos los objetos que se pueda:
Solucin ej. anterior, objetos de pesos ps={2,3,4,5}
y 2 cajas de capacidad c=7: 3 objetos, {2,3},{4}
Algoritmo aproximado 1-absoluto
Vase versiones masObjetos
de clase LlenadoCajas

Problema del llenado de cajas (b)


Problema de minimizacin
Sean objetos de pesos ps={5,2,4,1,8} y
capacidad de cada caja c=10:
Nmero mnimo de cajas para meter los
objetos: 2, {5,4,1}, {2,8}

Problema del llenado de cajas (b)


Algoritmo de vuelta atrs:
rbol de bsqueda creado, ps={5,2,4,1,8},c=10:
Vase versin menosCajasBack
de clase LlenadoCajas

Problema del llenado de cajas (b)


Algoritmos aproximados:
Igual a la funcin de seleccin de la versin anterior
del problema
Se ordenan los objetos en orden creciente de peso y
se van metiendo en cada caja y en orden todos los
objetos que se pueda:
Sean objetos de pesos {2,3,4,5} y cajas de capacidad 7.
Solucin: 3 cajas, {2,3},{4},{5}. Solucin ptima: 2, {2,5},
{3,4}
Algoritmo aproximado con un valor menor o igual que
Vase versin menosCajasAprox1
2+opt17/10
de clase LlenadoCajas

Problema del equilibrado de carga


Problema de minimizacin
Sean tareas de tiempos ts={2,3,4,6,2,2} y
3 procesadores:
Se desea repartir las tareas entre los
procesadores de forma equilibrada
Mxima carga de algn procesador: 7, {6},
{4,2},{3,2,2}

Problema del llenado de cajas (b)


Algoritmos aproximados:
Se ordenan los objetos en orden decreciente de peso
y se va metiendo cada uno en la primera caja donde
cabe:
Solucin ejemplo anterior, cajas de capacidad 7: 2 cajas,
{5,2},{4,3}
Contraejemplo: sean objetos de pesos {6,5,3,2,2,2} y cajas
de capacidad 10. Solucin: 3 cajas, {6,3},{5,2,2},{2}.
Solucin ptima: 2 cajas, {6,2,2},{5,3,2}
Algoritmo aproximado con un valor menor o igual que
4+opt11/9
Vase versin menosCajasAprox2
de clase LlenadoCajas

Problema del equilibrado de carga


Algoritmos de aproximacin:
Cada tarea se asigna a la mquina que tiene menos
carga:
Sean tareas de tiempos ts={2,3,4,6,2,2} y 3 procesadores.
Solucin: mxima carga 8, {6,2},{3,2},{4,2}. Solucin ptima:
7, {6},{4,2},{3,2,2}
Algoritmo aproximado con una diferencia relativa del doble
(1-relativo)
Vase versin equilibrarCargaAprox1
de clase EquilibradoCargas

Problema del equilibrado de carga


Algoritmos de aproximacin:
Las tareas se ordenan en orden decreciente de
duracin y se van asignando a la mquina que tiene
menos carga:
Sean tareas de tiempos ts={2,3,4,6,2,2} y 3 procesadores.
Solucin (ptima): mxima carga 7, {6},{4,2},{3,2,2}
Sean tareas de tiempos ts={3,3,3,4,5} y 5 procesadores.
Solucin: mxima carga 10, {5,3},{4,3,3}. Solucin ptima: 9,
{5,4},{3,3,3}
Algoritmo aproximado con una diferencia relativa de 3/2
(-relativo)
Vase versin equilibrarCargaAprox2
de clase EquilibradoCargas

También podría gustarte