Está en la página 1de 28

Unidad I:

Introducción al modelamiento
y a la optimización

Ph.D. Miguel Torres R.


mitorres@fiec.espol.edu.ec
Oficina: Virtual

Escuela Superior Politécnica del Litoral - ESPOL


Facultad de Ingeniería en Electricidad y Computación

26 de octubre de 2020
Índice:
• Técnicas de optimización y métodos de solución

Método Simplex

Método del Punto Interior


Óptimo Global vs Óptimo Local
• La solución x será un máximo local si 𝑓 𝑥 ≥ 𝑓 𝑥 , para todo 𝑥
vecino de 𝑥.
• La solución x será un mínimo local si 𝑓 𝑥 ≤ 𝑓 𝑥 , para todo 𝑥
vecino de 𝑥.
• La solución x será un máximo global si 𝑓 𝑥 ≥ 𝑓 𝑥 , para todo
𝑥 de 𝑥.
• La solución x será un mínimo global si 𝑓 𝑥 ≤ 𝑓 𝑥 , para todo
𝑥 de 𝑥.
Funciones convexas y cóncavas
• Una función 𝑓: ℝ𝑛 → ℝ es convexa si el dominio de 𝑓 es un
conjunto convexo y para todo 𝑥, 𝑦 𝜖 𝑑𝑜𝑚 𝑓, 0 ≤ 𝜃 ≤ 1, se tiene:

𝑓 𝜃𝑥 + 1 − 𝜃 𝑦 ≤ 𝜃𝑓 𝑥 + 1 − 𝜃 𝑓 𝑦

• Una función 𝑓: ℝ𝑛 → ℝ es cóncava si el dominio de 𝑓 es un


conjunto convexo y para todo 𝑥, 𝑦 𝜖 𝑑𝑜𝑚 𝑓, 0 ≤ 𝜃 ≤ 1, se tiene:

𝑓 𝜃𝑥 + 1 − 𝜃 𝑦 ≥ 𝜃𝑓 𝑥 + 1 − 𝜃 𝑓 𝑦
Región convexa

• Una región es llamada convexa si, y solamente sí todo


segmento de recta cuyas extremidades pertenecen a la región
solo tienen puntos en la misma región.

Región Convexa Región Cóncava


Problemas de optimización Convexo y Cóncavo

• En un problema de minimización, si la función objetivo y la


región factible son convexos, entonces cualquier mínimo local
es el mínimo global del problema.

• En un problema de maximización, si la función objetivo es


cóncava y la región factible es convexa, entonces cualquier
máximo local es el máximo global del problema.
Programación Lineal

• Método simplex (SX) primal y dual.


▫ Muchas iteraciones simples, moviéndose de un vértice para otro
adyacente de la región factible con mejor función objetivo.
▫ Eficiente para problemas de medio porte.
▫ El tiempo computacional depende del número de restricciones al
cubo.
Programación Lineal

• Método del punto interior (MPI) primal–dual y predictor-


corrector
▫ Pocas iteraciones computacionalmente caras por puntos interiores
de la región factible.
▫ Eficiente para problemas de gran tamaño.
▫ El tiempo computacional depende casi linealmente del número de
elementos no nulos de la matriz de restricciones.
• Problema convexo, ambos métodos encuentran la solución
óptima o GLOBAL (en un punto extremo), no tiene problemas de
convergencia.
Programación Lineal
Programación Lineal
Programación Lineal

• Cualquier LP puede ser colocado en la forma padrón:

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑐1 𝑥1 + 𝑐2 𝑥2 + ⋯ + 𝑐𝑛 𝑥𝑛 = 𝑣
𝑆𝑢𝑗𝑒𝑡𝑜 𝑎: 𝑎11 𝑥1 + 𝑎12 𝑥2 + ⋯ + 𝑎1𝑛 𝑥𝑛 = 𝑏1
𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎2𝑛 𝑥𝑛 = 𝑏2

𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 + ⋯ + 𝑎𝑚𝑛 𝑥𝑛 = 𝑏𝑚
𝑥1 ≥ 0, 𝑥2 ≥ 0, ⋯, 𝑥𝑛 ≥ 0

• Las constantes 𝑐𝑗 , 𝑏𝑖 y 𝑎𝑖𝑗 , 𝑖 = 1,2, ⋯ , 𝑚.

• En la forma padrón, 𝑏𝑖 ≥ 0 𝑖 = 1,2, ⋯ , 𝑚.


Programación Lineal

• Suponga que el PL original posee una restricción de


desigualdad del tipo

𝑎𝑗1 𝑥1 + 𝑎𝑗2 𝑥2 + ⋯ + 𝑎𝑗𝑛 𝑥𝑛 ≥ 𝑏𝑗

• Se introduce una variable adicional 𝑥𝑛+1 , no negativa,


conocida como variable de exceso, entonces

𝑎𝑗1 𝑥1 + 𝑎𝑗2 𝑥2 + ⋯ + 𝑎𝑗𝑛 𝑥𝑛 − 𝑥𝑛+1 = 𝑏𝑗

• Eventuales variables de exceso son incorporadas a la lista de


variables de decisión del problema.
Programación Lineal

• Suponga que el PL original posee una restricción de


desigualdad del tipo

𝑎𝑗1 𝑥1 + 𝑎𝑗2 𝑥2 + ⋯ + 𝑎𝑗𝑛 𝑥𝑛 ≤ 𝑏𝑗

• Se introduce una variable adicional 𝑥𝑛+1 , no negativa,


conocida como variable de alcance, entonces

𝑎𝑗1 𝑥1 + 𝑎𝑗2 𝑥2 + ⋯ + 𝑎𝑗𝑛 𝑥𝑛 + 𝑥𝑛+1 = 𝑏𝑗

• Eventuales variables de alcance son incorporadas a la lista de


variables de decisión del problema.
Programación Lineal

• Puede ocurrir que el LP presentar una o más variables de


decisión irrestrictas o libres.

• Se re-escribe cada variable libre 𝑥𝑗 como la diferencia de dos


otras variables no negativas, 𝑥𝑗1 y 𝑥𝑗2 :

𝑥𝑗 = 𝑥𝑗1 − 𝑥𝑗2 ; 𝑥𝑗1 ≥ 0, 𝑥𝑗2 ≥ 0

• Se incorporan las nuevas variables no negativas a la lista de


variables de decisión del problema.
Programación Lineal

• Se exige que las constantes 𝑏𝑖 , 𝑖 = 1,2, … , 𝑚 (los lados derechos


de las restricciones) sean todas no negativas .

• Esta exigencia puede ser satisfecha multiplicándose por -1


ambos lados de todas las restricciones tales que 𝑏1 < 0.

• Nuevas restricciones con lados derechos positivos son


obtenidas.
Programación Lineal

• Maximizar 𝑓 𝑥 equivale a minimizar −𝑓 𝑥 . En el caso lineal,


basta cambiar los signos de los coeficientes de la función
objetivo.

• Si 𝑣 ∗ es el valor óptimo de minimizar −𝑓 𝑥 , entonces el valor


óptimo de maximizar 𝑓 𝑥 es −𝑣 ∗ .

• La suma de una constante (por ejemplo, un costo fijo) a la


función objetivo no altera la solución óptima del problema.

• Las soluciones óptimas de minimizar 𝑓 𝑥 y minimizar


c + 𝑓 𝑥 , c es una constante, son las mismas.
Trabajo Colaborativo

• Convierta el siguiente problema para la forma padrón de


minimización:

𝑀𝑎𝑥 𝑣 = −2𝑥1 − 𝑥2 + 𝑥3

Sujeto a:

𝑥1 − 2𝑥2 + 𝑥3 ≤ 8
3𝑥1 − 2𝑥2 ≥ −18
2𝑥1 + 𝑥2 − 2𝑥3 ≤ −4
𝑥1 , 𝑥2 , 𝑥3 ≥ 0
Programación Lineal

• Sea el problema LP original


𝑀𝑖𝑛 𝑧 = −2𝑥1 − 3𝑥2
Sujeto a: 2𝑥1 + 𝑥2 ≤ 8
𝑥1 + 2𝑥2 ≤ 6
𝑥1 , 𝑥2 ≥ 0

• La variable z representa el valor de la función objetivo

• Gráficamente, es posible resolver el problema LP.


Programación Lineal
Programación Lineal

• El problema LP puede ser escrito en la forma padrón como


sigue:
𝑀𝑖𝑛 𝑧 = −2𝑥1 − 3𝑥2
Sujeto a: 2𝑥1 + 𝑥2 + 𝑥3 = 8
𝑥1 + 2𝑥2 + 𝑥4 = 6
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ≥ 0

• Reescribiendo:
𝑀𝑖𝑛 𝑧 = −2𝑥1 − 3𝑥2
Sujeto a: 𝑥3 = 8 − 2𝑥1 − 𝑥2
𝑥4 = 6 − 𝑥1 − 2𝑥2
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ≥ 0
Programación Lineal
• El método simplex es un proceso iterativo que inicia de una
solución ( 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) que satisface las ecuaciones de
desigualdad y de no negatividad y busca una nueva solución
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 con un valor de función objetivo menor.
(−2𝑥1 − 3𝑥2< −2𝑥1 − 3𝑥2 )
• El proceso iterativo continua hasta encontrar una solución que
no pueda ser mejorada. La solución final es la solución óptima.

• Para iniciar el proceso iterativo, se requiere de una solución


factible inicial 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 . Para el ejemplo dado, esto es fácil.
Se admite que todas las variables originales sean cero y se
utilizan las ecuaciones de igualdad para determinar los valores
de las variables auxiliares de holgura.
𝑥10 = 0, 𝑥20 = 0, 𝑥30 = 8, 𝑥40 = 6, 𝑧 0 = 0

• ¿Puede ser mejorada la solución?


Programación Lineal
• Como el coeficiente de 𝑥1 y 𝑥2 son negativos, se por ejemplo el
valor de 𝑥2 (variable con el coeficiente más negativo) fuese
aumentado de cero para un valor positivo, disminuiríamos el
valor de z.

• Pero, debido al cambio en el valor de 𝑥2 , los valores de las


variables auxiliares de holgura ( 𝑥3 , 𝑥4 ) también cambiarán.
Además, se debe cuidar que estos valores no sean negativos.

• Como𝑥1 = 0, se ve que 𝑥3 = 8 − 𝑥2 , para mantener 𝑥3 no negativo,


debido al aumento de 𝑥2 , éste no debe exceder el valor de 8.
Similarmente, la no negatividad de 𝑥4 = 6 − 2𝑥2 impone un límite
de 𝑥2 ≤ 3.

• Como todas las restricciones deben ser cumplidas, 𝑥2 ≤ 3.


Programación Lineal
• De esta forma la nueva solución mejorada es:

𝑥11 = 0, 𝑥21 = 3, 𝑥31 = 5, 𝑥41 = 0, 𝑧 1 = −9

• Fin de la primera etapa (primera iteración)

• En la primera etapa se tiene un grupo de las variables que eran


inicialmente cero y las variables auxiliares de holgura expresadas
explícitamente en los términos de éstas. Esta propiedad se puede
utilizar para la nueva solución.

• Se debe reescribir las ecuaciones de tal manera que 𝑥2 , 𝑥3 , 𝑧 sean


funciones de 𝑥1 , 𝑥4 . Se utiliza entonces: 𝑥2 = 3 − 0.5𝑥1 − 0.5𝑥4 .
Programación Lineal
• Se puede reescribir las ecuaciones como:
𝑧 = −9 − 0.5𝑥1 + 1.5𝑥4
Sujeto a: 𝑥3 = 5 − 1.5𝑥1 + 0.5𝑥4
𝑥2 = 3 − 0.5𝑥1 − 0.5𝑥4
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ≥ 0

• Note que la solución actual puede ser encontrada asumiendo las


variables independientes iguales a cero y usando las ecuaciones
anteriores para obtener los valores de las variables dependientes.
Como el coeficiente de 𝑥4 es positivo, un aumento en su valor
ocasionará un aumento en el valor de 𝑧.

• De esta forma, 𝑥1 es la única variable con coeficiente negativo


que puede ser incrementado para obtener una disminución
adicional de la función objetivo.
Programación Lineal
• De nuevo, se necesita determinar el valor de variable 𝑥1 al que
debe llegar sin violar la no negatividad de las variables
dependientes. Por esto, 𝑥3 y 𝑥2 imponen un límite tal que
𝑥1 ≤ 10 3 y 𝑥1 ≤ 6, respectivamente. Al tener que satisfacer todas
las restricciones, 𝑥1 ≤ 10 3.

• Ahora la nueva solución será:


𝑥12 = 10 3 , 𝑥22 = 4 3 , 𝑥32 = 0, 𝑥40 = 0, 𝑧 2 = − 32 3

• Fin de la segunda iteración.

• Una vez más, se debe determinar, si es posible, una disminución


adicional en la función objetivo. Luego, las ecuaciones de 𝑥1 , 𝑥2 ,
𝑧 deben ser escritas en función de las variables 𝑥3 , 𝑥4 . Para eso se
utiliza la ecuación 𝑥1 = 10 3 − 2 3 𝑥3 + 1 3 𝑥4
Programación Lineal
• Se puede reescribir las ecuaciones como:
𝑧 = − 32 3 + 1 3 𝑥3 + 4 3 𝑥4
Sujeto a: 𝑥1 = 10 3−
2
3 𝑥3 + 1 3 𝑥4
𝑥2 = 4 3 + 1 3 𝑥3 − 2 3 𝑥4
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ≥ 0

• No se puede identificar una variable independiente en la cual un


incremento represente una disminución en el valor de la función
objetivo, porque todas las variables tienen coeficientes positivos
en la expresión de z.

• Fin del método Simplex, la solución actual es la solución óptima.

𝑥1∗ = 10 3 , 𝑥2∗ = 4 3 , 𝑥3∗ = 0, 𝑥4∗ = 0, 𝑧 ∗ = − 32 3


Algoritmo Simplex

1. Introducir las variables de holgura, una para cada desigualdad.


2. Montar un cuadro para los cálculos, colocando los coeficientes de todas
las variables con los respectivos signos y, en la primera línea, incluir los
coeficientes de la función objetivo transformada.
3. Establecer una solución básica inicial:
▫ Usualmente atribuyendo un valor cero a las variables originales y encontrando
valores positivos para las variables de holgura.
4. Como próxima variable a entrar en la base, escoger la variable no básica
que ofrece, en la primera línea, la mayor contribución para la
disminución de la función objetivo (o sea, la que tenga el mayor valor
negativo)
▫ Si todas las variables que están fuera de la base tuviesen coeficientes nulos o
positivos en esta línea, la solución actual es óptima.
▫ Si alguna de las variables tuviese coeficiente nulo, esto significa que ella puede
ser introducida en la base sin disminuir el valor de la función objetivo. Esto
quiere decir que tenemos una solución óptima, con el mismo valor de la función
objetivo.
Algoritmo Simplex

5. Para escoger la variable que debe dejar la base, se debe realizar el


siguiente proceso:
▫ Dividir los elementos de la última columna por los correspondientes
elementos positivos de la columna de la variable que va a entrar en la base.
Caso no exista ningún elemento positivo en esta columna, el proceso debe
parar, ya que la solución sería ilimitada.
▫ El menor cociente indica la ecuación cuya respectiva variable básica deberá
ser anulada, cambiando a variable no básica.
6. Usando operaciones válidas con las líneas de la matriz, transformar el
cuadro de cálculos de forma tal que se encuentre la nueva solución
básica.
▫ La columna de la nueva variable básica deberá convertirse en vector
identidad, donde el elemento 1 aparece en la línea correspondiente a la
variable que se está anulando.
7. Regresar al paso 4 para iniciar otra iteración

También podría gustarte