You are on page 1of 34

5.

2 METODOS DE SOLUCIÓN DE DESPACHO ECONOMICO

El problema del compromiso puede ser muy difícil. Como ejercicio teórico,
postulemos la siguiente situación.
• Debemos establecer un patrón de carga para m periodos.
• Tenemos N unidades para comprometer y despachar.
• Los niveles de carga M y los límites de funcionamiento en las N unidades son
tales que cualquier unidad puede suministrar las cargas individuales y que
cualquier combinación de unidades también puede suministrar las cargas.
A continuación, supongamos que vamos a establecer el compromiso por
enumeración (fuerza bruta). El número total de combinaciones que debemos
probar cada hora es,
C (N, 1) + C (N, 2) + ... + C (N, N - 1) + C (N, N) = 2N - 1
donde C (N, j) es la combinación de N elementos tomados j a la vez. Es decir,

Para el período total de intervalos M, el número máximo de combinaciones


posibles es (2N-1) M, que puede convertirse en un número horrible en el que
pensar. Por ejemplo, tome un período de 24 horas (por ejemplo, 24 intervalos
de una hora) y considere los sistemas con 5, 10, 20 y 40 unidades. El valor de
(2N - 1)24 se convierte en el siguiente.
N (2N - 1)24
5 6.2 x 1035
10 1.73 x 1072
20 3.12 x 10144
40 (demasiado grande)

Estos números muy grandes son los límites superiores para el número de
enumeraciones requeridas. Afortunadamente, las restricciones en las unidades
y las relaciones de capacidad de carga de los sistemas de servicios públicos
típicos son tales que no nos acercamos a estos grandes números. Sin
embargo, la barrera práctica real en el problema de compromiso de unidad
optimizada es la alta dimensionalidad del espacio de solución posible.

Las técnicas más comentadas para la solución del problema de compromiso de


la unidad son:
 Esquemas de lista de prioridades,
 Programación dinámica (DP),
 Relación de Lagrange (LR).

5.2.1 Métodos de lista de prioridades

El método de solución de compromiso de unidad más simple consiste en crear


una lista de unidades de prioridad. Como vimos en el Ejemplo 5B, se podría
obtener una regla de apagado simple o un esquema de lista de prioridad
después de una enumeración exhaustiva de todas las combinaciones de
unidades en cada nivel de carga. La lista de prioridades del Ejemplo 5B se
podría obtener de una manera mucho más simple al anotar el costo de
producción promedio de carga total de cada unidad, donde el costo de
producción promedio de carga completa es simplemente la tasa de calor neta a
plena carga multiplicada por el costo del combustible.

Ejemplo 5D

Construya una lista de prioridades para las unidades del Ejemplo 5A. (Use los
mismos costos de combustible que en el Ejemplo 5A). Primero, se calculará el
costo de producción promedio de carga completa:
Unidad Coste medio de producción
a plena carga ($/MWh)
1 9.79
2 9.48
3 11.188

Un orden de prioridad estricto para estas unidades, basado en el costo de


producción promedio, las ordenaría de la siguiente manera:

Unidad $/MWh Min MW Max MW


2 9.48 100 400
1 9.79 150 600
3 11.188 50 200

y el esquema de compromiso (ignorando el tiempo mínimo de subida / bajada,


los costos de puesta en marcha, etc.) simplemente utilizaría las siguientes
combinaciones.
Combinación Min MW de Max MW de
Combinación Combinación
2+1+3 300 1200
2+ 1 250 1000
2 100 400
Tenga en cuenta que dicho esquema no sería completamente paralelo a la
secuencia de apagado descrita en el Ejemplo 5B, donde la unidad 2 se cerró a
600 MW dejando la unidad l. Con el esquema de lista de prioridades, ambas
unidades se mantendrían encendidas hasta que la carga alcanzara los 400
MW, luego la unidad 1 se eliminaría.

La mayoría de los esquemas de lista de prioridades se basan en un algoritmo


de cierre simple que podría funcionar de la siguiente manera.

• En cada hora en que la carga esté cayendo, determine si dejar caer la


siguiente unidad en la lista de prioridades dejará suficiente generación para
satisfacer los requisitos de carga más la reserva de giro. Si no, continúa
operando como está; Si es así, continúe con el siguiente paso.
• Determine la cantidad de horas, H, antes de que la unidad vuelva a ser
necesaria. Es decir, asumiendo que la carga está disminuyendo y luego
volverá a subir algunas horas más tarde.
• Si H es menor que el tiempo mínimo de apagado de la unidad, mantenga el
compromiso como está y vaya al último paso; Si no, ve al siguiente paso.
• Calcular dos costos. La primera es la suma de los costos de producción por
hora para las siguientes horas H con la unidad arriba. Luego, vuelva a
calcular la misma suma para la unidad hacia abajo y agregue el costo inicial
ya sea para enfriar la unidad o guardarla, lo que sea menos costoso. Si hay
suficientes ahorros al apagar la unidad, debe apagarse, de lo contrario,
manténgala encendida.
• Repita todo este procedimiento para la siguiente unidad en la lista de
prioridades. Si también se cae, vaya a la siguiente y así sucesivamente.

Se pueden realizar varias mejoras al esquema de lista de prioridades


agrupando las unidades para garantizar que se cumplan varias restricciones.
Notaremos más adelante que los métodos de programación dinámica
generalmente crean el mismo tipo de lista de prioridades para usar en la
búsqueda de DP.

5.2.2 Solución de programación dinámica

5.2.2.1 Introducción
La programación dinámica tiene muchas ventajas sobre el esquema de
enumeración, la principal ventaja es una reducción en la dimensionalidad del
problema. Supongamos que hemos encontrado unidades en un sistema y
cualquier combinación de ellas podría servir para la carga (única). Habría un
máximo de 24 - 1 = 15 combinaciones para probar. Sin embargo, si se impone
un orden de prioridad estricto, solo hay cuatro combinaciones para probar:

Unidad de prioridad 1
Unidad de prioridad 1 + unidad de prioridad 2
Unidad de prioridad 1 + unidad de prioridad 2 + unidad de prioridad 3
Unidad de prioridad 1 + unidad de prioridad 2 + unidad de prioridad 3 + unidad
de prioridad 4
La imposición de una lista de prioridad organizada en orden de la tasa de costo
promedio de carga total resultaría en un envío y compromiso teóricamente
correctos solo si:

1. Sin costes de carga son cero.


2. Las características de entrada / salida de la unidad son lineales entre la
salida cero y la carga completa.
3. No hay otras restricciones.
4. Los costos de inicio son una cantidad fija.

En el enfoque de programación dinámica que sigue, asumimos que:

1. Un estado consiste en una matriz de unidades con unidades específicas


operativas y el resto fuera de línea.
2. El costo inicial de una unidad es independiente del tiempo que ha estado
fuera de línea (es decir, es una cantidad fija).
3. No hay costos por apagar una unidad.
4. Hay un orden de prioridad estricto, y en cada intervalo debe estar operativa
una cantidad mínima especificada de capacidad.

Un estado factible es aquel en el que las unidades comprometidas pueden


suministrar la carga requerida y que cumpla con la cantidad mínima de
capacidad en cada período.

5.2.2.2 Enfoque DP hacia adelante


Uno podría configurar un algoritmo de programación dinámica para que
retroceda en el tiempo a partir de la hora final a estudiar, hasta la hora inicial. A
la inversa, uno podría configurar el algoritmo para avanzar en el tiempo desde
la hora inicial hasta la hora final. El enfoque hacia adelante tiene distintas
ventajas en la resolución del compromiso de la unidad generadora. Por
ejemplo, si el costo de puesta en marcha de una unidad es una función del
tiempo que ha estado fuera de línea (es decir, su temperatura), entonces un
enfoque de programa dinámico hacia adelante es más adecuado ya que el
historial anterior de la unidad puede ser más adecuado. computado en cada
etapa. Hay otras razones prácticas para seguir adelante. Las condiciones
iniciales son fáciles de especificar y los cálculos pueden avanzar en el tiempo
siempre que sea necesario. El diagrama de flujo de la Figura 5.4 muestra un
algoritmo de programación dinámica hacia adelante.
El algoritmo recursivo para calcular el costo mínimo en la hora K con la
combinación I es,

Donde:
Fcost(K, I) = menor costo total para llegar al estado (K, I)
Pcost(K, I) = costo de producción por estado (K, I)
Scost (K - 1, L: K, L) = costo de transición del estado (K - 1, L) al estado (K, I)
Fig. 5.4. Compromiso de la unidad a través de la programación dinámica hacia adelante.

El estado (K, I) es la combinación Ith en la hora K. Para el enfoque de


programación dinámica hacia adelante, definimos una estrategia como la
transición, o ruta, de un estado a una hora determinada a un estado a la hora
siguiente.
Tenga en cuenta que se han introducido dos nuevas variables, X y N, en la
Figura 5.4.
X = número de estados para buscar en cada período
N = número de estrategias, o caminos, para guardar en cada paso
FIG. 5.5 Rutas de búsqueda restringidas en algoritmo DP con N = 3 y X = 5.

Estas variables permiten el control del esfuerzo computacional (ver Figura 5.5).
Para una enumeración completa, el número máximo del valor de X o N es 2"- 1.
Por ejemplo, con un orden de lista de prioridad simple, el límite superior en X
es n, el número de unidades. Reducir el número N significa que estamos
descartando los programas de mayor costo en cada intervalo de tiempo y
guardando solo las N rutas o estrategias más bajas. No hay garantía de que el
programa teórico óptimo se encuentre utilizando un número reducido de
estrategias y rango de búsqueda (el valor X); solo la experimentación con un
programa en particular indicará el error potencial asociado con la limitación de
los valores de X y N por debajo de sus límites superiores.

EJEMPLO 5E

Para este ejemplo, se utilizará el rango de búsqueda completo y se estudiarán


tres casos. El primero es un programa de lista de prioridades, el segundo es el
mismo ejemplo con enumeración completa. Los dos primeros casos ignoran los
costos de arranque en caliente y los tiempos mínimos de subida y bajada. El
tercer caso incluye los costos de arranque en caliente, así como los tiempos
mínimos de subida y bajada. Se deben comprometer cuatro unidades para
servir un patrón de carga de 8 h. Los datos sobre las unidades y el patrón de
carga se encuentran en la Tabla 5.4.

TABLA 5.4 Características de la unidad, patrón de carga y estado inicial para


los casos en el ejemplo 5E
Tasa de calor Costo sin Costo promedio Tiempos
Max Min incremental carga a plena carga mínimos (h)
Unidad
(MW) (MW) (Btu/k Wh) ($/ h) ($/mWh) Arriba Abajo
1 80 25 10440 213.00 23.54 4 2
2 250 60 9000 585.62 20.34 5 3
3 300 75 8730 684.74 19.74 5 4
4 60 20 11900 252.00 28.00 1 1
Condiciones iniciales Costos de puesta en marcha
Unidad Inicio
Horas fuera de línea ( -) Caliente Frío
frío
o en línea ( + ) (R) (R)
(h)
1 -5 150 350 4
2 8 170 400 5
3 8 500 1100 5
4 -6 0 0.02 0

Patrón de carga
Hora Carga (MW)
1 450
2 530
3 600
4 540
5 400
6 280
7 290
8 500

Con el fin de hacer los cálculos requeridos de manera más eficiente, se utiliza
un modelo simplificado de las características de la unidad. En aplicaciones
prácticas, se pueden usar curvas incrementales escalonadas de dos o tres
secciones, como se muestra en la Figura 5.6. En nuestro ejemplo, solo se
utiliza un paso entre el mínimo y el máximo de puntos de potencia. Las
unidades en este ejemplo tienen funciones lineales F (P):
FIG. 5.6 (a) Curva de costo incremental en un solo paso y (b) Curva de costo
incremental en un solo paso.

La función F (P) es:

F (P) = Costo sin carga + Costo de Inc. x P

Tenga en cuenta, sin embargo, que la unidad debe operar dentro de sus
límites. Los costos de inicio de los dos primeros casos se toman como costos
de inicio en frío. El orden de prioridad para las cuatro unidades en el ejemplo
es: unidad 3, unidad 2, unidad 1, unidad 4. En los dos primeros casos, los
tiempos mínimos de subida y bajada se toman como 1 h para todas las
unidades.
En los tres casos nos referiremos al orden de capacidad de las unidades. Esto
se muestra en la Tabla 5.5, donde las combinaciones de unidades o estados
están ordenadas por la máxima capacidad neta para cada combinación.

Caso 1
En el caso 1, las unidades se programan de acuerdo con un orden de prioridad
estricto. Es decir, las unidades se comprometen en orden hasta que se
satisfaga la carga. El costo total para el intervalo es la suma de los ocho costos
de envío más los costos de transición para iniciar cualquier unidad. En este
primer caso, debe considerarse un máximo de 24 despachos.
TABLA 5.5 Capacidad de ordenamiento de las unidades

Estado Combinación de Capacidad neta máxima


unidadesa para la combinación
15 1111 690
14 1110 630
13 0111 610
12 0110 550
11 1011 440
10 1101 390
9 1010 380
8 0011 360
7 1100 330
6 0101 310
5 0010 300
4 0100 250
3 1001 140
2 1000 80
1 0001 60
0 0000 0
Unidad 1234

ª 1 = Comprometido (unidad en funcionamiento).


O = Sin confirmar (unidad apagada).

Para el caso 1, los únicos estados examinados cada hora consisten en:

Estado Estado de la Capacidad


No. unidad (MW)
5 0010 300
12 0110 550
14 1110 630
15 1111 690

Tenga en cuenta que este es el orden de prioridad; es decir, estado 5 = unidad


3, estado 12 = unidades 3 + 2, estado 14 = unidad 3 + 2 + 1 y estado 15 =
unidades 3 + 2 + 1 + 4. Durante las primeras 4 h, solo las últimas tres Los
estados son de interés. Los cálculos de muestra ilustran la técnica.
Todos los compromisos posibles comienzan desde el estado 12, ya que se dio
como condición inicial. Para la hora 1, el costo mínimo es el estado 12, y así
sucesivamente. Los resultados para el caso ordenado por prioridad son los
siguientes.

Estado con Costo Puntero para


Total Mínimo hora anterior
1 12(9208) 12
2 12(19857) 12
3 14(32472) 12
4 12(43300) 14
. . .
. . .
. . .

Tenga en cuenta que el estado 13 no es alcanzable en este orden de prioridad


estricto.

Cálculos de muestra para el caso 1

Los estados permitidos son:

{} = {0010, 0110, 1110, 1111} = {5, 12, 14, 15}

En la hora 0 {L} = {12}, condición inicial.

J = 1: 1ra hora

k
Fcost (1, 15) = Pcost (1,15) + Scost (0, 12: 1, 15)
15
= 9861 + 350 = 10211
14 Fcost (1, 14) = 9493 + 350 = 9843
12 Fcost (1, 12) = 9208 + 0 = 9208
J = 2: 2da hora

Los estados factibles son {12, 14, 15} = {K}, entonces X = 3. Supongamos que
se guardan dos estrategias en cada etapa, entonces N = 2 y {L} = {12, 14}

y así.

CASO 2

En el caso 2, la enumeración completa se intenta con un límite de (2 4 - 1) = 15


despachos cada una de las ocho horas, de modo que hay un máximo teórico
de 158 = 2.56 · 109 posibilidades. Afortunadamente, la mayoría de estos no son
factibles porque no brindan suficiente capacidad y se pueden descartar con
poco análisis requerido.

La figura 5.7 ilustra el proceso computacional de las primeras 4 h para el caso


2. En la figura misma, los círculos denotan estados cada hora. Los números
dentro de los círculos son los "punteros".

Es decir, denotan el número de estado en la hora anterior que proporciona la


ruta a ese estado en particular en la hora actual. Por ejemplo, en la hora 2, los
costos mínimos para los estados 12, 13, 14 y 15, todos resultan de las
transiciones del estado 12 en la hora 1. Los costos que se muestran en las
conexiones son los costos de inicio. En cada estado, las cifras que se muestran
son el costo por hora / costo total.
En el caso 2, se encuentra el verdadero compromiso óptimo. Es decir, es
menos costoso activar la unidad de picos menos eficiente, número 4, para la
hora 3, que iniciar la unidad 1 más eficiente para ese período.

Para la hora 3, la diferencia en el costo total es de $ 165 o $ 0.104 / MWH. Esta


no es una cantidad insignificante cuando se compara con el costo de
combustible por MWh para una unidad térmica promedio con una tasa de calor
neta de 10,000 Btu / MWh y un costo de combustible de $ 2.00MBtu. Un ahorro
de $ 165 cada 3 h equivale a $ 481,800 / año.

Las trayectorias totales de 8 h para los casos 1 y 2 se muestran en la figura


5.8. La omisión de las restricciones de arranque y apagado en estos dos casos
permite el cierre de todas las unidades excepto las 3 en las horas 6 y 7. La
única diferencia en las dos trayectorias ocurre en la hora 3, como se discutió en
el párrafo anterior.

CASO 3

En el caso 3, los datos de la unidad original se utilizan para que se respeten los
tiempos mínimos de apagado y funcionamiento. El algoritmo de programación
dinámica hacia adelante se repitió para el mismo período de 8 h. Se usó una
enumeración completa. Es decir, el límite superior en X que se muestra en el
diagrama de flujo fue 15. Tres valores diferentes para N, el número de
estrategias guardadas en cada etapa, se tomaron como 4, 8 y 10. Se encontró
la misma trayectoria para los valores de 8 y 10. Esta trayectoria se muestra en
la figura 5.9. Sin embargo, cuando solo se guardaron cuatro estrategias, el
procedimiento fracasa (es decir, no encuentra un camino viable) en
8 horas, porque las estrategias de menor costo en la hora 7 han cerrado las
unidades que no se pueden reiniciar en la hora 8 debido a las reglas mínimas
de tiempo de inactividad de la unidad.

El remedio práctico para su deficiencia en el método que se muestra en la


figura 5.4 es regresar a un período anterior a las horas de poca carga y
mantener temporalmente más estrategias (es decir, un mayor costo). Esto
permitirá mantener un número nominal de estrategias en cada etapa. La otra
alternativa es, por supuesto, el método utilizado aquí: ejecutar todo el período
con más estrategias guardadas.

Estos casos se pueden resumir en términos de los costos totales encontrados


para el período de 8 h, como se muestra en la tabla 5.6. Estos casos ilustran el
método de programación dinámica hacia adelante y también señalan los
problemas involucrados en la aplicación práctica del método.
TABLA 5.6 Resumen de casos 1-3

CASO CONDICIONES COSTO


TOTAL($)
orden de prioridad tiempos arriba y abajo
1 descuidados 73439

2 Enumeración (x≤15) con 4 estrategias (N)


guardadas. tiempos arriba y abajo descuidados 73274
x≤15 tiempos arriba y abajo observados
3 N= 4 estrategias No Solución
B= 8 estrategias 74110
N= 4 estrategias 74110

5.2.3 SOLUCIÓN DE RELAJACIÓN LAGRANGE

El método de solución dinámica de la solución del problema de compromiso de


la unidad tiene muchas desventajas para los sistemas de gran potencia con
muchas unidades generadoras. Esto se debe a la necesidad de forzar a la
solución de programación dinámica a buscar en un pequeño número de
estados de compromiso para reducir el número de combinaciones que deben
ser probadas en cada periodo de tiempo.

En la técnica de relajación de lagrange, estas desventajas desaparecen


(aunque surgen otros problemas técnicos y deben abordarse, como veremos).
Este método se basa en un enfoque de optimización dual, tal como se presentó
en el apéndice 3A y se amplió en el apéndice de este capítulo. (El lector debe
estar familiarizado con estos dos apéndices antes de continuar).

Comenzamos definiendo la variable Uit como:

Uit = 0 ; si la unidad i está fuera de línea durante el período t

Uit = 1 ; si la unidad i está en línea durante el período t

Ahora definiremos varias restricciones y la función objetivo del problema de


compromiso de unidad:

1. restricciones de carga

𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 - ∑𝑁 𝑡 𝑡
𝑖=1 𝑃𝑖 𝑈𝑖 = 0 ; para t = 1……T (5.2)

2. Límites de unidad

𝑃𝑖𝑚𝑖𝑛 𝑈𝑖𝑡 ≤ 𝑃𝑖𝑡 ≤ 𝑃𝑖𝑚𝑎𝑥 𝑈𝑖𝑡 ; para i = 1….N y t = 1…T (5.3)


3. Unidades mínimas de tiempo de subida y bajada. Tenga en cuenta que
otras restricciones pueden formularse fácilmente y agregarse al
problema de compromiso de la unidad. Estas incluyen restricciones de
seguridad de transmisión (ver capítulo 11), restricciones de límite de
combustible del generador y restricciones de calidad del aire del sistema
en forma de límites de emisiones de plantas de combustibles fósiles,
restricciones de reserva de giro, etc.
4. La función objetivo es:

𝑡 𝑡
∑𝑇𝑡=1 ∑𝑁
𝑖=1[ 𝐹𝑖 (𝑃𝑖 ) + 𝑐𝑜𝑠𝑡𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖,𝑡 ]𝑈𝑖 = 𝐹(𝑃𝑖𝑡 , 𝑈𝑖𝑡 ) (5.4)

Luego podemos configurar la función de lagrange de manera similar ha como lo


hicimos en el problema de despacho económico:

ℒ(𝑃, 𝑈, 𝜆) = 𝐹(𝑃𝑖𝑡 , 𝑈𝑖𝑡 ) + ∑𝑇𝑡=1 𝜆𝑇 (𝑃𝑐𝑎𝑟𝑔𝑎


𝑡
− ∑𝑁 𝑡 𝑡
𝑖=1 𝑃𝑖 , 𝑈𝑖 ) (5.5)

El problema de compromiso de la unidad requiere que minimicemos la función


de lagrange anterior, sujeta a las restricciones de unidad local 2 y 3, que se
pueden

Aplicar a cada unidad por separado.

Nota:

1. La función de costo, F (𝑃𝑖𝑡 , 𝑈𝑖𝑡 ), junto con las restricciones 2 y 3 se


pueden separar en unidades. es decir, lo que se hace con una unidad no
afecta el costo de ejecutar otra unidad, en lo que respecta a la función
de costo y los límites de la unidad (restricción 2) y el tiempo de
activación y desactivación de la unidad (restricción 3).

2. las restricciones 1 son restricciones de acoplamiento entre las unidades,


de modo que lo que hacemos con una unidad afecta lo que sucederá en
otras unidades si se cumplen las restricciones de acoplamiento.

El procedimiento de relajación de lagrange resuelve el problema de


compromiso de la unidad "relajándose" o ignorando temporalmente las
restricciones de acoplamiento y resolviendo el problema como si no existiera.
Esto se realiza a través del procedimiento de optimización dual como se explica
en el apéndice de este capítulo. El procedimiento dual intenta alcanzar el
óptimo restringido al maximizar el lagrangiano con respecto a los
multiplicadores de lagrange, mientras se minimiza con respecto a las otras
variables en el problema, es decir:

𝑞 ∗ (𝜆) = 𝑚𝑎𝑥𝜆𝑡 𝑞(𝜆) (5.6)


Dónde:
𝑞(𝜆) = 𝑚𝑖𝑛𝜆𝑡 𝑃𝑖𝑡 , 𝑈𝑖𝑡 , 𝜆 (5.7)

Esto se hace en dos pasos básicos:

PASO 1: Encuentre un valor para cada 𝜆𝑡 que mueva 𝑞(𝜆) hacia un valor mayor

PASO 2: Suponiendo que la 𝜆𝑡 encontrada en el paso 1 ahora esté fija


encuentre el mínimo de ℒ ajustando los valores de Pt y Ut.

El ajuste de los valores 𝜆𝑡 se tratará más adelante en esta sección; asuma


entonces que se ha elegido un valor para toda la 𝜆𝑡 y que ahora deben tratarse
como números fijos.

Minimizaremos el lagrangiano de la siguiente manera. Primero, reescribimos el


lagrangiano como:

ℒ = ∑𝑇𝑡=1 ∑𝑁 𝑡 𝑡 𝑇 𝑇 𝑡 𝑁 𝑡 𝑡
𝑖=1[ 𝐹𝑖 (𝑃𝑖 ) + 𝑐𝑜𝑠𝑡𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖,𝑡 ]𝑈𝑖 + ∑𝑡=1 𝜆 (𝑃𝑐𝑎𝑟𝑔𝑎 − ∑𝑖=1 𝑃𝑖 𝑈𝑖 ) (5.8)

Esto ahora se reescribe como:

ℒ = ∑𝑇𝑡=1 ∑𝑁 𝑡 𝑡 𝑇 𝑇 𝑡 𝑇 𝑇 𝑡 𝑡
𝑖=1[𝐹𝑖 (𝑃𝑖 ) + 𝑐𝑜𝑠𝑡𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖,𝑡 ]𝑈𝑖 + ∑𝑡=1 𝜆 𝑃𝑐𝑎𝑟𝑔𝑎 − ∑𝑡=1 𝜆 𝑃𝑖 𝑈𝑖 (5.9)

El segundo término anterior es constante y se puede eliminar (ya que las Q son
fijas). Finalmente, escribimos la función de lagrange como:

ℒ = ∑𝑁 𝑇 𝑡 𝑡 𝑇 𝑡 𝑡
𝑖=1(∑𝑡=1([ 𝐹𝑖 (𝑃𝑖 ) + 𝑐𝑜𝑠𝑡𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖,𝑡 ]𝑈𝑖 − 𝜆 𝑃𝑖 𝑈𝑖 )) (5.10)

Aquí, hemos logrado nuestro objetivo de separar las unidades entre sí. El
término dentro de los soportes externos; es decir:

𝑇
∑ ([ 𝐹𝑖 (𝑃𝑖𝑡 ) + 𝑐𝑜𝑠𝑡𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖,𝑡 ]𝑈𝑖𝑡 − 𝜆𝑇 𝑃𝑖𝑡 𝑈𝑖𝑡 )
𝑡=1

Se puede resolver por separado para cada unidad de generación, sin tener en
cuenta lo que está sucediendo en las otras unidades de generación.
El mínimo del lagrangiano se encuentra resolviendo el mínimo para cada
unidad generadora en todos los períodos de tiempo; es decir:

𝑚𝑖𝑛𝑞(𝜆) = ∑𝑇𝑡=1 𝑚𝑖𝑛 ∑𝑇𝑡=1([ 𝐹𝑖 (𝑃𝑖𝑡 ) + 𝑐𝑜𝑠𝑡𝑜 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖,𝑡 ]𝑈𝑖𝑡 − 𝜆𝑇 𝑃𝑖𝑡 𝑈𝑖𝑡 ) (5.11)

Sujeto a: 𝑃𝑖𝑚𝑖𝑛 𝑈𝑖𝑡 ≤ 𝑃𝑖𝑡 ≤ 𝑃𝑖𝑚𝑎𝑥 𝑈𝑖𝑡 para t=1…….T

Y las restricciones de tiempo de subida y bajada. Esto se resuelve fácilmente


como un problema de programación dinámica en una variable. Esto se puede
visualizar en la siguiente figura, que muestra los únicos dos estados posibles
para la unidad i (i, e., 𝑈𝑖𝑡 = 0 o 1):

Donde Si es la unidad de coste inicial i.

En el estado 𝑈𝑖𝑡 = 0, el valor de la función a minimizar es trivial (es decir, es


igual a cero); en el estado donde 𝑈𝑖𝑡 = 1, la función a minimizar es (el costo de
inicio se elimina aquí ya que la minimización es con respecto a 𝑃𝑖𝑡 ).
𝑡
min[𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 𝑖 ] (5.12)
El mínimo de esta función se encuentra al tomar la primera derivada:

𝑑
𝑑𝑃𝑡𝑖
[𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 ] = 𝑑𝑃𝑑𝑡 𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 = 0 (5.13)
𝑖

La solución a esta ecuación es:

𝑑 𝑜𝑝𝑡
𝐹 (𝑃 )
𝑑𝑃𝑖𝑡 𝑖 𝑖
= 𝜆𝑇 (5.14)
𝑜𝑝𝑡
Hay tres casos que deben tratarse en función de la relación de 𝑃𝑖 y los
límites unitarios.

1. Si 𝑃𝑖𝑜𝑝𝑡 ≤ 𝑃𝑖𝑚𝑖𝑛 entonces

min[𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 ] = 𝐹𝑖 (𝑃𝑖𝑚𝑖𝑛 ) − 𝜆𝑇 𝑃𝑖𝑚𝑖𝑛 (5.15a)

2. Si 𝑃𝑖𝑚𝑖𝑛 ≤ 𝑃𝑖𝑜𝑝𝑡 ≤ 𝑃𝑖𝑚𝑎𝑥 entonces


𝑜𝑝𝑡 𝑜𝑝𝑡
min[𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 ] = 𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖 (5.15b)

3. Si 𝑃𝑖𝑜𝑝𝑡 ≥ 𝑃𝑖𝑚𝑎𝑥 entonces

min[𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 ] = 𝐹𝑖 (𝑃𝑖𝑚𝑎𝑥 ) − 𝜆𝑇 𝑃𝑖𝑚𝑎𝑥 (5.15c)

La solución del programa dinámico de dos estados para cada unidad procede
de la manera normal, como se hizo para la solución de programación dinámica
directa del problema de compromiso de la unidad. Tenga en cuenta que dado
que buscamos minimizar [𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 ]en cada etapa y que cuando 𝑈𝑖𝑡 = 0
este valor se pone a cero, entonces la única manera de obtener un valor más
bajo es tener

[𝐹𝑖 (𝑃𝑖 ) − 𝜆𝑇 𝑃𝑖𝑡 ] < 0

El programa dinámico debe tener en cuenta todos los costos iniciales,S i, para
cada unidad, así como el tiempo mínimo de activación y desactivación del
generador. Ya que estamos resolviendo cada generador de forma
independiente, sin embargo, hemos evitado los problemas de dimensionalidad.
Eso afecta a la solución de programación dinámica.
5.2.3.1 AJUSTANDO (𝝀)

Hasta ahora, hemos mostrado cómo programar unidades generadoras con


valores fijos de 𝜆𝑇 para cada período de tiempo. Como se muestra en el
apéndice de este capítulo, el ajuste de 𝜆𝑇 debe realizarse con cuidado para
maximizar las referencias de 𝑞(𝜆). La mayoría para trabajar en el
procedimiento de relajación de lagrange, utiliza una combinación de búsqueda
de gradiente y varias heurísticas para lograr una solución rápida.

En el apéndice, el 𝜆 aquí es un vector de valores, cada uno de los cuales debe


ajustarse. Muchas investigaciones en los últimos años se han dirigido a formas
de acelerar la búsqueda de los valores correctos de 𝜆 para cada hora. En el
Ejemplo 5D, use la misma técnica de ajuste de 𝜆 para cada hora que se usa en
el apéndice. Para el problema de compromiso de la unidad resuelto en el
EJEMPLO 5D, sin embargo, los factores de ajuste de 𝜆 son diferentes:

𝑑
𝜆𝑇 = 𝜆𝑇 + [𝑑𝜆 𝑞(𝜆)]𝛼 (5.16)
Donde:
𝑑
𝛼 = 0.01 Cuando 𝑞(𝜆) es positivo
𝑑𝜆

Y
𝑑
𝛼 = 0.02 Cuando 𝑑𝜆 𝑞(𝜆) es negativo

Cada 𝜆𝑇 se trata por separado. El lector debe consultar las referencias


enumeradas al final de este capítulo para obtener métodos más eficientes de
ajuste de los valores 𝜆. El algoritmo de compromiso de la unidad de relajación
de lagrange general se muestra en la figura 5.10.

La referencia 15 introduce el uso de lo que este texto llama "brecha de dualidad


(𝐽∗ −𝑞 ∗ )
relativa" o . La brecha de dualidad relativa se usa en el ejemplo 5D como
𝑞∗
una medida de la cercanía a la solución.
La referencia 15 señala varias cosas útiles sobre la optimización dual Aplicado
al problema de compromiso de la unidad.

1. Para los cálculos de compromiso de unidades grandes del sistema


de energía de tamaño real, la brecha de dualidad se vuelve bastante
pequeña a medida que avanza la optimización dual, y su tamaño se
puede usar como criterio de detención. Cuanto mayor sea el
problema (mayor número de unidades generadoras), cuanto menor
sea la brecha.

2. La convergencia es inestable al final, lo que significa que algunas


unidades se están cambiando dentro y fuera, y el proceso nunca
llega a un final definido.

3. No hay garantía de que cuando se detenga la solución dual, se


encuentre en una solución factible.

Todo lo anterior se demuestra en el ejemplo 5D. La brecha de dualidad es


grande al principio y se hace cada vez más pequeña a medida que avanzan las
iteraciones.

La solución alcanza un calendario de compromiso cuando se compromete al


menos una generación suficiente para que se pueda ejecutar un despacho
económico.

Las iteraciones adicionales solo dan como resultado el encendido y apagado


de las unidades marginales. Finalmente, la solución dual no cumple con las
restricciones de carga cuando se detienen las iteraciones.
Muchos de los programas de compromiso de la unidad de relajación de
lagrange utilizan algunas iteraciones de un algoritmo de programación dinámica
para obtener un buen punto de partida, luego ejecutan las iteraciones de
optimización dual y, finalmente, utilizan lógica heurística o programación
dinámica restringida para llegar a una solución final.

El resultado es una solución que no se limita a las ventanas de búsqueda,


como se tuvo que hacer en la aplicación estricta de la programación dinámica.

EJEMPLO 5D

En este ejemplo, se resolverá un problema de compromiso de unidad de tres


horas y tres generadores. Los datos para este problema son los siguientes.
Dadas las tres unidades de generación siguientes:

𝐹1 (𝑃1 ) = 500 + 10𝑃1 + 0.002𝑃1 2 Y 100 < 𝑃1 < 600


𝐹2 (𝑃2 ) = 500 + 10𝑃2 + 0.002𝑃2 2 Y 100 < 𝑃2 < 400
𝐹3 (𝑃3 ) = 500 + 10𝑃3 + 0.002𝑃3 2 Y 50 < 𝑃3 < 200

CARGA

𝑡
t 𝑃𝑐𝑎𝑟𝑔𝑎 (𝑀𝑊)
1 170
2 520
3 1100
4 330

Sin costos de inicio, sin restricciones mínimas de tiempo de actividad.


Este ejemplo se resuelve utilizando la técnica de relajación de lagrange. A
𝑇
continuación se muestran los valores de 𝜆 bajados a cero. Se ejecuta un
despacho económico por cada hora, siempre que haya suficiente generación
comprometida esa hora. Si no hay suficiente generación comprometida, el
costo total para esa hora se establece arbitrariamente a 10,000. Una vez que
cada hora tiene suficiente generación comprometida, el valor primordial J *
simplemente representa el costo total de generación sumado en todas las
horas, según lo calculado por el despacho económico.

El programa dinámico para cada unidad con un 𝜆𝑇 = 0 para cada hora siempre
resultará en todas las unidades generadoras fuera de línea.

ITERACIÓN 1

𝑁
hora 𝜆 u u u P1 P2 P3 𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 −∑ 𝑃𝑖𝑡 𝑈𝑖𝑡
𝑃1𝑒𝑑𝑐 𝑃2𝑒𝑑𝑐 𝑃3𝑒𝑑𝑐
1 2 3 𝑖=1
1 0 0 0 0 0 0 0 170 0 0 0
2 0 0 0 0 0 0 0 520 0 0 0
3 0 0 0 0 0 0 0 1100 0 0 0
4 0 0 0 0 0 0 0 330 0 0 0

(𝐽∗ −𝑞∗ )
𝑞(𝜆) = 0.0 , J*=40,000 y = indefinido
𝑞∗

En la siguiente iteración, los valores Q se han incrementado. Para ilustrar el


uso de la programación dinámica para programar cada generador,
detallaremos los pasos de DP para la unidad 3:

El resultado es programar la unidad 3 en las horas 1, 2 y 4 y en la hora 3.


Además, la unidad 3 tendrá un máximo de 200 MW en la hora 3. Los
resultados, después de que todas las unidades hayan sido programadas por
DP, son los siguientes.
ITERACIÓN 2

𝑁
hora 𝜆 u 1 u2 u3 P1 P2 P3 𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 −∑ 𝑃𝑖𝑡 𝑈𝑖𝑡 𝑃1𝑒𝑑𝑐 𝑃2𝑒𝑑𝑐 𝑃3𝑒𝑑𝑐
𝑖=1

1 1. 0 0 0 0 0 0 170 0 0 0
7
2 5. 0 0 0 0 0 0 520 0 0 0
2
3 11 0 1 1 0 400 200 500 0 0 0
4 3. 0 0 0 0 0 0 330 0 0 0
3

(𝐽∗ −𝑞∗ )
𝑞(𝜆) = 14,982 ; J*=40,000 y = 1.67
𝑞∗

ITERACIÓN 3

𝑁
hor 𝜆 u1 u2 u3 P1 P2 P3 𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 −∑ 𝑃𝑖𝑡 𝑈𝑖𝑡 𝑃1𝑒𝑑𝑐 𝑃2𝑒𝑑𝑐 𝑃3𝑒𝑑𝑐
a 𝑖=1

1 3.4 0 0 0 0 0 0 170 0 0 0
2 10. 0 1 1 0 400 200 -80 0 32 200
4 0
3 16 1 1 1 60 400 200 -100 50 40 200
0 0 0
4 6.6 0 0 0 0 0 0 330 0 0 0

(𝐽∗ −𝑞 ∗ )
𝑞(𝜆) = 18,344 ; J*=36,024 y = 0.965
𝑞∗

ITERACIÓN 4

𝑁
hora 𝜆 u1 u2 u3 P1 P2 P3 𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 −∑ 𝑃𝑖𝑡 𝑈𝑖𝑡 𝑃1𝑒𝑑𝑐 𝑃2𝑒𝑑𝑐 𝑃3𝑒𝑑𝑐
𝑖=1

1 5.1 0 0 0 0 0 0 170 0 0 0
2 10. 0 1 1 0 400 200 -80 0 32 200
2 0
3 15. 1 1 1 60 400 200 -100 50 40 200
8 0 0 0
4 9.9 0 1 1 0 380 200 -250 0 13 200
0

(𝐽∗ −𝑞 ∗ )
𝑞(𝜆) = 19,214 ; J*=28,906 y = 0.502
𝑞∗

ITERACIÓN 5
𝑁
hora 𝜆 u u2 u3 P1 P2 P3 𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 −∑ 𝑃𝑖𝑡 𝑈𝑖𝑡 𝑃1𝑒𝑑𝑐 𝑃2𝑒𝑑𝑐 𝑃3𝑒𝑑𝑐
1 𝑖=1

1 6.8 0 0 0 0 0 0 170 0 0 0
2 10.0 0 1 1 0 400 200 -80 0 32 200
8 0
3 15.6 1 1 1 60 400 200 -100 50 40 200
0 0 0
4 9.4 0 0 1 0 0 200 130 0 0 0

(𝐽∗ −𝑞 ∗ )
𝑞(𝜆) = 19,532 ; J*=36,024 y = 0.844
𝑞∗

ITERACIÓN 6

𝑁
hora 𝜆 u u2 u3 P1 P2 P3 𝑡
𝑃𝑐𝑎𝑟𝑔𝑎 −∑ 𝑃𝑖𝑡 𝑈𝑖𝑡 𝑃1𝑒𝑑𝑐 𝑃2𝑒𝑑𝑐 𝑃3𝑒𝑑𝑐
1 𝑖=1

1 8.5 0 0 1 0 0 200 -30 0 0 170


2 9.92 0 1 1 0 384 200 -64 0 32 200
0
3 15.4 1 1 1 60 400 200 -100 50 40 200
0 0 0
4 10.7 0 1 1 0 400 200 -270 0 13 200
0

(𝐽∗ −𝑞∗ )
𝑞(𝜆) = 19,442 ; J*=20,170 y = 0.037
𝑞∗

El calendario de compromisos no cambia significativamente con nuevas


iteraciones, aunque no es de ninguna manera estable. Otras iteraciones
reducen un poco la brecha de la dualidad, pero estas iteraciones son
inestables, ya que la unidad 2 se encuentra en el límite entre comprometerse y
no comprometerse, y se activa y desactiva sin convergencia final. Después de
(𝐽∗ −𝑞 ∗ )
10 iteraciones, 𝑞(𝜆)= 19,485, J* = 20,017 y = 0,027.
𝑞∗
Este último valor no irá a cero, ni la solución se establecerá en un valor final;
(𝐽∗ −𝑞 ∗ )
por lo tanto, el algoritmo debe detenerse cuando es lo suficientemente
𝑞∗
pequeño (por ejemplo, menos de 0.05 en este caso).
ANEXO

OPTIMIZACIÓN DUAL EN UN PROBLEMA NO CONVEXO

Introdujimos el concepto de optimización dual en el apéndice 3A y señalamos


que cuando la función que se optimiza es convexa y las variables son
continuas, entonces la maximización de la función dual da el mismo resultado
que minimiza la función primala. También se utiliza la optimización dual. En la
resolución del problema de compromiso de la unidad. Sin embargo, en el
problema de compromiso de la unidad hay variables que deben restringirse a
dos valores: 1 o 0. Estas variables 1-0 causan muchos problemas y son la
razón de la dificultad para resolver el problema. Problema de compromiso de la
unidad.

A la aplicación de la técnica de optimización dual al problema de compromiso


de la unidad se le ha dado el nombre de "relajación de lagrange" y la
formulación del problema de compromiso de la unidad utilizando este método
se muestra en el texto de la sección 5.2.3. En este apéndice, ilustre esta
técnica con un simple problema geométrico. El problema está estructurado con
variables 1-0, lo que lo hace claramente no convexo. Su forma es
generalmente similar a la forma de los problemas de compromiso de la unidad,
pero eso es incidental por ahora.

El problema de muestra a resolver se presenta a continuación. Ilustra la


capacidad de la técnica de optimización dual para resolver el problema de
compromiso de la unidad.

𝐽(𝑥1 , 𝑥2 , 𝑢1 , 𝑢2 ) = (0.25𝑥1 2 + 15)𝑢1 + (0.255𝑥2 2 + 15)𝑢2

Sujeto a

𝜔 = 5 − 𝑥1 𝑢1 − 𝑥2 𝑢2

0 ≤ 𝑥1 ≤ 10 Y 0 ≤ 𝑥2 ≤ 10

Donde 𝑥1 y 𝑥2 son números reales continuos, y:

𝑢1 = 1 𝑜 0 𝑢2 = 1 𝑜 0
Tenga en cuenta que en este problema tenemos dos funciones, una en 𝑥1 y la
otra en 𝑥2 . Las funciones fueron elegidas para demostrar ciertos fenómenos en
una optimización dual. Tenga en cuenta que las funciones son numéricamente
cercanas y solo se diferencian en una cantidad pequeña y constante. De estas
funciones se multiplica por una variable 1-0 y se combina en la función objetivo
general. También hay una restricción que combina las variables 𝑥1 y 𝑥2 de
nuevo con las variables 1-0. Hay cuatro soluciones posibles.

1. Si 𝑢1 y 𝑢2 son ambos cero, el problema no puede tener una solución ya que


la restricción de igualdad no se puede cumplir.

2. Si 𝑢1 = 1 y 𝑢2 = 0, tenemos la solución trivial de que 𝑥1 = 5 y 𝑥2 ya no entran


en el problema. La función objetivo es 21.25.

3. Si 𝑢1 = 0 y 𝑢2 = 1, tenemos el resultado trivial de que 𝑥2 = 5 y 𝑥1 no entran en


el problema. La función objetivo es 21.375.

4. Si A𝑢1 = 1 y 𝑢2 = 1, tenemos una función simple de lagrange de:

ℒ(𝑥1 , 𝑥2 , 𝜆) = (0.25𝑥1 2 + 15) + (0.255𝑥2 2 + 15) + 𝜆(5 − 𝑥1 − 𝑥2 )

El óptimo resultante es 𝑥1 = 2.5248, 𝑥2 = 2.4752 y 𝜆 = 1.2642, con un valor de


función objetivo de 33.1559. Por lo tanto, conocemos el valor óptimo para este
problema, es decir, 𝑢1 = 1, 𝑢2 = 0 y 𝑥1 = 5.

Lo que hemos hecho, por supuesto, es enumerar todas las combinaciones


posibles de las variables 1-0 y luego optimizarlas sobre las variables continúas.
Cuando hay más de unas pocas variables 1-0, esto no se puede hacer debido
a la gran cantidad de posibles combinaciones. Sin embargo, hay una manera
sistemática de resolver este problema utilizando la formulación dual.

El método de relajación de lagrange resuelve problemas como el de arriba, de


la siguiente manera. Definir la función de lagrange es:

ℒ(𝑥1 , 𝑥2 , 𝑢1 , 𝑢2 , 𝜆) = (0.25𝑥1 2 + 15)𝑢1 + (0.255𝑥2 2 + 15)𝑢2 + 𝜆(5 − 𝑥1 𝑢1 − 𝑥2 𝑢2 )

Como se muestra en el apéndice 3A, definimos 𝑞(𝜆) como:

𝑞(𝜆) = 𝑚𝑖𝑛𝑥1 ,𝑥2,𝑢1,𝑢2 ℒ

Donde 𝑥1 , 𝑥2 , 𝑢1 , 𝑢2 obedece los límites y las condiciones 1-0 como antes. El


problema dual es entonces encontrar

𝑞(𝜆)∗ = 𝑚𝑎𝑥𝜆≥0 𝑞(𝜆)


Esto es diferente del enfoque de optimización dual utilizado en el apéndice 3A
debido a la presencia de las variables 1-0; por lo tanto, mantenemos todas las
variables en el problema y procedemos en pasos alternativos como se muestra
en el apéndice 3A.

Paso 1

Escoja el valor para 𝜆𝑘 y considérelo fijo. Ahora se puede minimizar la función


lagrangiana. Esto es mucho más simple que la situación anterior, ya que
estamos tratando de minimizarlo.

(0.25𝑥1 2 + 15)𝑢1 + (0.255𝑥2 2 + 15)𝑢2 + 𝜆𝑘 (5 − 𝑥1 𝑢1 − 𝑥2 𝑢2 )

Donde el valor de 𝜆𝑘 es fijo. Entonces podemos reorganizar la ecuación


anterior como:

(0.25𝑥1 2 + 15 − 𝑥1 𝜆𝑘 )𝑢1 + (0.255𝑥2 2 + 15 − 𝑥2 𝜆𝑘 )𝑢2 + 𝜆𝑘 5

El último término anterior es fijo y podemos ignorarlo. Los otros términos ahora
se dan de tal manera que la minimización de esta función es relativamente
fácil. Tenga en cuenta que la minimización ahora está sobre dos términos, cada
uno de ellos multiplicado por un 1-0 variable. Dado que estos dos términos se
suman en el lagrangiano, podemos minimizar la función completa minimizando
cada término por separado. Dado que cada término es el producto de una
función en x y 𝜆 (que es fija), y todos estos se multiplican por el 1 - 0 variable u,
entonces el mínimo será cero (es decir, con u = 0) o será negativo, con u = 1 y
el valor de x establecido de modo que el término dentro de los paréntesis sea
negativo. Mirando el primer término, el valor óptimo de 𝑥1 se encuentra en
(ignora 𝑢1 por un momento):

𝑑
(0.25𝑥1 2 + 15 − 𝑥1 𝜆𝑘 ) = 0
𝑑𝑥1

Si el valor de 𝑥1 que satisface lo anterior cae fuera de los límites de 0 y 10 para


𝑥1 , forzamos 𝑥1 al límite violado. Si el término aparece entre los primeros
paréntesis

(0.25𝑥1 2 + 15 − 𝑥1 𝜆𝑘 )
Es positivo, podemos minimizar el lagrangiano simplemente estableciendo𝑢1 =
0; de lo contrario 𝑢1 = 1.

Al observar el segundo término, el valor óptimo de 𝑥2 se encuentra en


(nuevamente, ignore 𝑢2 ):

𝑑
(0.255𝑥2 2 + 15 − 𝑥2 𝜆𝑘 ) = 0
𝑑𝑥2

Y si el valor 𝑥2 que satisface el valor anterior cae fuera de los límites de 0 a 10


en 𝑥2 , lo establecemos en el límite violado. De manera similar, el término en el
segundo paréntesis

(0.255𝑥2 2 + 15 − 𝑥2 𝜆𝑘 )

Se evalúa. Si es positivo, minimizamos el lagrangiano haciendo 𝑢2 = 0; de lo


contrario, 𝑢1 = 1. Hemos encontrado el valor mínimo de ℒ con un valor fixd
específico de 𝜆𝑘 .

Paso 2

Suponga que las variables 𝑥1 , 𝑥2 , 𝑢1 , 𝑢2 encontradas en el paso 1 son fijas y


encuentre un valor para 𝜆 que maximice la función dual. En este caso, no
podemos resolver el máximo, ya que 𝑞(𝜆) no tiene límites con respecto a 𝜆. En
vez de eso, formamos el gradiente de 𝑞(𝜆) con respecto a 𝜆 y ajustamos 𝜆 para
movernos en la dirección de aumentar 𝑞(𝜆). Es decir, dado

𝑑𝑞
∇𝑞 =
𝑑𝜆
Que para nuestro problema es

𝑑𝑞
= 5 − 𝑥1 𝑢1 − 𝑥2 𝑢2
𝑑𝜆

Ajustamos 𝜆 de acuerdo a

𝑑𝑞
𝜆𝑘+1 = 𝜆𝑘 + 𝛼
𝑑𝜆
Donde 𝛼 es un multiplicador elegido para mover 𝜆 solo una corta distancia (esto
es simplemente un método de búsqueda de gradiente como se presentó en el
capítulo 3).
Tenga en cuenta también que si tanto 𝑢1 como 𝑢2 son cero, el gradiente será 5,
lo que indica un valor positivo que nos indica que aumentemos 𝜆. Finalmente,
el aumento de 𝜆 dará como resultado un valor negativo para

(0.25𝑥1 2 + 15 − 𝑥1 𝜆𝑘 )

O por

(0.255𝑥2 2 + 15 − 𝑥2 𝜆𝑘 )

O para ambos, y esto hará que 𝑢1 o 𝑢2 , o ambos, se establezcan en 1. Una vez


que el valor de 𝜆 aumenta, volvemos al paso 1 y encontramos los nuevos
valores para 𝑥1 , 𝑥2 , 𝑢1 , 𝑢2 , u otra vez.

La verdadera dificultad aquí es no aumentar demasiado la 𝜆.En el ejemplo


presentado anteriormente, se impuso el siguiente esquema en el ajuste de 𝜆:

𝑑𝑞
Si 𝑑𝜆 es positivo, entonces use 𝛼 = 0.2

𝑑𝑞
Si 𝑑𝜆 es negativo, entonces use 𝛼 = 0.005

Esto permite que 𝜆 se acerque a la solución lentamente, y si se sobrepasa,


retrocede muy lentamente. Esta es una técnica común para hacer que un
gradiente se "comporte".

También debemos tener en cuenta que, dadas las pocas variables que
tenemos, y dado que dos de ellas son variables 1-0, el valor de 𝜆 no
convergerá con el valor necesario para minimizar el lagrangiano. De hecho,
rara vez es posible para encontrar una 𝜆𝑘 que haga factible el problema con
respecto a la restricción de igualdad.

Sin embargo, cuando hemos encontrado los valores de 𝑢1 y 𝑢2 en cualquier


iteración, podemos calcular el mínimo de 𝐽(𝑥1 , 𝑥2 , 𝑢1 , 𝑢2 ) resolviendo el mínimo
de

[(0.25𝑥1 2 + 15)𝑢1 + (0.255𝑥2 2 + 15)𝑢2 + 𝜆(5 − 𝑥1 𝑢1 − 𝑥2 𝑢2 ) ]

Utilizando las técnicas del apéndice 3A (dado que ahora se conocen las
variables 𝑢1 y 𝑢2 )
La solución a este mínimo estará en 𝑥1 = ̅̅̅ ̅̅̅2 y 𝜆 = 𝜆̅ .En el caso de que
𝑥1 , 𝑥2 = 𝑥
𝑢1 y 𝑢2 sean ambos cero, estableceremos arbitrariamente este valor en un
valor grande (aquí lo establecemos en 50).

Llamaremos a este valor mínimo 𝐽∗ (𝑥 ̅̅̅,𝑥


1 ̅̅̅
2̅, 𝑢1 , 𝑢2 ) y observaremos que
comienza con un valor grande, y disminuye, mientras que el valor dual 𝑞 ∗ (𝜆)
comienza con un valor de cero, y aumenta. Ya que hay 1-0 variables en este
problema, los valores primarios y los valores duales nunca se vuelven iguales.
El valor 𝐽∗ − 𝑞 ∗ se llama la brecha de dualidad y se llamará el valor

𝐽∗ − 𝑞 ∗
𝑞∗

La relativa brecha de dualidad.

La presencia de las variables 1-0 hace que el algoritmo oscile alrededor de una
solución con una o más de las variables 1-0 que saltan de 1 a 0 a 1, etc.

En tales casos, el usuario del algoritmo de relajación de valor de lagrange debe


detener el algoritmo, en función del valor de la brecha de dualidad relativa.

Las iteraciones que comienzan con 𝜆 = 0 se muestran en la tabla 5.7.La tabla


muestra ocho iteraciones e ilustra el acercamiento lento de 𝜆 hacia el umbral
cuando ambas variables 1-0 cambian de 0 a 1.

También tenga en cuenta que 𝜔 se volvió negativo y el valor de 𝜆 ahora debe


disminuirse. Finalmente, se alcanza la solución óptima y la brecha relativa de la
dualidad se vuelve pequeña. Sin embargo, como es típico con la optimización
dual en un problema con variables 1-0, la solución no es estable y si se itera
más, muestra cambios adicionales en las variables 1-0 a medida que se ajusta
𝜆. Tanto los valores 𝑞 ∗ y 𝐽∗ como la brecha de dualidad relativa se muestran
en la tabla 5.5.