You are on page 1of 73

Matemticas de Programacin

Lineal.
Algoritmos de optimizacin de
modelos de Programacin.
Jorge H. Giubergia
Jefe Programa Energa Elctrica
Secretara de Energa de Salta
Argentina
CAPEV 20
Salta, Argentina
Octubre, 2015

Contenidos de la Presentacin

Matemticas de Programacin Lineal.


Anlisis de Sensibilidad.
Algoritmos de optimizacin de modelos de Programacin.

Modelos de Optimizacin

MESSAGE y SUPER OLADE modelos de optimizacin matemtica basados en


el abastecimiento de la demanda futura con mnimos costos.

Modelos de Optimizacin

Un modelo simple de Programacin Lineal de un sistema


energtico

Demanda elctrica de esta isla 250 kWyr

Un modelo simple de Programacin Lineal de un sistema


energtico
Variable de
Actividad o
Produccin
[kWyr]

Requerimiento de
combustible por
unidad de produccin
[kWyr/kWyr]

Carbn

XCL

350

600 (carbn)

Gas Natural

XGS

300

300 (gas)

Planta

Costo
Disponibilidad
de
de
Produccin
combustible
[U$S / kWyr]
[kWyr]

Cunta electricidad debe producir cada central para satisfacer


la demanda anual de electricidad, al mnimo costo?

Un modelo simple de Programacin Lineal de un sistema


energtico

min

Sujeto a

z=c*x
A* x b

u x l
------------------------------------------Resultado
x*
rango para

c, b, l, u

donde

x* sigue siendo vlido

Formulacin del modelo de Programacin Lineal del sistema


XCL = produccin anual variable de energa (en kWYr) para la
planta a carbn
XGS = produccin anual variable de energa (en kWYr) para la
planta a gas natural

XCL 0,
XGS 0

Cmo formular la funcin objetivo y las restricciones?

Formulacin del modelo de Programacin Lineal del sistema


Funcin Objetivo: minimizar el costo total de produccin de
electricidad durante un perodo de tiempo (un ao)

z = 350 * XCL + 300 * XGS

Planta

Requerimiento
Variable de
de combustible
Actividad o
por unidad de
Produccin (kWyr)
produccin
(kWyr/kWyr)

Costo de
Produccin
(U$S / kWyr)

Disponibilidad
de combustible
(kWyr)

Carbn

XCL

350

600 (carbn)

Gas Natural

XGS

300

300 (gas)

Formulacin del modelo de Programacin Lineal del sistema

Restriccin de demanda:

XCL + XGS 250

Demanda elctrica de esta isla 250 kWyr

Formulacin del modelo de Programacin Lineal del sistema


Restriccin de la disponibilidad de carbn:

3* XCL

600

Restriccin de la disponibilidad de Gas:

2* XGS 300

Planta

Requerimiento
Variable de
de combustible
Actividad o
por unidad de
Produccin (kWyr)
produccin
(kWyr/kWyr)

Costo de
Produccin
(U$S / kWyr)

Disponibilidad
de combustible
(kWyr)

Carbn

XCL

350

600 (carbn)

Gas Natural

XGS

300

300 (gas)

Formulacin del modelo de Programacin Lineal del sistema

z = 350 * XCL + 300 * XGS


XCL + XGS 250
3* XCL
600
2* XGS 300

Formulacin del modelo de Programacin Lineal del sistema

Formulacin del modelo de Programacin Lineal del sistema

Formulacin del modelo de Programacin Lineal del sistema

Formulacin del modelo de Programacin Lineal del sistema

z = 350 * XCL + 300 * XGS


1 XCL + 1 XGS 250
3* XCL
600
2* XGS 300
1 XCL 0
1 XGS 0

XGS = 150 kWyr


XCL = 100 kWyr
Z = US$ 80,000

Formulacin del modelo de Programacin Lineal del sistema

XGS = 150 kWyr


XCL = 100 kWyr

Funcin Objectivo Z = US$ 80,000

Formulacin del modelo de Programacin Lineal del sistema

Observando la solucin

fcae = entrada planta carbn= 300.3 ,


XCL = salida planta carbn = 0.333*300= 100
fgae = entrada planta gas = 300
XGS = salida planta gas = 0.5*300=150

Contenidos de la Presentacin

Matemticas de Programacin Lineal.


Anlisis de Sensibilidad.
Algoritmos de optimizacin de modelos de Programacin.

Infactibilidades
Tarde o temprano los usuarios se encuentran con esta situacin.
A veces, las infactibilidades pueden ser difciles de localizar en el modelo.
Pueden evitarse mediante un modelado desarrollado de manera cuidadosa y
gradual.
En MESSAGE se incluy una herramienta para ayudar a resolver las
infactibilidades.

Terminologa, definiciones y propiedades


Un problema de PL puede tener:
Una solucin nica,
Una solucin NO acotada,
Mltiples (infinitas) soluciones ptimas, ,
Es infactible (no existe solucin factible).

Terminologa, definiciones y propiedades:


Regin Factible y Solucin Factible

Una solucin x(x1, x2, . . . , xn) se


llama Factible s satisface
simultneamente todas las
restricciones.

400

300

XCL = 200
200

XGS = 150

Una Solucin es ptima cuando es


el mnimo valor de la funcin
objetivo (punto extremo de la regin
factible).

XCL

Regin Factible: es el rea donde


todas las restricciones del PL son
satisfechas.

Regin
Factible

100

100

200

300

400

XGS

Terminologa, definiciones y propiedades


Solucin No Factible o Infactible
Se aumenta a 400 MWyr la demanda anual de energa
Si el problema no tiene
solucin factible, por
ejemplo el punto x (x1, x2,
.xn) que no satisface
todas las restricciones,
entonces el problema es
llamado No factible o
Infactible.

Terminologa, definiciones y propiedades


Solucin No Factible o Infactible
Se aumenta a 400 MWyr la demanda anual de energa
Si el problema no tiene
solucin factible, por
ejemplo el punto x (x1, x2,
.xn) que no satisface
todas las restricciones,
entonces el problema es
llamado No factible o
Infactible.
Duplicar la disponibilidad de
la planta de carbn a 1200
MWyr anuales.

Causa ms comunes del problema

Los recursos no estn definidos.


La capacidad es pequea.
No hay energa suficiente para cubrir el pico de carga.
Lmites y restricciones demasiados estrictos.
Enlaces ,link, perdidos o incorrectos.
Datos mal tipeados (valores, switch,)

Cmo resolver las infactibilidades?


Revisar el modelo
Cadenas Energtica, links
Lmites y restricciones
Agregar tecnologas de respaldo.
Recordar cuales fueron los ltimos cambios antes que
aparezcan las infactibilidades en el modelo.

Seleccionar y salvar

MESSAGE Anlisis de Sensibilidad


La disponibilidad de datos confiables siempre es un problema, qu
hacemos entonces?:

Nada.
Tomar la mejor alternativa disponible y luego iterar.
Invertir en obtencin de datos.

MESSAGE Anlisis de Sensibilidad


Al analizar resultados:
Comparamos las salidas del modelo con nuestras expectativas.
Los explicamos con una interpretacin lgica.
Qu ocurre con los parmetros significativos del modelo?

MESSAGE Anlisis de Sensibilidad

MESSAGE Anlisis de Sensibilidad

min

Sujeto a

z = c * x
A* x b

u x l
------------------------------------------Resultado
x*
rango para

c, b, l, u

donde

x* sigue siendo vlido

Cambi el coeficiente econmico de c, a c,

MESSAGE Anlisis de Sensibilidad


Para qu se usa el Anlisis de Sensibilidad?:
Demandas futuras de energa.
Costos de inversin de nuevas plantas y otras formas de energa.
Costos de operacin y mantenimiento.
Costos de combustibles.
Caractersticas del desempeo tecnolgico (eficiencia, factor de
planta, factor de disponibilidad).
Lmites en la produccin y construccin de plantas.
Cantidades y precios de las importaciones / exportaciones.
Lmites y costos de la proteccin medioambiental.

MESSAGE Anlisis de Sensibilidad

min

Sujeto a

z = c * x
A* x b

u x l
------------------------------------------Resultado
x*
rango para

c, b, l, u

donde

x* sigue siendo vlido

Analizar cambios en c, b, l, u

MESSAGE Anlisis de Sensibilidad


Importante! Para analizar Lmites asumir que todos los parmetros
permanecen fijos, excepto el que se esta estudiando (Condicin
Ceteris Paribus).
Cantidad que puede ser cambiada en el problema original mientras
que la solucin ptima sigue siendo la misma.
Coeficiente de la Funcin Objetivo: Lmites dentro de los cuales
pueden variar los Coeficiente de la Funcin Objetivo, pero la solucin
ptima no cambiar.
Restricciones.
Variable: Lmite inferior con el mximo aumento: el valor ptimo.

MESSAGE Anlisis de Sensibilidad

MESSAGE Anlisis de Sensibilidad

MESSAGE Anlisis de Sensibilidad

Contenidos de la Presentacin

Matemticas de Programacin Lineal.


Anlisis de Sensibilidad.
Algoritmos de optimizacin de modelos de Programacin.

Mtodo Simplex*

* Basada en el libro Investigacin de Operaciones, Handy Taha 7 y 9 edicin.

El modelo de PL en forma de ecuacin


El desarrollo de los clculos con el mtodo simplex se facilita si se imponen dos
requerimientos a las restricciones de programacin lineal:
1. Todas las restricciones son ecuaciones con lado derecho no negativo (excepto las
de no negatividad).
2. Todas las variables son no negativas.

Esto constituye la formulacin standart o Cannica del


problema.
Conversin de las desigualdades en ecuaciones con lado derecho no negativo.
el lado derecho en desigualdad () representa la disponibilidad de un recurso, y el
izquierdo el uso del recurso por todas las actividades del modelo (variables). La
cantidad excedente del lado derecho respecto de izquierdo da entonces la cantidad no
utilizada del recurso u holgura.

Transformacin de desigualdades en ecuaciones

Para convertir una desigualdad () en ecuacin se agrega una variable de holgura


al lado izquierdo de la restriccin. Por ejemplo, la restriccin M1 del modelo de Reddy
Mikks se convierte en ecuacin como sigue:
6x1 + 4x2 + s1 = 24
s1 0

Transformacin de desigualdades en ecuaciones

s1
S1
b
x1
b

Desigualdad () en ecuacin
se agrega sumando una
variable de holgura al lado
izquierdo de la restriccin.

Desigualdad () en ecuacin
se agrega restando una
variable de exceso al lado
izquierdo de la restriccin.

x1

Transformacin de desigualdades en ecuaciones

s1
S1
b
x1

Siempre positivas
6x1 + 4x2 + s1 = 24
s1 0

x1 + x2 800
x1 + x2 - S1 = 800
S1 0

x1

Del modelo Grfico a la Solucin Algebraica

Del modelo Grfico a la Solucin Algebraica

El mtodo simplex
En el espacio de soluciones algebraicas (definido por una matriz de m x n,
con: m < n, m ecuaciones lineales simultneas y n variables no negativas), las
soluciones bsicas corresponden a los puntos de esquina en el espacio de
soluciones grficas.
Como con los puntos de esquina, las soluciones bsicas factibles definen
por completo a las candidatas para la solucin ptima en el espacio de
soluciones algebraicas.
Se determinan igualando n - m variables a cero y resolviendo las m
ecuaciones para las m variables restantes, siempre que la solucin resultante
sea nica, corresponde a un punto de esquina.
Las n - m variables igualadas a cero se conocen como variables no
bsicas. Las m variables restantes (distintas de cero) se llaman variables
bsicas, y la solucin obtenida (resolviendo las m ecuaciones) se conoce como
solucin bsica.

El mtodo simplex - ejemplo

El mtodo simplex - ejemplo

El mtodo simplex - ejemplo


Para enumerar todos los puntos de esquina del espacio de soluciones,
simplemente considere todas las combinaciones en las que n - m variables son
iguales a cero y resuelva las ecuaciones resultantes. Una vez hecho, la solucin
ptima es la solucin bsica factible (punto de esquina) con el mejor valor
objetivo.
En el ejemplo tenemos

puntos de esquina.

El mtodo simplex - ejemplo


Para enumerar todos los puntos de esquina del espacio de soluciones,
simplemente considere todas las combinaciones en las que n - m variables son
iguales a cero y resuelva las ecuaciones resultantes. Una vez hecho, la solucin
ptima es la solucin bsica factible (punto de esquina) con el mejor valor
objetivo.
En el ejemplo tenemos

puntos de esquina.

Soluciones
No factibles
Soluciones
Bsicas Factibles

El mtodo simplex iteraciones


Para enumerar todos los puntos de esquina del espacio de soluciones,
simplemente considere todas las combinaciones en las que n - m variables son
iguales a cero y resuelva las ecuaciones resultantes. Una vez hecho, la solucin
ptima es la solucin bsica factible (punto de esquina) con el mejor valor
objetivo. Esto significa
que la cantidad mxima de puntos de esquina es:

Por ejemplo para m=10 y n=20 hay que resolver 184.756 sistemas de
ecuaciones de 10 x 10.
Por ello el mtodo simplex , en lugar de testear TODAS las soluciones
bsicas (puntos de esquina) del problema, solo prueba ALGUNAS que va
seleccionando como ms adecuadas.

El mtodo simplex - iteraciones


El punto de arranque del mtodo simplex habitualmente es el origen del
sistema de coordenadas, donde las variables originales del problema son cero
(x1 = 0, x2 = 0) y el valor objetivo de la funcin objetivo es cero (z = 0, punto
A).
Si se logra incrementar x1 y/o x2 (o ambas) no bsicas por encima de sus
valores actuales de cero se puede mejorar (incrementar) el valor de z?
Maximizar z = 2x1 + 3x2
El diseo del mtodo simplex no permite el incremento simultneo de
las variables, pero s el cambio de una a la vez. La variable que va a aumentar
es la que tenga mayor grado de mejora en z.

El mtodo simplex - iteraciones


El grado de mejora del valor de z es de 2 unidades para x1 y de 3 para x2.
Por lo tanto se elige x2 para que el valor de z tenga el mayor crecimiento (la
variable no bsica con el mayor grado de mejora entre todas las variables no
bsicas).
El valor de x2 debe incrementarse hasta que se llegue al punto de esquina
B (porque un candidato para el ptimo debe ser un punto de esquina). Desde
el punto B, el mtodo simplex incrementar el valor de x1 para llegar al punto
de esquina mejorado C, el cual es el ptimo.

El mtodo simplex - iteraciones

El mtodo simplex - algoritmo


En el modelo de Reddy Mikks expresado en forma de ecuacin:

Se escribe la ecuacin objetivo como:


z 5 x1 4 x2 = 0
De esta manera, la tabla inicial simplex se representa como sigue:

El mtodo simplex - algoritmo


x1 tiene que incrementarse porque tiene el coeficiente objetivo ms
positivo. De forma equivalente, en la tabla simplex donde la funcin objetivo
aparece como :
z - 5x1 - 4x2 = 0
la variable seleccionada es la variable no bsica con el coeficiente ms
negativo en la ecuacin objetivo. Esta regla define la llamada condicin de
optimalidad simplex. En la terminologa del algoritmo simplex, x1 se conoce
como la variable de entrada porque ingresa la solucin bsica.

El mtodo simplex - algoritmo


Si x1 es la variable de entrada, una de las variables bsicas actuales debe salir; es
decir, se vuelve no bsica a un nivel cero (recordemos que la cantidad de variables no
bsicas debe ser siempre n - m).
La mecnica para determinar la variable de salida implica calcular las
relaciones o razones del lado derecho de las ecuaciones (columna Solucin) con los
coeficientes de restriccin estrictamente positivos (imposibilitando as al cero) bajo la
variable de entrada, x1, como se muestra en la siguiente tabla:

La regla asociada con las relaciones calculadas se conoce como condicin de


factibilidad simplex porque garantiza la factibilidad de la nueva solucin.

El mtodo simplex - algoritmo

El mtodo simplex - algoritmo


El nuevo punto de solucin B se determina intercambiando la variable de
entrada x1 y la variable de salida s1 en la tabla simplex para obtener:
Variables no bsicas (cero) en B: (s1, x2)
Variables bsicas en B: (x1, s2, s3, s4) (tienen valores distintos de cero)
El proceso de intercambio se basa en las operaciones de filas de GaussJordan. Identifica la columna de la variable de entrada como columna pivote y
la fila de la variable de salida como fila pivote. La interseccin de la columna
pivote y la fila pivote se conoce como elemento pivote.

El mtodo simplex - algoritmo


Los clculos de Gauss-Jordan necesarios para obtener la nueva solucin bsica son
de dos tipos:
1. Fila pivote
a. Reemplace la variable de salida en la columna Bsica con la variable de entrada.
b. Nueva fila pivote = Fila pivote actual Elemento pivote.
2. Todas las dems filas, incluyendo z
Nueva fila = (Fila actual) - [(Coeficiente de la columna pivote) x (Nueva fila pivote)
]
Estos clculos se aplican a la tabla anterior como sigue:
1. Reemplace s1 en la columna Bsica con x1:
Nueva fila x1 = Fila s1 actual 6
= (0 6 4 1 0 0 0 24) 6
= (0 1 2/3 1/6 0 0 0 4)
2. Nueva fila z = Fila z actual - (-5) x Nueva fila x1
= (1 -5 -4 0 0 0 0 0) - (-5) * (0 1 2/3 1/6 0 0 0 4)
= (1 0 -2/3 5/6 0 0 0 20)
3. Nueva fila s2 = Fila s2 actual - (1) x Nueva fila x1
= (0 1 2 0 1 0 0 6) - (1) * (0 1 2/3 1/6 0 0 0 4)
= (0 0 4/3 -1/6 1 0 0 2)

El mtodo simplex - algoritmo


4. Nueva fila s3 = Fila s3 actual - (-1) x Nueva fila x1
= (0 -1 1 0 0 1 0 1) - (-1) * (0 1 2/3 1/6 0 0 0 4)
= (0 0 5/3 1/6 0 1 0 5)
5. Nueva fila s4 = Fila s4 actual - (0) x Nueva fila x1
= (0 0 1 0 0 0 1 2) - (0) * (0 1 2/3 1/6 0 0 0 4)
= (0 0 1 0 0 0 1 2)
La nueva solucin bsica es (x1, s2, s3, s4), y la nueva tabla es:

6
1,5
3
2

El mtodo simplex - algoritmo


Reemplazando s2 en la columna Bsica con la x2 de entrada, se aplican las
siguientes operaciones de filas de Gauss-Jordan:
1. Nueva fila pivote x2 = Fila s2 actual 4/3
2. Nueva fila z = Fila z actual (-2/3) * Nueva fila pivote x2
3. Nueva fila x1 = Fila x1 actual (-2/3) * Nueva fila pivote x2
4. Nueva fila s3 = Fila s3 actual (-5/3) * Nueva fila pivote x2
5. Nueva fila s4 = Fila s4 actual (1) * Nueva fila pivote x2
Estos clculos producen la siguiente tabla:

El mtodo simplex - Resumen


Todo lo anterior es vlido para los casos de maximizacin.
En problemas de minimizacin, la condicin de optimalidad requiere seleccionar la
variable de entrada como la variable no bsica con el coeficiente objetivo ms positivo en la
ecuacin objetivo, la regla es exactamente opuesta del caso de maximizacin. Esto obedece a
que mx z equivale a mn (-z). En cuanto a la condicin de factibilidad para seleccionar la
variable de salida, la regla no cambia.
RESUMIENDO:
Condicin de optimalidad. La variable de entrada en un problema de maximizacin
(minimizacin) es la variable no bsica con el coeficiente ms negativo (positivo) en la fila
z. Los vnculos se rompen arbitrariamente. El ptimo se alcanza en la iteracin en la cual los
coeficientes en la fila z son no negativos (no positivos).
Condicin de factibilidad. Tanto en problemas de maximizacin como de
minimizacin, la variable de salida es la variable bsica asociada con la relacin mnima no
negativa con el denominador estrictamente positivo. Los vnculos se rompen arbitrariamente.

El mtodo simplex - Resumen


Los pasos del mtodo simplex son:
Paso 0: Determine la solucin factible bsica inicial.
Paso 1: Seleccione una variable de entrada utilizando la condicin de
optimalidad. Detngase si no hay variable de entrada; la ltima condicin es
ptima. De otro modo, prosiga con el paso 2.
Paso 2: Seleccione una variable de salida utilizando la condicin de factibilidad.
Paso 3: Aplique los clculos de Gauss-Jordan para determinar la nueva solucin
bsica. Regrese al paso 1.

El mtodo simplex - Resumen


Operaciones de filas de Gauss-Jordan :
1. Fila pivote
a. Reemplace la variable de salida en la columna Bsica con la variable de
entrada.
b. Nueva fila pivote = Fila pivote actual Elemento pivote.
2. Todas las dems filas, incluyendo z
Nueva fila = (Fila actual) - [(Coeficiente de la columna pivote) x (Nueva
fila pivote) ]

Variables Artificiales

Los problemas de Programacin Lineal en los que todas las restricciones


son () con lados derechos no negativos tienen una solucin bsica factible
inicial con todas las holguras. Los modelos que implican restricciones (=) o
() no lo hacen.
El procedimiento para iniciar problemas de Programacin Lineal con
restricciones (=) y/o () es utilizar variables artificiales que desempean el
papel de holguras en la primera iteracin, y que luego se desechan en una
iteracin posterior.
Existen dos mtodos estrechamente relacionados: el mtodo M, y el
mtodo de dos fases para crear las variables artificiales necesarias.

Muchas Gracias por su


Atencin!!

You might also like