Академический Документы
Профессиональный Документы
Культура Документы
g
p
1
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Resolucindeproblemasdeprogramacinlineal
En este tema abordamos la forma de resolver problemas de programacin lineal continua. El objetivo fundamental es entender la
naturaleza del problema y el perfil computacional a que dan lugar estos mtodos. Desde un punto de vista prctico los
procedimientos manuales de resolucin no tienen mucho inters porque hoy da existen abundantes herramientas informticas que
implementan de manera muy eficiente estos procedimientos y, como estudiamos en el tema anterior, permiten utilizarlos desde
potentes lenguajes
l
j de
d modelado.
d l d
Aunque el tema se centra fundamentalmente en el algoritmo del Simplex, propuesto por Dantzig en 1947, comenzaremos
introduciendo el mtodo de resolucin grfico, que resulta muy intuitivo para entender la correspondencia entre la versin
puramente algebraica de estos problemas y su representacin geomtrica.
A continuacin estudiaremos una serie de transformaciones que nos van a permitir llevar los problemas de programacin lineal a
una forma estndar, que es el punto de partida del algoritmo del Simplex.
Despus estudiaremos el concepto de solucin bsica factible, que juega un papel fundamental en la resolucin de los problemas de
programacin lineal,
lineal ya que una solucin ptima ser siempre una solucin bsica factible y adems porque el nmero de soluciones
bsicas factibles de un problema lineal continuo es finito, lo que acota considerablemente el procedimiento de bsqueda de la
solucin.
Antes de abordar de manera precisa el mtodo del Simplex utilizaremos un ejemplo para introducir de manera ms intuitiva los
conceptos fundamentales que operan en este algoritmo.
algoritmo
A continuacin estudiaremos los fundamentos tericos del mtodo y los criterios de operacin que resumiremos en una versin
algebraica del algoritmo del Simplex. Despus lo aplicaremos a un ejemplo.
Despus veremos la versin tabular de este algoritmo que simplifica su utilizacin manual y la aplicaremos al mismo ejemplo.
Finalmente introduciremos los mtodos que se utilizan para obtener una solucin bsica factible inicial para el mtodo del Simplex
cuando hay que introducir variables artificiales en el problema original para llevarlo a su forma estndar.
2
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Resolucingrfica
La resolucin grfica de los problemas de programacin lineal no es muy prctica porque slo se puede aplicar cuando el nmero de variables
es de 2 o 3. Sin embargo es bastante til para interpretar visualmente los conceptos y procedimientos utilizados posteriormente. Para
resolver grficamente un problema de programacin lineal seguimos los siguientes pasos:
1) Dibujamoslareginfactibleutilizandolasecuacionesdelasrectasqueresultandeconvertirlasrestriccionesenigualdades.
2) Determinamoslospuntosextremosdelareginfactible:puntosdeinterseccinentrelasrectasyquepertenecenalareginfactible.
3)) Evaluamoslafuncinobjetivoenlospuntosextremosydeterminamoseldevalorptimo
l
l f i bj i
l
d
i
ld
l i
Vamosaresolvergrficamenteelsiguienteproblema:
Maximizar z 3x 2 y
sujetoa : 2 x y 18
2 x 3 y 42
3 x y 24
x 0, y 0
dvar float+ x;
dvar float+ y;
maximize 3*x+2*y;
subject to
{
2*x + y <= 18;
2*x + 3*y
y <= 42;
;
3*x + y <= 24;
}
2 x y 18
3 x y 24
//solution(optimal)withobjective33
x=3;
y=12;
(0,14);z=28
(3,12);z=33
La interseccin de la recta de isocoste (en
verde) con la regin factible determina las
soluciones factibles de igual coste. Moviendo
esta recta de forma paralela en el sentido
creciente de z, se puede determinar tambin la
solucin al problema: ltima interseccin de la
recta con los puntos extremos.
OPL
3x 2 y 33
(6,6);z=30
2 x 3 y 42
x
(0,0);z=0
(8,0);z=24
3
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
x j xj xj con xj 0,
0 xj 0
4
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
5
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Maximizar z c1 x1 c2 x2 ... cn xn
sujeta a :
a11 x1 a12 x2 ... a1n xn b1
a21 x1 a22 x2 ... a2 n xn b2
...
am1 x1 am 2 x2 ... amn xn b1
x1 0, x2 0,..., xn 0
Maximizar z c1 x1 c2 x2 ... cn xn
sujeta a :
a11 x1 a12 x2 ... a1n xn b1
a21 x1 a22 x2 ... a2 n xn b2
...
am1 x1 am 2 x2 ... amn xn bm
x1 0, x2 0,..., xn 0
En forma matricial la forma estndar de un problema de programacin lineal adoptara la forma general:
Maximizar z cT x
sujeto a
Ax b
x0
a1 j
a j ... ; A a1...a j ...an
amj
Es evidente q
que aunque
q hayamos
y
utilizado la misma notacin p
para la matriz A y los vectores b,, c y x en las dos formas cannica y
estndar, cuando un mismo problema se lleva a ambas formas se obtienen en general matrices y vectores diferentes.
6
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Maximizar z 3 x 2 y
j
sujetoa
:
2 x y 18
2 x 3 y 42
3 x y 24
x 0, y 0
Para ello introducimos las tres variables de holgura h, s, d 0 que convierten las desigualdades en igualdades:
Maximizar z 3x 2 y
sujetoa : 2 x y h 18
2 x 3 y s 42
3 x y d 24
x, y, h, s, d 0
En forma matricial sera:
x
y
Maximizar 3 2 0 0 0 h
s
d
sujeto a :
x
2 1 1 0 0 y 18
2 3 0 1 0 h = 42
3 1 0 0 1 s 24
d
7
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Maximizar z c T x
sujeto a
Ax b
x0
a1 j
a j ... ; A a1...a j ...an
amj
xB
A B N ; x
xN
xB
Ax b se puede escribir como: B N b
xN
o bien : Bx B Nx N b
x
zB cB c N B cB x B
0
8
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Correspondencia:puntosextremos<>solucionesbsicasfactibles
Lassolucionesbsicasfactiblesdeunproblemalinealestndarsecorrespondenconlospuntosextremosdelareginfactible:
xB4
1
x B1 B1 b 0
x B2 B2 1b 0
........................
x B2
x Bi
x Bi Bi 1b 0
x B1
.........................
x Bp B p 1b 0
Bi son p bases factibles
xBp
Paraentendermsintuitivamenteestacorrespondenciaconsideremoselproblemaanterior:
Maximizar z 3x 2 y
sujeto a : 2 x y h 18
2 x 3 y s 42
3 x y d 24
x 0, y 0
Puntos extremos
A
Variables nulas
x, y
Variables no nulas
s, h, d
x, s
y, h,
h d
s, d
x, y, h
d, h
x, y, s
y, h
x, s, d
x B3
3x y 24
y
2 x y 18
B
s=0
2 x 3 y 42
CadapuntodelareginfactibleABCDEvieneidentificadoporunatupla devaloresparax,y,h,s,d
Losvaloresdelasvariablesx ey danlascoordenadasdelpuntoenelplano(x,y)
d=0
x=00
Lospuntossituadossobrelasaristasdelpolgonoqueformalareginfactibletienenuna
componentenula.
Lospuntosextremosdelpolgono(vrtices)queestnsobredosrestricciones(interseccinde
dos rectas) tendrn dos variables nulas y por tanto sern soluciones bsicas factibles
dosrectas)tendrndosvariablesnulasyportantosernsolucionesbsicasfactibles.
h=0
y=0
x
A
E
9
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplodecorrespondencia:puntosextremos<>solucionesbsicasfactibles
Max z=x1 x2 x3
1 0 0 1 0 0
A 0 1 0 0 1 0 ;
0 0 1 0 0 1
x T [ x1 x2 x3 s1 s2 s3 ];
Max z=x1 x2 x3
s.a.
x1 5
Formaestndar
s.a.
x1
x2 5
x2
x3 5
s2
x3
x1 , x2 , x3 0
s1
n
6!
n!
N mximo de soluciones bsicas
20
m
m !(n m)! 3!3!
slo 8 tienen inversa y son factibles :
cT [1 1 1 0 0 0];
s3 5
bT [5 5 5];
base ( x1 x2 x3 )
1 0 0 5 5
x B B b = 0 1 0 5 5
0 0 1 5 5
1
x2
Puntosextremos
Solucionesbsicasfactibles
bsicas
no bsicas ( x1* x2* x3* )
( x1 x2 x3 ) ( s1 s2 s3 ) (5 5 5)
(0,5,5)
(5 5 5)
(5,5,5)
(5,5,0)
(0,5,0)
x3
(5,0,5)
(0,0,5)
((0,0,0))
((5,0,0))
x1
( x1
x2
s3 ) ( s1
s2
x3 ) (5 5 0)
( x1
s2
x3 ) ( s1
x2
s3 ) (5 0 5)
( x1
s2
s3 ) ( s1
x2
x3 ) (5 0 0)
( s1
x2
x3 ) ( x1
s2
s3 ) (0 5 5)
( s1
x2
s3 ) ( x1
s2
x3 ) (0 5 0)
( s1
s2
x3 ) ( x1
x2
s3 ) (0 0 5)
( s1
s2
s3 ) ( x1
x2
x3 ) (0 0 0)
10
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Bsquedaexhaustivadesolucionesbsicas
El teorema fundamental de la programacin lineal asegura que si un problema de programacin lineal tiene solucin ptima finita, entonces
necesariamente existe un punto extremo de la regin factible en el que alcanza dicha solucin ptima. Por tanto este resultado resuelve
tericamente el problema de la programacin lineal, puesto que la solucin se puede encontrar examinando el valor de la funcin objetivo en
un nmero finito de puntos.
Vamos a utilizar este resultado para obtener el punto extremo ptimo del anterior problema de programacin lineal:
Maximizar z 3 x 2 y 0h 0 s 0d
sujeto a : 2 x y h
= 18
2 x 3 y s = 42
3x y
d = 24
x, y, h, s, d 0
x
y
Maximizar 3 2 0 0 0 h
s
d
sujeto a :
x
2 1 1 0 0 y 18
2 3 0 1 0 h = 42
3 1 0 0 1 s 24
d
Lamatrizdeesteproblemaadmite10submatricescuadradasde3X3candidatasapuntosextremosdelareginfactible:
(x y h
d)
2 1 1 0 0
A = 2 3 0 1 0
3 1 0 0 1
n
n!
5! 5 4 3 2
10
3 2 2
m m !(n m)! 3!2!
Estassubmatricessonlassiguientes:
2 1 1 2 1 0 2 1 0 2 1 0 2 1 0 2 0 0 1 1 0 1 1 0 1 0 0 1 0 0
2 3 0 ; 2 3 1 ; 2 3 0 ; 2 0 1 ; 2 0 0 ; 2 1 0 ; 3 0 1 ; 3 0 0 ; 3 1 0 ; 0 1 0
3 1 0 3 0 0 3 0 1 3 0 0 3 0 1 3 0 1 1 0 0 1 0 1 1 0 1 0 0 1
11
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Enumeracindelassolucionesbsicasfactibles
1
Vamosacalcularcadaunadelassolucionesbsicasfactiblesyelvalorcorrespondientedelafuncinobjetivo: xB B bB ;
z B cBT xB
-0.14 0.43
2 1 1
0
x 4.29
1
B 2 3 0 ; B 0
0.43 -0.29 ; xB y 11.14
3 1 0
0.33 -0.05
h -0.57
0.05 -0.19
0.19
0.57
no factible porque h es negativa
2 0 0
0.5 0 0
B 2 1 0 ; B 1 1 1 0 ;
3 0 1
1.5 0 1
no factible porque d es negativo
x 9
xB s 24
d 3
2 1 0
1 0 1
1
B 2 3 1 ; B 3 0 -2 ;
3 1 0
-7
7 1 4
factible: z B 30, x = 6, y = 6
1 1 0
0 0 1
1
B 3 0 1 ; B 1 0 1 ;
1 0 0
0 1 3
no factible porque h y s son negativos
y 24
xB h 6
s 30
x 6
xB y 6
s 12
2 1 0
0.75 0.25 0
1
B 2 3 0 ; B 0.5
0.5 0 ;
3 1 1
1.75 0.25 1
factible: z B = 33, x = 3, y = 12
x 3
xB y 12
d 3
1 1 0
0 0.333 0
y 14
1
B 3 0 0 ; B 1 0.333 0 ; xB h 4
1 0 1
0 0.333 1
d 10
factible: z B = 28, x = 0, y = 14
2 1 0
0 0 0.33
1
B 2 0 1 ; B 1 0 0.67
0 67 ;
3 0 0
0 1 0.67
factible: z B 24, x = 8, y = 0
x 8
xB h 2
s 26
1 0 0
1 0 0
1
B 3 1 0 ; B 3 1 0 ;
1 0 1
1 0 1
no factible porque s es negativo
y 18
xB s 12
d 6
2 1 0
0 0.5 0
1
B 2 0 0 ; B 1 1 0 ;
3 0 1
0 1.5 1
no factible porque h y d son negativos
x 21
xB h 24
d 39
1 0 0
1 0 0
1
B 0 1 0 ; B 0 1 0 ;
0 0 1
0 0 1
factible: z B 0, x = 0, y = 0
h 18
xB s 42
d 24
Slo5sonbsicasfactibles,ylaqueproducevalormximoalafuncindecostees: z B = 33, x = 3, y = 12
12
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Iteracionesdelmtodosimplex
Solucinbsicafactibleinicial
Es evidente que cuanto mejor sea la solucin bsica de partida ms eficiente resultar el mtodo, llegndose antes a la solucin ptima.
13
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Introduccinalmtododelsimplex
Vamosaintroducirelmtododelsimplexdeunamaneraintuitivautilizandoelejemploanteriorenformaestndar:
Maximizar z = 3x + 2y
sujeto a : 2x + y + h
= 18
2x+ 3y + s = 42
3x + y +
d = 24
Expresinmatricial:
Maximizar z cT x
sujeto a
Ax b
x0
x, y, h, s, d 0
cT 3 2 0 0 0
2 1 1 0 0
xT x y h s d A = 2 3 0 1 0
3 1 0 0 1
bT [18 42 24]
Partiremosdeunabaseinicialeiremospasandoensucesivasiteracionesporbasesdemejorcostehastaalcanzarelptimo
0)Eleccindeunabaseinicial
El algoritmo del simplex parte de una solucin bsica factible inicial correspondiente a un punto extremo de la regin factible. En nuestro caso, y
aprovechando las variables de holgura introducidas, resulta fcil obtener una solucin bsica haciendo x=0 e y=0 y resolviendo el sistema
resultante en h, s y d :
x = 0
y = 0
h = 18
s = 42
d = 24
z = 0
1 0 0
que corresponde a la base: B1 0 1 0
0 0 1
Podemosreescribirelsistemadeecuacionesdespejandolasvariablesbsicas:
2 1 1 0 0
de A = 2 3 0 1 0
3 1 0 0 1
h = 18 2x y
s = 42 2x 3y
d = 24 3x y
z = 0 + 3x + 2yy
(0,0);z=0
14
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
1)Primeraiteracin
Introducir x en la base significa que aumentamos su valor de cero a un valor positivo. Es evidente que cuanto mayor sea este valor mayor
aportacin har x a z.
z Sin embargo,
embargo el valor de x no debe salir de la regin factible,
factible lo que significa que debe respetar las restricciones,
restricciones incluidas
las de no negatividad. Puesto que y va a seguir fuera de la base seguir valiendo y =0 y tendremos:
h = 18 2x
s = 42 2x
d = 24 3x
h0
s0
d 0
0 h = 18 2x
0 s = 42 2x
0 d = 24 3x
18
x
2
42
x
2
24
x
3
d eslavariablequedeterminaelmximovalorque
puedeaportarx alafuncinobjetivo,8
18 42 24
x Min , , Min 9,21,8 8
2 2 3
Cuandodejalabase.Portantohemossacadoad
delabaseyhemosintroducidoax.Losnuevosvaloresdelas
x 8 d 0 d
variablessern:
y
h = 18 - 2 8 = 2
s = 42 - 2 8 = 26
d = 24 - 3 8 = 0
z = 3x + 2y = 3 8 = 24
Despejemosenelsistemalasvariablesbsicas:
h = 18 2x y
s = 42 2x 3y
d = 24 3x y
z = 0 + 3x + 2y
x= 8
y=0
h= 2
s = 26
d =0
(0,0);z=0
z = 24
h = 18 - 2 1 (24 - y - d) - y
3
s = 42 - 22 1 (24 - y - d) - 3y
3
x = 1 (24 - y - d)
3
z = (24 - y - d) + 2y
(8,0);z=24
x
h = 2 - 1 y + 2 d
3
3
s = 26 - 7 y + 2 d
3
3
x = 8 - 1 y - 1 d
3
3
z = 24 + y - d
15
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
2)Segundaiteracin
Introduciry enlabasesignificaqueaumentamossuvalordeceroaunvalorpositivo.Esevidentequecuantomayorseaestevalormayor
aportacin har y a z.Sinembargo,elvalorde
aportacinhar
z Sin embargo el valor de y nodebesalirdelareginfactible,loquesignificaquedeberespetarlasrestricciones,incluidas
no debe salir de la regin factible lo que significa que debe respetar las restricciones incluidas
lasdenonegatividad.Puestoque d vaaseguirfueradelabaseseguirvaliendod =0 ytendremos:
h= 2 - 1 y
3
s = 26 - 7 y
3
x= 8- 1 y
3
h0
s0
x0
0 h= 2 - 1 y
3
0 s = 26 - 7 3 y
0 x= 8- 1 y
3
y6
y 11,4
y 24
y Min 6,11,4,24 6
Cuandodejalabase.Portantohemossacadoah
C
d y 6 h0h d j l b
P t t h
d h delabaseyhemosintroducidoay.Losnuevosvaloresdelas
d l b
h
i t d id
L
l
d l
y
variablessern:
h = 2 - 1 6 = 0
3
s = 26 - 7 6 = 12
3
x = 8 - 1 6 = 6
3
z = 3x + 2y = 36 + 26 = 30
x=6
y=6
h= 0
(6,6);z=30
s = 12
d =0
(0,0);z=0
z = 30
(8,0);z=24
x
Despejemosenelsistemalasvariablesbsicas:
h = 2 - 1 y + 2 d
3
3
s = 26 - 7 y + 2 d
3
3
x = 8 - 1 y - 1 d
3
3
z = 24 + y - d
y = 6 - 3h+ 2d
s = 12+7h - 4d
x = 6 + h - d
z = 30 - 3h+ d
16
3)Terceraiteracin
Introducird enlabasesignificaqueaumentamossuvalordeceroaunvalorpositivo.Esevidentequecuantomayorseaestevalormayor
aportacinhar
aportacin
har d a z.Sinembargo,elvalorde
z Sin embargo el valor de d nodebesalirdelareginfactible,loquesignificaquedeberespetarlasrestricciones,incluidas
no debe salir de la regin factible lo que significa que debe respetar las restricciones incluidas
lasdenonegatividad.Puestoque h vaaseguirfueradelabaseseguirvaliendoh =0 ytendremos:
y = 6 + 2d
s = 12 - 4d
x=6 -d
y0
s0
x0
0 y = 6 + 2d
0 s = 12 - 4d
0 x=6 -d
d 3
d 3
d 6
d Min
Mi 3,6
3 6 = 3
Cuandodejalabase.Portantohemossacadoas
C
d d 3 s 0 s d j l b
P t t h
d
d l b
delabaseyhemosintroducidoad.Losnuevosvaloresdelas
h
i t d id d L
l
d l
variablessern:
x= 3
y = 6 + 2 3 = 12
s = 12 - 12 = 0
x= 6 -3= 3
y = 12
h= 0
z = 3x + 2y = 3 3+ 212 = 33
(3,12);z=33
s=0
d =0
(6,6);z=30
z = 33
Despejemosenelsistemalasvariablesbsicas:
y = 6 - 3h+ 2d
s = 12+7h - 4d
x = 6 + h - d
z = 30 - 3h+ d
(0,0);z=0
(8,0);z=24
x
y =
d = 3+ 7 4 h - 1 4 s
x =
z = 33 - 5 h - 1 s
4
4
Yanoesposiblemejorarz puestoqueloscoeficientesdelasvariablesnobsicassontodosnegativos.Luegohemosalcanzadoelptimo
17
Fundamentosdelmtododelsimplex
Maximizar z cT x
sujeto a
A b
Ax
x0
a1 j
a11 ... a1n
x1
b1
c1
(1)
Expresindelsistemaderestriccionesconrespecto
alasvariablesnobsicas(sistemaexplcito)
x B B 1 Nx N B 1b
llamando Y =B 1 N tenemos: x B Yx N B 1b = x B
y multiplicando por cB la ecuacion anterior tenemos c B x B cBYx N cB x B
restando z = c B x B c N x N de la ecuacin anterior
Apartirdelsistemaexplicitose
extraenlasconclusionestericas
necesariasparaencontrarlos
criteriosdelalgoritmodelsimplex
c N x N cBYx N z cB x B z z
( c N cBY ) x N z z z z ( c N cBY ) x N
Expresindelafuncinobjetivoconrespectoalas
variablesnobsicas(sistemaexplcito)
18
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Criteriosdelmtododelsimplex
Criteriodeptimo
LacondicinnecesariaysuficienteparaqueunasolucinbsicafactibleasociadaaunabaseB seaptimaes:
j J ( z j c j ) 0
Criteriodeentrada
xl
Mnimo s ; ysk 0 | s I
ylk
ysk
Criteriodenoacotacin
k J | ( z j c j ) 0 con yk 0
19
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
MtododelSimplexalgebraico
Supondremosquesetratadeunproblemaqueseencuentraensuformaestndar.Encasocontrarioseintroducenlasvariables
p
necesariasparallevarloalaformaestndar.
Maximizar z cT x
Ax b
sujeto a
x0
a1 j
a j ... ; A a1...a j ...an
amj
1)ElprocesocomienzaapartirdeunabasefactibleconocidadeA.Sea:
y j B 1a j ; j J
z j cTB y j
(z j c j )
3))
Si j J : ( z j c j ) 0 entonces definimos J1 j J | ( z j c j ) 0
Si j J1 | y j 0 solucin no acotada FIN
Si j J1 | y j > 0 entonces calculamos k y l
x
x
Clculo de l : criterio de salida : Min s ; ysk 0; s I l
ysk
ylk
Calculamos la nueva base B sustituyendo la columna l por la columna k
Se repite el proceso con la nueva base B
20
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplo
Maximizar z = 3x + 2y
sujeto a : 2x
2 + y 18
2x + 3y 42
3x + y 24
x 0, y 0
fforma
estndar
x
y
M i i
Maximizar
3 2 0 0 0 h
s
d
dvar float+ x;
dvar float+ y;
maximize 3*x+2*y;
subject to
{
2*x + y <= 18;
2*x + 3*y <= 42;
3*x + y <= 24;
}
Maximizar z = 3x + 2y
sujeto a : 2x
2 + y+h
= 18
2x + 3y + s = 42
3x + y +
d = 24
x 0, y 0
x
2 1 1 0 0 y 18
sujeto
j t a : 2 3 0 1 0 h 42
3 1 0 0 1 s 24
d
(x y h s d)
OPL
2 1 1 0 0
A 2 3 0 1 0
3 1 0 0 1
cT 3 2 0 0 0
xT x
//solution(optimal)withobjective33
x=3;
y=12;
y h s d
bT [18 42 24]
dvar float+ x;
dvar float+ y;
OPL
dvar float+ h;
dvar float+ s;
dvar float+ d;
maximize 3*x+2*y;
subject to
{
2*x +
y + h
== 18;
2*x + 3*y +
s
== 42;
3*x +
y +
d == 24;
//solution(optimal)withobjective33
x=3;
y=12;
h=0;
s=0;
0
d=3;
21
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplo:simplexalgebraico
Unavezllevadoelproblemaalaformaestndaresevidentequelostresvectorescolumnade A correspondientesalasvariablesde
holguraconstituyenunabasefactiblequeutilizaremoscomopuntodepartidadelmtododelsimplex:
holgura
constituyen una base factible que utilizaremos como punto de partida del mtodo del simplex:
1)
(h s d)
1 0 0
1 0 0 h
1 0 0 18 18
1
1
B1 0 1 0 ; B1 0 1 0 ; s B1 b 0 1 0 42 42
0 0 1
0 0 1 d
0 0 1 24 24
2)
1 0 0 2 2
1 0 0 1 1
y x B11 x 0 1 0 2 2 ; y y B11 y 0 1 0 3 3
0 0 1 3 3
0 0 1 1 1
2
1
z x cB1 y x 0 0 0 2 0; z y cB1 y y 0 0 0 3 0
3
1
z x cx 3; z y c y 2;
3)
Max | z x cx |,|
| | z y c y | 33, 2 3 x entra en la base
h s d 18 42 24
Min ,
,
, , 9, 21,8 8 d deja la base
yx1 y x 2 y x 3 2 2 3
(0,0);z=0
x
22
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplo:simplexalgebraico
Repetimoselprocesoconlanuevabase
p
p
B2:
1)
(h s
x)
1 0 2
1 0 0, 6667 h
1 0 0, 6667 18 2
1
1
B2 0 1 2 ; B2 0 1 0
0, 6667 ; s B2 b 0 1 0,
0 6667 42 26
0 0 3
0 0 0,3333 x
0 0 0,3333 24 8
2)
y y B2
0 333
0 6667 0 00, 6667
1 0 00, 6667 1 0,333
1 0 0,
1
y 0 1 0, 6667 3 2,333 ; yd B2 d 0 1 0, 6667 0 0, 6667 ;
0 0 0,3333 1 0,333
0 0 0,3333 1 0,3333
0, 6667
0,333
(0,0);z=0
(8,0);z=24
23
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplo:simplexalgebraico
RepetimoselprocesoconlanuevabaseB3:
1)
( y s x)
1 0 2
3 0 2 y
3 0 2 18 6
1
1
B3 3 1 2 ; B3 5 1 4 ; s B3 b 7 1 4 42 12
1 0 3
2 0 1 x
1 0 1 24 6
2)
3 0 2 1 3
3 0 2 0 2
1
yh B s 5 1 4 0 7 ; yd B3 d 5 1 4 0 4
1 0 1 1 1
1 0 1 0 1
1
3
3
2
zh cB3 yh 2 0 3 7 3; zd cB3 yd 2 0 3 4 1
1
1
zh ch 3; zd cd 1;
3)
(6,6);z=30
12 6
Min , Min3,, 6 3 s deja
j la base
4 1
(0 0); z 0
(0,0);z=0
(8 0); z 24
(8,0);z=24
24
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplo:simplexalgebraico
Repetimoselprocesoconlanuevabase
p
p
B4:
1)
( y d x)
1 0 2
0,5 0,5 0 y
0,5 0,5 0 18 12
1
1
B4 3 0 2 ; B4 1,75 0,25 1 ; d B4 b 1,75 0,25 1 42 3
1 1 3
0,75 0,25 0 x
0,75 0,25 0 24 3
2)
1
yh B4 h 1,75 0,25 1 0 1,75 ; ys B4 s 1,75 0,25 1 1 0,25
0,75 0,25 0 0 0,75
0,75 0,25 0 0 0,25
1
3)
0,5
0,5
((3,12);z=33
, );
No es posible mejorar
y
12
z cB3 d 2 0 3 3 33
x
3
(6,6);z=30
(0,0);z=0
(8,0);z=24
25
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Simplextabular
Esta versin del Simplex permite situar la informacin del problema inicial y las distintas iteraciones en forma tabular, que resulta ms
cmodo si el problema se resuelve de forma manual.
manual En el siguiente esquema especificamos la forma de construir la tabla inicial del
mtodo que corresponde a la solucin bsica factible de partida
Coeficientesdelasvariables
bsicasenlafuncinobjetivo
Valoresdetodosloscoeficientesdelafuncinobjetivo
Nombres de todas las variables del problema
Nombresdetodaslasvariablesdelproblema
cB
cB1
.
.
.
cBm
c1
variables bsicas
x1
xB1
y11
.
.
.
.
.
.
xBm
ym1
z1 c1
...
cn
...
xn
xB
...
y1n
xB1
.
.
.
.
.
.
.
.
.
... ymn
xBm
... zn cn z
Valoresdelasvariablesbsicas
Valordelafuncinobjetivo
Valoresdeloscostesreducidos:indicadoresdelsimplex
Nombres de las variables bsicas
Nombresdelasvariablesbsicas
Ejemplo:
(3 2 0 0 0 )
Maximizar z = 3x + 2y
sujeto a : 2x + y + h
2x + 3y + s
= 18
= 42
3x + y +
d = 24
x 0, y 0
0
0
0
x y
h 2 1
s 2 3
d 3 1
3 2
h
1
0
0
0
s
0
1
0
0
d
0 18
0 42
1 24
0 0
26
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Simplextabular:algoritmo
1) Siexistealgnvalorqueexisteposibilidaddemejorayvamosalpaso2).
zj cj 0
SitodolaactualsolucineslaptimayelproblemaFACTIBLE:
FIN
zj cj 0
yj 0 p
2)) SiparaalgnessuvectorasociadoelproblemaesNOACOTADO,encasocontrariovamosalpaso3)
p
g
,
p
)
zj cj 0
3) Seleccindelasvariablesdeentradaysalida:seseleccionacomovariabledeentradaaquellaconvalormsnegativodez j c j
xk
k lacolumnapivote.Seseleccionacomovariabledesalidaaquellaquehagamnimalarazn
yladesignaremosporsiendo
xBi yik para yik 0 Lafilaconmnimaraznladesignamosporr ysedenominafilapivote.Elelementosedenomina
yrk
pivote.
4) Clculodelanuevatabla:
xBr
xk cBr por ck
a)Seconstruyeunanuevatablavacaenlaquesesustituyelavariablebsicadesalidaporlanuevavariable
bsicay
b)Lafilardelanuevatablaseobtienedividiendolafilar delaprecedenteporelpivoteylacolumnak delanuevatablaseformacon
cerosexceptoellugardelpivotequeseponea1.
c)Losrestanteselementosdelatablalosobtenemosrestandodelosantiguoselvalorde a dadoporlasiguienteexpresin:
yij yij a
xij xij a
(z j c j ) (z j c j ) a
z za
erj eij
yrk
con (i r )
27
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejemplo:simplextabular
x y
h 2 1
s 2 3
d 3 1
3 2
h
1
0
0
0
s
0
1
0
0
d
0 18
0 42
1 24
0 0
x y
y 0 1
s 0 0
h
3
7
x 1 0 1
3
0 0 1
y
(
(0,14);z=28
)
(3,12);z=33
18
9;
2
42
21;
2
24
8
3
s d
0 2 6
1 4 12
0
0 1 30
12
6
3;
6
4
1
(6,6);z=30
x
h 0
s 0
x 1
0
y
1
3
7
3
1
3
1
h s
d
1 0 2
0 1 2
0 0
0 0
2
6;
1
3
3
3
1
3
1
2
26
8
24
(0,0);z=0
(8,0);z=24
x y
y 0
d 0 0 7
d
0 12
x
0 1
3
0 33
26
8
11,1;
24
7
1
3
3
28
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
MtododelSimplex:solucinbsicainicial
Las variables de holgura introducidas para convertir inecuaciones en ecuaciones nos han permitido en el ejemplo anterior disponer de una
solucin bsica inicial fcil de conseguir:
g
la correspondiente
p
a las variables de holgura
g
cuya
y matriz bsica resultaba ser la matriz unidad. Pero
si una o ms de las restricciones de desigualdad fuese de sentido opuesto, la variable de holgura habra que introducirla restando, por lo que
la correspondiente solucin bsica no sera factible. Por ejemplo, si cambiamos el sentido de la desigualdad en la primera restriccin del
ejemplo anterior tendremos:
Maximizar z = 3x + 2y
sujeto a : 2x + y 18
2x + 3y 42
forma
estndar
3x + y 24
x 0, y 0
Maximizar z = 3x + 2y
sujeto a : 2x + y h
= 18
2x + 3y + s = 42
3x + y +
d = 24
x, y, h, s, d 0
dvar float+ x;
dvar float+ y;
dvar float+ z;
maximize 3*x+2*y;
subject to
{
2*x+y >= 18;
2*x + 3*y <= 42;
3*x + y <= 24;
h s d
1 0 0
1 0 0
h
1 0 0 18 18
B1 0 1 0 ; B11 0 1 0 ; x s B11 b 0 1 0 42 42
0 0 1
0 0 1
d
0 0 1 24 24
//solution(optimal)withobjective35.1
x=4.2857;
y = 11 143;
y=11.143;
B1 es una matriz bsica pero no es factible ya que una de las variables de decisin (h) toma valor negativo (18) por lo que no se puede
utilizar para iniciar el mtodo del simplex.
Enestoscasospodemosintroducirvariablesartificialesenlascorrespondientesecuacionesparadisponerdeunabasefactible.Porejemplo,
p
f
p
p
p
j p ,
introduciendolavariableartificiala enlaprimerarestriccindelproblemaanteriortenemos:
Maximizar z = 3x + 2y
sujeto a : 2x + y h+
2 + 33y + s
2x
3x + y +
d
x , y , h, s , d , a 0
Variableartificial
a s d
a = 18
= 42
2
= 24
1 0 0
1 0 0
a
1 0 0 18 18
B1 0 1 0 ; B11 0 1 0 ; x s B11 b 0 1 0 42 42
0 0 1
0 0 1
d
0 0 1 24 24
Variablesdeholgura
Conlaintroduccindelavariableartificiala hemosconseguidodenuevounabasefactible
g
B1 conlaqueiniciarelmtododelsimplex,sin
q
p ,
embargoenestecasoelproblematransformadonoesequivalente.Esevidentequeunasolucinfactibledelproblematransformado enla
quelavariablea=0,sertambinunasolucinfactibledelproblemaoriginal.
29
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
MtododelSimplex:solucinbsicainicialconvariablesartificiales
Existendosmtodospararesolverunproblemadeprogramacinlineal(problemaoriginal)quesehaconvertidoenunoartificial(problema
aumentado)conlaintroduccindevariablesartificiales:elmtododelasdosfasesyelmtododelaspenalizaciones.
Mtododelasdosfases
Fase1:Sedeterminarsielproblemaoriginalesfactibleyencasoafirmativosecalculaunasolucinfactibleinicial.Paraellose resuelveel
problemaqueresultadesustituirlafuncinobjetivooriginalporlalasumadelasvariablesartificiales:
p
q
j
g
p
Minimizar t = 1 xa
sujeto a :
x
Aa a =b ; xa , x 0
x
Si se dispone de una solucin bsica factible de este problema auxiliar con t = 0 entonces se dispone de una solucin bsica factible del
problema original.
Fase2:Seaplicaelmtododelsimplexpartiendodelasolucinbsicafactibleobtenidaenlafase1,ahoraconlafuncinobjetivooriginal.
Mtododelaspenalizaciones
Este mtodo consiste en forzar las variables artificiales a que tomen un valor nulo en la solucin ptima introduciendo estas variables en la
funcin objetivo con unos coeficientes M para un problema de minimizacin y M para uno de maximizacin , siendo M un nmero positivo
arbitrariamente grande, es decir, un nmero siempre mayor que cualquier otro con el que se compare en la aplicacin del mtodo. Por esta
razn se le denomina como el mtodo de la gran M (big M method).
Problemaoriginal
Maximizar z = c x
Maximizar z = m xa c x
x
Aa a =b ; xa , x 0
x
m T M ... M
x
Aa a =b ; xa , x 0
x
m T M ... M
sujeto a :
Problemaaumentado
sujeto a :
1) Siunodelosproblemasnotieneptimofinitoelotrotampocolotiene.
2) Todasolucinfactibledelproblemaoriginaltambinloesdelproblemaaumentado(bastatomar)
xa 0
3)) Todasolucinfactibledelproblemaaumentadoquenocontengavariablesartificialesestrictamentepositivasesunasolucinfactibledel
p
q
g
p
problemaoriginal.
30
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Ejercicio
Dado el siguiente problema de programacin lineal:
Maximizar z = 4x1 + x2
sujeto
j a:
- x1 + 2x2 4
2x1 + 3x2 12
4x1 - 4x2 12
x1 , x2 0
31
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL