Optimización Lineal: Introducción a la Programación Lineal

Anuncio
Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales
Grado en Ingeniería en Tecnologías Industriales. Curso 2015-2016-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_2016.pdf
1/67
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
3/67
Formulación
La Programación Lineal es el área de la Optimización/Programación
Matemática/Management Science que busca de entre todas las posibles
soluciones comunes de un conjunto de ecuaciones e inecuaciones lineales la que
mejor plasma un determinado criterio u objetivo, representado por una función
tambié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.
4/67
Juega un papel vital en muchas facetas de la economía, las ciencias sociales, la
técnica, la planificación, la gestión, : : : como un instrumento de ayuda a la
toma de decisiones que tienen que ver con la asignación óptima de recursos con
diversas funciones de utilidad.
En el análisis, la planificación y el control operativo de sistemas energéticos y
elé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.
5/67
Definiciones y formas de programas lineales
La programación lineal, PL, trata un problema o programa lineal
minimizar c1 x1 C c2 x2 C C cn xn
sujeta a
y
a11 x1 C a12 x2 C C a1n xn b1
a21 x1 C a22 x2 C C a2n xn b2
::
::
::
:
:
:
am1 x1 C am2 x2 C C amn xn bm
x1 ; x2 ; : : : ; xn 0:
A c1x1 C C cnxn se le denomina función objetivo y a las
ai1x1 C C ai nxn, 1 i m, restricciones o condiciones.
Las x1; : : : ; xn son los coeficientes del vector variables de decisión. Los
c1; : : : ; cn, los coeficientes de coste. Los b1; : : : ; bm, el término independiente.
6/67
La matriz
2
a11 a12 a13
6
6a a a
A D 6 ::21 ::22 ::23
4 : : :
am1 am2 am3
3
a1n
7
a2n 7
: : : ::: 7
5
amn
es la de coeficientes de las condiciones del problema.
Un vector, o punto, x T D Œx1; x2; : : : ; xn, que satisface todas las condiciones
se denomina factible.
El conjunto
F D fx 2 Rn W Ax b; x 0g
de todos los vectores o puntos factibles constituye la región factible.
7/67
En forma compacta, el problema de programación lineal se expresa así:
min. c T x
s. a Ax b
x 0:
En forma estándar,
min. c T x
s. a Ax D b
x 0:
8/67
Ejemplo En el programa lineal
min. 2x1 C 5x2
s. a
x1 C x2 6
x1 2x2 18
x1; x2 0;
las variables de decisión son x1 y x2. La función objetivo 2x1 C 5x2.
20 356
8
Las restricciones y la región
factible se ven así:
356
7
376
5 1
3146
5
21
0
9
9/67
Un problema de programación lineal cualquiera
min. c T x
s. a Ax b
Si las condiciones fuesen Ax b, añadiendo un vector y se obtendría la forma
estándar: Ax C y D b.
Si alguna de las variables xi no está res-
x 0;
se puede expresar en la forma estándar sin más que sustraer un
vector y , denominado de variables de holgura, de las condiciones
Ax b:
min.
cT x
s. a Ax y D b
x; y 0:
tringida a ser no negativa, se puede reemplazar por otras dos, xi0 y xi00 , tales que
xi D xi0
xi00 ;
donde xi0 0 y xi00 0, y el problema
pasa a ser uno con formulación estándar.
Si se trata de maximizar una función objetivo, se puede transformar en minimizar esa función
teniendo en cuenta que
mKax c T x D mKın c T x:
Desarrollo histórico de la Programación Lineal
10/67
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 área
de conocimiento Programación Lineal
1947 G. Dantzig formula el Método Simplex para resolver problemas
logí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 eficientes
para problemas de grandes dimensiones.
Convergencia teórica y algorítmica con Programación No Lineal
11/67
Formulación de problemas de Programación
Lineal
La dieta alimenticia
Es el problema clásico sobre el que se empezaron a ensayar los primeros
procedimientos 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 se
suministrase a cada individuo una cantidad mínima de varios ingredientes
nutritivos.
Para plantear el problema, supongamos que existen en el mercado n alimentos
distintos, a unos costes unitarios c1; : : : ; cn, y que se quiere programar una dieta
que contenga al menos b1; : : : ; bm unidades de m ingredientes nutritivos.
12/67
Si el alimento j contiene aij unidades del ingrediente i , y se desea programar el
vector dieta, x T D Œx1; x2; : : : ; xn, que fije las cantidades que hay que
comprar 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 b1
a21x1 C a22x2 C C a2nxn b2
:::
:::
am1x1 C am2x2 C C amnxn bm
x1; x2; : : : ; xn 0:
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ómo
satisfacer su incremento los próximos 10 años.
El mercado tecnológico dispone de cuatro formas consolidadas y aceptadas de
generar electricidad a gran escala: centrales termoeléctricas de gas natural,
centrales hidráulicas, aerogeneradores y centrales de carbón.
El patrón de su demanda eléctrica futura está definido por:
14/67
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 que
crecerá en 20 GW para el año número 10.
Los parámetros esenciales de las centrales contempladas son estos.
Tipo de Central
Gas
Hidroeléctricas
Carbón
Aerogeneradores
Potencia Potencia
Horas
Coste de Coste total
garantizada máxima utilización inversión actualizado
106 kW
106 kW
anuales 106 euros 106 euros
0,33
0,10
0,80
0,01
0,35
0,10
0,90
0,04
7.500
3.000
8.000
2.000
210
80
1.100
48
240
95
1.300
50
¿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? Las
restricciones 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 50
unidades de gas, 10 hidráulicas y 50 unidades de carbón.
15/67
Solución Designando por x1; x2; x3; x4 el número de unidades de cada tipo de
generación posible, el problema se puede formular de la siguiente manera:
min.
s. a
240x1 C 95x2 C 1:300x3 C
0;33x1
0;35x1
24;75x1
210x1
C 0;1x2
C 0;1x2
C 3x2
C 80x2
C 0;8x3
C 0;9x3
C
64x3
C 1:100x3
50x4
C 0;01x4
C 0;04x4
C 0;2x4
C 48x4
0
0
0
0
20
30
1:750
25:500
x1 50
x2 10
x3 50
x4
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
Infeasibility
0
268.75
1
43.8864
2
28.1167
3
5.34911
4
0.227273
5
-0
Phase 2: Minimize using simplex.
Iter
Objective
Dual Infeasibility
f’*x
A’*y+z-w-f
0
29730.3
1.52213
1
29561.1
1.12263
2
28575
0
Optimization terminated.
x =
50.0000
10.0000
7.1429
126.7857
4.4821
0
0
257.1429
16/67
fval =
2.8575e+004
exitflag =
1
output =
iterations: 2
algorithm: ’medium scale: simplex’
cgiterations: []
message: ’Optimization terminated.’
constrviolation: 3.6380e-012
lambda =
ineqlin: [0x1 double]
eqlin: [4x1 double]
upper: [8x1 double]
lower: [8x1 double]
>> lambda.eqlin
ans =
1.0e+003 *
0
-1.2353
-0.0029
0
>> lambda.upper
ans =
265.1471
37.3529
0
0
0
0
0
0
Segundo, con otro software de Matlab, fmincon, para resolver problemas
generales 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-order
Iter F-count
f(x)
constraint
steplength
derivative
optimality Procedure
0
9
0
2.55e+04
Infeasible start point
1
18
28987
3.553e-15
1
225
112
2
27
28925.5
2.274e-13
1
-7.51
3.69 Hessian modified
3
36
28899.5
7.105e-15
1
-4.08
2.54 Hessian modified
4
45
28792.9
6.57e-17
1
-2.63
5.13 Hessian modified twice
5
54
28792
2.274e-13
1
-0.914
0.909 Hessian modified twice
6
63
28750.2
3.638e-12
1
-0.914
0.914 Hessian modified twice
7
72
28575
2.274e-13
1
-0.914
9.27e-05 Hessian modified
Optimization completed: The first-order optimality measure, 8.216127e-13, is less
than options.TolFun = 1.000000e-06, and the maximum constraint violation, 2.273737e-13,
is less than options.TolCon = 1.000000e-06.
Optimization Metric
first-order optimality =
8.22e-13
max(constraint violation) =
2.27e-13
Active inequalities (to within options.TolCon = 1e-06):
lower
upper
ineqlin
ineqnonlin
6
1
7
2
x= 50.0000
10.0000
7.1429
126.7857
4.4821
0.0000
0.0000
257.1429
TolFun =
TolCon =
Options
1e-06 (default)
1e-06 (default)
17/67
18/67
También podemos usar OPTI, http://www.i2c2.aut.ac.nz/Wiki/OPTI/ de
Jonathan Currie, del Industrial Information & Control Centre (I 2C 2), de la
AUT University, Auckland, New Zealand, muy utilizado como plataforma
general 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) Optimization
min f’x
s.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.0000
10.0000
7.1429
126.7857
4.4821
0
0
257.1429
fval =
28575
exitflag =
1
info =
Iterations: 2
Time: 0.0023
Algorithm: ’CLP: Automatically Chosen Solver’
Status: ’Proven Optimal’
Lambda: [1x1 struct]
19/67
Si utilizamos otro software puntero para investigación, de la Universidad de
Stanford, CVX, desde
http://cvxr.com/cvx
Con el script de Matlab
% Ejemplo_generacion.m
cvx_begin
variable x(8)
minimize (c*x);
subject to
A*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.
>> Ejemplo_generacion
Calling SDPT3 4.0: 20 variables, 8 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.
-----------------------------------------------------------num. of constraints = 8
dim. of linear var = 16
dim. of free
var = 4 *** convert ublk to lblk
*******************************************************************
SDPT3: Infeasible path-following algorithms
*******************************************************************
version predcorr gam expon scale_data
NT
1
0.000
1
0
it 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|
1|1.000|0.966|8.9e-007|2.3e-001|2.2e+009| 1.149790e+009 5.446578e+005| 0:0:00|
2|1.000|0.401|2.5e-006|1.4e-001|8.4e+008| 2.092782e+008 5.865177e+005| 0:0:00|
3|0.892|0.352|2.3e-007|9.1e-002|5.8e+008| 8.492455e+007 5.783161e+005| 0:0:00|
4|1.000|0.357|1.5e-006|5.9e-002|4.4e+008| 4.170257e+007 4.391842e+005| 0:0:00|
5|1.000|0.675|1.1e-007|1.9e-002|1.5e+008| 1.329674e+007 1.506755e+005| 0:0:00|
6|0.997|0.878|2.9e-008|2.3e-003|1.9e+007| 2.940189e+006 -1.013703e+004| 0:0:00|
7|0.998|0.919|7.8e-009|1.9e-004|1.7e+006| 5.276519e+005 -2.736437e+004| 0:0:00|
8|1.000|0.060|3.4e-009|1.8e-004|1.4e+006| 4.232803e+005 -2.757775e+004| 0:0:00|
9|1.000|0.881|1.7e-008|2.1e-005|2.2e+005| 1.097886e+005 -2.857791e+004| 0:0:00|
10|0.853|0.236|1.9e-009|1.6e-005|1.0e+005| 2.394123e+004 -2.853426e+004| 0:0:00|
11|1.000|0.452|1.7e-009|8.9e-006|4.8e+004|-4.977080e+003 -2.864900e+004| 0:0:00|
12|0.989|0.646|6.5e-009|3.2e-006|1.1e+004|-2.511018e+004 -2.886680e+004| 0:0:00|
13|0.861|0.213|7.2e-009|2.5e-006|9.6e+003|-2.519317e+004 -2.882240e+004| 0:0:00|
14|1.000|0.617|1.1e-008|9.5e-007|3.0e+003|-2.771596e+004 -2.881777e+004| 0:0:00|
15|1.000|0.652|5.0e-011|3.3e-007|8.5e+002|-2.838212e+004 -2.879646e+004| 0:0:00|
16|0.645|0.374|6.8e-010|2.1e-007|4.4e+002|-2.851301e+004 -2.875216e+004| 0:0:00|
17|1.000|0.169|1.2e-009|1.7e-007|3.8e+002|-2.851581e+004 -2.872179e+004| 0:0:00|
18|1.000|0.308|6.9e-009|1.2e-007|2.7e+002|-2.852690e+004 -2.867571e+004| 0:0:00|
19|1.000|0.521|1.4e-009|5.7e-008|1.2e+002|-2.856063e+004 -2.862352e+004| 0:0:00|
20|1.000|0.858|2.7e-010|8.2e-009|1.5e+001|-2.857437e+004 -2.858190e+004| 0:0:00|
21|0.987|0.984|8.1e-012|1.5e-010|2.7e-001|-2.857499e+004 -2.857511e+004| 0:0:00|
22|0.989|0.989|6.4e-013|2.0e-012|3.3e-003|-2.857500e+004 -2.857500e+004| 0:0:00|
23|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
= 23
primal objective value = -2.85750000e+004
dual
objective value = -2.85750000e+004
gap := trace(XZ)
= 4.42e-005
relative gap
= 7.74e-010
actual relative gap
= 2.99e-010
rel. primal infeas
= 1.78e-014
rel. dual
infeas
= 2.78e-014
norm(X), norm(y), norm(Z) = 1.8e+003, 1.0e+006, 1.0e+006
norm(A), norm(b), norm(C) = 1.6e+003, 1.3e+003, 1.7e+006
Total CPU time (secs) = 0.11
CPU time per iteration = 0.00
termination code
= 0
DIMACS: 1.8e-014 0.0e+000 4.8e-014 0.0e+000 3.0e-010 7.7e-010
-----------------------------------------------------------------------------------------------------------------------------Status: Solved
Optimal value (cvx_optval): +28575
20/67
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
21/67
Si planteamos el problema con el Lenguaje de Modelización de Programación
Matemática, AMPL, al que se dan estas especificaciones
# 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];
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:500
0
0
0
0
x1 50
x2 10
x3 50
x4
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
param
param
1
2
3
4
param
b := 1 20 2 30 3 1750 4 25500;
c := 1 240 2 95 3 1300 4 50;
a:
1
2
3
4 :=
0.33
0.1
0.8 0.01
0.35
0.1
0.9 0.04
24.75
3
64
0.2
210
80 1100
48 ;
ub := 1 50 2 10 3 50 4 infinity;
Con OPTI:
» prob = amplRead(’Generación_1.mod’)
prob = Name: ’OPTI Problem’
f: [4x1 double]
H: []
Hstr: []
fun: []
sense: 1
objbias: 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) Optimization
min f’x
s.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.0000
10.0000
7.1429
126.7857
fval =
28575
» [x,fval,exitflag,info] = solve(Opt)
x =
50.0000
10.0000
7.1429
126.7857
fval =
28575
exitflag =
1
info =
Iterations: 2
Time: 5.7776e-04
Algorithm: ’CLP: Automatically Chosen Solver’
Status: ’Proven Optimal’
Lambda: [1x1 struct]
22/67
Si planteamos el problema otra vez con AMPL, haciendo que las variables de
ì Í· °´¿²¬»¿³±­ »´ °®±¾´»³¿ ±¬®¿ ª»¦ ½±² ßÓÐÔô ¸¿½·»²¼± ¯«» ´¿­ ª¿®·¿¾´»­ ¼»
decisión
deban ser enteras,
¼»½·­·-² ¼»¾¿² ­»® »²¬»®¿­ô
ûý Ù»²»®¿½·-²ò³±¼ õ ò¼¿¬ »² ßÓÐÔ
ª¿® ¨¥ïòòì£ âã ðô ·²¬»¹»®å
°¿®¿³ ¿¥ïòòìô ïòòì£å
°¿®¿³ ¾¥ïòòì£å
°¿®¿³ ½¥ïòòì£å
Ê¿®·¿¾´»­ »²¬»®¿­
³·²·³·¦» ½±­¬»æ ­«³¥¶ ·² ïòòì£ ½Å¶Ãö¨Å¶Ãå
­«¾¶»½¬ ¬± ®»­ï ¨¥· ·² ïòòí£æ ­«³¥¶ ·² ïòòì£ ¿Å·ô¶Ãö¨Å¶Ã â㠾ŷÃå
­«¾¶»½¬ ¬± ®»­îæ
­«³¥¶ ·² ïòòì£ ¿Åìô¶Ãö¨Å¶Ã äã ¾ÅìÃå
­«¾¶»½¬ ¬± ³¿¨ïæ ¨Åïà äã ëðå
­«¾¶»½¬ ¬± ³¿¨îæ ¨Åîà äã ïðå
­«¾¶»½¬ ¬± ³¿¨íæ ¨Åíà äã ëðå
¼¿¬¿å
°¿®¿³
ï
î
í
ì
¾ æã
îð
íð
ïéëð
îëëðð å
°¿®¿³
ï
î
í
ì
½ æã
îìð
çë
ïíðð
ëð
å
°¿®¿³ ¿æ
ï
ï
ðòíí
î
ðòíë
í
îìòéë
ì
îïð
î
ðòï
ðòï
í
èð
í
ðòè
ðòç
êì
ïïðð
ì
ðòðï
ðòðì
ðòî
ìè
æã
å
îìñèë
23/67
24/67
Se obtendría lo siguiente:
>> prob = amplRead(’Generación_1.mod’)
prob =
Name: ’OPTI Problem’
f: [4x1 double]
H: []
Hstr: []
fun: []
sense: 1
objbias: 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) Optimization
min f’x
s.t. rl <= Ax <= ru
lb <= x <= ub
xi = 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 =
50
10
8
108
fval =
28750
exitflag =
1
info =
Nodes: 6
AbsGap: 175
RelGap: 0.0061
Time: 0.0044
Algorithm: ’CBC: Branch and Cut using CLP’
Status: ’Integer Optimal’
+,"*
-./
012
!"#$%&'()$
$#$
) /./3-45467-4/8
25/67
Optimización de flujos en redes_Network flows
Se expresado gráficamente de esta forma.
l9
bcA
@De =
; b
@bGd
@Ci b@kE
b@Hj ?
: b
b@Bf
@bIg
< b
@Fh >
l9
JKLKJMNO
JPQRNSKMQNR
T
T
T
T
T
T
T
T
T
UKVMUMWX 9
RYZ[XJNNP \P]JPQRXS^KNMPQKNQP_XR
JKLKJMNOJPQRNSKMQNRPQN`XKSJR
Se trata de encontrar,
entre
los nudos
1 y 6, el máximo caudal o flujo de gas,
7 8 9
5 6
mercancías, llamadas telefónicas, capital,
3 4 eléctrica,
petróleo, energía
material,
2
1
0
etcétera.
26/67
En términos de optimización,
max.
t
s. a
t D x1 C x2
x1 C x3 D x4
x2 C x5 D x3 C x6
x4 C x8 D x5 C x7
x6 D x8 C x9
t D x7 C x9
0 x1
0 x2
0 x3
0 x4
0 x5
0 x6
0 x7
0 x8
0 x9
+,"*
-./
012
!"#$%&'()$
$#$
) /./3-45467-4/8
l9
bcA
@De =
; b
@bGd
@Ci b@kE
b@Hj ?
: b
b@Bf
@bIg
< b
@Fh >
l9
3
2
1
2
1
3
3
1
1
JKLKJMNO
JPQRNSKMQNR
T
T
T
T
T
T
T
T
subject to t = x1 + x2, x1 + x3 = x4, et cetera
0 ≤ x1 ≤ 3, 0 ≤ x2 ≤ 2, et cetera
27/67
(t = x1 + x2 is equivalent to inequalities t ≤ x1 + x2, t ≥ x1 + x2, . . . )
La solución óptima de este “sencillo” problema es la siguiente
Solution
2
4
2
3
2
4
1
1
2
4
1
3
Linear optimization
6
2
5
18-5
La emisión de deuda pública_Portfolio analysis
28/67
El ayuntamiento de una capital de provincia tiene comprometido invertir en
proyectos de infraestructura en cuatro años 2.000, 4.000, 8.000 y 5.000 millones
de euros, respectivamente. Se supone que todo ese dinero está disponible el 1
de enero del año en que se gasta.
Para financiar estas inversiones el ayuntamiento planea emitir unos bonos a 20
años con un interés del 4 % para la deuda emitida el primer año, del 3 % para la
del segundo año, 3,5 % para la del tercer año y del 3,75 % para la del cuarto
año. Los intereses se empiezan a pagar inmediatamente.
Si algo del dinero obtenido se deposita en cuentas a plazo fijo, se podría obtener
el 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?
29/67
Solución Si designamos por x1; x2; x3 y x4 las cantidades de deuda en miles
de millones de euros que tiene que emitir cada uno de los cuatro años, y por
y1; y2 e y3 las que hay que depositar el segundo, tercer y cuarto año en cuentas
a 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;0375x4
s. a x1
y1
C 1;015y1
x2
x3
x4
D2
y2
D4
C 1;0125y2
y3 D 8
C 1;01y3 D 5
x1; x2; x3; x4; y1; y2; y3 0:
Transporte de mercancías_Transportation and
logistics management
30/67
El sector del transporte y logística es uno de los que más utiliza la PL para
Transporte de mercancı́as
optimizar recursos.
Una empresa dispone de m fábricas capaces de producir mensualmente a1, a2, . . . , am cantidades de una mercancı́a. El producto ha de
ser enviado en cantidades b1, b2, . . . , bn a n almacenes.
Una empresa dispone de m fábricas capaces de producir mensualmente
de enviarde
una
unidad
de producto
la fábrica
i alenviada
almacén a n
a1; a2; : : :Si; aelmcoste
cantidades
una
mercancía
que de
tiene
que ser
j es cij , se trata de determinar las cantidades xij que habrá que
almacenesenviar
en cantidades
b1; b2a; cada
: : : ; balmacén
El elcoste
n , respectivamente.
de cada fábrica
de tal forma que
costede
delenviar una
y sei satisfagan
los jrequerimientos
de envı́os a
unidad de transporte
producto sea
de mı́nimo
la fábrica
al almacén
es cij .
realizar.
Fábrica
Almacén
a1
1
1
b1
a2
2
2
b2
am
m
n
bn
16
Una empresa dispone de m fábricas capaces de producir mensualmente a1, a2, . . . , am cantidades de una mercancı́a. El producto ha de
ser enviado en cantidades b1, b2, . . . , bn a n almacenes.
Hay que determinar las cantidades xij que hay que enviar de cada fábrica a
Si el coste de enviar una unidad de producto de la fábrica i al almacén
cada almacén para satisfacer las demandas
el coste
del transporte
total
determinar
las cantidades
x que habrá que
j es c , se trataydeque
enviar de cada fábrica a cada almacén de tal forma que el coste del
transporte sea mı́nimo y se satisfagan los requerimientos de envı́os a
sea mínimo; es decir,
ij
31/67
ij
realizar.
Fábrica
minimizar
i
sujeta a
j D1
m
i
a1
1
1
b1
a2
2
2
b2
am
m
n
bn
cij xij
ij
n
i
Almacén
16
xij D ai ;
para i D 1; : : : ; m
xij D bj ;
para j D 1; : : : ; n
0;
para i D 1; : : : ; m
j D 1; : : : ; n:
i D1
xij
P
Pn
Además, m
a
D
iD1 i
j D1 bj : la cantidad total producida tiene que ser igual a
la suma de las que llegan a los almacenes.
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
Consideraciones geométricas
Consideremos este problema de Programación Lineal:
min. x1 3x2
s. a x1 C x2 6
x1 C 2x2 8
x1 ; x2 0:
33/67
Hay que determinar aquel punto de
la región factible que minimiza la
variedad 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 la
dirección c D Œ1; 3T , opuesta a su vector característico.
21 5
4 3
6
0
En el punto óptimo, x D Œ4=3; 14=3T ,
5
1
punto extremo o vértice, es
9209
218 94
denominado
imposible, manteniendo la factibilidad,
3 6
90
78 9
346
5
0 20
mover más z D
de c .
x1
3x2 en la dirección
34/67
En el óptimo, hay dos condiciones que están activas, o vigentes: la primera y la
segunda.
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 los
vectores columna de la matriz A T , vectores característicos de las condiciones
activas:
1 1
1
1
5=3
A T D cI ! D
D
:
1 2
3
2=3
Volveremos sobre este y esta combinación lineal recurrentemente.
35/67
Formas de la solución u óptimo
Solución óptima única Ocurre siempre en un punto extremo, o vértice de
la región factible.
Las dos alternativas que pueden presentarse en este caso: región factible
acotada y no acotada.
0
123
54678
9
54678
9
0
13
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.
36/67
Soluciones
óptimas
alternativas
En
este
caso
012345167
89
1
58
27658
elpunto
óptimo
es
cualquiera
de los!!
puntos de una
denominada
faceta,
o
cara,
!4!
"
#
de
$la región factible.
!
(
%
( &$'
&'
%
' factible
"#está
$
mientras
!
)'
En (a) la región
acotada
que
en (b)&
no.
*+
0123451676
1895
71419
!!"# $
!%$ !&'($
Solución óptima
acotada
Este
caso
se
no
!)!
)
*
%presenta
$ cuando la
configuració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 la
dirección c sin encontrar un punto extremo o cara de la región factible que
bloquee dicho desplazamiento.
37/67
1
−x1 + 2x2
x2
2x1 −
x1
x2
s. a
Región factible
≤
≤
≥
≥
2
3
0
3.
38/67
Su región factible es el ∅ pues no hay ningún x = [x1, x2]T que sa
vacía
Por las
ejemplo:
faga todas
condiciones.
min. 2x1 C 3x2
s. a
2
x1 C 2x2 2
2x1
x2 3
x1 0
x2 3:
−x 1 + 2x 2 ≤ 2
2x 1 − x 2 ≤ 3
0
3
0
1
3/2
0
8/3
7/3
x2 ≥ 3
T
Su región factible es el conjunto vacío, ;, pues no hay ningún x D Œx1; x2 que
satisfaga todas las condiciones. El problema se dice no factible o inconsistente.
25
Geometría del problema en Im.A/
39/67
Definición Un conjunto C Rn se dice convexo si y sólo si para todo par de puntos
x 1 ; x 2 2 C todas las combinaciones de la forma x D x 1 C .1
en C .
/x 2 , 0 1 están
Cuando para cada par de puntos del conjunto convexo todos los puntos del
segmento de recta que los une están en el conjunto.
Examples of convex sets
Examples of non-convex sets
• A line segment is a convex set. • The union of two non-overlapping line segm
• Non-convex sets can have “indentations.”
Fig. 4.9. Convex
sets
with
pairs
of
points
joined by line segments.
Title Page
38
of
156
Title Page
Go Back
Full Screen
Close
39
of 156
Quit
Go Back
40/67
La expresión x D x 1 C .1 /x 2, 0 1, define la combinación convexa
de x 1 y x 2.
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úmero
finito de puntos de la siguiente manera:
xD
p
i
i x i ;
iD1
donde
p
i
i D1
i D 1;
i 0;
i D 1; : : : ; p:
41/67
Teorema El conjunto de soluciones de un programa lineal, K D fx 2 Rn W Ax D
b; 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 , para
todo 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 Rmn; ˛ 2 Rn; ˛ 0g es un cono
convexo 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 si
no 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.
Geometría del problema con condiciones de igualdad
42/67
El programa lineal en forma estándar min. c T x; s. a Ax D b; x 0, donde
x 2 Rn y A 2 Rmn, se puede escribir así:
min.
s. a
n
X
j D1
n
X
cj xj
05
04
aj xj D b
j D1
x1; : : : ; xn 0:
03
2
05
01
04
03
01
2
donde aj es el vector columna j de A.
El óptimo será un vector de escalares no negativos de dimensión n que defina
una combinación de los vectores columna de A de tal forma que b pertenezca
al cono convexo generado por estos vectores columna y que minimice la función
objetivo.
43/67
05
04
678
03
2
01
05
04
03
698
01
2
En la figura se representan los casos de un problema con región factible no vacía
y otro con región factible vacía.
En el segundo caso, (b), los vectores a1, a2, a3 y a4 no se pueden combinar
convexamente de ninguna manera que contenga a b.
Ejemplo Consideremos las regiones factibles que determinan las condiciones
2x1 C x2 C x3
D2
x1 C 3x2
C x4 D 3
x1 ; x2 ; x3 ; x4 0
y
2x1 C x2 C x3
D 1
x1 C 3x2
C x4 D 2
x1 ; x2 ; x3 ; x4 0:
En (a) se puede ver que b está contenido en ese cono convexo; en (b) no: el
primer problema es factible; el segundo es inconsistente.
04
3
678
04
698
3
05
05
02
02
01
01
44/67
Geometría con condiciones de desigualdad
Consideremos ahora
min.
s. a
n
X
j D1
n
X
45/67
cj xj
aj xj b
j D1
x1; : : : ; xn 0:
Si existe solución factible, la intersección del cono convexo que generan
a1; : : : ; an y el conjunto de vectores menores o iguales que b será no vacía.
04
01
567
04
02
3
02
01
3
En (a) la región factible es no
vacía; en (b) vacía.
587
46/67
Geometría del óptimo Refiriéndonos al problema en forma estándar, se
buscan unos escalares no negativos x1; x2; : : : ; xn tales que
z
c1
c2
c
D
x1 C
x2 C C n xn
b
a1
a2
an
y se minimice z.
Se busca poder expresar el vector Œz, bT T en el cono convexo que generan los
vectores Œc1; aT1 T ; : : : ; Œcn; aTn T con el valor más pequeño posible del escalar z.
47/67
Ejemplo Sea el problema min. 2x1
s. a
3x2
x1 C 2x2 2
x1; x2 0:
Añadiendo la variable de holgura x3, el problema se puede expresar como el de
encontrar unos escalares x1; x2; x3 0 tales que el vector Œz; 2T esté en el
cono convexo que generan los vectores Œ 2; 1T , Œ 3; 2T y Œ0; 1T , con el valor
más pequeño posible del escalar z.
0 3
789
5
0463
5
013
94
2
0453
2
Hay que hayar
que
z
D
2
los escalares x1 ; x2 ; x3 0 tales
2
3
0
x1 C
x2 C
x
1
2
1 3
y hagan mínimo el z. La solución es z D
con x1 D 2 y x2 D x3 D 0.
4
Ejemplo Sea ahora min. 2x1
s. a
3x2
48/67
x1 C 2x2 2
x1; x2 0:
Si se sustrae de la primera condición la variable de holgura x3, el problema es el
de encontrar unos escalares x1; x2; x3 0 tales que se cumpla que
z
2
3
0
D
x
C
x
C
x3
1
2
2
1
2
1
y se minimice z.
03
7890
3 5
46
5
0453
2
013
-2
En el cono que generan los vectores Œ 2, 1T , Œ 3, 2T
y Œ0, 1T se pueden encontrar puntos de la forma Œz,
2T , con z tan pequeña como queramos: el valor óptimo
de la función objetivo tiende, por consiguiente, a 1. El
problema no está acotado.
Politopos
Definición ˚ Llamaremos hiperplano
H de vector característico a 2 Rn ; a ¤ 0, al
conjunto H D x 2 Rn W aT x 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 , aT x D c, llamaremos semiespacios cerrados de
borde H a los conjuntos
˚
HC D ˚x 2 Rn W aT x c H D x 2 Rn W a T x c
y semiespacios abiertos de borde H a
˚
ı
H C D x 2 Rn W a T x > c
˚
ı
H D x 2 Rn W a T x < c :
49/67
50/67
El hiperplano x1 C 4x2 D 11, su vector característico a D Œ 1; 4T y los
semiespacios HC y H se ven así:
a
H+
y
x̄
a
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 espacio
Rn .
51/67
Definición Un politopo es un conjunto formado por la intersección de un número finito
de semiespacios cerrados.
Definición Un politopo cónico es un conjunto formado por la intersección de un número
finito de semiespacios cerrados que pasan por un punto.
Definición Un poliedro es un politopo acotado y no vacío.
Imágenes de poliedros.
También aquí.
52/67
53/67
Es fácil comprobar que la intersección de conjuntos convexos es convexa y que
por lo tanto los politopos y los poliedros son conjuntos convexos.
Si un politopo P es un poliedro, cualquier punto se puede expresar como
combinació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.
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
55/67
Puntos extremos y soluciones básicas
factibles
Consideraremos en los sucesivo las condiciones del programa lineal en forma
estándar,
Ax D b
x 0;
donde x 2 Rn, b 2 Rm y A 2 Rmn; n > m .
Si Ax D b es compatible, rango.A/ D m:
De las n columnas de A se pueden elegir m linealmente independientes que
formen una base del subespacio Im.A/.
2
432
Si esas m columnas son las primeras y forman la submatriz B de A, ésta queda
2 1 ÿ 5
Como B es regular, la ecuación BxB D b se puede resolver de forma única.
El vector x T D ŒxBT ; 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 m
columnas linealmente independientes de A.
Si todos los n m coeficientes del vector x no asociados a las columnas de B, a los que
se denominarán variables no básicas, se hacen cero y se resuelve la ecuación Ax D b
en los m restantes coeficientes, denominados variables básicas, la solución resultante
de 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 matriz
m .n m/ denominada matriz no básica N (asociada a las variables no básicas); en
correspondencia, las variables no básicas forman x N .
56/67
57/67
Ejemplo Consideremos el poliedro de la figura,
57
023
4
043
4
013
2
56
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:
x1 C x2 C x3
D6
x2
C x4 D 3
x1; x2; x3; x4 0:
1110
La matriz de los coeficientes es A D Œa1; a2; a3; a4 D
. Las posibles
0101
matrices B que se pueden extraer de A y sus correspondientes soluciones
básicas son las de la tabla.
" #
"
#" # " #
58/67
"
#
11
B D Œa1 ; a2  D
01
"
#
10
B D Œa1 ; a4  D
01
"
#
11
B D Œa2 ; a3  D
10
"
#
10
B D Œa2 ; a4  D
11
"
#
10
B D Œa3 ; a4  D
01
x1
1 1 6
3
D B 1b D
D
x2
0 1 3
3
" # " #
x
0
xN D 3 D
x
0
" 4#
" #" # " #
x1
1 0 6
6
1
xB D
DB bD
D
x4
0 1 3
3
" # " #
0
x
xN D 2 D
x
0
" 3#
"
#" # " #
x2
0 1 6
3
1
xB D
DB bD
D
1 1 3
3
x3
" # " #
0
x
xN D 1 D
x
0
" 4#
"
#" # " #
x2
1 0 6
6
1
xB D
DB bD
D
x4
1 1 3
3
" # " #
x
0
xN D 1 D
x
0
" 3#
" #" # " #
x3
1 0 6
6
1
xB D
DB bD
D
x4
0 1 3
3
" # " #
x
0
xN D 1 D
x2
0
xB D
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
2 3
2 3
2 3
3
6
0
637
607
637
x 1 D 405 ; x 2 D 405 ; x 3 D 435
0
3
0
2 3
0
607
y x 4 D 465 :
3
Obsérvese que estos puntos determinan en sus dos primeros coeficientes los
57
puntos extremos de la figura anterior.
0 3
0 3
2
4
4
4
0 13
2
56
60/67
Definición Si una o más de las variables básicas de una solución básica de
Ax D b
x 0;
es cero, la solución se denomina básica degenerada. Una solución básica en la que todos
sus coeficientes son no negativos se denomina solución básica factible; si algún coeficiente
es 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 0g
se 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 correspondiente
punto extremo) tiene exactamente n m adyacentes.
Teorema Equivalencia entre puntos extremos y soluciones básicas Sean A 2 Rmn una
m
n
matriz de rango m, b 2 R y el politopo convexo P D fx 2 R 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 A
asociados 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 es
una solución básica factible de
Ax D b
x 0:
Corolario Un x es un punto extremo de P D fx 2 Rn W Ax D b; x 0g si y sólo si
resulta 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 de
puntos extremos.
I D EMOSTRACIÓN . Escoger m columnas linealmente
independientes de n de A es
nŠ
n
C.n; m/ D
D
:
m
mŠ.n m/Š
61/67
62/67
Ejemplo Consideremos el programa lineal que sigue.
57
x1 C x2 6
x2 3
x1 C 2x2 9
x1; x2 0:
023
4
043
4
013
2
56
Si añadimos las variables de holgura x3, x4 y x5 a la primera, segunda y tercera
desigualdad, respectivamente, resulta
x1 C x2 C x3
D6
x2
C x4
D3
x1 C 2x2
C x5 D 9 I
x1 ; x2 ; x3 ; x4 ; x5 0:
3
11100
A D Œa1 ; a2 ; a3 ; a4 ; a5  D 4 0 1 0 1 05
12001
Obsérvese que la desigualdad x1 C 2x2 9 es redundante.
2
Estudiemos la solución básica que se obtiene a partir de B D Œa1; a2; a3:
2
3
2 3
111
x1
xB D 4x2 5 D B 1 b D 40 1 05
x3
120
0
x
:
xN D 4 D
x5
0
12
3
2
32 3 2 3
6
0 2 1
6
3
435 D 40 1 05 435 D 435 ;
9
1 1 1
9
0
Es degenerada, pues su tercer coeficiente es cero.
Analicemos ahora la solución básica considerando B D Œa1; a2; a4:
2 3
2
3
x1
110
xB D 4x2 5 D B 1 b D 40 1 15
x4
120
x
0
xN D 3 D
:
x5
0
12
3 2
32 3 2 3
6
20 1
6
3
435 D 4 1 0 15 435 D 435 ;
9
11 1
9
0
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ón
básica degenerada:
Œx1 x2 x3 x4 x5T D Œ3 3 0 0 0T :
63/67
64/67
La correspondencia entre soluciones básicas factibles y puntos extremos no es en
general biunívoca: A cada solución básica factible le corresponde un único punto
extremo en P , pero puede que a cada punto extremo de P le corresponda más
de una solución básica factible.
Cuando A no tiene rango completo, P puede ser el conjunto vacío o alguna de
las condiciones es redundante. En lo sucesivo supondremos que A 2 Rmn tiene
m vectores fila/columna linealmente independientes.
Un problema de programación lineal se denomina no degenerado si todas sus
soluciones básicas factibles son no degeneradas.
La correspondencia en este caso entre puntos extremos y soluciones básicas
factibles sí es biunívoca.
65/67
Si el politopo P no está acotado, para caracterizar del todo las soluciones del
problema 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 vector
no nulo d 2 Rn tal que para todo x 0 2 P el rayo fx 2 Rn W x D x 0 C d; 0g
pertenece 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 cualquier
punto a lo largo de esa dirección cumple las condiciones y mejora la función
objetivo sin límite.
66/67
Teorema Teorema de la representación Todo punto del politopo P D fx 2 Rn W
Ax D b; x 0g de soluciones de un PL se puede expresar de la forma
X
i vi C d;
xD
i 2I
donde fvi W i 2 I g es el conjunto de puntos extremos de P ,
es una dirección de P , o d D 0.
P
i2I
i D 1, i 0, y d, o
Corolario Si el politopo P D fx 2 Rn W Ax D b; x 0g es cerrado y acotado (es un
poliedro), todo punto x 2 P se puede expresar como combinación convexa de sus puntos
extremos.
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, tiene
al 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 soluciones
de un PL, el valor mínimo de la función objetivo c T x en ese P se alcanza en un punto
extremo (solución básica factible óptima), o c T x no está acotada inferiormente.
De estos teoremas se deduce que, cuando hay varias soluciones óptimas, al
menos 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 .
Descargar