“A hybrid VNS/Tabu search Algorithm for apportioning the European Parliament” Villa, Lozano,...

Post on 23-Jan-2016

214 views 0 download

Transcript of “A hybrid VNS/Tabu search Algorithm for apportioning the European Parliament” Villa, Lozano,...

“A hybrid VNS/Tabu search Algorithm for apportioning the European Parliament” Villa, Lozano, Racero, Canca, LNCS 3906, 2006.

Problema:

• Como distribuir los escaños (cantidad de parlamentarios) por país en forma proporcional a los habitantes de cada país (en este caso de la Unión Europea).

• La distribución de la población se puede considerar fraccionaria, pero la cantidad de escaños es discreta. Entonces no se puede lograr una proporcionalidad perfecta.

• Hay varias metodologías para resolver esto aproximadamente en diversos ámbitos y países. También se toman en cuenta consideraciones políticas, como por ejemplo que haya un número mínimo de representantes por país.

Modelo de programación lineal entera mixta

Min r (r + + r

- )

Sujeto a

sr smin

Nr sr = S

Nr pr = P

r + - r

- = (sr / S/ pr/ P) -1 r

r + , r

- 0, sr enteroDonde: • N es el nro de países• pr la población del país r• smin mínimo número de escaños por paíss r

+, r – , desviación positiva y negativa respecto de la relación entre escaños

y población.• P población total, S, número total de escaños.

Se corrió el modelo para valores de smin de 0 a 5, y en todos los casos después de 5 horas con el CPLEX 7.0 no se obtuvo el óptimo. Si se encontraron soluciones factibles, mejores que las que se usan en la actualidad en la práctica.

Se propuso una heurística basada en VNS y Tabu Search

• Solución inicial: la situación actual (s01, s0

2, s03,…… s0

N)

• Varias estructuras de vecindarios simples que mantienen la factibilidad, es decir el total de escaños repartidos.

Seudocódigo

InicializaciónRepetir mientras no se cumpla criterio de parada:i) k=1ii) mientras k≠ kmax a) Aplicar Tabú Search dentro de la vecindad k de la

solución actual b) Si la solución obtenida x´ es mejor que la mejor hasta el

momento poner x = x´ y poner k =1. Sino cambiar de vecindario o sea poner k = k+1

Parar

Como lista Tabu se usa que por un cierto número de iteraciones la cantidad de escaños para los países afectados por el cambio no puede cambiarse.

Se obtuvieron soluciones mejores que la actual, y un poco mejores que las de CPLEX pero en este caso fue en pocos

segundos y no en las 5 hrs. que demoró el CPLEX.

Además de todos los ejemplos que vimos hay aplicaciones de metaheurísticas a muchos problemas diferentes…..y todos los días aparecen nuevos problemas. Algunos trabajos que tengo a mano:

• VLSI• Planificación de horarios de enfermeras• Gran variedad de problemas de planificación

industrial• Diseño de códigos• Diseño de portfolios• Otros problemas de Bioinformática

OTRAS METAHEURISTICAS

• Swarm optimization• Artificial Inmune Systems

Comentarios y Conclusiones

Cuándo usar metaheuristicas?.

• Problemas difíciles (NP-hard)• Problemas difíciles de modelar• Problemas reales donde se quiere tener una “buena” solución urgentemente.

Ventajas

• Relativamente fáciles de programar, transportables.• Modificación del problema de los datos,flexibilidad, interacción con el usuario.• Paralelización

• Falta “teoría”• Nomenclatura• PROGRAMACION• Híbridos

Relación con: • Heurísticas tradicionales• Métodos exactos (cotas, branch and cut,generación de

columnas, etc.)

• Qué metaheurística elegir?.

• Cuál es mejor?. Cómo comparar?.

• Cómo saber si los resultados son buenos?.

• Cómo se hace para implementar una metaheurística exitosa?.

• Paralelización.• Software