Professional Documents
Culture Documents
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.
𝑀𝑖𝑛 𝐶(𝑥)
𝑠. 𝑡. 𝒇(𝑿) = 0
Y
𝑔(𝑥) ≤ 0
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.
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 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.