You are on page 1of 16

Contenido

Introducción .................................................................................................................................. 1
Descripción del problema.............................................................................................................. 1
Definición del problema ............................................................................................................ 2
Decisión y variables dependientes ........................................................................................ 2
Funciones de restricciones .................................................................................................... 2
Funciones objetivas ............................................................................................................... 4
Modelado de problemas ............................................................................................................ 5
Algoritmos de solución, matemática versus técnicas heurísticas .................................................. 6
Algoritmos matemáticos ........................................................................................................... 6
Métodos de cálculo................................................................................................................ 7
Método de Programación Lineal (LP) ................................................................................... 7
Método de programación no lineal (NLP) ............................................................................ 8
Método de Programación Dinámica (DP) ............................................................................. 9
Método de programación entero.......................................................................................... 10
Algoritmos heurísticos ............................................................................................................ 11
Algoritmo genético .............................................................................................................. 11
Recocido simulado .............................................................................................................. 13
Tabu Search ......................................................................................................................... 15
Colonia de hormigas............................................................................................................ 15

Introducción
En la vida cotidiana, todos nosotros nos enfrentamos a algunas decisiones decisivas.
Normalmente, tratamos de decidir lo mejor. Si alguien va a comprar un producto, él o ella
trata de comprar la mejor calidad, pero con el menor costo. Estos tipos de toma de
decisiones se clasifican como problemas de optimización en los que el objetivo es
encontrar las soluciones óptimas; donde el óptimo puede ser el mínimo o el máximo. El
objetivo de este capítulo es revisar brevemente los conceptos básicos de los problemas de
optimización. Obviamente, los detalles están más allá del alcance de este libro y deben
seguirse de la literatura disponible. Sin embargo, se diseña y resuelve un ejemplo simple
usando algunos de los enfoques; como se detalla en el Apéndice B.

Descripción del problema


La mayoría de los problemas operacionales y de planificación consisten en los siguientes
tres pasos principales
• Definición
• Modelado
• Algoritmo de solución
En las siguientes subsecciones, las discutimos en algunos detalles.
Definición del problema
En cualquier problema de optimización, el que toma las decisiones debe decidir sobre los
siguientes elementos.
• Variables de decisión (independiente) y dependientes
• Funciones de restricciones
• Funciones objetivas
Decisión y variables dependientes
Las variables de decisión son las variables independientes; el responsable de la toma de
decisiones debe determinar sus valores óptimos y, basándose en ellos, se pueden
determinar otras variables (dependientes). Por ejemplo, en un problema de programación
de generación óptima, las generaciones de potencia activa de las centrales eléctricas
pueden ser las variables de decisión. Las variables dependientes pueden ser el consumo
total de combustible, las pérdidas del sistema, etc. que pueden calcularse al determinar
las variables de decisión. En un problema de asignación de condensadores, las
ubicaciones y el tamaño de los bancos de condensadores son las variables de decisión,
mientras que las variables dependientes pueden ser voltajes de bus, pérdidas de sistema,
etc.
Un problema variable n-decision da como resultado un espacio de solución n-dimensional
en el que cualquier punto dentro de ese espacio puede ser una solución. Un caso
bidimensional se muestra en la Fig. 2.1.
Funciones de restricciones
En un problema de optimización de la vida real, algunas limitaciones pueden aplicarse al
espacio de la solución. Estas son típicamente limitaciones técnicas, económicas,
ambientales y similares; nombradas como restricciones que, directa o indirectamente,
dividen el espacio de la solución en regiones aceptables (factibles) e inaceptables (no
factibles). El que toma las decisiones debe encontrar un punto de solución dentro de la
región factible.
Por ejemplo, en un problema de programación de generación óptima, las generaciones de
energía activa de las plantas de energía deben estar dentro de sus respectivos valores
máximos y mínimos; o, la generación total de las plantas debe satisfacer la carga total y
una reserva especificada. En un problema de asignación de condensadores, una
restricción técnica puede ser el número máximo de bancos de condensadores que pueden
emplearse para una barra específica. Una restricción económica puede ser un límite en el
costo total de inversión práctica que no debe ser violado. La forma en que las restricciones
se comportan en un caso bidimensional se muestra en la Fig. 2.2.
Funciones objetivas
De los numerosos puntos dentro de la región factible de un problema, el que toma las
decisiones debe seleccionar el más conveniente. Lo deseable debería, sin embargo,
definirse de alguna manera. Por ejemplo, en un salón de clases, un maestro puede
seleccionar a un estudiante como el mejor si la moral es la principal preocupación. Él o
ella puede seleccionar a otro si se observa entusiasmo.
De hecho, una función objetivo es una función en términos de las variables de decisión
mediante las cuales el que toma las decisiones muestra su solución deseable. En la figura
2.3, si la función objetivo se define como la maximización de x1, la solución termina en
el punto A, mientras que si la función objetivo es minimizar x2, el punto B sería la
solución final. En un problema de programación de generación óptima, la función
objetivo puede elegirse como el costo total de combustible a minimizar. En un problema
de asignación de capacitores, la función objetivo puede ser el costo de inversión o las
pérdidas del sistema o ambos (se minimizará). Se considera que el problema es de
objetivo único si se desea optimizar solo una función objetivo. Está en contraste con los
problemas de optimización multiobjetivo en los que varias funciones deben ser
optimizadas simultáneamente. En un caso práctico, un problema de optimización puede
tener muchos puntos máximos y mínimos. Por ejemplo, considere el caso representado
en la figura 2.4 en el que se considera que la función objetivo es una función de solo x1
y debe maximizarse.
Como se muestra, hay algunos óptimos locales en el sentido de que son óptimos en el
vecindad de puntos cercanos. De esos puntos óptimos locales, uno es el global óptimo.
Modelado de problemas
Una vez que se deciden las variables de decisión, las restricciones y los términos de la
función objetivo, el responsable de la toma de decisiones debe modelar el problema en
una forma adecuada para ser resuelto. El modelado depende mucho de las herramientas
disponibles y los algoritmos para la resolución de problemas, la precisión requerida, las
simplificaciones posibles, etc. Un modelo genérico de problema de optimización estaría
en la forma dada por
Minimizar o Maximizar C (x)
Sujeto a 𝑔(𝑥) ≤ 𝑏
Donde x es la variable de decisión, C (x) es la función objetivo y g (x) ≤ b es la restricción
de desigualdad.
Las variables de decisión pueden ser reales o enteros. Por ejemplo, en un problema de
programación de generación óptima, las generaciones de energía activa son reales
mientras que en un problema de asignación de condensadores, el número de bancos de
condensadores que se instalarán en un bus específico es entero.
C y g pueden ser funciones continuas o discretas de la variable de decisión en una forma
explícita o implícita; lineal o no lineal. En función de eso, el problema de optimización
se denomina apropiadamente. Por ejemplo, un problema de optimización lineal entero es
un problema en el que tanto C como g son funciones lineales de variables de decisión
enteras.
En términos generales, como

 Maximizando 𝐶 es equivalente a minimizar (−𝐶)


 Podemos nombrar la restricción de igualdad como 𝑓(𝑥) para separarlo de 𝑔(𝑥)
 𝑔(𝑥) > 𝑔𝑙𝑜 o (𝑔(𝑥) − 𝑔𝑙𝑜 ) > 0 es equivalente a (𝑔(𝑥) − 𝑔𝑙𝑜 ) < 0
 Puede haber más de uno 𝑓(𝑥) o uno 𝑔(𝑥)
 Puede haber más de una sola variable independiente x (en cambio, un vector de
x).

El problema de optimización general se puede establecer como

𝑀𝑖𝑛 𝐶(𝑥)
𝑠. 𝑡. 𝒇(𝑿) = 0

Y
𝑔(𝑥) ≤ 0

Algoritmos de solución, matemática versus técnicas heurísticas


El problema de optimización restringido como se establece en (2.2), (2.3) y (2.4) puede
resolverse mediante algunas técnicas de optimización disponibles. Estas técnicas se
pueden clasificar generalmente como matemáticas y heurísticas. Ambos han recibido
atención en la literatura del sistema de energía. Estos se revisan en las siguientes
subsecciones.
Algoritmos matemáticos
Una técnica de optimización matemática formula el problema en una representación
matemática; como está dado por (2.2) a (2.4). Siempre que la función objetivo y / o las
restricciones no sean lineales, el problema resultante se designa como Problema de
optimización no lineal (NLP). Un caso especial de PNL es la programación cuadrática en
la que la función objetivo es una función cuadrática de x. Si tanto las funciones objetivo
como las restricciones son funciones lineales de x, el problema se designa como un
problema de Programación Lineal (LP). También se pueden identificar otras categorías
en función de la naturaleza de las variables. Por ejemplo, si x es de tipo entero, el
problema se denota por Integer Programming (IP). También pueden existir tipos mixtos
tales como MILP (Programación Lineal Entera Mixta) en la que, si bien las variables
pueden ser tanto reales como enteros, el problema también es del tipo LP. Para las
formulaciones basadas en matemática, algunos algoritmos, hasta ahora, se han
desarrollado; basado en ellos, también se han generado algunos programas comerciales.
En las siguientes subsecciones, revisamos brevemente estos algoritmos. Sin embargo,
debemos tener en cuenta que, en términos generales, un algoritmo matemático puede
sufrir problemas numéricos y puede ser bastante complejo en la implementación. Sin
embargo, su convergencia puede estar garantizada, pero encontrar la solución óptima
global solo puede garantizarse para algunos tipos, como LP.
No existe una clasificación definida y fija de algoritmos matemáticos. Aquí, no los vamos
a discutir en detalle. En cambio, vamos a presentar algunos temas que son de más interés
en este libro y pueden ser aplicables a problemas de planificación del sistema de energía.
Algunos temas, como la teoría de juegos, que son de más interés para otros problemas del
sistema de energía (como el análisis de mercado de los sistemas de energía), no se abordan
aquí.
Métodos de cálculo
Estos tipos de métodos son la forma tradicional de buscar puntos óptimos. Estos son
aplicables a las funciones continuas y diferenciables de los términos objetivo y de
restricción. Utilizan el cálculo diferencial para localizar los puntos óptimos.
Basado en el cálculo diferencial básico desarrollado para encontrar los puntos óptimos de
C (x) (ver (2.2)), el método de multiplicadores de Lagrange se ha desarrollado para
encontrar los puntos óptimos; donde las restricciones de igualdad (2.3) también pueden
aplicarse. Si las restricciones de desigualdad (2.4) también son aplicables, aún se puede
usar el método básico; sin embargo, deben observarse las llamadas condiciones de Kuhn-
Tucker. La solución no es tan sencilla en ese caso.
Método de Programación Lineal (LP)
Como ya se señaló, LP es un método de optimización en el que tanto la función objetivo
como las restricciones son funciones lineales de las variables de decisión. Este tipo de
problema se reconoció por primera vez en la década de 1930 por los economistas en el
desarrollo de métodos para la asignación óptima de recursos.
Tomando nota del hecho de que
• Cualquier problema de LP puede ser declarado como un problema de minimización;
debido al hecho de que, como ya se ha descrito, maximizar C (x) es equivalente a
minimizar (-C (x)).
• Todas las restricciones pueden establecerse como tipo de igualdad; debido al hecho de
que cualquier restricción de desigualdad de la forma dada por
puede transformarse en restricciones de igualdad, dadas por

Respectivamente, donde son variables no negativas, conocidas como


excedentes variables.
• Todas las variables de decisión pueden considerarse no negativas, como cualquier xj,
sin restricciones en signo, se puede escribir como donde:

Se puede ver que Xj será negativo, cero o positivo dependiendo de si Xj '' es mayor que,
igual o menor que Xj '.
El problema se puede expresar en una forma conocida como canónico. Entonces, una
solución conocida como el método símplex, ideado por primera vez en la década de 1940,
puede usarse para resolver el problema. El uso del método símplex normalmente requiere
una gran cantidad de almacenamiento y tiempo en la computadora. El llamado método
simplex revisado es un método revisado en el que se requiere menos tiempo de
computación y espacio de almacenamiento. Otro tema de interés en los problemas de LP
es la teoría de la dualidad. De hecho, asociado con cada problema de LP, se puede
formular un llamado problema dual.
En muchos casos, la solución de un problema de LP puede obtenerse más fácilmente del
problema dual. Si el problema de LP tiene una estructura especial, se puede emplear el
llamado principio de descomposición para resolver el problema en el que se requiere
menos almacenamiento de la computadora. De esta manera, el problema se puede resolver
de manera más eficiente.
Los problemas de transporte son problemas especiales de PL, que ocurren a menudo en
la práctica. Estos problemas se pueden resolver con algunos algoritmos que son más
eficientes que el método símplex.
Método de programación no lineal (NLP)
Anteriormente notamos que si la función objetivo y / o las restricciones son funciones no
lineales de las variables de decisión, el problema de optimización resultante se llama PNL.
Antes de seguir adelante con los problemas de PNL, debemos tener en cuenta que la
mayoría de los problemas prácticos son de tipo limitado en los que se deben cumplir
algunas funciones de restricción. En cuanto a los problemas restringidos, sin embargo,
algunos algoritmos trabajan sobre el principio de transformar el problema en un caso no
restringido, inicialmente revisamos algunos algoritmos existentes para resolver
problemas no restringidos.
Los métodos de solución para problemas no restringidos se pueden clasificar
generalmente como métodos de búsqueda directa (o sin gradiente) y métodos de descenso
(o gradiente). Los primeros métodos no usan derivados parciales de la función objetivo y
son adecuados para problemas simples que involucran un número relativamente pequeño
de variables. Los últimos métodos requieren las evaluaciones de la primera y
posiblemente, las derivadas de orden superior de la función objetivo. Como resultado,
estos métodos son generalmente más eficientes que los métodos directos.
Todos los métodos de optimización no restringidos son de naturaleza iterativa y
comienzan desde una solución de prueba inicial; moviéndose paso a paso de forma
secuencial hacia la solución óptima. Los métodos de gradiente han recibido más atención
en la literatura del sistema de potencia. Por ejemplo, en el llamado método de descenso
más empinado; ampliamente utilizado en la literatura del sistema de potencia, el vector
de gradiente se usa para calcular la longitud de paso óptima a lo largo de la dirección de
búsqueda, de modo que se maximiza la eficiencia del algoritmo.
Volvamos al caso restringido. Se aplican dos tipos de métodos, a saber, los métodos
directos e indirectos. En los métodos anteriores, las restricciones se manejan de manera
explícita, mientras que en la mayoría de los últimos métodos; el problema restringido se
convierte en una secuencia de problemas no restringidos y se resuelve mediante
algoritmos disponibles.
Como un ejemplo de los métodos directos, en el llamado método de aproximación de
restricciones, la función objetivo y las restricciones se linealizan sobre algún punto. El
problema de LP aproximado resultante se resuelve usando técnicas LP. La solución
resultante se usa para construir un nuevo problema de LP. El proceso continúa hasta que
se cumple un criterio de convergencia.
Como ejemplo de los métodos indirectos, el llamado método de la función de
penalización funciona según el principio de convertir el problema en un tipo no
restringido. A su vez, se clasifica como métodos de penalización interiores y exteriores.
En el primero, la secuencia de mínimos no restringidos se encuentra en la región factible,
mientras que en el último, se encuentran en la región inviable. En ambos, se mueven hacia
la solución deseada.

Método de Programación Dinámica (DP)


La Programación Dinámica es una técnica ampliamente utilizada en estudios de sistemas
de potencia. Es, de hecho, una técnica matemática utilizada para problemas de decisión
de múltiples etapas; originalmente desarrollado en 1950s.
Un problema de decisión de múltiples etapas es un problema en el que las decisiones
óptimas deben tomarse en algunas etapas. Las etapas pueden ser tiempos diferentes,
espacios diferentes, niveles diferentes, etc. El punto importante es que la salida de cada
etapa es la entrada a la siguiente etapa en serie.
La función objetivo general debe optimizarse en todas las etapas. Normalmente es una
función de las variables de decisión (xi) de todas las etapas. El hecho importante es que
uno no puede comenzar optimizando la primera etapa; avanzar hacia la etapa final; ya
que puede haber algunas correlaciones entre las etapas, también.
Para aclarar el problema, expresemos un ejemplo de sistema de poder. Supongamos que
vamos a minimizar el costo de generación de un sistema de energía durante un período
de 24 horas. Alguna información es la siguiente
• Hay cuatro unidades de generación disponibles; cada uno de los cuales puede estar
apagado o conectado (de modo que varias combinaciones son posibles, como, 1111, 1101,
1001, 0011, ...).
• Las eficiencias de la unidad son diferentes; de modo que si la carga del sistema es baja
y digamos que dos unidades pueden cumplir con la carga, deberíamos usar las unidades
eficientes más altas para suministrar la carga.
• La carga varía a lo largo del período de 24 horas; cambiando a cada hora (etapa). El
problema de la decisión de varias etapas es, de hecho, decidir sobre las unidades que
estarán en cada etapa para minimizar el costo general de generación durante el período
de 24 horas. Notamos que si no se imponía ninguna otra restricción, deberíamos optimizar
nuestro problema en cada etapa y sumarlo en todas las etapas. En otras palabras, deben
resolverse 24 problemas de optimización de una etapa para encontrar la solución final.
Supongamos que la solución final se parece a la Fig. 2.5 en la que las combinaciones de
unidades se muestran en cada etapa.
Como se muestra, la unidad 1 está activada en las horas 1 y 2, desactivada en la hora 3 y
nuevamente en la hora 4. Ahora, ¿qué sucede si se impone una restricción que expresa el
hecho de que si la unidad 1 está apagada, no se puede encender? a menos que haya
transcurrido un período de 5 horas. Entonces, nuestra solución anterior no es práctica.
Ahora, ¿cómo podemos encontrar la solución?

Se puede verificar que en cada etapa, para el caso de las cuatro unidades anteriores, el
número de combinaciones sea . Para el período de 24 horas, el número de
combinaciones sería ¿Qué sucede si el número de unidades es, por ejemplo, 100
y el número de etapas es, por ejemplo, 168 (una semana). ¡El número de las
combinaciones generales sería
En la técnica DP, un problema de decisión de múltiples etapas se descompone en una
secuencia de problemas de una sola etapa; resuelto sucesivamente La descomposición
debe realizarse de tal forma que se pueda obtener la solución óptima del problema original
a partir de la solución óptima de los problemas de una sola etapa.
Método de programación entero
En los algoritmos discutidos hasta ahora, cada una de las variables de decisión puede
tomar cualquier valor real. ¿Qué sucede si una variable de decisión está limitada a tomar
solo un valor entero? Por ejemplo, si la variable de decisión es la cantidad de unidades de
generación, tomar un valor real no tiene sentido. Los algoritmos de optimización
desarrollados para esta clase de problemas se clasifican como métodos de IP. Si todas las
variables de decisión son de tipo entero, el problema se aborda como un problema de IP.
Si algunas variables de decisión son de tipo entero, mientras que otras son de tipo no
entero, el problema se conoce como problema de programación de entero mixto.
Además, en función de la naturaleza del problema original, se han desarrollado tanto la
programación lineal entera como los métodos de programación no lineal enteros. Como
resultado, en la literatura del sistema de potencia, han aparecido algunos términos como
MILP.
Algoritmos heurísticos
La mayoría de los algoritmos basados en matemática pueden garantizar alcanzar una
solución óptima; mientras que no garantiza necesariamente alcanzar un óptimo global. La
optimalidad global solo puede alcanzarse, verificarse o garantizarse para casos simples.
Por otro lado, muchos problemas de optimización práctica no caen en formas estrictas y
suposiciones de algoritmos matemáticos. Además, si el problema es muy complejo, es
probable que no podamos resolverlo en absoluto mediante algoritmos matemáticos.
Además, encontrar el óptimo global es de interés, ya que encontrar uno local sería un gran
inconveniente.
Los algoritmos heurísticos se diseñan para abordar los puntos mencionados
anteriormente. Ellos, normalmente, pueden resolver los problemas combinatorios, a veces
muy complejos, pero en un tiempo razonable. Sin embargo, buscan buenas soluciones,
sin poder garantizar la optimalidad, o incluso cuán cerca están las soluciones del punto
óptimo. Además, algunos algoritmos heurísticos modificados se han desarrollado en la
literatura mediante la cual se logran comportamientos mejorados, alegando que las
soluciones óptimas están garantizadas. Se puede diseñar un algoritmo heurístico simple
basado en algunos tipos de análisis de sensibilidad. Por ejemplo, en un problema de
asignación de condensadores, las sensibilidades de la función objetivo pueden
determinarse mediante la aplicación de un banco de condensadores en un bus. Una vez
hecho esto, el condensador se agrega al bus más sensible y el procedimiento se repite
hasta que no se logre ninguna mejora adicional en términos de la función objetivo. Sin
embargo, la mayoría de los algoritmos heurísticos se basan en algunos comportamientos
biológicos. Básicamente, todos comienzan desde un punto o un conjunto de puntos,
avanzando hacia una mejor solución; a través de una búsqueda guiada. Pocos han sido
desarrollados hasta ahora, algunos son dignos de mención aquí.
• Algoritmo genético (GA), basado en la genética y la evolución,
• Recocido simulado (SA), basado en algunos principios de termodinámica,
• Particle Swarm (PS), basado en los movimientos de aves y peces,
• Tabu Search (TS), basado en la respuesta de la memoria,
• Ant Colony (AC), según el comportamiento de las hormigas.
Aun así, otras técnicas pueden ser citadas. Sin embargo, limitamos nuestras discusiones
aquí a los algoritmos anteriores. El lector interesado debe consultar las referencias al final
de este capítulo.
Algoritmo genético
En la naturaleza, cada especie se enfrenta a un entorno desafiante y debe adaptarse para
la máxima probabilidad de supervivencia. A medida que transcurre el tiempo, la especie
con características mejoradas sobrevive. De hecho, el llamado tipo más apto es
sobrevivido. Este tipo de fenómeno que ocurre en la naturaleza es la base de la GA basada
en la evolución.
El Algoritmo Genético fue desarrollado principalmente por Holanda. Las variables de
decisión que se encuentran son código binario, código de valor real o código entero, en
forma de una cadena de genes. Esta cadena se llama cromosoma problemático,
seleccionado del llamado conjunto de poblaciones. La función objetivo se calcula para
este cromosoma como la función de aptitud problemática. Después de establecer una
población inicial, seleccionar un cromosoma y calcular su aptitud, se genera una próxima
población; basado en el procedimiento descrito a continuación. Los cromosomas iniciales
se llaman padres y los cromosomas regenerados se llaman descendientes. Como veremos,
la regeneración da como resultado cromosomas con mejores valores de aptitud física. El
algoritmo continúa hasta que no se logra una mejora adicional en la función de aptitud.
Observamos que GA usa solo la información de la función objetivo y no las derivadas.
Como aleatoriamente, pero de forma guiada, busca el espacio factible, la probabilidad de
alcanzar en las proximidades del óptimo global es alta; aunque converger en el óptimo
global en sí mismo no es muy probable. La selección, el cruce y la mutación como los
tres principales operadores de GA se describen a continuación.
• Selección. Con base en la estructura cromosómica definida, inicialmente se genera una
población de cromosomas, aleatoria o inteligentemente. Se pueden considerar 30-100
cromosomas. Entonces, podemos seleccionar dos cromosomas como padres para un
proceso posterior. El valor de la aptitud se usa como el criterio para la selección de los
padres.
• Cruce. Una vez que se seleccionan los padres, debemos generar nuevas cadenas;
descendientes, a través de dos tipos de operadores. El llamado crossover funciona según
el principio de intercambiar los valores después de una posición específica. Por ejemplo,
si A y B son los dos cromosomas iniciales seleccionados.

Y el operador de cruce se aplica en la posición 6, los descendientes resultantes se ven


como.

Este tipo de regeneración se realiza al azar en varias posiciones. Como resultado, se


genera una nueva población de cromosomas en la que, nuevamente, el proceso de
selección puede reiniciarse.
• Mutación. Un inconveniente inherente del operador de cruce es el hecho de que en una
posición particular, el valor del gen puede no cambiar en absoluto. Para evitar este
problema, el operador de la mutación intenta alterar el valor de un gen, aleatoriamente de
1 a 0 y viceversa. Sin embargo, debemos mencionar que esto se hace con poca frecuencia.
Deberíamos mencionar que los operadores definidos anteriormente son los tipos más
simples. En la práctica, se desarrollan operadores más sofisticados para mejorar el
rendimiento de GA. Actualmente, GA ha recibido una gran atención en la literatura del
sistema de energía.
Recocido simulado
Simulated Annealing es un algoritmo flexible para tratar los problemas de optimización
combinatoria. Se puede aplicar a problemas complejos, que incluyen funciones no
diferenciables, discontinuas y no convexas.
El recocido es el proceso natural de enfriamiento de un material fundido; desde una
temperatura alta Si el proceso de enfriamiento se realiza bajo condiciones de equilibrio
térmico, el recocido da como resultado la formación de cristales. La formación de un
cristal perfecto es equivalente a un estado de energía mínima.
Fue en la década de 1980 cuando los principios citados anteriormente aparecieron por
primera vez como un algoritmo para resolver problemas de optimización. Se observó que
se puede definir una correspondencia entre los estados físicos de una materia y el espacio
de solución de un problema de optimización. La energía libre de la materia puede
corresponder a la función objetivo del problema de optimización.
Antes de continuar, primero debemos analizar el algoritmo de Metrópolis como la base
del algoritmo SA.
• Algoritmo de Metrópolis. Las partículas que forman un material tienen diferentes
niveles de energía, de acuerdo con una distribución de probabilidad y en función de su
temperatura (T). El algoritmo de Metrópolis funciona según el principio de generar un
nuevo estado Sj; desde un estado inicial dado Si; con energía Ei. Este nuevo estado es
generado por un mecanismo, que consiste en una pequeña perturbación en el estado
original. La perturbación se obtiene, de hecho, moviendo una de las partículas elegidas
por el método de Monte Carlo.
Para la energía del nuevo estado, Ej (que se encuentra probabilísticamente), se comprueba
que la diferencia Ej - Ei es menor o igual a cero para aceptar el nuevo estado Sj. Si esta
diferencia es positiva, aún Sj es aceptado; pero con una probabilidad dada por:

Donde T es la temperatura del material y kB es la constante de Boltzmann. El proceso


dado anteriormente normalmente requiere una gran cantidad de transiciones de estado
para alcanzar el estado con el nivel de energía más bajo.
Los principios anteriores se siguen para resolver un problema de optimización. SA
consiste básicamente en dos mecanismos principales. Uno es la generación de alternativas
(estados) y el otro es una regla de aceptación. Inicialmente, para una temperatura dada
T0, se genera una secuencia de configuraciones (N0). La configuración inicial Si se elige.
Tk es el parámetro de control. Inicialmente T es grande; luego se reduce según un
cronograma de enfriamiento. El criterio de aceptación es como se discutió en el algoritmo
de Metrópolis. Temperatura inicial T0, el número de transiciones realizadas en cada nivel
de temperatura (Nk), temperatura final, Tf (como el criterio de detención) y la secuencia
de enfriamiento (dada por Tk + 1 = g (Tk) Tk; donde g (Tk) es una función que controla
la temperatura), son cuatro parámetros SA principales. Las determinaciones apropiadas
de los parámetros anteriores han recibido atención en la literatura.
Enjambre de particulas
Algunas criaturas naturales como los peces y las aves se comportan como un enjambre.
Cada individuo coordina su movimiento con los otros de tal manera que no colisiona con
los demás, se mueve hacia el destino y se mueve al centro del grupo (enjambre).
Fue a mediados de 1990 que la idea básica de PS se formuló como un algoritmo de
optimización.
Las características de cada individuo (el llamado agente) se muestran en un espacio
bidimensional por su posición (x e y) y su vector de velocidad (vx y vy). Cada agente
optimiza su movimiento hacia el destino. Al hacerlo, rastrea
• El mejor valor de la función objetivo que ha logrado hasta ahora (el llamado pbest),
• El mejor valor de la función objetivo que otros agentes han logrado hasta ahora (el
llamado gbest).
Entonces, el agente modifica su posición, notando
• Su posición actual,
• Su velocidad actual,
• Las distancias entre la posición actual con pbest y gbest.

Matemáticamente hablando, nueva posición de un agente i en la iteración


puede determinarse a partir de su posición actual (iteración k) sabiendo que su

velocidad en la iteración se puede determinar como:

Donde w es un factor de ponderación, C1 y C2 son coeficientes de ponderación y rand1


y rand2 son dos números aleatorios entre 0 y 1.
El primer término da como resultado el movimiento del agente en la misma dirección que
antes; como resultado, explorar un nuevo espacio de búsqueda. Por eso, w, se llama
coeficiente de diversificación. Por lo general, se define como:

𝑤
̅ y w se seleccionan típicamente para que sean 0,9 y 0,4, respectivamente. Con (2.12),
inicialmente la diversificación tiene una gran ponderación y se reduce hacia el final del
procedimiento de búsqueda. Por otro lado, el segundo y el tercer término de (2.11)
resultan en la llamada intensificación. C1 y C2 pueden ser típicamente seleccionados para
ser 2.0. Los pasos involucrados en un algoritmo de optimización PS se pueden describir
generalmente como
(a) Genere la condición inicial para cada agente
(b) Evalúe el punto de búsqueda de cada agente
(c) Modificar cada punto de búsqueda
El procedimiento se repite para un número máximo de iteraciones. Cabe mencionar que
algunas variaciones del método de optimización de PS se han desarrollado, hasta ahora,
para dar cuenta de algunos problemas prácticos de optimización combinatoria.
Tabu Search
Tabu significa prohibido buscar o considerar. A diferencia de otros enfoques
combinatorios, TS no está relacionado con fenómenos físicos. Inicialmente se propuso a
principios de la década de 1980. Es un procedimiento iterativo que comienza desde una
solución inicial y tiende a moverse hacia un nuevo espacio de solución de una manera
más agresiva o más avariciosa que GA o SA. El vecindario, desde donde se seleccionará
la siguiente solución / movimiento, se modifica clasificando algunos movimientos como
tabú, otros como deseables.
En cada iteración del algoritmo, se define una estructura de barrio; un movimiento se
realiza a la mejor configuración. Para escapar de los puntos óptimos locales, también se
permiten algunas transiciones a las configuraciones con mayores costos. De forma similar
al algoritmo PS, el uso de la intensificación y la diversificación dan como resultado una
exploración más exhaustiva de las regiones atractivas y, al mismo tiempo, el traslado a
regiones no visitadas previamente. Esto ayuda a evitar el atrapamiento en puntos óptimos
locales.
Los pasos implicados en un algoritmo de optimización TS se pueden resumir como
(a) Generar una solución inicial,
(b) Seleccione movimiento,
(c) Actualice la solución. La siguiente solución se elige de la lista de vecinos que se
considera deseada (aspirante) o no tabú y para la cual la función objetivo es óptima.
El proceso se repite en función de cualquier regla de detención propuesta. A diferencia
de otros algoritmos heurísticos, no hay suficientes antecedentes teóricos para adaptar TS
a un problema práctico en cuestión y los usuarios tienen que recurrir a sus experiencias
prácticas.
Colonia de hormigas
La técnica de optimización de CA es una técnica de optimización combinatoria,
desarrollada inicialmente a principios de la década de 1990. Se basa en el comportamiento
de los insectos, especialmente las hormigas.
Las hormigas tienen una habilidad maravillosa para encontrar la distancia más corta desde
un alimento hasta su nido. Incluso si se interpone un obstáculo, nuevamente encuentran
la distancia más corta.
Los científicos han descubierto que la herramienta principal de este fenómeno es la
llamada feromona utilizada como medio de comunicación básico entre los individuos. Al
caminar, cada hormiga deposita una sustancia química, llamada feromona, como un rastro
en el suelo. Inicialmente, todas las hormigas se mueven de forma aleatoria para buscar
comida. Si se considera que tienen la misma velocidad, el que encuentra la comida más
rápido (es decir, con la distancia más corta) vuelve al nido antes y deposita la feromona
al regresar. El camino será más rico en feromonas. Otras hormigas lo harán pronto lo
reconocerá como un camino prometedor y todos lo seguirán. En base a lo anterior, se han
desarrollado algunos algoritmos de CA. Básicamente, los pasos son los siguientes:
• Inicialización en la que las variables problemáticas están codificadas y se genera
población inicial; al azar dentro de la región factible. Se arrastrarán a diferentes
direcciones en un radio no mayor a R.
• Evaluación en la que se calcula la función objetivo para todas las hormigas.
• Agregación de camino en el que se agrega una cantidad de camino para cada hormiga;
en proporción a su función objetivo calculado (la llamada aptitud).
• Envío de hormigas en el que las hormigas son enviadas a sus siguientes nodos, de
acuerdo con la densidad del camino y la visibilidad.
• Ya hemos descrito la densidad del camino cuando se deposita la feromona. Las hormigas
no son completamente ciegas y se moverán en cierta medida según las visibilidades de
los nodos.
Estas dos acciones se asemejan a los pasos involucrados en los algoritmos PS y TS
(intensificación y diversificación) para evitar el atrapamiento en los puntos óptimos
locales.
• Evaporación en la que el rastro depositado por una hormiga se evapora finalmente y el
punto de partida se actualiza con la mejor combinación encontrada.
Los pasos se repiten hasta que se alcanza un criterio de regla de detención.

You might also like