Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a...

67
1/67 Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales Grado en Ingeniería en Tecnologías Industriales. Curso 2017-2018-3º Matemáticas de Especialidad–Ingeniería Eléctrica Programación Lineal Linear Programming José Luis de la Fuente O’Connor [email protected] [email protected] Clase_progli_2018.pdf

Transcript of Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a...

Page 1: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

1/67Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros IndustrialesGrado en Ingeniería en Tecnologías Industriales. Curso 2017-2018-3º

Matemáticas de Especialidad–Ingeniería Eléctrica

Programación LinealLinear Programming

José Luis de la Fuente O’[email protected]@upm.es

Clase_progli_2018.pdf

Page 2: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

2/67

Índice

� Formulación

� Definiciones y formas de programas lineales

� Historia

� Ejemplos de programas lineales

� Consideraciones geométricas

� Politopos

� Puntos extremos y soluciones básicas factibles

Page 3: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

3/67

Formulación

� La Programación Lineal es el área de la Optimización/ProgramaciónMatemática/Management Science que busca de entre todas las posiblessoluciones comunes de un conjunto de ecuaciones e inecuaciones lineales la quemejor plasma un determinado criterio u objetivo, representado por una funcióntambién lineal.

� En términos matemáticos generales,

minimizar f .x/sujeta a g.x/D 0

h.x/ � 0

donde f W Rn! R, g W Rn! Rm y h W Rn! Rp son lineales.

Page 4: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

4/67

� Juega un papel vital en muchas facetas de la economía, las ciencias sociales, latécnica, la planificación, la gestión, : : : como un instrumento de ayuda a latoma de decisiones que tienen que ver con la asignación óptima de recursos condiversas funciones de utilidad.

� En el análisis, la planificación y el control operativo de sistemas energéticos yeléctricos tiene uno de sus campos de actuación más destacados:

� Generación a coste mínimo

� Control de stocks de combustibles

� Mantenimiento de equipos

� Optimización del transporte de energía

� Control de inversiones, búsqueda de emplazamientos, etc.

Page 5: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

5/67

Definiciones y formas de programas lineales

� La programación lineal, PL, trata un problema o programa lineal

minimizar c1x1 C c2x2 C � � � C cnxn

sujeta a a11x1 C a12x2 C � � � C a1nxn � b1a21x1 C a22x2 C � � � C a2nxn � b2:::

::::::

am1x1 C am2x2 C � � � C amnxn � bmy x1; x2; : : : ; xn � 0:

� A c1x1 C � � � C cnxn se le denomina función objetivo y a lasai1x1 C � � � C ainxn, 1 � i � m, restricciones o condiciones.

� Las x1; : : : ; xn son los coeficientes del vector variables de decisión. Losc1; : : : ; cn, los coeficientes de coste. Los b1; : : : ; bm, el término independiente.

Page 6: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

6/67

� La matriz

A D

26664a11 a12 a13 � � � a1na21 a22 a23 � � � a2n::: ::: ::: : : : :::

am1 am2 am3 � � � amn

37775es la de coeficientes de las condiciones del problema.

� Un vector, o punto, xT D Œx1; x2; : : : ; xn�, que satisface todas las condicionesse denomina factible.

� El conjuntoF D fx 2 Rn W Ax � b; x � 0g

de todos los vectores o puntos factibles constituye la región factible.

Page 7: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

7/67

� En forma compacta, el problema de programación lineal se expresa así:

min. cTx

s. a Ax� bx� 0:

� En forma estándar,min. cTx

s. a AxD bx� 0:

Page 8: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

8/67

� Ejemplo En el programa lineal

min. 2x1C 5x2s. a x1C x2� 6

�x1 � 2x2��18x1; x2� 0;

las variables de decisión son x1 y x2. La función objetivo 2x1 C 5x2.

Las restricciones y la regiónfactible se ven así: �� x�

x� ����������������

Page 9: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

9/67

� Un problema de programación lineal cualquiera

min. cTxs. a Ax � b

x � 0;

se puede expresar en la forma estándar sin más que sustraer unvector y , denominado de variables de holgura, de las condicionesAx � b:

min. cTx

s. a Ax � y D bx;y � 0:

� Si las condiciones fuesen Ax � b, aña-diendo un vector y se obtendría la formaestándar: Ax C y D b.

� Si alguna de las variables xi no está res-tringida a ser no negativa, se puede reem-plazar por otras dos, x0i y x00i , tales que

xi D x0i � x00i ;

donde x0i � 0 y x00i � 0, y el problemapasa a ser uno con formulación estándar.

� Si se trata de maximizar una función objetivo, se puede transformar en minimizar esa funciónteniendo en cuenta que

mKax cTx D mKın�cTx:

Page 10: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

10/67Desarrollo histórico de la Programación Lineal

� Orígenes en Newton, Leibnitz, Lagrange y Fourier

� 1930s Kantorovich; primeras aplicaciones en economía

� 1940s Se crea por G. Dantzig, John von Neumann y L. Kantorovich el áreade conocimiento Programación Lineal

� 1947 G. Dantzig formula el Método Simplex para resolver problemaslogísticos militares

� 1950-1970 Se disparan las aplicaciones en múltiples áreas: control,ingeniería eléctrica, estructuras, transporte, mecánica,...

� 1979 L. Khachiyan desarrolla el algoritmo del elipsoide.

� 1984 N. Karmarkar desarrolla un método basado en puntos interiores.Mejor teórica y prácticamente

� 1995-hoy Desarrollo de muchas variantes de punto interior muy eficientespara problemas de grandes dimensiones.Convergencia teórica y algorítmica con Programación No Lineal

Page 11: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

11/67

Formulación de problemas de ProgramaciónLinealLa dieta alimenticia

� Es el problema clásico sobre el que se empezaron a ensayar los primerosprocedimientos numéricos y electrónicos de obtención de una solución.

� Trataba de elaborar, en los años 40 del siglo XX —en plena II guerra mundial—,una dieta diaria para un colectivo de soldados y militares de tal forma que sesuministrase a cada individuo una cantidad mínima de varios ingredientesnutritivos.

� Para plantear el problema, supongamos que existen en el mercado n alimentosdistintos, a unos costes unitarios c1; : : : ; cn, y que se quiere programar una dietaque contenga al menos b1; : : : ; bm unidades de m ingredientes nutritivos.

Page 12: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

12/67

� Si el alimento j contiene aij unidades del ingrediente i , y se desea programar elvector dieta, xT D Œx1; x2; : : : ; xn�, que fije las cantidades que hay quecomprar cada día de cada alimento de tal forma que el coste total sea mínimo,la formulación del problema es esta:

minimizar c1x1 C c2x2 C � � � C cnxn

sujeta a a11x1 C a12x2 C � � � C a1nxn � b1a21x1 C a22x2 C � � � C a2nxn � b2::: :::

am1x1C am2x2C � � � C amnxn� bmx1; x2; : : : ; xn� 0:

Page 13: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

13/67

Planificación de la generación de energía eléctrica

� Una empresa de producción, transporte y distribución de energía eléctrica estáestudiando la evolución de su demanda, de potencia y de energía, y cómosatisfacer su incremento los próximos 10 años.

� El mercado tecnológico dispone de cuatro formas consolidadas y aceptadas degenerar electricidad a gran escala: centrales termoeléctricas de gas natural,centrales hidráulicas, aerogeneradores y centrales de carbón.

Page 14: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

14/67� El patrón de su demanda eléctrica futura está definido por:

� El consumo anual adicional de energía, estimado en 1.750 TWh (1 TWh =109 kWh) para el conjunto de los diez años;

� La demanda máxima de potencia adicional, estimada en 30 GW (1 GW=106

kW) para el año número 10;

� La potencia diaria media demandada en un día de invierno, estimándose quecrecerá en 20 GW para el año número 10.

� Los parámetros esenciales de las centrales contempladas son estos.

Potencia Potencia Horas Coste de Coste totalgarantizada máxima utilización inversión actualizado

Tipo de Central 106 kW 106 kW anuales 106 euros 106 euros

Gas 0,33 0,35 7.500 210 240Hidroeléctricas 0,10 0,10 3.000 80 95Carbón 0,80 0,90 8.000 1.100 1.300Aerogeneradores 0,01 0,04 2.000 48 50

Page 15: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

15/67� ¿Cuál es el plan óptimo de equipamiento de la empresa para esos diez años?¿Qué número de centrales son necesarias para hacer frente a la demanda,minimizando el coste actualizado neto necesario para abordar dicho plan? Lasrestricciones adicionales son:

� No se pueden gastar en total más de 25.500 MM de euros.

� Por cuestiones medioambientales, no se pueden construir más de 50unidades de gas, 10 hidráulicas y 50 unidades de carbón.

� Solución Designando por x1; x2; x3; x4 el número de unidades de cada tipo degeneración posible, el problema se puede formular de la siguiente manera:

min. 240x1 C 95x2 C 1:300x3 C 50x4

s. a 0;33x1 C 0;1x2 C 0;8x3 C 0;01x4 � 20

0;35x1 C 0;1x2 C 0;9x3 C 0;04x4 � 30

24;75x1 C 3x2 C 64x3 C 0;2x4 � 1:750

210x1 C 80x2 C 1:100x3 C 48x4 � 25:5000 � x1 � 500 � x2 � 100 � x3 � 500 � x4

Page 16: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

16/67� Resolvámoslo con varios de los instrumentos ya a nuestro alcance.Primero mediante linprog, el software especializado en PL de Matlab.

» A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0;...24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];

» b=[20;30;1750;25500];» c=[240 95 1300 50 0 0 0 0];» l=[0 0 0 0 0 0 0 0 ];» u=[50 10 50 1000 100000 100000 100000 1000000];

» options = optimset(’LargeScale’, ’off’, ’Simplex’, ’on’, ’Display’, ’Iter’);» [x fval exitflag output lambda]=linprog(c,[],[],A,b,l,u,[],options)Phase 1: Compute initial basic feasible point.

Iter Infeasibility0 268.751 43.88642 28.11673 5.349114 0.2272735 -0

Phase 2: Minimize using simplex.Iter Objective Dual Infeasibility

f’*x A’*y+z-w-f0 29730.3 1.522131 29561.1 1.122632 28575 0

Optimization terminated.x =

50.000010.00007.1429

126.78574.4821

00

257.1429

fval =2.8575e+004

exitflag =1

output =iterations: 2algorithm: ’medium scale: simplex’

cgiterations: []message: ’Optimization terminated.’

constrviolation: 3.6380e-012lambda =

ineqlin: [0x1 double]eqlin: [4x1 double]upper: [8x1 double]lower: [8x1 double]

>> lambda.eqlinans =

1.0e+003 *0

-1.2353-0.0029

0>> lambda.upperans =

265.147137.3529

000000

Page 17: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

17/67� Segundo, con otro software de Matlab, fmincon, para resolver problemasgenerales de optimización con condiciones.

» A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0; 24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];» b=[20;30;1750;25500]; l=[0 0 0 0 0 0 0 0 ];» u=[50 10 50 1000 100000 100000 100000 1000000];» fun = @(x) 240*x(1)+95*x(2)+1300*x(3)+50*x(4);» options=optimset(’Display’,’iter-detailed’);» x = fmincon(fun,zeros(8,1),[],[],A,b,l,u,[],options)

Max Line search Directional First-orderIter F-count f(x) constraint steplength derivative optimality Procedure

0 9 0 2.55e+04 Infeasible start point1 18 28987 3.553e-15 1 225 1122 27 28925.5 2.274e-13 1 -7.51 3.69 Hessian modified3 36 28899.5 7.105e-15 1 -4.08 2.54 Hessian modified4 45 28792.9 6.57e-17 1 -2.63 5.13 Hessian modified twice5 54 28792 2.274e-13 1 -0.914 0.909 Hessian modified twice6 63 28750.2 3.638e-12 1 -0.914 0.914 Hessian modified twice7 72 28575 2.274e-13 1 -0.914 9.27e-05 Hessian modified

Optimization completed: The first-order optimality measure, 8.216127e-13, is lessthan options.TolFun = 1.000000e-06, and the maximum constraint violation, 2.273737e-13,is less than options.TolCon = 1.000000e-06.

Optimization Metric Optionsfirst-order optimality = 8.22e-13 TolFun = 1e-06 (default)max(constraint violation) = 2.27e-13 TolCon = 1e-06 (default)

Active inequalities (to within options.TolCon = 1e-06):lower upper ineqlin ineqnonlin6 17 2

x= 50.000010.00007.1429

126.78574.48210.00000.0000

257.1429

Page 18: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

18/67

� También podemos usar OPTI, http://www.i2c2.aut.ac.nz/Wiki/OPTI/ deJonathan Currie, del Industrial Information & Control Centre (I 2C 2), de laAUT University, Auckland, New Zealand, muy utilizado como plataformageneral de pruebas.

� La sesión de Matlab, después de instalar OPTI, es la que sigue.

» A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0;...24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];» b=[20;30;1750;25500];c=[240 95 1300 50 0 0 0 0];» l=[0 0 0 0 0 0 0 0 ];u=[50 10 50 1000 100000 100000 100000 1000000];

» Opt = opti(’f’,c,’eq’,A,b,’bounds’,l,u)------------------------------------------------------Linear Program (LP) Optimizationmin f’xs.t. rl <= Ax <= ru

lb <= x <= ub------------------------------------------------------

Problem Properties:# Decision Variables: 8# Constraints: 20# Linear Equality: 4# Bounds: 16

------------------------------------------------------Solver Parameters:

Solver: CLP------------------------------------------------------

» [x,fval,exitflag,info] = solve(Opt)x =

50.000010.00007.1429

126.78574.4821

00

257.1429fval =

28575exitflag =

1info =

Iterations: 2Time: 0.0023

Algorithm: ’CLP: Automatically Chosen Solver’Status: ’Proven Optimal’Lambda: [1x1 struct]

Page 19: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

19/67

� Si utilizamos otro software puntero para investigación, de la Universidad deStanford, CVX, desde

http://cvxr.com/cvxCon el script de Matlab

% Ejemplo_generacion.mcvx_begin

variable x(8)minimize (c*x);subject toA*x==b;x>=0;x<=u’;

cvx_end

y este conjunto de instrucciones

>> A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0;...24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];>> b=[20;30;1750;25500];>> c=[240 95 1300 50 0 0 0 0];>> l=[0 0 0 0 0 0 0 0 ];>> u=[50 10 50 1000 100000 100000 100000 1000000];>> Ejemplo_generacion

se obtiene lo que sigue.

Page 20: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

20/67

>> Ejemplo_generacion

Calling SDPT3 4.0: 20 variables, 8 equality constraintsFor improved efficiency, SDPT3 is solving the dual problem.

------------------------------------------------------------num. of constraints = 8dim. of linear var = 16dim. of free var = 4 *** convert ublk to lblk

*******************************************************************SDPT3: Infeasible path-following algorithms

*******************************************************************version predcorr gam expon scale_data

NT 1 0.000 1 0it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime-------------------------------------------------------------------0|0.000|0.000|1.0e+000|6.9e+000|3.5e+010| 2.804630e+009 0.000000e+000| 0:0:00| chol 1 11|1.000|0.966|8.9e-007|2.3e-001|2.2e+009| 1.149790e+009 5.446578e+005| 0:0:00| chol 1 12|1.000|0.401|2.5e-006|1.4e-001|8.4e+008| 2.092782e+008 5.865177e+005| 0:0:00| chol 1 13|0.892|0.352|2.3e-007|9.1e-002|5.8e+008| 8.492455e+007 5.783161e+005| 0:0:00| chol 1 14|1.000|0.357|1.5e-006|5.9e-002|4.4e+008| 4.170257e+007 4.391842e+005| 0:0:00| chol 1 15|1.000|0.675|1.1e-007|1.9e-002|1.5e+008| 1.329674e+007 1.506755e+005| 0:0:00| chol 1 16|0.997|0.878|2.9e-008|2.3e-003|1.9e+007| 2.940189e+006 -1.013703e+004| 0:0:00| chol 1 17|0.998|0.919|7.8e-009|1.9e-004|1.7e+006| 5.276519e+005 -2.736437e+004| 0:0:00| chol 1 18|1.000|0.060|3.4e-009|1.8e-004|1.4e+006| 4.232803e+005 -2.757775e+004| 0:0:00| chol 1 19|1.000|0.881|1.7e-008|2.1e-005|2.2e+005| 1.097886e+005 -2.857791e+004| 0:0:00| chol 1 1

10|0.853|0.236|1.9e-009|1.6e-005|1.0e+005| 2.394123e+004 -2.853426e+004| 0:0:00| chol 1 111|1.000|0.452|1.7e-009|8.9e-006|4.8e+004|-4.977080e+003 -2.864900e+004| 0:0:00| chol 1 112|0.989|0.646|6.5e-009|3.2e-006|1.1e+004|-2.511018e+004 -2.886680e+004| 0:0:00| chol 1 113|0.861|0.213|7.2e-009|2.5e-006|9.6e+003|-2.519317e+004 -2.882240e+004| 0:0:00| chol 1 114|1.000|0.617|1.1e-008|9.5e-007|3.0e+003|-2.771596e+004 -2.881777e+004| 0:0:00| chol 1 115|1.000|0.652|5.0e-011|3.3e-007|8.5e+002|-2.838212e+004 -2.879646e+004| 0:0:00| chol 1 116|0.645|0.374|6.8e-010|2.1e-007|4.4e+002|-2.851301e+004 -2.875216e+004| 0:0:00| chol 1 117|1.000|0.169|1.2e-009|1.7e-007|3.8e+002|-2.851581e+004 -2.872179e+004| 0:0:00| chol 1 118|1.000|0.308|6.9e-009|1.2e-007|2.7e+002|-2.852690e+004 -2.867571e+004| 0:0:00| chol 1 119|1.000|0.521|1.4e-009|5.7e-008|1.2e+002|-2.856063e+004 -2.862352e+004| 0:0:00| chol 1 120|1.000|0.858|2.7e-010|8.2e-009|1.5e+001|-2.857437e+004 -2.858190e+004| 0:0:00| chol 1 121|0.987|0.984|8.1e-012|1.5e-010|2.7e-001|-2.857499e+004 -2.857511e+004| 0:0:00| chol 1 122|0.989|0.989|6.4e-013|2.0e-012|3.3e-003|-2.857500e+004 -2.857500e+004| 0:0:00| chol 1 123|0.989|0.988|1.8e-014|2.8e-014|4.4e-005|-2.857500e+004 -2.857500e+004| 0:0:00|

stop: max(relative gap, infeasibilities) < 1.49e-008-------------------------------------------------------------------number of iterations = 23primal objective value = -2.85750000e+004dual objective value = -2.85750000e+004gap := trace(XZ) = 4.42e-005relative gap = 7.74e-010actual relative gap = 2.99e-010rel. primal infeas = 1.78e-014rel. dual infeas = 2.78e-014norm(X), norm(y), norm(Z) = 1.8e+003, 1.0e+006, 1.0e+006norm(A), norm(b), norm(C) = 1.6e+003, 1.3e+003, 1.7e+006Total CPU time (secs) = 0.11CPU time per iteration = 0.00termination code = 0DIMACS: 1.8e-014 0.0e+000 4.8e-014 0.0e+000 3.0e-010 7.7e-010

-------------------------------------------------------------------------------------------------------------------------------Status: SolvedOptimal value (cvx_optval): +28575

Page 21: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

21/67

� Si planteamos el problema con el Lenguaje de Modelización de ProgramaciónMatemática, AMPL, al que se dan estas especificaciones

min. 240x1C 95x2C 1:300x3C 50x4

s. a 0;33x1C 0;1x2C 0;8x3C 0;01x4 � 20

0;35x1C 0;1x2C 0;9x3C 0;04x4 � 30

24;75x1C 3x2C 64x3C 0;2x4 � 1:750

210x1C 80x2C 1:100x3C 48x4 � 25:5000 � x1 � 500 � x2 � 100 � x3 � 500 � x4

# Generación.mod + .dat en AMPL

param a{1..4, 1..4}; param b{1..4}; param c{1..4}; param ub{1..4};

var x{i in 1..4} >= 0, <= ub[i];

minimize coste: sum{j in 1..4} c[j]*x[j];

subject to res1 {i in 1..3}: sum{j in 1..4} a[i,j]*x[j] >= b[i];subject to res2: sum{j in 1..4} a[4,j]*x[j] <= b[4];

data;param b := 1 20 2 30 3 1750 4 25500;param c := 1 240 2 95 3 1300 4 50;param a: 1 2 3 4 :=

1 0.33 0.1 0.8 0.012 0.35 0.1 0.9 0.043 24.75 3 64 0.24 210 80 1100 48 ;

param ub := 1 50 2 10 3 50 4 infinity;

Page 22: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

22/67

� Con OPTI:

» prob = amplRead(’Generación_1.mod’)prob = Name: ’OPTI Problem’

f: [4x1 double]H: []

Hstr: []fun: []

sense: 1objbias: 0

A: [4x4 double]b: []

Aeq: []beq: []rl: [4x1 double]ru: [4x1 double]lb: [4x1 double]ub: [4x1 double]Q: []l: []

qrl: []qru: []

sdcone: []nlcon: []nljac: []

nljacstr: []nlrhs: []

nle: []cl: []cu: []

int: ’cccc’sos: []

xdata: []ydata: []

weighting: []x0: [4x1 double]

probtype: []solver: []

path: ’D:\Matlab2013a\@opti\Generación_1.nl’

opts: []ode: []

odez0: []conlin: [4x1 double]

» Opt = opti(prob)------------------------------------------------------Linear Program (LP) Optimizationmin f’xs.t. rl <= Ax <= ru

lb <= x <= ub------------------------------------------------------

Problem Properties:# Decision Variables: 4# Constraints: 11

# Linear Inequality: 4# Bounds: 7

------------------------------------------------------Solver Parameters:

Solver: CLP------------------------------------------------------» [x,fval] = solve(Opt)x =

50.000010.00007.1429

126.7857fval =

28575» [x,fval,exitflag,info] = solve(Opt)x =

50.000010.00007.1429

126.7857fval =

28575exitflag =

1info =

Iterations: 2Time: 5.7776e-04

Algorithm: ’CLP: Automatically Chosen Solver’Status: ’Proven Optimal’Lambda: [1x1 struct]

Page 23: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

23/67� Si planteamos el problema otra vez con AMPL, haciendo que las variables dedecisión deban ser enteras,

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

23/67� Si planteamos el problema otra vez con AMPL, haciendo que las variables dedecisión deban ser enteras,

îìñèë

ì Í· °´¿²¬»¿³±­ »´ °®±¾´»³¿ ±¬®¿ ª»¦ ½±² ßÓÐÔô ¸¿½·»²¼± ¯«» ´¿­ ª¿®·¿¾´»­ ¼»

¼»½·­·-² ¼»¾¿² ­»® »²¬»®¿­ô

ûý Ù»²»®¿½·-²ò³±¼ õ ò¼¿¬ »² ßÓÐÔ

ª¿® ¨¥ïòòì£ âã ðô ·²¬»¹»®å

°¿®¿³ ¿¥ïòòìô ïòòì£å

°¿®¿³ ¾¥ïòòì£å

°¿®¿³ ½¥ïòòì£å

³·²·³·¦» ½±­¬»æ ­«³¥¶ ·² ïòòì£ ½Å¶Ãö¨Å¶Ãå

­«¾¶»½¬ ¬± ®»­ï ¨¥· ·² ïòòí£æ ­«³¥¶ ·² ïòòì£ ¿Å·ô¶Ãö¨Å¶Ã â㠾ŷÃå

­«¾¶»½¬ ¬± ®»­îæ ­«³¥¶ ·² ïòòì£ ¿Åìô¶Ãö¨Å¶Ã äã ¾ÅìÃå

­«¾¶»½¬ ¬± ³¿¨ïæ ¨Åïà äã ëðå

­«¾¶»½¬ ¬± ³¿¨îæ ¨Åîà äã ïðå

­«¾¶»½¬ ¬± ³¿¨íæ ¨Åíà äã ëðå

¼¿¬¿å

°¿®¿³ ¾ æã

ï îð

î íð

í ïéëð

ì îëëðð å

°¿®¿³ ½ æã

ï îìð

î çë

í ïíðð

ì ëð å

°¿®¿³ ¿æ ï î í ì æã

ï ðòíí ðòï ðòè ðòðï

î ðòíë ðòï ðòç ðòðì

í îìòéë í êì ðòî

ì îïð èð ïïðð ìè å

Ê¿®·¿¾´»­ »²¬»®¿­

Page 24: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

24/67

� Se obtendría lo siguiente:

>> prob = amplRead(’Generación_1.mod’)prob =

Name: ’OPTI Problem’f: [4x1 double]H: []

Hstr: []fun: []

sense: 1objbias: 0

A: [4x4 double]b: []

Aeq: []beq: []rl: [4x1 double]ru: [4x1 double]lb: [4x1 double]ub: [4x1 double]Q: []l: []

qrl: []qru: []

sdcone: []nlcon: []nljac: []

nljacstr: []nlrhs: []nle: []cl: []cu: []

int: ’iiii’sos: []

xdata: []ydata: []

weighting: []x0: [4x1 double]

probtype: []solver: []

path: ’D:\Matlab2013a\@opti\Generación_1.nl’opts: []ode: []

odez0: []conlin: [4x1 double]

>> Opt = opti(prob)------------------------------------------------------Mixed Integer Linear Program (MILP) Optimizationmin f’xs.t. rl <= Ax <= ru

lb <= x <= ubxi = Integer / Binary

------------------------------------------------------Problem Properties:

# Decision Variables: 4# Constraints: 16

# Linear Inequality: 4# Bounds: 8# Integer Variables: 4

------------------------------------------------------Solver Parameters:

Solver: CBC------------------------------------------------------>> [x,fval,exitflag,info] = solve(Opt)x =

50108

108fval =

28750exitflag =

1info =

Nodes: 6AbsGap: 175RelGap: 0.0061Time: 0.0044

Algorithm: ’CBC: Branch and Cut using CLP’Status: ’Integer Optimal’

Page 25: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

25/67

Optimización de flujos en redes_Network flows

� Se expresado gráficamente de esta forma.

� � �� � � �� �� �� � � �� � � �����

������� !�"#$%&'()*%#+%$%*,-./01230/04.56578.509: :; <= >? @BAC AD AEAFAG AHAI AJ KLMLKNOPKQRSOTLNROSUUUUUUUUUVLWNVNXY :SZ[\YKOOQ ]Q KQRSYT_LONQRLORQYSKLMLKNOPKQRSOTLNROSQROaYLTKSbNRYLTQMONVNXLONQR

cd cecfcg chcicj ckcl mm� Se trata de encontrar, entre los nudos 1 y 6, el máximo caudal o flujo de gas,petróleo, energía eléctrica, material, mercancías, llamadas telefónicas, capital,etcétera.

Page 26: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

26/67

� En términos de optimización,

max. t

s. a t D x1 C x2 0 � x1 � 3x1 C x3D x4 0 � x2 � 2x2 C x5D x3 C x6 0 � x3 � 1x4 C x8D x5 C x7 0 � x4 � 2

x6D x8 C x9 0 � x5 � 1t D x7 C x9 0 � x6 � 3

0 � x7 � 30 � x8 � 10 � x9 � 1

� � �� � � �� �� �� � � �� � � �����

������� !�"#$%&'()*%#+%$%*,-./01230/04.56578.509: :; <= >? @BAC AD AEAFAG AHAI AJ KLMLKNOPKQRSOTLNROSUUUUUUUUUVLWNVNXY :SZ[\YKOOQ ]Q KQRSYT_LONQRLORQYSKLMLKNOPKQRSOTLNROSQROaYLTKSbNRYLTQMONVNXLONQR

cd cecfcg chcicj ckcl mm

Page 27: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

27/67

� La solución óptima de este “sencillo” problema es la siguiente

Linear programming formulation

maximize tsubject to t = x1 + x2, x1 + x3 = x4, et cetera

0 ≤ x1 ≤ 3, 0 ≤ x2 ≤ 2, et cetera

(t = x1 + x2 is equivalent to inequalities t ≤ x1 + x2, t ≥ x1 + x2, . . . )

Solution

4 41

2

3

4

5

6

2

2

2

2

3

1

1

Linear optimization 18-5

Page 28: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

28/67La emisión de deuda pública_Portfolio analysis

� El ayuntamiento de una capital de provincia tiene comprometido invertir enproyectos de infraestructura en cuatro años 2.000, 4.000, 8.000 y 5.000 millonesde euros, respectivamente. Se supone que todo ese dinero está disponible el 1de enero del año en que se gasta.

� Para financiar estas inversiones el ayuntamiento planea emitir unos bonos a 20años con un interés del 4% para la deuda emitida el primer año, del 3% para ladel segundo año, 3,5% para la del tercer año y del 3,75% para la del cuartoaño. Los intereses se empiezan a pagar inmediatamente.

� Si algo del dinero obtenido se deposita en cuentas a plazo fijo, se podría obtenerel 1,5% de interés el segundo año, el 1,25% el tercero y el 1% el cuarto.

� ¿Cuál es el plan óptimo de financiación?

Page 29: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

29/67

� Solución Si designamos por x1; x2; x3 y x4 las cantidades de deuda en milesde millones de euros que tiene que emitir cada uno de los cuatro años, y pory1; y2 e y3 las que hay que depositar el segundo, tercer y cuarto año en cuentasa plazo fijo, el problema se puede formular de la siguiente manera:

min. 20 � 0;04x1 C 20 � 0;03x2 C 20 � 0;035x3 C 20 � 0;0375x4s. a x1 � y1 D 2

x2 C 1;015y1 � y2 D 4x3 C 1;0125y2 � y3 D 8x4 C 1;01y3D 5

x1; x2; x3; x4; y1; y2; y3 � 0:

Page 30: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

30/67Transporte de mercancías_Transportation andlogistics management

� El sector del transporte y logística es uno de los que más utiliza la PL paraoptimizar recursos.

� Una empresa dispone de m fábricas capaces de producir mensualmentea1; a2; : : : ; am cantidades de una mercancía que tiene que ser enviada a nalmacenes en cantidades b1; b2; : : : ; bn, respectivamente. El coste de enviar unaunidad de producto de la fábrica i al almacén j es cij .

Transporte de mercancıas

Una empresa dispone de m fabricas capaces de producir mensual-mente a1, a2, . . . , am cantidades de una mercancıa. El producto ha deser enviado en cantidades b1, b2, . . . , bn a n almacenes.

Si el coste de enviar una unidad de producto de la fabrica i al almacenj es cij, se trata de determinar las cantidades xij que habra queenviar de cada fabrica a cada almacen de tal forma que el coste deltransporte sea mınimo y se satisfagan los requerimientos de envıos arealizar.

m n

1 1

2 2

am bn

a1 b1

a2 b2

Fabrica Almacen

16

Page 31: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

31/67� Hay que determinar las cantidades xij que hay que enviar de cada fábrica acada almacén para satisfacer las demandas y que el coste del transporte totalsea mínimo; es decir,

minimizariij

cijxij

Transporte de mercancıas

Una empresa dispone de m fabricas capaces de producir mensual-mente a1, a2, . . . , am cantidades de una mercancıa. El producto ha deser enviado en cantidades b1, b2, . . . , bn a n almacenes.

Si el coste de enviar una unidad de producto de la fabrica i al almacenj es cij, se trata de determinar las cantidades xij que habra queenviar de cada fabrica a cada almacen de tal forma que el coste deltransporte sea mınimo y se satisfagan los requerimientos de envıos arealizar.

m n

1 1

2 2

am bn

a1 b1

a2 b2

Fabrica Almacen

16

sujeta a

nijD1

xij D ai ; para i D 1; : : : ; m

miiD1

xij D bj ; para j D 1; : : : ; n

xij � 0; para i D 1; : : : ; mj D 1; : : : ; n:

Además,Pm

iD1 ai DPnjD1 bj : la cantidad total producida tiene que ser igual a

la suma de las que llegan a los almacenes.

Page 32: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

32/67

Índice

� Formulación

� Definiciones y formas de programas lineales

� Historia

� Ejemplos de programas lineales

� Consideraciones geométricas

� Politopos

� Puntos extremos y soluciones básicas factibles

Page 33: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

33/67Consideraciones geométricas

� Consideremos este problema de Programación Lineal:min.�x1 � 3x2s. a x1C x2 � 6�x1C 2x2 � 8

x1; x2 � 0:

Hay que determinar aquel punto dela región factible que minimiza lavariedad lineal (una recta) z D�x1 � 3x2.

� Para minimizar z habrá que desplazarla desde su subespacio de referencia,�x1 � 3x2 D 0, en la dirección que minimice más dicho objetivo: en ladirección �c D Œ1; 3�T , opuesta a su vector característico.

��

x�x�

����c ����

�� �����- x��x� ������������ ��� ���

En el punto óptimo, x� D Œ4=3; 14=3�T ,denominado punto extremo o vértice, esimposible, manteniendo la factibilidad,mover más z D �x1 � 3x2 en la direcciónde �c.

Page 34: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

34/67

� En el óptimo, hay dos condiciones que están activas, o vigentes: la primera y lasegunda.

� Ninguna de las condiciones de no negatividad de las variables están activas.

� En el óptimo, el vector de costes se puede poner como combinación lineal de losvectores columna de la matriz AT , vectores característicos de las condicionesactivas:

AT� D cI ! � D�1 �11 2

��1 ��1�3�D��5=3�2=3

�:

Volveremos sobre este � y esta combinación lineal recurrentemente.

Page 35: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

35/67Formas de la solución u óptimo

� Solución óptima única Ocurre siempre en un punto extremo, o vértice dela región factible.

� Las dos alternativas que pueden presentarse en este caso: región factibleacotada y no acotada.

� �������� � ��������

El que la región factible no esté acotada no afecta a que haya o no óptimo;puede que sí a la forma de llegar a ella.

Page 36: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

36/67

� Soluciones óptimas alternativas En este caso el punto óptimo escualquiera de los puntos de una denominada faceta, o cara, de la región factible.

������������� �������������������������������������� ���!�"����������"����"�������"�����"���!�#����$����%���& '�(�)������ & '%(�)������

�(��!�#����$����%������������"������!�� ����'*(���+,En (a) la región factible está acotada mientras que en (b) no.

Page 37: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

37/67

� Solución óptima no acotada Este caso se presenta cuando laconfiguración región factible-función objetivo tiene la forma de la figura.

�������������������� ��������������������������������������� ������ ��!����"���!���� ���"#���$��������!��%�����������������"��������&�����������%���������������������� ��!�����"������������� ��'(��������������������)���%������������!����"��*��"��*������+�������&�%������( ,�-

./Es posible desplazarse tanto como se desee dentro de la región factible en ladirección �c sin encontrar un punto extremo o cara de la región factible quebloquee dicho desplazamiento.

Page 38: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

38/67

� Región factible vacía Por ejemplo:

min.�2x1C 3x2s. a �x1C 2x2� 2

2x1 � x2� 3x1� 0x2� 3:

Region factible vacıa. El siguiente ejemplo ilustra este caso:

min. −2x1 + 3x2

s. a −x1 + 2x2 ≤ 22x1 − x2 ≤ 3

x1 ≥ 0x2 ≥ 3.

Su region factible es el ∅ pues no hay ningun x = [x1, x2]T que satis-

faga todas las condiciones.

[3/20

]

[01

]

[03

]

[8/37/3

]

−x 1 + 2x 2 ≤ 22x 1 − x 2 ≤ 3

x 2 ≥ 3

25

Su región factible es el conjunto vacío, ;, pues no hay ningún x D Œx1; x2�T quesatisfaga todas las condiciones. El problema se dice no factible o inconsistente.

Page 39: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

39/67Geometría del problema en Im.A/

Definición Un conjunto C � Rn se dice convexo si y sólo si para todo par de puntosx1;x2 2 C todas las combinaciones de la forma x D �x1 C .1 � �/x2, 0 � � � 1 estánen C .

� Cuando para cada par de puntos del conjunto convexo todos los puntos delsegmento de recta que los une están en el conjunto.

Examples of convex sets• A line segment is a convex set.

Fig. 4.9. Convex setswith pairs of pointsjoined by line segments.

Title Page �� �� � � 38 of 156 Go Back Full Screen Close Quit

Examples of non-convex sets• The union of two non-overlapping line segments is non-convex.• Non-convex sets can have “indentations.”

Fig. 4.10. Non-convexsets.

Title Page �� �� � � 39 of 156 Go Back Full Screen Close Quit

Page 40: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

40/67

� La expresión x D �x1 C .1 � �/x2, 0 � � � 1, define la combinación convexade x1 y x2.Si 0 < � < 1, es decir � 2 .0; 1/, la combinación es estrictamente convexa.

� El concepto de combinación convexa se puede generalizar a cualquier númerofinito de puntos de la siguiente manera:

x DpiiD1

�ixi ;

dondepiiD1

�i D 1; �i � 0; i D 1; : : : ; p:

Page 41: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

41/67

Teorema El conjunto de soluciones de un programa lineal, K D fx 2 Rn W Ax Db;x � 0g, es un conjunto convexo.

Definición Un conjunto C � Rn se dice un cono si para todo x 2 C , �x 2 C , paratodo escalar no negativo � 2 R (� � 0).Un cono que también es convexo se denomina cono convexo.

� El conjunto fx 2 Rm W x D A˛;A 2 Rm�n;˛ 2 Rn;˛ � 0g es un conoconvexo generado por los vectores columna de la matriz A.

Definición x es un punto extremo, o vértice, de un conjunto convexo C si y sólo sino es interior a un segmento de recta contenido en C .Es decir, si y sólo si,

x D .1 � ˇ/y C ˇz con 0 < ˇ < 1 y y; z 2 C ) x D y D z.

Page 42: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

42/67Geometría del problema con condiciones de igualdad

� El programa lineal en forma estándar min. cTx; s. a Ax D b;x � 0, dondex 2 Rn y A 2 Rm�n, se puede escribir así:

min.nX

jD1cjxj

s. anX

jD1ajxj D b

x1; : : : ; xn� 0:���������

��������� �donde aj es el vector columna j de A.

� El óptimo será un vector de escalares no negativos de dimensión n que definauna combinación de los vectores columna de A de tal forma que b pertenezcaal cono convexo generado por estos vectores columna y que minimice la funciónobjetivo.

Page 43: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

43/67

��������� ����������� �

� En la figura se representan los casos de un problema con región factible no vacíay otro con región factible vacía.

� En el segundo caso, (b), los vectores a1, a2, a3 y a4 no se pueden combinarconvexamente de ninguna manera que contenga a b.

Page 44: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

44/67� Ejemplo Consideremos las regiones factibles que determinan las condiciones2x1C x2C x3 D 2�x1C 3x2 C x4D 3

x1; x2; x3; x4 � 0y

2x1C x2C x3 D�1�x1C 3x2 C x4D 2

x1; x2; x3; x4 � 0:

En (a) se puede ver que b está contenido en ese cono convexo; en (b) no: elprimer problema es factible; el segundo es inconsistente.

���� ����� ������� ���� �

Page 45: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

45/67Geometría con condiciones de desigualdad

� Consideremos ahora

min.nX

jD1cjxj

s. anX

jD1ajxj � b

x1; : : : ; xn� 0:Si existe solución factible, la intersección del cono convexo que generana1; : : : ; an y el conjunto de vectores menores o iguales que b será no vacía.

a� a�b

a���� a� a�

b

a��� En (a) la región factible es no

vacía; en (b) vacía.

Page 46: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

46/67

� Geometría del óptimo Refiriéndonos al problema en forma estándar, sebuscan unos escalares no negativos x1; x2; : : : ; xn tales que�

z

b

�D�c1a1

�x1 C

�c2a2

�x2 C � � � C

�cnan

�xn

y se minimice z.

� Se busca poder expresar el vector Œz, bT �T en el cono convexo que generan losvectores Œc1; aT1 �

T ; : : : ; Œcn; aTn �T con el valor más pequeño posible del escalar z.

Page 47: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

47/67

� Ejemplo Sea el problema min.�2x1 � 3x2s. a x1C 2x2� 2

x1; x2� 0:

� Añadiendo la variable de holgura x3, el problema se puede expresar como el deencontrar unos escalares x1; x2; x3 � 0 tales que el vector Œz; 2�T esté en elcono convexo que generan los vectores Œ�2; 1�T , Œ�3; 2�T y Œ0; 1�T , con el valormás pequeño posible del escalar z.

����������������� ����������������������������� Hay que hayar los escalares x1; x2; x3 � 0 talesque �

z

2

�D��21

�x1 C

��32

�x2 C

�0

1

�x3

y hagan mínimo el z. La solución es z� D �4con x�1 D 2 y x�2 D x�3 D 0.

Page 48: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

48/67� Ejemplo Sea ahora min.�2x1 � 3x2s. a x1C 2x2� 2

x1; x2� 0:

� Si se sustrae de la primera condición la variable de holgura x3, el problema es elde encontrar unos escalares x1; x2; x3 � 0 tales que se cumpla que�

z

2

�D��21

�x1 C

��32

�x2 C

�0

�1

�x3

y se minimice z.

����������������� �������������-

En el cono que generan los vectores Œ�2, 1�T , Œ�3, 2�Ty Œ0, �1�T se pueden encontrar puntos de la forma Œz,2�T , con z tan pequeña como queramos: el valor óptimode la función objetivo tiende, por consiguiente, a �1. Elproblema no está acotado.

Page 49: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

49/67Politopos

Definición Llamaremos hiperplano H de vector característico a 2 Rn; a ¤ 0, alconjunto H D ˚x 2 Rn W aTx D c, con c 2 R.

Definición Un hiperplano en Rn es una variedad lineal .n � 1/-dimensional.

� Un hiperplano es el conjunto de soluciones de una ecuación lineal en Rn.

Definición Dado un hiperplano H , aTx D c, llamaremos semiespacios cerrados deborde H a los conjuntos

HC D˚x 2 Rn W aTx � c

H� D˚x 2 Rn W aTx � c

y semiespacios abiertos de borde H aıHC D

˚x 2 Rn W aTx > c

ıH� D

˚x 2 Rn W aTx < c :

Page 50: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

50/67

� El hiperplano �x1 C 4x2 D 11, su vector característico a D Œ�1; 4�T y lossemiespacios HC y H� se ven así:

a

a

xy

H+

H−

H

El vector a es ortogonal a H y dirigido hacia HC.

� Los semiespacios de borde H son convexos; la unión de HC y H� es el espacioRn.

Page 51: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

51/67

Definición Un politopo es un conjunto formado por la intersección de un número finitode semiespacios cerrados.

Definición Un politopo cónico es un conjunto formado por la intersección de un númerofinito de semiespacios cerrados que pasan por un punto.

Definición Un poliedro es un politopo acotado y no vacío.

Page 52: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

52/67� Imágenes de poliedros. También aquí.

Page 53: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

53/67

� Es fácil comprobar que la intersección de conjuntos convexos es convexa y quepor lo tanto los politopos y los poliedros son conjuntos convexos.

� Si un politopo P es un poliedro, cualquier punto se puede expresar comocombinación convexa de los vértices o puntos extremos.

La región factible, o conjunto de soluciones de un programa lineal,

P D fx 2 Rn W Ax D b; x � 0g ;es un politopo convexo.

Page 54: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

54/67

Índice

� Formulación

� Definiciones y formas de programas lineales

� Historia

� Ejemplos de programas lineales

� Consideraciones geométricas

� Politopos

� Puntos extremos y soluciones básicas factibles

Page 55: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

55/67

Puntos extremos y soluciones básicasfactibles

� Consideraremos en los sucesivo las condiciones del programa lineal en formaestándar,

AxD bx � 0;

donde x 2 Rn, b 2 Rm y A 2 Rm�n; n > m .

� Si Ax D b es compatible, rango.A/ D m:De las n columnas de A se pueden elegir m linealmente independientes queformen una base del subespacio Im.A/.

Page 56: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

56/67� Si esas m columnas son las primeras y forman la submatriz B de A, ésta queda��� ���� �Como B es regular, la ecuación BxB D b se puede resolver de forma única.El vector xT D ŒxTB ; 0T � es una de las múltiples soluciones de Ax D b.

Definición Sea B cualquier submatriz no singular m � m resultante de agrupar mcolumnas linealmente independientes de A.

� Si todos los n�m coeficientes del vector x no asociados a las columnas de B, a los quese denominarán variables no básicas, se hacen cero y se resuelve la ecuación Ax D ben los m restantes coeficientes, denominados variables básicas, la solución resultantede denomina solución básica asociada a la matriz básica, o base, B.

� Las n � m columnas de A que no forman parte de B se las agrupa en una matrizm� .n�m/ denominada matriz no básica N (asociada a las variables no básicas); encorrespondencia, las variables no básicas forman xN .

Page 57: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

57/67

� Ejemplo Consideremos el poliedro de la figura,

������������

x�x�

definido por x1 C x2 � 6, x2 � 3 y x1; x2 � 0.

� Si añadimos las variables de holgura x3 y x4 a la primera y segunda desigualdad,respectivamente, resulta:

x1C x2C x3 D 6x2 C x4D 3x1; x2; x3; x4 � 0:

Page 58: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

58/67� La matriz de los coeficientes es A D Œa1; a2; a3; a4� D�1 1 1 0

0 1 0 1

�. Las posibles

matrices B que se pueden extraer de A y sus correspondientes solucionesbásicas son las de la tabla.

B D Œa1; a2� D"1 1

0 1

# xB D"x1

x2

#D B�1b D

"1 �10 1

#"6

3

#D"3

3

#xN D

"x3

x4

#D"0

0

#

B D Œa1; a4� D"1 0

0 1

# xB D"x1

x4

#D B�1b D

"1 0

0 1

#"6

3

#D"6

3

#xN D

"x2

x3

#D"0

0

#

B D Œa2; a3� D"1 1

1 0

# xB D"x2

x3

#D B�1b D

"0 1

1 �1

#"6

3

#D"3

3

#xN D

"x1

x4

#D"0

0

#

B D Œa2; a4� D"1 0

1 1

# xB D"x2

x4

#D B�1b D

"1 0

�1 1

#"6

3

#D"6

�3

#xN D

"x1

x3

#D"0

0

#

B D Œa3; a4� D"1 0

0 1

# xB D"x3

x4

#D B�1b D

"1 0

0 1

#"6

3

#D"6

3

#xN D

"x1

x2

#D"0

0

#

Page 59: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

59/67

� La cuarta de estas soluciones no vale por ser uno de sus coeficientes negativo;es no factible.

� Las soluciones básicas factibles son pues

x1 D

2643300

375 ; x2 D

2646003

375 ; x3 D

2640330

375 y x4 D

2640063

375 :� Obsérvese que estos puntos determinan en sus dos primeros coeficientes lospuntos extremos de la figura anterior. ����

��������x�

x�

Page 60: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

60/67

Definición Si una o más de las variables básicas de una solución básica de

Ax D bx � 0;

es cero, la solución se denomina básica degenerada. Una solución básica en la que todossus coeficientes son no negativos se denomina solución básica factible; si algún coeficientees cero, la solución se dice básica factible degenerada.

� Dos soluciones básicas factibles del politopo P D fx 2 Rn W Ax D b;x � 0gse dicen adyacentes si m � 1 de sus coeficientes son comunes.

� Dos soluciones adyacentes o puntos extremos están unidos por una arista.Suponiendo no degeneración, cualquier variable básica (y su correspondientepunto extremo) tiene exactamente n �m adyacentes.

Page 61: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

61/67Teorema Equivalencia entre puntos extremos y soluciones básicas Sean A 2 Rm�n unamatriz de rango m, b 2 Rm y el politopo convexo P D fx 2 Rn W Ax D b;x � 0g.Un x 2 P es un punto extremo o vértice de P si y sólo si los vectores columna de Aasociados a los coeficientes positivos de x son linealmente independientes.

Corolario x 2 P D fx 2 Rn W Ax D b;x � 0g es punto extremo de P si y sólo si esuna solución básica factible de

Ax D bx � 0:

Corolario Un x es un punto extremo de P D fx 2 Rn W Ax D b;x � 0g si y sólo siresulta de la intersección de n hiperplanos linealmente independientes.

Corolario Un politopo P D fx 2 Rn W Ax D b; x � 0g tiene un número finito depuntos extremos.

I DEMOSTRACIÓN. Escoger m columnas linealmente independientes de n de A es

C.n; m/ D

�nm

�D

mŠ.n�m/Š:

Page 62: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

62/67

� Ejemplo Consideremos el programa lineal que sigue.

x1C x2 � 6x2 � 3

x1C 2x2� 9x1; x2� 0:

������������

x�x�

� Si añadimos las variables de holgura x3, x4 y x5 a la primera, segunda y terceradesigualdad, respectivamente, resulta

x1 C x2 C x3 D 6x2 C x4 D 3

x1 C 2x2 C x5 D 9x1; x2; x3; x4; x5 � 0:

I A D Œa1; a2; a3; a4; a5� D�1 1 1 0 00 1 0 1 01 2 0 0 1

�Obsérvese que la desigualdad x1 C 2x2 � 9 es redundante.

Page 63: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

63/67� Estudiemos la solución básica que se obtiene a partir de B D Œa1; a2; a3�:

xB D24x1x2x3

35 D B�1b D 241 1 10 1 01 2 0

35�124639

35 D 240 �2 10 1 01 1 �1

3524639

35 D 24330

35 ;xN D

�x4x5

�D�00

�:

Es degenerada, pues su tercer coeficiente es cero.

� Analicemos ahora la solución básica considerando B D Œa1; a2; a4�:

xB D24x1x2x4

35 D B�1b D 241 1 00 1 11 2 0

35�124639

35 D 24 2 0 �1�1 0 11 1 �1

3524639

35 D 24330

35 ;xN D

�x3x5

�D�00

�:

Como se puede ver es la misma solución que obteníamos antes.

� Si considerásemos B D Œa1; a2; a5� llegaríamos también a la misma soluciónbásica degenerada:

Œx1 x2 x3 x4 x5�T D Œ3 3 0 0 0�T :

Page 64: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

64/67

� La correspondencia entre soluciones básicas factibles y puntos extremos no es engeneral biunívoca: A cada solución básica factible le corresponde un único puntoextremo en P , pero puede que a cada punto extremo de P le corresponda másde una solución básica factible.

� Cuando A no tiene rango completo, P puede ser el conjunto vacío o alguna delas condiciones es redundante. En lo sucesivo supondremos que A 2 Rm�n tienem vectores fila/columna linealmente independientes.

� Un problema de programación lineal se denomina no degenerado si todas sussoluciones básicas factibles son no degeneradas.La correspondencia en este caso entre puntos extremos y soluciones básicasfactibles sí es biunívoca.

Page 65: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

65/67

� Si el politopo P no está acotado, para caracterizar del todo las soluciones delproblema de Programación Lineal hay que introducir las direcciones.

Definición Una dirección del politopo P D fx 2 Rn W Ax D b; x � 0g es un vectorno nulo d 2 Rn tal que para todo x0 2 P el rayo fx 2 Rn W x D x0 C �d ; � � 0gpertenece a P .

� Un politopo P no está acotado si y sólo si tiene una dirección.d ¤ 0 es una dirección de P si y sólo si Ad D 0 y d � 0, pues cualquierpunto a lo largo de esa dirección cumple las condiciones y mejora la funciónobjetivo sin límite.

Page 66: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

66/67

Teorema Teorema de la representación Todo punto del politopo P D fx 2 Rn WAx D b; x � 0g de soluciones de un PL se puede expresar de la forma

x DXi2I

�ivi C d ;

donde fvi W i 2 I g es el conjunto de puntos extremos de P ,P

i2I �i D 1, �i � 0, y d , oes una dirección de P , o d D 0.

Corolario Si el politopo P D fx 2 Rn W Ax D b;x � 0g es cerrado y acotado (es unpoliedro), todo punto x 2 P se puede expresar como combinación convexa de sus puntosextremos.

Page 67: Programación Lineal · 2018-03-09 · Un problema de programación lineal cualquiera min. cTx s. a Ax b x 0; se puede expresar en laforma estándarsin más que sustraer un vector

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

67/67

Teoremas fundamentales de la Programación Lineal

Teorema Si el politopo P D fx 2 Rn W Ax D b;x � 0g de un PL es no vacío, tieneal menos un punto extremo o vértice.

Teorema Dado un politopo no vacío P D fx 2 Rn W Ax D b;x � 0g de solucionesde un PL, el valor mínimo de la función objetivo cTx en ese P se alcanza en un puntoextremo (solución básica factible óptima), o cTx no está acotada inferiormente.

� De estos teoremas se deduce que, cuando hay varias soluciones óptimas, almenos una es un punto extremo del politopo de soluciones factibles.

� En consecuencia, para encontrar el óptimo de un PL hay que concentrarseúnicamente en las soluciones básicas factibles o puntos extremos de P .