Sei sulla pagina 1di 12

METAHEURISTICAS PARA DISTRIBUCION Y LOCALIZACION DE PLANTAS

INTRODUCCION

Las metaheurísticas se basan en dotar a una heurística de una guía de acuerdo a algún concepto de
la naturaleza, la biología, la inteligencia artificial, las matemáticas o la física. El objetivo es orientar
a la heurística modificando las soluciones que ofrecen las heurísticas para encontrar otra mejor
hasta que no se pueda encontrar ninguna solución que presente mejora en el vecindario de la
solución actual. El vecindario de una solución se define como el conjunto de soluciones obtenidas a
partir de la misma por medio de una operación básica llamada movimiento.

En este trabajo vamos a presentar dos metaheuristicas utilizadas para la distribución en planta
(Algoritmo Genético) y para la distribución en planta (Recocido simulado); con ayuda de teoría y lla
programación en lenguaje C++ de los dos algoritmos pretendemos explicar estas dos
metaheuristicas.
1. Problemas de alta cardinalidad
2. Problemas de complejidad computacional:

La complejidad computacional es el campo de la teoría de la computación que estudia


teóricamente la complejidad inseparable a la resolución de un problema. Los recursos
que normalmente se estudian son:

 El tiempo: que por medio de una aproximación al número y patrón de pasos de


ejecución de un algoritmo para solucionar algún problema.
 El espacio: que por medio de una aproximación a la cantidad de memoria que
utilizamos para solucionar algún problema.

3. Problemas con solución compleja polinómica:

Matemáticamente, los problemas pueden caracterizarse atendiendo a la dificultad que


entraña su resolución por un ordenador. Se han definido varias clases de problemas, entre
las que destacan las clases P, NP, NP− completo y NP− duro.

PROBLEMAS P:
Se dice que un problema se puede resolver en un tiempo polinómico cuando el tiempo de
ejecución de un algoritmo que lo resuelve se puede relacionar con el tamaño de la entrada
con una formula polinómica. Los problemas para los que existe un algoritmo polinómico
se denominan P. Se considera que los problemas P se pueden resolver en un tiempo de
ejecución razonable para la informática actual.

PROBLEMAS NP:
Hay problemas que, pese a que no se haya encontrado un algoritmo polinómico que los
resuelva, si que se puede saber en tiempo polinómico si un valor corresponde a la solución
del problema. A este tipo de problemas, se les denomina NP.

Los problemas P también son problemas NP, ya que siempre es posible comprobar que un
valor es solución al problema en tiempo polinómico. Si no se encuentra una forma más
sencilla de hacerlo, siempre se puede ejecutar el propio algoritmo polinómico que lo
resuelve y comparar el resultado con el valor obtenido. Por tanto, el conjunto de
problemas P es un subconjunto de los problemas NP.

PROBLEMAS NP-COMPLETOS:
Son problemas que no tienen un algoritmo en tiempo polinómico que los resuelva. No se
ha podido demostrar formalmente que no exista, pero los matemáticos creen que
realmente no existe. Este tipo de problemas es un subconjunto de los problemas NP, es
decir, existe un algoritmo polinómico que puede determinar si un valor es solución al
problema.
PROBLEMAS NP- DUROS:
Son aquellos al menos tan difíciles como los problemas NP − completos, es decir, que los
matemáticos consideran que tampoco existe un algoritmo polinómico que los resuelva.

4. Meta heurísticas de localización:

El problema de localización de p-centro capacitado consiste en ubicar p


instalaciones y asignar usuarios a cada una de ellas, de tal manera que se minimice la
distancia máxima entre cualquier usuario y su instalación asignada, sujeto a la capacidad
en la demanda.

Éste problema se define de la siguiente manera:

Se tiene un conjunto de nodos V que representan a los usuarios o clientes (nodos que
generan demanda) que necesitan algún tipo de servicio, y un conjunto de nodos U que
contiene a puntos donde pueden ubicarse las instalaciones; una demanda 𝑤𝑖 i para cada
usuario 𝑖 ∈ 𝑣; una capacidad de instalación 𝑠𝑗 para cada nodo 𝑗 ∈ 𝑢; una distancia 𝑑𝑖𝑗 ;
entre cada par de nodos 𝑖 , 𝑗 ∈ 𝑉 ∪ 𝑈 y número dado p de ubicaciones deseadas. La
capacidad 𝑆𝑗 se refiere a que cada instalación, dependiendo del lugar j donde puede ser
instalada, sólo puede atender un número limitado de la demanda. Se debe decidir dónde
ubicar p instalaciones, y a cuál instalación debe asignarse cada usuario con el fin de
minimizar la mayor distancia entre cualquier usuario y su instalación, sujeto a la restricción
de capacidad de cada instalación. El 𝐶𝑝 𝐶𝑃 es un problema técnicamente clasificado
como NP-duro (Kariv y Hakimi,1979), es decir, sumamente difícil de resolver en el sentido
de que cualquier algoritmo de solución que pretenda encontrar soluciones óptimas al
problema emplea un tiempo de cómputo que crece exponencialmente con el tamaño del
problema en el peor de los casos, a menos que NP= P. Aquí, P es la clase de problemas
resolubles en tiempo polinomial.

La consecuencia directa de este resultado es que para intentar resolver instancias del
problema de mediana a gran escala, es necesario recurrir a métodos heurísticos, los cuales
deben ser capaces de encontrar soluciones de buena calidad en tiempos de cómputo
razonables.

RECOCIDO SIMULADO

Este algoritmo es inspirado en el proceso de recocido del acero para conseguir material
recristalizado con baja energía interna, ha servido como base para el desarrollo de
algoritmos para la resolución de diversos problemas de optimización. La principal
particularidad del algoritmo de recocido simulado es su comportamiento convergente al
óptimo del problema si está correctamente parametrizado, lo que se consigue gracias a la
capacidad de escapar de óptimos locales propia de la heurística.

El recocido simulado1 o SA (Simulated Annealing) es una metaheurística que se basa en la


analogía que puede existir entre un proceso de optimización combinatoria y un proceso
termodinámico, conocido como recocido. Este proceso consiste en elevar la temperatura
de un sólido cristalino con defectos hasta una temperatura determinada, que por lo
general suele ser alta. Posteriormente, se permite que el material se enfríe muy
lentamente en un baño térmico. El proceso de enfriamiento viene descrito por una
función de la temperatura conocida como cola de enfriamiento, que generalmente suele
ser continua y suave. Con este proceso se pretende que el sólido alcance una
configuración de red cristalina lo más regular posible, eliminando durante este proceso los
posibles defectos que tuviese originalmente. La nueva estructura cristalina se caracteriza
por tener un estado de energía de la red mínimo.

Desde un punto de vista algorítmico, el principio de operación en el que se basa el SA se


puede enunciar en los siguientes términos:

SA es un algoritmo de búsqueda local capaz de escapar de los óptimos locales permitiendo


que bajo ciertas circunstancias se admitan movimientos que empeoren la mejor solución
encontrada hasta el momento en el proceso de búsqueda.

Sistema fisco (termodinámica) Problema de optimización


Estados del sistema Soluciones factibles
Energía Funciones de costos (función objetivo)
Cambio de estado Solucion vecina
Metaestable Optimo local
Estado estable Optimo global (Solución óptima)
Tabla 1. Analogía entre sistema físico y problema de optimización

En esencia, se supone que las partículas que componen el sólido cristalino son distinguibles
y que siguen una distribución de Maxwell-Boltzmann. Matemáticamente esta distribución
de probabilidad viene dada por la siguiente expresión:
5. 𝒏´𝒋 = 𝑪 𝒙 𝒆−𝜷 𝒙 𝜺𝒋 (1)
Donde 𝒏´𝒋 es el número de partículas en el estado de ocupación j; C es una constante de
proporcionalidad; β = 1/kBT, con kB como la constante de Boltzmann y T la temperatura del
sólido; finalmente, 𝜺𝒋 es la energía del estado j.

En la figura 1. Se muestra, de forma esquemática, la distribución de partículas en niveles de


energía en función de la temperatura. Como se puede observar, para una temperatura nula
todas las partículas que componen el sólido están en el nivel más bajo de energía. En
cambio, cuando se eleva la temperatura del sólido, aumenta la probabilidad de encontrar
partículas en niveles más altos de energía.

Figura 1. (a) Ejemplo de diferentes distribuciones de partículas en niveles de energía en


función de la temperatura. (b) Probabilidad de aceptación en función de la temperatura.

Desde el punto de vista algorítmico, el recocido simulado es un procedimiento de búsqueda


local que introduce una fase de aleatorización en la aceptación de movimientos, de tal
forma que si el movimiento es de mejora se acepta. . Por el contrario, si el movimiento
conduce a una solución peor, se acepta con la probabilidad dada por (1).

Nótese que en el caso de problemas de optimización, la constante de Boltzmann no se


considera, ya que no tiene significado en este contexto. La aleatorización en la aceptación
de movimientos viene controlada por el parámetro T, que se corresponde con la
temperatura en el proceso termodinámico. La temperatura permite que en los primeros
instantes de la búsqueda la mayoría de los movimientos se acepten, aunque éstos
empeoren la solución. Posteriormente, la temperatura se va reduciendo, lo cual implica que
cada vez se hace más restrictivo el proceso de aceptación de estados de peor calidad.

Implementación del Algoritmo Clásico de Recocido Simulado el cual requiere de cuatro


partes:

1. Una configuración de problema (el dominio donde la solución será buscada).

2. Una definición de vecindario (que gobierna la naturaleza y magnitud de las


perturbaciones permitidas).

3. Una función costo, y


4. Una esquema de enfriamiento. El algoritmo es el siguiente: El esquema de enfriamiento
es uno de los aspectos más críticos de recocido simulado. Muchas variantes de recocido
simulado han sido presentadas desde su introducción.

Por lo general, existen dos clases de implementaciones de recocido simulado:

Clase A Aquellos que poseen un número variable de ciclos internos (tamaño de la cadena
de Markov) y un decremento de temperatura fijo, y
Clase B Aquellos con un número fijo de ciclos internos y un decremento de temperatura
variable. Sin embargo, existe una tercera clase donde tanto el ciclo interno como el
decremento de temperatura son variables (Martinez, 2002).

5. Metaheuristicas de distribución

a. Teoría algoritmo genético:


Los algoritmos genéticos (AGs) son mecanismos de búsqueda basados en
las leyes de la selección natural y de la genética. Combinan la supervivencia
de los individuos mejor adaptados junto con operadores de búsqueda
genéticos como la mutación y el cruce, de ahí que sean comparables a una
búsqueda biológica. Son algoritmos de optimización, es decir, tratan de
encontrar la mejor solución a un problema dado entre un conjunto de
soluciones posibles; son métodos adaptativos, generalmente usados en
problemas de búsqueda y optimización de parámetros, basados en la
reproducción sexual y en el principio de supervivencia del más apto. Para
alcanzar la solución a un problema se parte de un conjunto inicial de
individuos, llamado población, generado de forma aleatoria. Cada uno de
estos individuos representa una posible solución al problema.
Para la ingeniería, los algoritmos genéticos y la programación evolutiva en
general presentan oportunidades de plantearse problemas que no permiten
una solución eficiente a través de la aplicación de técnicas convencionales.

VENTAJAS Y INCONVENIENTES
CARACTERÍSTICAS
 Son algoritmos estocásticos.  El número de operaciones y por
Dos ejecuciones distintas tanto el coste computacional
pueden dar dos soluciones puede ser muy alto
distintas.  Este tipo de método es
 Son algoritmos de búsqueda apropiado cuando se trabaja
múltiple. Tiende a converger a con funciones que no son
medida que se realizan más suaves, no son convexas y que
generaciones. no se deben aplicar a casos
 La función objetivo da la sencillos en que son más
información de los individuos rápidos y precisos otros
más aptos métodos.
 Las reglas de transición son  En el diseño de un algoritmo
probabilísticas, no genético, a la hora de modelar el
determinísticas problema, es muy importante
 Se pueden utilizar como método elegir una buena representación
de optimización global o de las soluciones posibles y
semilocal diseñar cuidadosamente la
 El espacio de soluciones función de evaluación de dichas
posibles es más amplio soluciones
 Soporta optimización multimodal  Puede ser difícil identificar la
y multiobjetivo función de fitness
 Es fácilmente modificable para  La definición de la
ser utilizado en diferentes representación de los
problemas cromosomas puede ser
 Puede manejar espacios de compleja
búsqueda grandes, incluso que  Puede ocurrir convergencia
no hayan sido debidamente prematura
estudiados  El problema de ajustar los
 No requieren conocer el parámetros (Tamaño de
gradiente u otra información población, probabilidad de
sobre la función del problema mutación)
 Tienen buen rendimiento en  No puede usar gradientes
problemas de optimización a  No incorporan por defecto
gran escala heurística propia del problema
 Pueden ser empleados para una  No son buenos para identificar
gran gama de problemas de óptimos locales
optimización  Necesitan ser acoplados a
técnicas de búsqueda local
 Tienen problemas en encontrar
el óptimo global exacto
 Requieren un gran tiempo de
procesamiento para evaluar el
fitness de cada individuo.

b. Estructura algoritmo genético:


El seudocódigo de un algoritmo genético es el siguiente:
I. Elegir la población inicial de n individuos de forma aleatoria.
II. Evaluar la función objetivo (fitness) de cada individuo de la población.
III. Generar k nuevas soluciones, hasta terminar (límite de tiempo,
alcanzar un valor en la función objetivo, etc.) Por medio de:
 Seleccionar los mejores individuos para la reproducción (padres).
 Crear nuevos individuos (hijos) a través de los operadores cruce
y mutación.
 Evaluar la función objetivo de las nuevas soluciones (hijos) y
agregarlas a la población.
IV. Seleccionar las mejores soluciones de la población, con el fin de que
entren a ser parte en la siguiente generación, y se reemplace la
población con los mejores individuos según su fitness.
V. Si el criterio de parada no se ha dado, regresar al paso III.
En un algoritmo genético existen dos aspectos que resultan cruciales en el
comportamiento de los mismos, que son: la determinación de una adecuada función
de adaptación o función objetivo, y la codificación utilizada.
Una importante dificultad en el comportamiento del AG puede ser la existencia de
gran cantidad de óptimos locales, así como el hecho de que el óptimo global se
encuentre muy aislado. La regla general para construir una buena función objetivo,
es que ésta debe reflejar el valor “real” del individuo, sin embargo en muchos
problemas de optimización combinatoria, donde existe gran cantidad de
restricciones, buena parte de los puntos del espacio de búsqueda representan
individuos no válidos.
Para este planteamiento en el que los individuos están sometidos a restricciones,
se han propuesto varias soluciones. La primera es la que podemos denominar
absolutista, en la que aquellos individuos que no verifican las restricciones, no son
considerados como tales, y se siguen efectuando cruces y mutaciones hasta
obtener individuos válidos, o bien, a dichos individuos se les asigna una función, o
un valor muy grande, cuando se busca minimizar la misma. Otra posibilidad consiste
en reconstruir aquellos individuos que no cumplen con las restricciones. Dicha
reconstrucción suele llevarse a cabo por medio de un nuevo operador que se
acostumbra a denominar reparador.
Adicionalmente si el individuo no cumple con las restricciones del problema, se
puede usar la penalización de la función objetivo del individuo, por un valor de
penalización que guarde relación con las restricciones que dicho individuo viola.
Dicha cantidad puede simplemente tener en cuenta el número de restricciones
violadas o bien el denominado costo esperado de reconstrucción, es decir, el coste
asociado a la conversión de dicho individuo en otro que no viole ninguna restricción.
6. BIBLIOGRAFIA
7.
8. Duarte, A. Metaheuristicas. Editorial Dykinson S,L. 2007.
9. Horacio Martínez Alfaro. Recocido. Technical report, 2002.
10.

11. Meta heurísticas ERP actuales


12. RECOCIDO SIMULADO

El recocido simulado1 o SA (Simulated Annealing) es una metaheurística que se basa en la


analogía que puede existir entre un proceso de optimización combinatoria y un proceso
termodinámico, conocido como recocido. Este proceso consiste en elevar la temperatura
de un sólido cristalino con defectos hasta una temperatura determinada, que por lo general
suele ser alta. Posteriormente, se permite que el material se enfríe muy lentamente en un
baño térmico. El proceso de enfriamiento viene descrito por una función de la temperatura
conocida como cola de enfriamiento, que generalmente suele ser continua y suave. Con
este proceso se pretende que el sólido alcance una configuración de red cristalina lo más
regular posible, eliminando durante este proceso los posibles defectos que tuviese
originalmente. La nueva estructura cristalina se caracteriza por tener un estado de energía
de la red mínimo.

Desde un punto de vista algorítmico, el principio de operación en el que se basa el SA se


puede enunciar en los siguientes términos:

SA es un algoritmo de búsqueda local capaz de escapar de los óptimos locales permitiendo


que bajo ciertas circunstancias se admitan movimientos que empeoren la mejor solución
encontrada hasta el momento en el proceso de búsqueda.

Sistema fisco (termodinámica) Problema de optimización


Estados del sistema Soluciones factibles
Energía Funciones de costos (función objetivo)
Cambio de estado Solucion vecina
Metaestable Optimo local
Estado estable Optimo global (Solución óptima)
Tabla 1. Analogía entre sistema físico y problema de optimización

En esencia, se supone que las partículas que componen el sólido cristalino son distinguibles
y que siguen una distribución de Maxwell-Boltzmann. Matemáticamente esta distribución
de probabilidad viene dada por la siguiente expresión:
13. 𝒏´𝒋 = 𝑪 𝒙 𝒆−𝜷 𝒙 𝜺𝒋 (1)
Donde 𝒏´𝒋 es el número de partículas en el estado de ocupación j; C es una constante de
proporcionalidad; β = 1/kBT, con kB como la constante de Boltzmann y T la temperatura del
sólido; finalmente, 𝜺𝒋 es la energía del estado j.

En la figura 1. Se muestra, de forma esquemática, la distribución de partículas en niveles de


energía en función de la temperatura. Como se puede observar, para una temperatura nula
todas las partículas que componen el sólido están en el nivel más bajo de energía. En
cambio, cuando se eleva la temperatura del sólido, aumenta la probabilidad de encontrar
partículas en niveles más altos de energía.

Figura 1. (a) Ejemplo de diferentes distribuciones de partículas en niveles de energía en


función de la temperatura. (b) Probabilidad de aceptación en función de la temperatura.

Desde el punto de vista algorítmico, el recocido simulado es un procedimiento de búsqueda


local que introduce una fase de aleatorización en la aceptación de movimientos, de tal
forma que si el movimiento es de mejora se acepta. . Por el contrario, si el movimiento
conduce a una solución peor, se acepta con la probabilidad dada por (1).

Nótese que en el caso de problemas de optimización, la constante de Boltzmann no se


considera, ya que no tiene significado en este contexto. La aleatorización en la aceptación
de movimientos viene controlada por el parámetro T, que se corresponde con la
temperatura en el proceso termodinámico. La temperatura permite que en los primeros
instantes de la búsqueda la mayoría de los movimientos se acepten, aunque éstos
empeoren la solución. Posteriormente, la temperatura se va reduciendo, lo cual implica que
cada vez se hace más restrictivo el proceso de aceptación de estados de peor calidad.

Implementación del Algoritmo Clásico de Recocido Simulado el cual requiere de cuatro


partes:

1. Una configuración de problema (el dominio donde la solución será buscada).


Su determinación es dependiente del problema. Se recomienda utilizar una función
heurística que dependa de la temperatura (que la penalice).
2. Una definición de vecindario (que gobierna la naturaleza y magnitud de las
perturbaciones permitidas).
Se concluye que la estructura de la vecindad debe ser ”suave”, de tal forma que los óptimos
estén ”difuminados” en vez de ser abruptos, ya que en este caso los óptimos presentan
perfiles escarpados. Otro factor importante a tener en cuenta es el tamaño de la vecindad.
En este sentido no hay ningún resultado teórico. P
3. Una función costo, y
4. Una esquema de enfriamiento. El algoritmo es el siguiente: El esquema de enfriamiento
es uno de los aspectos más críticos de recocido simulado. Muchas variantes de recocido
simulado han sido presentadas desde su introducción.

Por lo general, existen dos clases de implementaciones de recocido simulado:


Clase A Aquellos que poseen un número variable de ciclos internos (tamaño de la cadena
de Markov) y un decremento de temperatura fijo, y
Clase B Aquellos con un número fijo de ciclos internos y un decremento de temperatura
variable. Sin embargo, existe una tercera clase donde tanto el ciclo interno como el
decremento de temperatura son variables (Martinez, 2002).
14. BIBLIOGRAFIA
15.
16. Duarte, A. Metaheuristicas. Editorial Dykinson S,L. 2007.
17. Horacio Martínez Alfaro. Recocido. Technical report, 2002.
18.

Potrebbero piacerti anche