next up previous
Next: 8.2 Path Relinking Up: 8. Scatter Search y Previous: 8. Scatter Search y

8.1 Scatter Search

Scatter Search o búsqueda esparcida, es un algoritmo poblacional que construye soluciones mediante la combinación de otras soluciones.

Originalmente fué propuesto para combinar reglas de decisión en el contexto de programación entera.

La idea era generar nuevas reglas mediante una combinación pesada de reglas existentes. Después se extendió a una combinación pesada de restricciones para reflejar qué tanto se violaban ciertas restricciones (surrogate constraints).

Opera sobre un conjunto de puntos, llamados puntos de referencia (reference points), que constituyen ``buenas'' soluciones obtenidas anteriormente.

El algoritmo genera sistemáticamente combinaciones de estos puntos de referencia (soluciones) para obtener nuevos puntos (soluciones).

Las combinaciones son formas generalizadas de combinaciones lineales, acompañadas de procesos adaptativos para garantizar condiciones de factibilidad.

El algoritmo prosigue de la siguiente forma (ver tabla 8.1):

  1. Genera un conjunto inicial de soluciones que garantice cierto nivel de diversidad. Selecciona un subconjunto de las mejores soluciones, en cuanto a evaluación de función objetivo y en cuanto a diversidad.
  2. Crea nuevas soluciones mediante combinaciones de subconjuntos de las soluciones de referencia. Se buscan soluciones tanto dentro como fuera de las regiones convexas de las soluciones de referencia y su posible modificación para hacerlas aceptables (soluciones factibles).
  3. Extrae las mejores soluciones y añádelas al conjunto de soluciones de referencia.

El proceso consiste de 5 métodos:

  1. Generación de diversificación: genera una colección de soluciones diversas. Estas son típicamente 10 veces más que el conjunto de referencia.
  2. Mejoramiento: transforma una solución en otra u otras mejores. Puede ser porque se violen ciertas restricciones.
  3. Actualización del conjunto de referencia: construye y mantiene un conjunto con las $N$ mejores soluciones (donde $N$ típicamente es pequeño, alrededor de 20, y el concepto de mejor no es solo en términos de evaluación de la función objetivo, sino también en términos de diversidad).
  4. Generación de un subconjunto: considerando el conjunto de referencia, generar un conjunto de posibles soluciones combinadas (lo más común es considerar todos los pares en las soluciones de referencia).
  5. Combinación: transformar el subconjunto generado en una o más soluciones combinadas. Cada vez que se genera una nueva solución combinada, si ésta es mejor que la peor del conjunto de referencia, se reemplaza y se vuelven a generar los sobconjuntos necesarios.


Tabla 8.1: Algoritmo de Scatter Search.
\begin{table}
\begin{tabbing}
123\=123\=123\=123\= \kill
$P =$ \emph{Diversifac...
...p x$ \\
\> \textbf{Else} elimina $x$ \\
regresa $P$
\end{tabbing}\end{table}


La figura 8.1 muestra un ejemplo en donde el conjunto inicial de soluciones de referencias es {A, B, C}. Después de una combinación de A y B se produce 1 (de hecho se puede producir un segmento de línea, y de ahí seleccionar a 1). De la misma forma se generan las nuevas soluciones 2, 3 y 4.

Dependiendo de la implementación el número de combinaciones del conjunto referencia puede ser muy grande.

Figura 8.1: Ejemplo de generación de nuevos puntos con scatter search.
\begin{figure}\centerline{\hbox{
\psfig{figure=figscatter.ps,height=6cm}
}}
\end{figure}


next up previous
Next: 8.2 Path Relinking Up: 8. Scatter Search y Previous: 8. Scatter Search y
Eduardo Morales Manzanares 2004-11-02