0% encontró este documento útil (0 votos)
89 vistas

T5 Optimizacion

Este documento trata sobre programación lineal y métodos de optimización. Presenta los objetivos de optimizar sistemas de ingeniería de manera competitiva minimizando costes u otros factores. Explica los componentes básicos de un problema de optimización como variables, función objetivo y restricciones, y se enfoca en detalle en programación lineal, resumiendo sus características y métodos de resolución geométrica y mediante software.

Cargado por

Tomas HP
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
89 vistas

T5 Optimizacion

Este documento trata sobre programación lineal y métodos de optimización. Presenta los objetivos de optimizar sistemas de ingeniería de manera competitiva minimizando costes u otros factores. Explica los componentes básicos de un problema de optimización como variables, función objetivo y restricciones, y se enfoca en detalle en programación lineal, resumiendo sus características y métodos de resolución geométrica y mediante software.

Cargado por

Tomas HP
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 51

Programación 

lineal y 
métodos de optimización

Este material está basado en material elaborado 
por Ángel Cobo Ortega, Universidad de Cantabria

Última modificación: 20­nov­2017
Objetivos del tema
● Reconocer la importancia de la optimización en los 
distintos campos de la ingeniería.
● Identificar  las  componentes  principales  de  un 
problema de optimización.
● Analizar  el  caso  particular  de  la  programación 
lineal.
● Saber  utilizar  software  de  apoyo  a  la  toma  de 
decisiones.
Optimización en la ingeniería
Ingeniería 
● Objetivo
Crear sistemas competitivos no sólo en términos de 
funcionamiento sino también en términos de productividad, 
servicio, ciclo de vida,...
● Necesidades
Uso de metodologías de diseño rigurosas y de carácter 
cuantitativo que puedan complementar a la intuición y la 
faceta creativa no cuantitativa del proceso de diseño.
OPTIMIZACIÓN: 
Búsqueda de la “mejor” solución a un problema dado
● Minimización y maximización
● Ejemplos: Problemas de localización, asignación, confección 
de calendarios, rutas de vehículos,… 
Metodología
Problemas de optimización
Programas
matemáticos

Minimizar costes,  Maximizar los beneficios, 
tiempo de producción,  nivel de ventas, satisfacción 
riesgo de la inversión,  del cliente, resistencia de los 
plazo de entrega,... materiales,... 

El punto en el que 
una función alcanza 
su máximo es el 
mismo en el que su 
función opuesta 
alcanza el mínimo, 
siendo los valores 
óptimos respectivos 
opuestos
Elementos de todo problema  optimización

● Variables de decisión x = (x1,x2,...,xn) 
● Variables reales, enteras, binarias o booleanas
● Función objetivo f(x) = f(x1,x2,...,xn) 
● Región factible o espacio de soluciones 
factibles:  D conjunto en Rn
Restricciones
Las restricciones (p.ej. escasez de recursos, limitaciones 
tecnológicas, restricciones de diseño) delimitan la región 
factible.
Tipos de restricciones
● Problemas no restringidos
● Restricciones de igualdad   Optimización
– h(x) = 0
clásica
– Lagrange
● Restricciones de desigualdad  
– g(x) ≤ 0 Programación
– ai ≤ xi ≤bi matemática
– Karush­Kuhn­Tucker
– Programación lineal Ej 5.7
Contenidos
● Condiciones de optimalidad
– Necesarias
– Suficientes
● El vector gradiente. Análisis geométrico.
● Solución numérica de problemas de optimización
– No restringida
● Descenso gradiente, gradiente conjugado, Newton, DFP
– Restringida
● Programación lineal
– Características
– Resolución geométrica
– Resolución mediante software
Técnicas clásicas de optimización
● Análisis de condiciones de optimalidad:
● Condiciones necesarias
● Condiciones suficientes
● La mayoría de las técnicas están basadas en el 
cálculo diferencial
● No aplicables a muchos tipos de problemas
● Dificultad de obtención de soluciones exactas en 
muchos casos → Métodos numéricos
● Problema de los óptimos locales
El problema de los óptimos locales

valor
mínimo
local
f(x0)

valor
mínimo
global

x0 x0 x0
mínimo global mínimo local mínimo local no
estricto estricto estricto

Es preferible un óptimo global a uno local, pero desgraciadamente, 
la mayoría de las técnicas de optimización localizan óptimos locales 
y tienen dificultades para reconocer la globalidad.
El papel del vector gradiente

Los vectores gradiente son ortogonales a 
las curvas de nivel (curvas f(x,y)=cte)
Siempre señalan sobre el dominio la 
dirección de más rápido crecimiento de la 
función
"Huyen" de los mínimos y se sienten 
"atraídos" por los máximos
Análisis geométrico
En casos muy sencillos y de pocas dimensiones 
(1 ó 2), se puede resolver el problema de 
optimización de forma gráfica, utilizando los 
conceptos de gradiente y curva de nivel.
Pasos:
● Representar la región factible
● Representar las curvas de nivel y el vector 
gradiente.
● Localizar el óptimo dentro (o en los bordes!) de la 
región factible.
Ejemplo

Curvas de nivel

Ej 5.2a
Cond. de optimalidad con f. diferenciables

Condiciones necesarias
● Problemas sin restricciones:
– Todo óptimo tiene asociado un vector gradiente nulo

● Problemas restringidos: 

Condiciones suficientes
● Clasificación de matriz hessianas
Ejemplo

Candidato
a óptimo
Ejemplo

Candidato
a óptimo

La matriz hessiana es def. pos., 
por lo que el punto es un 
mínimo.
Ejemplo

Matlab tip
f = inline('2*x.^2+y.^2+2*x.*y+x­y+2')
dens = 50;
x = y = linspace(­5,5,dens);
[xx, yy] = meshgrid(x,y);
zz = f(xx,yy);
surf(xx,yy,zz, 'EdgeColor','none'); 
xlabel('x'); ylabel('y')
hold on
contour3(xx,yy,zz,'w')
scatter3(­1,3/2,f(­1,3/2),'w')

Candidato
a óptimo

La matriz hessiana es def. pos., 
por lo que el punto es un 
mínimo.
Ejemplo
Si añadimos 
una 
restricción

Candidato
a óptimo

La matriz hessiana es definida positiva para todo (x,y) y , por lo 
que el punto es un mínimo. Ej 5.3
Contenidos
● Condiciones de optimalidad
– Necesarias
– Suficientes
● El vector gradiente. Análisis geométrico.
● Solución numérica de problemas de optimización
– No restringida
● Descenso gradiente, gradiente conjugado, Newton, DFP
– Restringida
● Programación lineal
– Características
– Resolución geométrica
– Resolución mediante software especializado: LINGO
Programación Lineal
La  programación  lineal  es  instrumento  habitual  en 
empresas.
Una de las ramas de la Optimización más desarrollada 
y con mayor número de aplicaciones prácticas
Orígenes de la programación lineal:
● Economistas  de  la  URSS:  modelos  lineales  para 
aumentar  la  eficiencia  en  la  organización  y 
planificación de la producción
● Segunda  Guerra  Mundial:  Proyecto  SCOOP 
(Scientific Computation of Optimal Programs)
● Dantzig: método Simplex
http://www.orms­today.org/orms­12­07/frhistory.html 
Programas lineales
Función objetivo

Restricciones
lineales

Características:
● Todo óptimo es global
● Las condiciones necesarias de primer orden son suficientes
● Si hay dos soluciones distintas, también lo es cualquier 
combinación lineal convexa
Programas lineales
Función objetivo

Restricciones
lineales

Ventajas:
● Fáciles de definir y formular
● Se trabaja de forma eficiente con un número elevado de variables 
de decisión
● Se adaptan mejor al tratamiento algorítmico con computadores 
(rápidez de cálculo).
Análisis geométrico

El espacio D de soluciones
factibles es un polítopo con
un número finito de
vértices.
Es recomendable que sea
acotado para garantizar la
existencia de un óptimo.
En programación lineal habitualmente no
se consideran restricciones estrictas
Caso a=20, b=60

El  gradiente  marca  la 


dirección  de  crecimiento, 
y  por  tanto  de  búsqueda  D
del máximo

El máximo se alcanza en el vértice A=(0,80)
Valor máximo de la función f(0,80)=4800
Caso a=30, b=60

El máximo se alcanza en los vértices A=(0,80) y B=(40,60) y en todos los puntos que 
están en todo el lado que determinan.
El valor de la función en todos ellos es 4800. Hay infinitas soluciones
Caso a=50, b=60

El máximo se alcanza en el vértice B=(40,60)
Valor máximo de la función f(40,60)=5600
Análisis geométrico
Deducción de propiedades:
● Todo óptimo es global y siempre se alcanza en la frontera de D
(alguna restricción se satura).
● Si existe óptimo, éste se alcanza, al menos, en un vértice de D.
● Si varios puntos son óptimos, también lo es cualquier
combinación lineal convexa.

Resolución de fuerza bruta:


● Localizar los vértices de D.
● Calcular la función objetivo sobre todos los vértices
● Elegir aquél sobre el que la función alcance el menor o el mayor
valor.

No aconsejable para problemas de grandes dimensiones.
Método Simplex
Formulación estándar de programas lineales:

Objetivo: encontrar el vértice óptimo sin


tener que calcularlos todos Vértice
Vértice
Se parte de un vértice inicial.  inicial

óptimo
● Si no es óptimo, encontrar un vértice  D
adyacente que disminuya el valor de la función 
objetivo o que, por lo menos, no aumente.
● Repetir el proceso hasta encontrar un vértice 
que no pueda ser mejorado.
El problema del transporte
Una empresa dispone de m fábricas para producir un único producto 
que ha de distribuirse a n mercados diferentes, siendo Cij el coste, por 
unidad de producto, desde la fábrica Fi al mercado Mj

Objetivos de la empresa:
  1. Diseñar política de suministros que minimice costes de transporte (cij).
  2. No sobrepasar los límites de producción de cada una de sus fábricas (pi).
  3. Atender la demanda de cada uno de los mercados (dj).
El problema del transporte
Una empresa dispone de m fábricas para producir un único producto 
que ha de distribuirse a n mercados diferentes, siendo Cij el coste, por 
unidad de producto, desde la fábrica Fi al mercado Mj

Función objetivo:
  coste total del transporte (minimizar)
Variables de decisión:
  unidades transportadas desde cada fábrica a cada mercado (xij)
Restricciones: Atender la demanda de cada mercado (dj)
No sobrepasar las capacidades de producción de cada fábrica (pi)
Ejemplo
Una  empresa  multinacional  dedicada  a  la  fabricación  de 
electrodomésticos  recibe  un  pedido  de  8.000  hornos  y  12.000 
cocinas. 
Para hacer frente al pedido en un plazo de un mes debe producir los 
electrodomésticos en cuatro fábricas diferentes. 
El objetivo que se plantea la empresa es la planificación óptima de 
la producción del pedido.

Fábrica 1 Fábrica 2 Fábrica 3 Fábrica 4

Capacidad de producción 0 5000 7000 3000


mensual de hornos

Capacidad de producción 4000 6000 0 8000


mensual de cocinas

Coste de producción por unidad - 25 € 30 € 20 €


de horno
Coste de producción por unidad 20 € 20 € - 25 €
de cocina
Coste por unidad de 10 € 13 € 12 € 9€
electrodoméstico del envío
hasta el destino
Ejemplo
VARIABLES DE DECISIÓN (xij):
X1C = cocinas producidas en la Fábrica 1
X2H = hornos producidos en la Fábrica 2
Planteamiento del  X2C = cocinas producidas en la Fábrica 2
problema X3H = hornos producidos en la Fábrica 3
X4H = hornos producidos en la Fábrica 4
X4C = cocinas producidas en la Fábrica 4

FUNCIÓN OBJETIVO (COSTES TOTALES):
Prod = 20 X1C + 25 X2H + 20 X2C + 30 X3H + 20 X4H + 25 X4C
Trans = 10 X1C + 13 (X2H + X2C) + 12 X3H + 9 (X4H + X4C)
COSTE TOTAL = 30 X1C + 38 X2H + 33 X2C + 42 X3H + 29 X4H + 34 X4C
LIMITACIONES O RESTRICCIONES:
Capacidades de producción en cada fábrica:
X1C <= 4000; X2H <= 5000; X2C <= 6000
X3H <= 7000; X4H <= 3000; X4C <= 8000
Necesidad de satisfacer el pedido:
X2H + X3H + X4H >= 8000;
X1C + X2C + X4C >= 12000
No negatividad de las variables:
X2H, X3H, X4H, X1C, X2C, X4C >= 0
Resolución de programas 
lineales con el ordenador
Ejemplo
Resolución del problema anterior con un software de
Investigación operativa: Lingo
(http://www.lindo.com)

Lingo es un software específico para


resolver problemas de optimización,
tanto lineales como no lineales
Ejemplo
Solución:
Valor óptimo
Optimal solution found at step: 2
Objective value: 663000.0

Variable Value Reduced Cost


Costes reducidos:
X1C 4000.000 0.0000000E+00
indican la
X2H Valores de 5000.000 0.0000000E+00 modificación a
X2C las variables 6000.000 0.0000000E+00 aplicar a los
X3H de decisión 0.00000E+00 4.000000
en el
coeficientes de la
X4H 3000.000 0.0000000E+00 función objetivo
X4C óptimo 2000.000 0.0000000E+00 para que la variable
pase a ser no nula
Row Slack or Surplus Dual Price
1 663000.0 1.000000
R1 0.0000000E+00 4.000000
R2 0.0000000E+00 0.0000000E+00
R3 0.0000000E+00 1.000000 Precios
R4 7000.000 0.0000000E+00 duales:
R5 0.0000000E+00 9.000000 miden la
R6 6000.000 0.0000000E+00 sensibilidad del
PEDIDO_HORNOS 0.0000000E+00 -38.00000 valor óptimo ante
PEDIDO_COCINAS 0.0000000E+00 -34.00000 cambios en los
términos de la
derecha de las
restricciones
Holguras en las
restricciones
Octave tip
[xopt, fopt, status, extra] = glpk(c,A,b,[],[],'UUUUUULL')

Matlab tip
[xopt, fopt] = linprog(c,A,b, ...)

R
Python
MS Excel
Ejemplo
Solución (Octave): Valor óptimo
>> fopt
fopt = 663000

>> xopt >> extra.redcosts


xopt = ans =
Costes reducidos:
4000 0 indican la
Valores de 5000 0 modificación a
las variables 6000 0 aplicar a los
de decisión 0 4
en el
coeficientes de la
3000 0 función objetivo
óptimo 2000 0 para que la variable
pase a ser no nula
>> holguras = b-A*xopt
Holguras = >> extra.lambda
ans =

0 -4
0 0
Precios
0 -1 duales:
7000 0 miden la
0 -9 sensibilidad del
6000 valor óptimo ante
0
cambios en los
0 38 términos de la
0 34 derecha de las
restricciones
Holguras en las
restricciones
Ejemplo
Una  empresa  del  sector  metalúrgico  elabora  en  su  planta 
cuatro  aleaciones  diferentes,  que  vende  a  sus  clientes    a  un 
precio por tonelada de...
Aleación A B C D
Precio (kEUR) 44 40 50 48

Para la elaboración de una tonelada de cada tipo de


aleación necesita:
Kg necesarios para una Tn de aleación del tipo …
Mineral A B C D
estaño 600 250 450 500
zinc 100 150 450 400
plomo 300 600 100 100
La empresa puede llegar a disponer diariamente de 40 Tn
de estaño y 50 Tn de zinc y plomo.
Además, la empresa puede procesar un máximo de 100
toneladas de aleación al día.
¿Cuántas toneladas de cada aleación se deben producir al
día para maximizar los ingresos?
Ejemplo
Una  empresa  del  sector  metalúrgico  elabora  en  su  planta 
cuatro  aleaciones  diferentes,  que  vende  a  sus  clientes    a  un 
precio por tonelada de...
Aleación A B C D
Precio (kEUR) 44 40 50 48

Variables de decisión:
A: Tn de aleación de tipo A que debe producir
B: Tn de aleación de tipo B que debe producir
C: Tn de aleación de tipo C que debe producir
D: Tn de aleación de tipo D que debe producir

Ingresos obtenidos:
44*A + 40*B + 50*C + 48*D
Ejemplo
Para la elaboración de una tonelada de cada tipo de
aleación necesita:
Kg necesarios para una Tn de aleación del tipo …
Mineral A B C D
estaño 600 250 450 500
zinc 100 150 450 400
plomo 300 600 100 100
La empresa puede disponer diariamente de un máximo de
40 Tn de estaño y 50 Tn de zinc y plomo.

[estaño ] 0.6*A + 0.25*B + 0.45*C + 0.5*D <= 40


[zinc] 0.1*A + 0.15*B + 0.45*C + 0.4*D <= 50
[plomo] 0.3*A + 0.6*B + 0.1*C + 0.1*D <= 50

Además, la empresa puede procesar un máximo de 100


toneladas de aleación al día.
[máx diario] A + B + C + D <= 100
c = [44 40 50 48]'
A = [ 0.6 0.25 0.45 0.5
      0.1 0.15 0.45 0.4
      0.3 0.6  0.10 0.1
      1   1    1    1   ]
b = [40 50 50 100]'
[xopt, fopt, status, extra] =      
   glpk(c,A,b,[],[],'UUUU',[],­1);
extra.holguras = b­A*xopt;

fopt
[xopt extra.redcosts]
[extra.holguras extra.lambda]
>> fopt
       4750
>> [xopt extra.redcosts]

    0.00000  ­13.50000 A
   25.00000    0.00000 B
   75.00000    0.00000 C
    0.00000   ­4.50000 D

>> [extra.holguras extra.lambda]

    0.00000   50.00000 Estaño
   12.50000    0.00000 Zinc
   27.50000    0.00000 Plomo
    0.00000   27.50000 Máx diario
¿Cuántas toneladas de cada aleación se deben producir al día para
maximizar los ingresos?

>> fopt
       4750
>> [xopt extra.redcosts]

    0.00000  ­13.50000 A
   25.00000    0.00000 B
   75.00000    0.00000 C
    0.00000   ­4.50000 D

>> [extra.holguras extra.lambda]

    0.00000   50.00000 Estaño
   12.50000    0.00000 Zinc
   27.50000    0.00000 Plomo
    0.00000   27.50000 Máx diario
¿Cuáles serían esos ingresos máximos?

>> fopt
       4750 Los ingresos
>> [xopt extra.redcosts] máximos
alcanzarían los
    0.00000  ­13.50000 A 4750 kEUR
   25.00000    0.00000 B
   75.00000    0.00000 C
    0.00000   ­4.50000 D

>> [extra.holguras extra.lambda]

    0.00000   50.00000 Estaño
   12.50000    0.00000 Zinc
   27.50000    0.00000 Plomo
    0.00000   27.50000 Máx diario
¿Hay alguna aleación que no sea rentable?

>> fopt
       4750 Las aleaciones de
>> [xopt extra.redcosts] tipo A y D no son
rentables ya que
    0.00000  ­13.50000 A su producción
   25.00000    0.00000 B óptima es nula.
   75.00000    0.00000 C
    0.00000   ­4.50000 D
No son rentables
>> [extra.holguras extra.lambda] porque consumen
mucha materia
    0.00000   50.00000 Estaño prima en
   12.50000    0.00000 Zinc proporción a su
   27.50000    0.00000 Plomo precio de venta.
    0.00000   27.50000 Máx diario
¿Cuánto debería subir el precio de las aleaciones no
rentables para que empiecen a serlo?
>> fopt
       4750 Para que la aleación
A resulte rentable se
>> [xopt extra.redcosts]
le tiene que aplicar un
incremento a su
    0.00000  ­13.50000 A
precio (coeficiente de
   25.00000    0.00000 B la función objetivo) de
   75.00000    0.00000 C al menos el valor del
    0.00000   ­4.50000 D coste reducido
asociado, es decir
>> [extra.holguras extra.lambda] incrementar el precio
en al menos 13.5
    0.00000   50.00000 Estaño kEUR.
   12.50000    0.00000 Zinc
En el caso de la
   27.50000    0.00000 Plomo
aleación D, el precio
    0.00000   27.50000 Máx diario
debería sufrir un
incremento mínimo
de 4.5 kEUR.
¿Se agota alguna materia prima?

>> fopt
       4750 Las holguras de las
>> [xopt extra.redcosts] tres restricciones
asociadas a las
    0.00000  ­13.50000 A materias primas
   25.00000    0.00000 B indican que se ha
   75.00000    0.00000 C agotado una de
    0.00000   ­4.50000 D ellas (holgura 0): el
estaño.
>> [extra.holguras extra.lambda]
En cambio, han
    0.00000   50.00000 Estaño
sobrado 12.5 Tn de
   12.50000    0.00000 Zinc zinc y 27.5 Tn de
   27.50000    0.00000 Plomo plomo.
    0.00000   27.50000 Máx diario
¿Se agota alguna materia prima?

>> fopt
       4750 Además, hemos
>> [xopt extra.redcosts] alcanzado el límite
de producción
    0.00000  ­13.50000 A diaria de la planta.
   25.00000    0.00000 B
   75.00000    0.00000 C
    0.00000   ­4.50000 D

>> [extra.holguras extra.lambda]

    0.00000   50.00000 Estaño
   12.50000    0.00000 Zinc
   27.50000    0.00000 Plomo
    0.00000   27.50000 Máx diario
¿Cuál es el precio máximo que estaríamos dispuestos a
pagar por una materia prima?
>> fopt
       4750 Los precios duales
>> [xopt extra.redcosts] de las restricciones
indican que la
    0.00000  ­13.50000 A empresa estaría
   25.00000    0.00000 B dispuesta a pagar
   75.00000    0.00000 C un máximo de 50
    0.00000   ­4.50000 D kEUR por Tn de
estaño.
>> [extra.holguras extra.lambda] En cambio, por el
zinc o el plomo, al
    0.00000   50.00000 Estaño tener excedentes
   12.50000    0.00000 Zinc
no pagaría nada.
   27.50000    0.00000 Plomo
    0.00000   27.50000 Máx diario
¿Cuál es el precio máximo que estaríamos dispuestos a
pagar por una materia prima?
>> fopt
       4750 La empresa también
>> [xopt extra.redcosts] estaría dispuesta a
pagar un máximo de
    0.00000  ­13.50000 A 27.5 kEUR por
   25.00000    0.00000 B poder producir una
   75.00000    0.00000 C Tn adicional de
    0.00000   ­4.50000 D aleación al día.

>> [extra.holguras extra.lambda]
Otra forma de verlo
    0.00000   50.00000 Estaño
es: en cuánto
   12.50000    0.00000 Zinc aumenta la función
   27.50000    0.00000 Plomo objetivo (los
    0.00000   27.50000 Máx diario beneficios) si se
pudiese producir
una Tn más de
aleación.
¿Cómo afectaría a los beneficios disponer de más materia
prima?
>> fopt
       4750 Los precios duales
>> [xopt extra.redcosts] de las restricciones
también indican que
    0.00000  ­13.50000 A por cada Tn
   25.00000    0.00000 B adicional que se
   75.00000    0.00000 C disponga de estaño
    0.00000   ­4.50000 D los ingresos
podrían verse
>> [extra.holguras extra.lambda] mejorados en 50
kEUR.
    0.00000   50.00000 Estaño
   12.50000    0.00000 Zinc
   27.50000    0.00000 Plomo
    0.00000   27.50000 Máx diario

También podría gustarte