Mathematics">
Nothing Special   »   [go: up one dir, main page]

PLE2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 162

Algoritmos de programación

linea I
Introducción 111

,
lNTRODUCCION .

El teorema fundamental de la program<lei6n lineal, con cuya demostración


finalizó la unidad didáctica anterior, asegura que si un problema de progra-
mación lineal tiene solución óptima finita, entonces necesariamente existe un
vértice en C'1 que se afcanza dicha solución óptima. Como s e ha visto. este Te-
sultado resuelve teóricamente el problema de programación lineal, puesto que
la solución se puede encontrar examinando el valor de la [unción objetivo en
un número finito de puntos, algebraicamcnte identificados como solución de
sistemas de ecuaciones íineeíes.
El número de vértices de un problema pucde ser muy alto. De aquí que sea
necesario idear una estrategia que los examine de manera inteligente descar-
tando prontamente los vértices que no son buenos candidatos para mejorar la
función objetivo.
Una estrategia de este estilo es la puesta en práctica en el algoritmo dcJ
simplex de (J.B. Dantzig[ . El nombre del método procede del hecho de que
en una de sus primera... aplicaciones, la región factible estaba formada por un
simplex, es decir, un poliedro convexo gcncrddo por (n + 1) puntos de Ir. no
situados en una misma veríedud lineal (n - 1)-dirnensional.
El esquema de algoritmo es el siguiente: se parte de un vértice inicial cual-
quiera; a continuación mediante rcglas claramentc definidas se procede itc-
rativamente saltando a un vértice adyacente al menos ''tan bueno" como el
vértice actual; con ciertas precauciones el m étodo alcanza el vértice óptimo
en un númcro fin ito de pasos. La.. cuestiones t écnices que hay que resolver
son varia...: cómo se selecciona el vértice inicial, cómo se salta de un vértice a
otro, cómo se sabe cuando s e ha llegado al óptimo, o allcrnativamcntc se tic-
ne evidencia de que el óptimo c." no finito o el problema no tiene soluciones
factibles.
La versióu inicial del algoritmo, pensada sobre problemas generales de di-
mensión pequeña, es poco práctica para resolver problemas reales. Las grandes
dimensiones dcJ problema, la acotación de las variables, la cs tructura especial
de la matriz de restricciones son circunstancias que han de tenerse en cuenta
para desarrollar versiones del algoritmo que pueden programarse en un ordcna-
dar y permitan resolver problemas reales de grandes dimensioues. Asimismo
es necesario disponer de procedimientos que, sin neccsidad de repctir todos
los cálculos desde el principio, pennitan rchacer la solución óptima disponi-
ble cuando, como ocurre con frecuencia en la vida real, los datos iniciales del
1Dantzig, G.B. ( 195 1):"Maximization of a linear funetion of variables subj ect 10 linear
incqualities" , en: T.C. Koopmans (cds.), A Clivily Ana/ysis of Production and Al1ocation, Wilcy,
pg. 339-347.
11 2 CAPiTULO 2 Algoritmos de prognunaci6n lineal

problema experimentan modificaciones parciales yacrualizaciones.


En esta unidad didáctica se estudian todas estas cuestioncs. Se comienza
presentando la versión básica del algoritmo (primal) del simple:<. Para ello
se introducen las notaciones y se razona sobre los criterios para realizar las
iteraciones. Se resuelve también el problema de cómo encontrar el punto de
partida y se demuestra que el algoritmo converge.
Para poder des arrollar otras variantes del algoritmo y el análisis de la so-
lución óptima es nceeserio recurrir a la teorla de la dU<llidad. Su estudio va
dirigido a dcmosunr el teorema de 1a dUiJ lielad en progmmación lineal, el cual
csencialmerHe exprese un" IIlJCWJ cOlldición para caracrcn ...a r la solución ópti-
ma del problema de programación lineal. La dualidad pennite también la con-
sideración de una nueva versión del algoritmo del simplcx, denominada algo-
ritmo dua l dcl simp ícx, que es de gran utilidad en el desarrollo de los apartldos
siguien tes.
A continuación se estudian las variantes del algoritmo del simp/ex más uti-
lizadas en la práctica: la forma revisada del algoritmo, la versión para variables
acotadas y el algoritmo de descomposición.
En la úlrima parte de la unidad didáctica se hace un detenido estudio del
análisis de la solución óptima dividido en tres grandes apartados: postoplimi-
zación, análisis de sensibilidad y análisis paramétrico.

OBJETIVOS

• Comprender la base intuitiva del algoritmo del simplex.

• A prender a resolver man ualmente, mediante Ias rabias del simplcx, un


problema de programación lineal de pequcño tamaño.

• Conocer la tcoría de la dualidad de progmmación linea l.

• Conocer diversas variantes del algoritmo del simplcx. que pueden utili-
zarsc en la práctica en un computador.

• Saber rcoptimizsr una solución óplima de un problema de progmmaeión


lineal euando se modifican parcialmente los datos del problema.

• Saber efectuar una análisis dc sensibilidad y de pararncrozaci én de un


problema de programación lineal.

CONTENIDOS

2.1 malgoritmo del simplex


2.1 .1 Definiciones y notaciones. Sistema explícito
2. 1.2 El álgebra del algoritmo del simoíex
2.1.3 Algoritmo (primal) del simplcx
2. J .3. 1 Esquema del algoritmo del simplcx
Introducción 113

2. 1.3.2 Fórmulas de cambio dc base


2.1.3.3 La tabla del sim plex
2. J.4 Program a inicial de base
2.1.4.1 Base artificial
2.1.4.2 El método dc las pcnalidades
2. 1.4.3 El método de las dos fascs
2. 1.5 Convergcncia de algorÚmo del simplex
2. 1.5. 1 Dcgencraci6n yeielajc
2. 1.5.2 R egla lexicográ fica para p revenir el eielaje
2. 1.5..'1 Forma lexicográfica del m étodo del simplex

2.2 Dualidad
2.2. 1 Defin iciones
2.2. l . I Formas equivalentes
2.2.2 El teorema de la dualidad
2.2.3 Los teoremas de las holg uras complementarias
2.2.4 liI teorema del Lagrangiano
2.2.5 El algoritmo primal del simplex y la dualidad
2.2.6 íntcrprcu c í óo económica de la dualidad
2.2.7 El algoritmo dual del sim plcx
2.2.7. I Fundamentos del algoritmo dual del sim plex
2.2.7.2 Fonna del algoritmo dual del simplcx
2.2.7.3 El método de la restricción en ítícieí

2.3 Formas especia/es del método del simplex


2.3. 1 El método del simplex revisado
2.3. 1. 1 Justifi cación de la fonna revisada del método dcl
sim plex
2.3. 1.2 Forme revisada del algoritmo del simplcx
2.3.1.3 Com paración entre la forma ordinaria y la forma re-
visada del algoritmo del simplex
2.3.1.4 Forme producto dc la inversa
2.3.2 El método del símpícx para variables acotadas
2.3.2.1 Fundamentos del método del sim plcx para variables
ecote des
2.3.2.2 Inicialización del método dcl simplcx p aid variables
acotadas
2.3.2.3 Esquema del algoritmo del sim plex para variablcs
acotadas (minimización)
2.3.3 El algoritmo de dcscomposición
2.3.3. 1 HI caso X acotado
2.3.3.2 El caso X no acotado
114 UN IDAD DID ÁC TI C A 2 Algoritmos de programación lineal
-
2.4 Amílísís de la solución óptima
2.4.1 Postoptimización
2.4.1. 1 Modificación del vector deI /aJo derecho de las restricciones

2.4.1.2 M odifi cación del vector de coeficientes de la fun-


ción objetivo
2.4. 1.3 Adición de una variable
2.4.1.4 Modificación de los coeficientes aj Y Cj de una V3 -
riabJe xj
2.4. J.5 Adición de una restricción
2.4.2 Análisis de sensibilidad
2.4.2. J Análisis de sensibilidad del vector áct íu áo derecho
de las restricciones
2.4.2.2 Análi..lis de sensibilidad de Jos coeficientes de la fun-
ción objetivo
2.4.3 Análisis paramétrico
2.4.3.1 Param ctrizaci én del vector del lado derecho de las
restricciones
2.4.3.2 Paramctrización del vector de coeficientes de la fun-
ción objetivo
El algoritmo del sirnp lex 11 5

2.1 El a lgoritmo del sim plex


- -- - - - - - - - - - - - -
2.1.1 Definiciones y not aciones. Sistema explícito
El desarrollo del algoritmo del simplcx se basa en la forma estánda r del
problema de programación lineal lo cual, como hemos visto, no supone pérdida
de generalida d. Consideremos entonces el problema

Minim izar ex
sujeto a
Ax b
x > O
Suponemos que A es una matriz m x n, m < n y rango de A = m. Esto quiere
decir que el sistema de ecuaciones no es redundante y que tiene infini tas so-
luciones. Aunque, como es lógico, en los problemas reales esto no tiene por
qué verificarse, veremos que en la práctica no es necesario el cálculo del ran go
de A de forma que esta hipótesis sólo se utili za en Jos desarrollos teóricos.
Supongamos que A = (al .a2, ,u,, ) donde los aj son vectores columna de
m componen tes. Sea B = (aj., ah ' .ai ..) una base de A, es decir una matriz
de rango m extraída de las columnas de A. Los índices que marcan las co-
lumnas de R son los que tien en orig inalmente en A. independientemente de su
ubicación en la matriz B.

B = (a},.ah •. . .•a}.l = (a, ) eon s E l ={j.. . . .. j m} c N = { 1. 2•. . .• n}


Las restantes (n - m) columnas de A q ue forman la matriz N se designarán por
a j con j E J = N - /. Elegida R, te nernos el vector de var iables .x y el vector
de costes e troceados según las co lumnas de B.

d' = (c,)
(~)
x" = (x,) s EI s ~ J
x= xN = (X}) j CC J eN = (c}) j EJ

Como sabemos, podemos escribir el sistema en la forma (B, N) (~) = b o


equivalentcmcnte

Bx" + NxN = b (2.1)

=
Si en el sistema 2. 1 hacemos :!' = Oresulta BXJ h. Puesto que B tiene inversa
podemos despej ar el vector de variab les JI y obtener

x B = S -lb

Si ~ = B -)b > O entonces se tiene un programa que proporciona a la funci ón


objetivo un valor:
116 U N IDAD DIDÁCTI CA 2 Algoritmos dc programación lineal

Si en el sistema 2.1 multiplicamos a la izquierda por 8 - 1 obtenemos.

(2 .2)

Esta operación ha despejado las variables ~. s e l , obteniendo la solución


paramétrica del sistema. Observemos que en el sistema 2.2 los índices de las
filas del sistema son los co rres pondientes a las fi las de ¡j' . o sea los índices de
las columnas de B. Denotamos

y = (y¡) = (y,¡) s E / , l E }
x" = (x,) sEl

Veamos en primer lugar qué signifi cado tienen los vectores anteriores. Por no-
taci ón, tenemos que B - 1aj = y j por 10 cual

aj = By } = L,YSj Qs
s (/

es deci r, los Y~j son lo s coeficientes de la combinación lineal que expresa lJ en


función de la hase B. Lo mismo puede dec irse de los ~ con respecto al vector
h, es decir, b = B x! = L.rO x.yas.
El sistema 2.2 puede escribirse como:

(2.3)

o bien, escrito por fi las

X.Y + ~:XjY$j x., s EI (2.4)


j EJ

Veamos ahora qué oc urre co n la función del objetivo. La expresión

(2.5)

puede escribirse de la forma

"'
LJ cSo"'.Y
y +"'LJ cJ·XJ z (2.6)
sE/ jU

Vamos a ex presar la ecuación anterior en func ión de las vari ables fuera de la
base. Para e llo multip licamos el sistema 2.3 por Ji

d'JI + ¿, xjd'y¡ = d' JI (2.7)


jU

Al restar miembro a miembro las ecuaciones 2.5 y 2.7 resulta

d'JI - ¿, x¡c8 y¡ = z-c"x1'


¡El
El algoritmo del simplcx 117

que también puede escribirse como

~>jXr I c"YjXj z- c"xI'


jf::.J ¡eJ

o eq uivalentemente

z-¿'xI' (2.8)

Si denotamos cfJYi = z¡. j E J Y c!x! = z la ecuación 2.8 puede escribirse


como

I (Cj - Zj )Xj = z-z (2.9)


jf:'J

En resumen, elegida una base B, el sistema y la función del objetivo pueden


escribirse mediante las expresiones 2.4 y 2.9 que tiene un papel clave en el
desarrollo del algoritmo del simplex por lo que reciben un nombre especial.
SIST EM A Definición 2.1. Dado un problema de programación lineal bajo la forma
EXPLíc iTO estándar las siguientes ex.presiones de las ecuaciones de las restricciones y
de la función objetivo se denominan sistema explícito

X.s + L, XjY .sj XJ sE1 (2.10)


JO
I (cr Zjh Z-Z (2.1 1)
JEJ

EJ EMPLO 2.1 Consi deremos el siguiente prob lema de programación no lineal :

Mi nimizar Z= X l + X2
sujeto a
x, + 2r, < 4
x, < 1
x, > O
x, > O
La forma estándar es:

Minimizar Z = Xl , X2 + Ut] t- OX4


sujeto a
Xl t 2x2 + x) 4
x2 + X4 J
X I . X2. xj , X4 > O
Entonces:
A_
-
[1
O c ~ (I ,I )
11 8 UNIDAD DmÁCTICA 2 Algoritmo. de programación lineal

Elijamos la base B :-- ( a¡' Q2) , es decir, vamos a despejar las variables .1" 1,.1"2· Si 10
hacemos directamente en el sistema de ecuaciones queda:

es decir
x,
x, =
Las ecuaciones anteriores form an el sistema explícito de restricciones y también pue-
den escribirse como:
- 2
1
Aquf , los vectores Yj y ~ son:

Como podemos apreciar lo que se ha hecho es escribir el sistema en la forma

B ... 1- N = b

y premultiplicar por Ir 1 [~=- ~2],

G~2) GD(~;) + (~ ~2) G~) (~:) = G~2) e)


G~) (~;) G-nG:) - m -l-

G;) \ (~ ~2) (~:) G)


Veamos qué ocurre con la función objetivo. Si despejamos x 1 = 2 - x ) + 2x4 y X2 =
I - .1"4 Y llevamos estos valores a la función objetivo

z - 1-(2 -x, +2x, ) '- 1-( 1- ,,)


- 2 -t 1 - .t) 4.1"4
3 - x] + .1"4

La expresión anterior nos da el valor de z en func ión de las variables qu e están fuera
de la base. Vemos que los coeficientes de las variables y el termino independiente de la
expresión anterior son, en efec to, los valores que se obti enen al utilizar las notaciones
introducidas antcrionnente. Tenemos que z ¡" ;:- tfly] = (l ,I )(YIJ) , po r lo que z) =-=

(', 1)(b) = 1, z, - ( 1, ' )( ,2) = - 1 Y por lanto e, -
z, = O - , = - \, z, = e, -
0 - (- 1) = 1. También c Bx8 = ( 1, I )(~) ;:- 3 En resumen LjEA cj - Z])Xj :.= Z - í es
exac tamente la expresi ón que habíamos obtenido - x ) + X4 = z - 3.
El algoritmo del simplcx 119

2.1.2 El á lgebra del algoritmo del sim plex


En este apartado estudiamos algunos resultados en los que se basa el algo-
ritmo del simplex,

Teorema 2.1 Dado un programa de base asociado a una base B, si existe


un k E= J tal que Zk - Ck > O y además Yk < 0, entonces es posible encontrar
programas en Jos que m + I variables pueden ser positivas estrictamente
y la vtuizb íc Xk puede tom ar cualquier va lor no negativo, res ultando que
z puede ser tan pequeño como se quiera en valor numérico; como conse-
cuencia, puede asegurarse que no existe un programa mínimo fin ito.

Demostración
Consideremos el sistema 2.2. Tenemos el programa de base asociado a una
hase B, ~ = ¡B. J!V = Oque proporciona a la función objetivo un valor z Z. =
Supongamos que existe un índice k e J, tal que ZIf - CA; > Oe Yk < O. Asignemos
a la variable Xi un valor cualquiera positivo, digamos a , y a las demás variables
fuera de la base un valor nulo. Entonces el sistema queda JI +YkXII: = ¡/J. Dc
aquí x!1 = jB YkXII: > O, puesto quc jk > Oe YII: < O. Es decir, el conjunto dc
valores: Xi. = Xh xii = xB - YkXk y ~ = Oexcepto para x.. es un programa para
cualquier valor .Q no negativo. Ahora bien, en el programa anterior la función
del objetivo vale Z = Z - (zt - e.t)Xk. Como (ZI; - e¡:) > Oresulta que cuando
Xl -t oo. también z --+ - oo. por lo cual no existe programa mínimo finito.

EJEMPLO 2.2 Sea el problema:

Minimiza r Z = - X ¡ - 3X2
suj eto a
X, 2.<, < 4
- x, + x, < 3
x" x, > O

En la forma estándar es

Minimizar z = - X I - 3xz + OX) 1 OX4


sujeto a
x, - 2.<, + Xl 4
x, + x, 3
> O

Consideremos la hase B = (a3 . az) -~ (~ -7). Entonces

N~ ( 1
- 1 B 'N=(-J
- 1
\20 UNIDAD DIDÁ CT ICA 2 Algoritmos de programación lineal

segunda ec uación:
X3 - lO + x ¡ - 2x4
xz 3 + X¡ - X4

Si sustituimos los valores despejados en la función objetivo obtenemos su forma


expl ícita

Hacemos ahora X4 = O tanto en las ecuaciones de restricción como en la función ob-


jetivo. Resulta

X3 10 t- X I
Xz - 3 -jx¡
z - 9 - 4x¡

Podemos observar que 51 x I crece arbitrariamente por valores positivos, el resto de


la variables son siempre no negativas, es decir, se tiene siempre un pro grama. Por su
parte, la función objetivo decrece indefi nidamente por lo que podemos concluir que
no existe un programa óptimo fi nito.

Teo re ma 2.2 Dado un programa de base asociado a una base B, si para


k E J es (Zk - Ck ) > O y si para al menos un s E I es Ysk > O, entonces la
solución de base asociada a la base H dcducida de la B por sustitución de
la columna a h por la columna af, siendo t definido por:

--Xl = mm
, Xs
- {-
Ylk .f Y\'k

es un nuevo programa dc base que da a la función objetivo un yalor-t < z.

Demost ra ción
A l ig ual q ue en el teorema anterior, consideremos de nuevo el sistema que
se obtiene al anular en el sistema explícito todas las variab les fuera de la base
excepto la variable Xk Y escribamos tos nuevos valores de las variables, que
denotaremos ~, para un valor positivo cualquiera dc -Xk

-, -
X = x» - Y-fk Xk s E l.
s

Por hipótesis, ex iste algún s E J tal que ~k > O. Por lo tanto para algún s
tenemos que ~ será menor que xs ' Ahora bien, como las variables no pueden
ser negativa." ~ será un programa en tanto en cu anto que ~. X s - Y skXk > O. =
Por tanto Xk no puede aumentarse indefinidamente sino que

xk ~ mm
, {x, _.
s Y.d
El algoritmo del simplex 121

Para que el nuevo programa no tenga más de m variables estrictamente positi-


vas bastará tomar el valor

y,¡ > O}
=
ya que así, efectivamente X't O. Los restantes ~ . s E / - {e} tendrán un valor
no negativo. Además los vectores H = (( aS)Sf l - {l) ak) forman una base ya
que al = ¿ j O Y sl Qs y el escalar YlA: que multiplica a la columna tl(. que es la
que hemos intercambiado con la lt. es no nulo y estas dos condiciones son
necesarias y sufi cientes para que el nuevo conjunto de vectores considerado
siga siendo una base. Obtenemos entonces un nuevo programa en el cual to-
das las variables asociadas a vectores que no pertenezcan a son nulas. El n
nuevo programa es un programa de base asociada a 11. Adem ás, en este nuevo
programa la función objetivo vale

~
Z = -z - (Zi )- - x,
-Ck X,t =Z - (Z¡ -q) - <z
y"
en donde la última desigualdad es consecuenc ia de que (2k - q ) > Oy f:¡ ~ O.
La desigualdad será estricta siempre y cuando a i= O en cuyo caso será es- z
trictamente menor que z .

EJ EMPLO 2.3 Consideremos el problema (fi gura 2.1 )

Minimizar Z =2x ¡ -X2


sujeto a
-x, + x, < 2
2" + x, < (,
x, > O
x, > O
Al introducir las variables de holgura se ob tiene la forma estándar

Minimi....ar z =; 2x 1 -X2 + OX] + OX4


sujeto a
-x, + Xl 2
a, -I X4 - 6
XI, X2. Xl, X4 > o
Sea:

B - B ' _- [- 1/ 3
2/3
1/3]
1/ 3
122 UNIDA D DID ÁCTICA 2 Algoritmos de programación lineal

Fi~tJ ra 2.1

El programa básico aso ciado a n es XI -= j , X 2 = .!j!-, X .1 =- O, X4 = O. El valor de la


función objetivo es

Las expresi ón anterior nos indica que hacer crecer la variable x 4 desde su actua l valor
nu lo hasta un valor positivo es favorable para la m inimización, ya que por elida unidad
que au mente Xol la función objetivo disminuye en ~ unidades. Por tanto, es buena
decisión introducir .\"4 en la base, lo cual implica que hay que recalcular [as demás
variables de la base. La otra variable no básica x ) se sigue dejando en su ac tual valor
nu lo . Entonces el sis tema de ecuaciones queda:

4 I
x, - - - - X4
3 3
\0 1
- - - -X4
" 3 3
Observemos que 110 es posible aumcntar xa sin límite, ya que llegarla un momento en
que Xl y X2 seria n negati vas. 1.0 más que puede aumentar la variable X4 sin que las
variab les XI YX2 sean negativas se ca lcula fácilmente. 11a de ser:

4 1
Xl = - - - X4> O
3 3 -
10 I
-3 - 3- x, >
-
O

Entonces es claro q ue
4
x4 < ~ =4
ro
X2 < ~ ~ 10
3
El algoritmo del simplex 123

por lo cual X4 < Mínimo {4,lO} =-= 4. Si tomamos X4 - 4 resu lta que XI = O Y x 2 -
I 4 -- 6'J - 2 . Oh tenemos un nuevo programa
10 - J'
"]

Xl -= 0, X2 = 2, X3 = 0, X4 =4
que verifica todas las restricciones y además proporciona a la función objetivo un va lor
igua l a

2 4 1 2 1 2 4 2
z = - - t- - x l - - X4 """ - - + 0- -· 4 = -- - - =- - 2 <
3 3 33333 - 3

que, en efecto, es menor que el valor de z en el p rograma anterior.

Teorema 2_1 Dado un programa de base asociado a una base R, una


condición necesaria y suficiente para que este programa sea minim o es
qucz¡ -Cj < O para todoj E J .

Demostración
Necesidad:
Es consecuencia inmediata de los teoremas anteriores. En efecto, si para
algún j E: J ocurriese que z} - ej > O, o bien no habr ía solución finita, teore-
ma 2.1, o bien seria posible mejorar la solución. teorema 2.i- .
Suficiencia:
Supongamos q ue Zj - ej < O para todo j e: J . Veamos que el programa es
óptimo. La ecuación ¿ (el' -Zl'}xJ = z - z es váli da para toda solución del
j E!
sistema de ecuacio nes Xs + L J-rj Xj = X.H s E t , Las variables en la función ob-
jE!
jetivo son ahora Xj y z ya que los demás términos son conocidos una vez fijada
la basc B. Ahora bien, como Zj - Cj < O si tratamos de calcular el mínimo de
z sujeto a que Xj > O que es un condición obligada paro ser un programa, ob-
servamos que el mínimo se alcanza paraxj = O.j E J . es decir, en el programa
actual. Si todos los Zj - Cj son estrictamente positivos el mínimo es único. pero
si existe algún Zj - ej = O es posible que ex istan otros mínimos.

Co rola r io 2.1 Dado un programa de base mínimo y los correspondientes


valores Zj - c}< O asociados a las varia bles fuera de la base una condición
necesaria y suficiente para que otro programa sea mínimo es que

Xj >O

2Aqui hay que d~'lC8~~r la ~bilidad de ciclaje que puede darse cuando hay degeneración.
Analizaremos esta suuacron mas adelan te
124 UN IDA D DID ÁCTI CA 2 Algoritmos de programación lineal

Demostració n
Trivial.

Corolario 2.2 Una condición necesaria y suficiente para qu e un progra-


ma eJe base minimo sea el único programa mínimo es que z./ -- ej < O para
todo j c J ,

Demostración
Trivial.

2.1.3 Algoritmo (prima l) del simplex


El algoritmo del simplcx es un procedimiento iterativo que parte de un pro-
grama inicial de base y obtiene en cada iteración un nuevo programa de base
que mejora al anterior hasta llegar a un programa óptimo de base.
La fo rma de operar del algoritm o se basa en los resultados obtenidos en
el apartado anterior. El algoritmo parte de una base 8 y del programa de base
=
asociado x!1. A partir de dicha base se puede calcular la matriz Y B- 1 N Y
los coeficientes Zj - ej . Los teoremas 2. 1, 2.2 Y 2.3 permiten decidir si se ha
de detener el cálculo por no existir programa mínimo finito o dispone r de él
en una determ inada iteración, o bien si es preciso calcular un nuevo programa
x
de hase. En este último caso. basta calcular el valor 8 del nuevo program a y
los valores y. (zj - ej) con j E JI Y repetir la aplicación de los teoremas. Estos
cálculos, en teoria, no plantean ningún problema ya que la base IJ se conoce
desde el momento en que se conocen los índices k y f. En la práctica existen
varias maneras de efectuar estas transformaciones; veremos después algunas
de ellas. En el caso en que es preciso cambiar la base, la relación Zj - ej > O
se verifica, en general, para varios índices j, digamos un subconjunto J e J.
Como lo que se trata es de minimizar z sería interesante escoger como variable
qu e entra en la base aquélla que proporcione un mayor decrecimiento de la
función objetivo. Este decrecimiento viene dado por

siendo -
Xl
Yik
.
= "llll
{-
Xs
Y sk

Entonces deberíamos elegi r como variable entrante en la base la variable -l: qu e


proporcionase un decrecimiento mayor calculado según la expresión ante rior.
En la práctica se ha comprobado que la utiliza ci ón de un criterio más simple
conduce aproximadamente al mismo número de iteraciones. Dicho criterio es:
Elegir k tal que:
Z, -r ct = Máx { Iz) - ei l}
jEJ1
y si este máximo no fuese único. romper el em pate arbitrariam ente .
El algoritmo del s implcx 125

2 .1.3. 1 Esq uema del a lgorit mo del s implex


En este a partado presentamos la fonna prácti ca del algoritmo del si mp lex.
Expres aremos los pasos para un problema de minimizaci ón. Las modificacio-
ncs para el caso dc un problema de m axirnizaci ón son elementales.

Paso 1: Poner el problema de programación lineal en la forma estándar.

Paso 2: Determinar un programa inicial dc base JI asociado a una base B.


Sea 1 = {j¡ ,h•... ,jm} el conjunto de índices de las columnas de A que
forrnan B y J = N -J = {I,2, . . . •n } -J.

Paso 3: Calcular:

• La matriz Y =8 IN = (yj )ju = (ysj )s~/,jEJ


• Los valores Zj =~Yj (Zj -Cj ) j EJ

Paso 4: Comprobar los valores (Zj - Cj ) , j e J:


Paso 4. / Si ( Zj - Cj) < O, para todo j E J entonces fiNALIZA R.
E) programa actual xB es un programa básico óptimo.
Paso 4.2 Si (Zj - ej) i Opara todo j E J entonces definir

J ¡ ={j EJ I ( Zj-Cj» O}

Paso 5: Compro bar los vectores Yb j E J) .


Paso 5. 1 Si existe j e: J L tal que Y j < O entonces F INA LIZA R.
No existe programa mínimo fmito .
Paso 5.2 Si para tod o j ( JJ, Yj 't. O entonces
Determinar k por la relación

I z, - ct 1
= Máx {I Zj - Cj 1, j e J I } Crucrío de entrada

Dctenninar f por la relación

Xt • {i,
- =M m - ; Ysk >O, Criterio de salida
Y ik Ysk

Paso 6: Calcular la nueva hase f{ deducida de la B por sustituc ión de la


colum na al por la co lumna as . Calcular el nuevo programa x"
asociado
a 11'. la llueva matriz Y' y los nuevos valores t i - ej . Repetir la aplicación
del algoritmo desde el Paso 4 .

Demost raremos mas adelante qu e el algoritmo del simp lcx converge, es


decir. despu és de un número finito de iteraciones se llega o bien a la situación
4. 1 o a 13 5. 1. No obstante, h3Yque señalar que para ello es necesari o introd uc ir
en el esque ma anterior un as ligeras modificacion es que se verá n más adelante.
126 UN IDA D D ID Á CTIC A 2 Algoritmos dc programación lineal

2.1.3.2 Fórmulas de cambio de base


En carla iteración , el algoritmo del sim plcx tiene que calcular el vector p.
la matriz Y y los coeficientes Zj. En el cálculo de todos ellos interviene la ma-
triz B - 1, inversa de la matriz básica R. Las bases que examina el algoritmo
del simplex de iteración a iteración se diferencian únicamente en una colum-
na. Ello parece sugerir que buena parte de la información necesaria en cada
iteración puede obtenerse a partir de la iteración anterior, no siendo necesario
reescribir y res olver d e nuevo en cada paso el sistema de ecuaciones. En ca-
da iteración del algoritmo una variable no básica, la varia ble entrante -4 . pasa
a ocupar el lugar de una variable básica, la variable saliente :q. Para ell o se
despeja la variable entrante en la ecuación del sistema correspondiente a la
variable básica saliente y se sustituye este valor despej ado en el resto de las
ec uac iones. En este procedimiento hay un coeficiente del sistema que recibe
un nombre especial.
PIVOTE Dcñ ntct én 2.2. Se 1I8ma pivote al coeficiente de la variable entrante J',l¡ en
la ecuación de la variable saliente, la ecuación de la variable .>l; dicho coc-
fie;enle se ha denotado Yck yes necesariamente positivo, seg ún el critcrio
de entrada del algoritmo que lo defin e.

Alrededor del pivote gira el proceso de act ualización de las iteraciones. Para
obtener la nueva expresión del sistema son necesarias dos tipos de operaciones:
una para actualizar la ecuación de las variables entrante- saliente, o ecuación
del pivote, y olea para actualizar cl resto de las ecuaciones, incluida la ecuación
correspondi ente a la función objetivo. Observemos que la ecuación del pivote
inicialmente tiene índice f y después dcl cambio de hase tiene índ ice k.
Consideremos el sistema en la forma explicita e; + ¿ j f"JYsjXj = i s , s E J.
e
La ecuación de índice de este sistema es:

Xt +YlkXk + L Y tjXj = X l
jf'J -- {k}

Como Y i k > O podemos d ividir la ecuación anterior por)fk


X, " Yl j XI
Xk + - + L - xJ - (2. 12)
Ytk jEJ _{k lYlk Yik

Desp ej amos en esta ecuación Xk

y sustitui mos este valor en las demás ecuac iones

XI
Xs +Ysk
(
'- "¿. Ylj
- Xj + -Xf ) + "L _
YsjXj = Xs s U - {E}
Yik JO {k} Ylk Yek jE.I-{k }
El algoritmo del simple, 127

Al reagrupar los términos, el sistema anterior queda de la forma siguiente:

y..
x ,J - - Xt + ~
~ (YJk -Yl¡
-Y.fk) Xj = xs
- - Y.'-
- X[ s f= / - {l} (2.13 )
ya j~J {.t} n« Y lk

En definitiva, de las ecuaciones 2.12 y 2.13 deducimos que los nuevos coefi-
cientes del sistema, es decir, los nuevos elementos de la matri z Y son:
Y i}
Y.¡ - -Y., con s c J -{l} = ¡' -{k} (2 .14)
Ytt
_ Yi )
(2.15)
Ytt
Estas fórmul as son válidas para todo j E {1, 2, . . . ,N} como se puede compro-
bar fácilmente. En particular, vamos a escribir las que corresponden al índice
j = l . Paras E r-
{k } las ecuaciones son
, yu Y sk
Ysl =Y.,t -
Y ik
Y,d:= - -
Y t4
ya que Yst = O e vu = I paras 1= f. porque Xi está en la base actual y por
consiguiente el corres po ndiente vector tiene todos sus elementos iguales a cero
salvo el que ocupa cllugar f. que es l . Por la misma razón, en la nueva ecuación
de indice k los coeficientes son:
J ru 1
Yu = YJI - - YJA: = -
Ytk Ya
Los segundos miembros de las ecuaciones 2. 12 y 2.13 proporcionan las
fórmulas de transformaci ón de los X;... (s E JI)

-,
X, x,, -
Xl
- Ysk s E f' -{k} (2. 16)
y"
Xl
X\. (2.17)
y"
Al igual que antes las formulas anteriores siguen siendo válidas para s =l ya
que
-4 _ Xl
xl =xl - -r-yn =O
Ytt
lo cual es lógico porque Xl sale de la base.
Recordemos ahora que la funci ón del obj etivo venía dada en forma expl icita
por L JEJ ( CJ - Zj ) = z- z. Sustituyamos aqul el valor dc .q que se obtuvo antes
al despejar la variable.

Z-Z = ¿ (C¡ - Zj)Xj+ (e, - z. )x,


¡U-l' )

.L (e¡ - Zi) Xi+(e,- z,) [_Xl - L Yti Xj+ XI ]


I EJ- {.t l Ya JbI-{k} YIJ: va
128 UN IDA D DID ÁC TI C A 2 Algoritmos de programación lineal

Al reordenar queda

_ XI (Ck- Z¡) + L [(e¡ -z¡) -Y/¡(Ck - z¡ )]x¡ =z - [Z+ (Ck -Z¡ ) XI ]


YII ¡U- Ik) YII Y/l
y de aquí las formulas de transformación de lus coeficientes de la función
ohjetivo

y,.
(i¡--e¡) - (z¡- e¡) --!.(z¡ - e¡) j = I •. . .• n; j er (2.18)
YIk
, ~ Xi
i - z - - (Z¡ -Ck ) (2. 19)
YIk
En la ecuación 2. 18 se ha puesto qu e la expresión es válida para todo j E J .
En efecto as i cs. Para j f =
Z; - e, = (z/_ e,) _ Ytt (Z¡ _ e¡ ) = _ Z¡ - ek•
YIk ylk
=
ya que Zt - el O e vu = 1 Y esta es la expresión que tiene en la f6nn ula 2.18.
Una observación detallada de las fórmulas 2.14 - 2.19 revela que tienen
todas una estructura común que permiten resumirlas en dos reglas que son
válidas para todas las ecuaciones y todas las variables, inciuida la variable z
del objetivo.

FÓRMULAS DE Proposición 2.1 Las fórmulas de ca mbio de base paro realizar la ope-
CAMBI O DE BASE ración de pivollij e son:

YI¡
- Y sj - - Ys! s E / -{t) +{O); j EN +{Oj (2.20)
YIk
YI¡
j EN +{Oj (2.2 1)
YIk

Las ec uaciones anteriores pueden recordarse fácilmente utilizando una sen-


cilla regla nemotécnica:
• Ecuación del Pivote
. ANT IG UA ECUACIÓN
NUtiVA ECtJAC ION = - ~=:--'-'­
PIVOTE

• Reste de las ecuaciones

CO~H CI F.N T EDE LA


ANT IG UA ECUACiÓ N
N U¡i VA ] [ANT IGUA] N" >VA ]
[ ECUACIÓ~ F. N l A COLU MNA x I'<'UA<:I6,..
- ECUACiÓ N
DE LA VA RIAB tE [ PIVO TE
I'.NT RANTE
El algoritmo del simplex 129

CI C, .. .. .. C, · .... . Cj • • • • • • Cn
XI X, ·.... . X.• •• • • •• Xj • • • • •• Xn

z z '1 - CI C, O ·... .. .. ....


" • • • • • • Z} - Cj I n - Cn

Cj ¡ Xj l Xjl Yj ] I Yj J2 ·... .. O .... .. Y j, j ... ... Yjln


Ch- xn xn Y hl Yh 2 ·.. ... O ·..... Yh j • • • • •• Yh r¡
• • • • •
• • • • •
• • •
C' X.• X, y, 1 y" .... .. I .... .. Y,~j • • • • • • YSII

••
" •

• • •



Cj", Xj," Xj m Yj.. 1 Y j",2 ·... .. O • •• • • • y j",, } · ... .. Y }",n

Tabla 2.1: Tabla del simplCJI:

2.1.3.3 La ta bla del simplex

La manera tradicional de expresar el transcurso de las iteraciones del algo -


ritmo del simplex es presentar el proceso iterativo en forma de tab la o cuadro,
denominado tabla del simplcx. Esta tabla es una manera simplificada de escri-
bir el sistema de ecuaciones y la función objetivo en cada iteración, junto con
la información necesaria para desarrollar los criterios de entrada, salida y fina-
lización del algoritmo. La tabla puede presentarse de diferentes modos. Uno
de los más habituales se muestra en la tabla 2. 1.
En la primera fila se escriben los coeficientes originales de las variables en
la función objetivo. La seg unda fila incluye los nombres de todas las variab les
del problema. La tercera fila es la fila de la funei 6n objetivo. En ella se pone la
expresión de z en función de las variables no básicas. Por tanto incluye los coe-
ficientes (Zj -ej) en las columnas correspondientes a las variables no básicas
y un cero en las columnas correspondientes a las variables básic as. El valor ac-
tual de la funci ón objetivo i se pone en esta fila en la columna correspondiente
a los valores dcl programa. El resto de la fi las corresponden a cada una de las
ecuaciones del sistema explicito y vienen por ello indicadas por las variables
que están en la base en la iteración actual. Las fi las son pues de tal modo q ue
debajo del nombre de cada una de las variables se incl uye una columna con los
coeficientes de dicha variable en las ecuaciones del sistema explícito de cada
iteración. Obs érvese que cuando una variable está en la base esta colwnna es
un vector q ue tiene todas S lIS componentes cero salvo la correspondiente a la
fi la de la variable. como corresponde al hecho de q ue dicha variable está despe-
jada en el siste ma de ecuaciones. La tabla incl uye tres columnas más. En una
de el las, habitualmente lu primera, sc ponen los coe ficientes o riginales en la
fun ción objctivo de las var iables que están en la base en 1" iteraci ón bajo con-
side rac ión. En ot ra, q ue sude ser la seg unda, se ponen los nombres de d ichas
v~lri ablcs Y en tina tercera se ponen los valores actuales de las vari ables bási-
130 UN IDA D DID ÁCTI CA 2 Algoritmo s de programación lineal

cas, es decir, los valores del programa básico correspondiente o lado derecho
de las restricciones. En ocasiones se añade una columna adicional en la que
se ponen los cocientes entre la columna de valores de las variables básicas y
los correspondientes elementos de la columna de la variable entrante, supuesto
que éstos últimos son positivos; estos cocientes son necesarios para el criterio
de salida del simplex. Esta disposición admite diversas variantes. En ocasiones
sólo se escriben los coeficientes originales de la función obj etivo en la tabla
inicial. También la fi la correspondiente a la [unción objetivo puede colocarse
en último lugar. Incluso, en lugar de los coefic ientes Zj - Cj pueden colocarse
sus opuestos Cj - - Zj . Asimismo, la columna dc los valores dc las variables de
la base puede ponerse a la derecha de la tabla.
EJEMPLO 2.4 Vamos a encontrar la so lución óptima del siguiente prob lema de pro~
gramaeión lineal medi ante el algo ritmo del simplex.

Minimizar z =- - 107x4- Xs - 2x6


sujeto a
3x, + 14x4 + x, x, - 7
x, 1- tn" + i xs 2x, 5
x, -t 3x, - O

Si d ividimos la prime ra ecuaci ón por 3 ya tenemos el sistema bajo la forma explicita


y disponemos de una hase JI = (a l a 2l13) formada por las tres primeras columnas de
la matriz. Como podemos observar esta base LOS una base canónica ya que B es una
matriz identidad. La tabla inicial del simplcx es

Tabla inicial
O O O - 107 - 1 -2
x, x, X3 x, Xj x,
z (J O O O 107 1 2
O x, 7/3 1 O O t4/ 3 1/3 - 1/ 3
O x, 5 O 1 O 16 1/ 2 -2
O X3 O O O 1 3 O O

La info rmacióu recog ida en la labia nos d ice cuáles son las variables básicas, x l . X2
y ."3, los va lores del progmmu b ásico, Xl = 7/ 3• .t 2 = 5, Xl =
0, .1'4 = O, .'fs = O Y
}¡:, = O Y el valor de a en d icho programa básico z = o . Co menzam os la ejec uc ión
del algo ritmo de acuerdo con el esquema del apartado 2. 1.3. 1. El cálculo de la ma triz
=
y 0 - 1N es elemental puesto que la ma triz 8 es la identidad y po r consiguiente
r = N, es decir, para escribir la matriz Y en la tabla simplemente tenemos que po ncr
los m is mos número s que fi guran en el sistema origina l. Calculamos ahora los z j - e j .
Para ello es (u il poner el vector eH en la primera co lumna de la tabla. Asl, Z j se calcula
fácilmente a l multiplicar cscalar mcntc este vector por las columnus y J para cada j E J .
En este caso J = 4,5 ,6 y entonces

z, = e H y, ~ (0,0, 0) t 4136/ 3 ) = 0
(
El algoritmo del simplcx 131

1/ 3 )
z, =t! y, = (0, 0, 0) I /~ = O
(

- 1/3 )
H
Zo - c Yo = (0, 0,0) -~ - O
(
Entonces:

.. -c,~ 0 -(- 107) = 107 z, -c, = O- ( - I ) =1

Examinamos ahora Zj - ej para j =- 4,5, 6. Observamos que existen valores positivos,


en conc reto, los tres valores. Examinamos entonces las columnas y j correspondientes

-113) <
a dichos valores positivos. Vemos que la columna yg =
( ~2 Ono tiene valores

estrictamente positivos. Estamos en tonce s en la si tuación que hemos denominarlo Paso


5.1. Podemos entonces concl uir que el problema es no acotado y no tiene solución
mínima fi nita.

EJEMPLO 2.5 Vamos a resolver el siguiente problema de programación lineal me-


diante el algoritmo del simplcx.

Minimizar z = -28x4 - xs - 2xó


sujeto a
14 I 1 7
x, I - x,
3
C - x,
3
+ -3 Xo - -3
I
X2 1- 16x4 + -2 x, 2xo - 5

Xl + 3x, - O

La tabla inicia l se calcula de manera aná loga al ejemplo anterior.

Tabl a inicial
O O O - 28 - 1 - 2
x, X2 x, x, x, Xo
z O O O O 28 1 2
O x, 7/3 1 O O 14/ 3 113 1/3
O X2 5 O 1 O 16 112 - 2
O x, O O O 1
0 O O

gxaminamos los coeficientes Z j - Cj para las variables fuera de la base. Los val ores
son Z4 - C4 = 28 , zs - es = I Y Z6 - Có -= 2. Entonces J I = {4.5, 6} Y las variablcs xa,
Xs Y.1:6 son candidatas 3 entrar en la base. Seleccionamos la variable entrante mediante
el criterio de entrad a del simp lex. Para ello hay que calcular

I z,-c, I ~ Máx {I Z¡ - Cj I j E J .} = Máx {28,I,2} ~ 28 ~ Z'-<4


El máximo se alcanza para el índ ice j --: 4. por lo que la variable entrante es la variab le
X4 . Determinamos a continuaci ón la variable saliente. Para ello utilizamos el criterio
132 UNIDAD IJIDÁCTICA 2 Algoritmos de programación lineal

de salida. Ello exige ca lcular los coc ien tes entre los elementos de la columna en que
fi guran los valo res de las variables que están en la base y los elementos de la co lumna
de la variable entrante. restring iendo el cá lculo a los elementos de esta última columna
que son es trictamente positivos. L, variable sa liente será aquella para la que se obt enga
el cociente mínimo. Tenemos

Mín{ 14/7/313 ' ~16' 3O} _-_o


por lo que la variable saliente es la variablcx j en cuyo índice se alcanza el mínimo.
Realizamos a continuación la operación de pivctajc, ca mbiando en la base la var iable
Xl por la variable .l'1 Y volviendo a calcular los ele mentos de la t nbln median le las
fórmulas de cambio de hase. 2.20 y 2.2 1. El pivot e es el elemento Y ) -l señalado con
un circulo en la labia. 1.0 habitual es comenzar por la fi la del pivote pues se ca lcula
fá cilmente sin más que dividir lodos sus ele men tos por el pivote. Pura calcular el resto
de las fil as recu rrimos a la reg la nemotécn ica de la página 128. Los resultados se
presenta n en la tabla siguiente:

Iteraci ón 1
x, x, x, x, x, Xó

z O O O 28/3 O 1 2
O x, 713 1 O - 14/ 9 O I!J @
O x, 5 O 1 -16/3 O 1/ 2 - 2
-28 x, O 6 O 1/3 1 O O

Examinamos de nuevo la fil a de la funci ón objetivo. Existen Z j - Cj positivos, en con-


creto, Zs - es = 1, z(, - ce = 2. Las columnas correspondientes no son menores II
iguales que cero. Entonces se puede mejorar la función objetivo. La variable entrante
se determina por e l criterio delm áximo, po r lo q ue entra en la base x 6 . La variable sa-
liente se det ermina por el criterio del mínimo coc iente entre los valores positivos de la
co lumna de Xl, . En este caso sólo hay una variable cand idata a sa lir de la base que es la
var iable XI . El pivote es 1 1(, = 1/ 3. Se procede al cambio dc base y a la act ualización
de la tabla. El resultado es el siguiente:

Iteración 2: tabla óptima


x, X2 x, x, x, X6

Z - 14 - 6 O O O -1 O
-2 X6 7 3 O - 14 / 3 O I I
O x, 19 6 1 - 44/ 3 O 5/2 O
-28 x, O O O 1/3 1 O ()

Al examinar ahora la fila de los Z j - ej encon tramos que todo s son menores o ig uales
que cero. Entonces hemos llegado a la situación denominada Paso 4. 1. El programa
actual es u n programa óptimo . Los valores de las variables y la función obj etivo son:

xr = 0, x2 = 19, Xl - O, X4 = O, xs =O, x6 =7, z = - 14


El algoritmo del simplcx 133

Ex isten programas óptimos a lternativos porq ue z ] - el = O. Podemos hacer entrar en


la base a la variable X3 . La variable sa liente será la variable X4. Al actualizar la tabla
queda:

Tabla óptima alternativa


x, x, Xl X4 x, x.
z - 14 -6 O O O - 1 O
x. 7 3 O O 14 1 1
x, 19 6 1 O 44 5/2 O
X, O O O 1 3 O O

El programa básico de la tabla es:

XI =O, .1:2 =19, xJ =O, X4 ~O. xs =O, x6 =7, z = -1 4

Este punto también es un punto extremo de la región factible. Cualquier combinación


lineal convexa de este punto y el obtenido anteriormente será una solución ópti ma del
problema.

2.1.4 Programa inicial de base


La ap licación del algoritmo del s implcx exige conocer un programa bás ico
inicial. En algunos casos es sencillo encontrar dicho programa. Por ejemplo,
cuando todas las restricciones son del tipo ' menor o igual' y lodos los ele-
mentos del vector de términos independi entes son no negativos, se encuentra
fác ilmente un progr ama básico igualan do las var iables de hol gura al ténnino
independiente de su ecuación. No obsta nte, el caso general puede no se r tan
s imple. En un problema real, puede ocurri r que las restricciones sean incom-
patibles, debido a las exigencias del problem a, errores en los datos, etc., o
siendo compatib les no es fáci l determinar a prim era vista un program a básico
de partida. Esto es tá re lacionado co n la hipótesis que se ha hecho en los desa-
rrollos teóricos de que la matriz del sistema era de rango m y por tanto contenía
una submau iz m X m de rango máximo. Es ahora el momento de abandonar es-
la h ipótesis y analizar el problema general. Puede presentarse dos situaciones:
o bien las res tricci on es del problem a son incompatibles, con lo que la regi ón
factible es vacía, o bien existe algún punto que verifiq ue todas las rcstriccio-
ncs. en cuyo caso, según el teorema fundamenta l de la programación lineal
ex is tirá algú n vé rtice factible. Veremos cómo la aplicación del algoritmo del
s hu plcx es capaz de detectar qu é s ituaci ón correspo nde a un problema dado
y proporcionar un programa bás ico inicial factible o. alt ernat ivamente. decidir
que el problema no tiene so luc iones fact ibles.

2.1.4.1 Base artifici al


La idea s ubyacente en el método de la base artificial es muy simple: s i no
se dispone a primera vista de un programa básico inicial factible se crea arti-
134 UN IDA D D ID ÁCTI C A 2 A lgoritmos dc programaci ón lincal

flcialmente y luego se manipula convenientemente para llegar a un programa


básico del problema dado . Para ello hay que realizar los pasos sig uientes:

a) Poner el problema bajo la fonna estándar.

b) Multiplicar, si es necesario, alguna de las ecuaciones por - 1 de modo


que todos los elementos del vector del lado derecho sean no negativos
(h > O).
e) Añadir a la matriz A el número necesario y suficiente de vectores co-
IUll1 n;1 unidad para cambiarla en una matriz aumentada ..t' que contenga
una sulnnarr¡z unidad de orden 111 ( (" ) . El número máxi mo de columnas
a añad ir será "', y a menudo será inferior .1m, en part icu lar cuando ha
sido necesario introd ucir variables de holgura para ponerlo bajo 1:1 fonna
estándar.

Veamos qué efecto producen estas operaciones en el siste ma. Supongamos


q ue para poner el sistema en la forma estándar ha sido preci so introducir 111 - P
variables de holgura afectadas con signo positivo. es dec ir. las variab les nece-
sa rias para converti r una desigualdad del tipo menor o ig ual en una igualdad
son 111 - P y, sin pérd ida de gene ralidad. Vóll110S a supo ner q ue están en las
111 - P últimas ecuaciones . Previamente hemos convertido todos los /, del lado
derecho en no negat ivos. El sistema puede escribirse de la fonna:


L. a ijxj = b, i = l , .. . , p
j ~ m - pl l


Xi _p + L. u ijXj h¡ i =p +l , . . .•m
j =m -pi 1
con b¡ > O

Las variables XI ,Xl • . • • ,Xm _ p son las variab les de ho lgura. A fin de obtener una
matriz un idad de dimensión m se añaden p vectores unidad a1 sistema. cadn
uno de ellos asoc iado a una variab le xl , ~ .... . x:.
que se llamaran var;~l b/cs
artificiales. El sistema queda:


xf +
j
L
m- p i 1
a ijxj - h, i = l , .. . ,p


Xi _ p +
j
L
m -p + 1
a ¡jXj - h, i =p +l, .. .•m
co n h, > O

Sea A' la matri z original del sistema en forma can ónica, o sea antes de intro-
ducir las variables de holgura
El algoritmo del simplex 135

e I " la matriz identidad de orden m


I () ••• O
O I O
T" = •

O O I Mxm

Entonces, la matriz Aa = (/'" A1


se denomina matriz aumentada y el vector
x? = (xI, ... ,~)I se llama vector de variables eniticieíes. Utilizamos también
las notaciones x = (XI "" ,xp,xp-t l. " . • x"y
para designar al vector que inclu-
ye las variables originales junto con las variables de holgura y, de forma usual,
b = (b¡, ... •hm )' es el vector de los términos dcllado derecho de las restriccio-
nes. Podemos reescribir el sistema de restricciones en forma matricial como

X',x > O
La matriz AO contiene, eviden temente, una submatriz de rango m. por lo que ya
se cumple la hipótesis sobre la matriz del sistema que se utilizó en los apartados
anteriores al hacer el desarrollo teórico de l algoritmo del simplcx. Además, la
solución evidente

.t: = bl • . . . X; = bp • •t"J = bp + 1• •• • xm - p = bm
constituye un programa inicial de base. El prob lema original queda transfor-
mado en un nuevo problema denominarlo problema aum entado.
PROBLEMA Definición 2.3. Se denomina problema aumentado al siguiente problem a:
AUMENTADO
Minimizar z = ex

sujeto a

.1",., > O

Hemos conseguido form ular un problema que verifica todas las hipótesis que
hab íamos exigido en el método de l simplex. Resta por ver cómo están relacio-
nadas las soluciones de este problema con las soluciones del problema original.
La relación es simp le y se expresa a continuación.

proposición 2.2 Un programa del problema aumentado ( ~ ) es un


programa del problema original siempre y cuando JI = O.
136 UNIDAD DIlJ ÁCTICA 2 Algoritmos de programaci ón lineal

Dem ostración
Consecuencia inmediata de las definiciones.

Se trata entonces de idear al gún procedimiento que nos cOIu h IZC.¡ a un pro·
grama del problema numcumdo en el cual todas las variables artifi ciales lomen
el va lor cero. En ese momento tend remos un programa del probl ema original y
pod emos abandonar las variables artificiales. Estudiaremos dos métodos para
conseguir esto: el método de las penalidades y el método de las dos fases.

2.1.4.2 El método de las penalidades


El método de las penalidades parte de la consideración de que ninguna
variable art ificial puede tener un valor estrictamente positivo en el óptimo.
ya que entonces no seria una solución del problema origina l; si el objetivo
es mini mizar z entonces se pueden introducir las variables art ifi c iales en la
func ión del objetivo afectadas de un coeficiente de co ste muy grande; de esta
forma, al busca r el mínimo el algori tmo del sim plcx tenderá a ex pulsar de 1<1
base a las variables art ificia les. Formalmente, esto se consigue ca mbiando la
función objetivo original por la siguiente:

p •
Minimizar z= M L X! + L CjXj
i=1 j=1

en donde M es una constante positiva arbitrariamente grande, es decir. superior


en valor absoluto a cualquier númcro con el cual se compare en el trascurso de
los cálculos. Dc esta [anTIa el nuevo problema que considera el método es:
PROBLEMA Definición 2.4 . Se llama problema penalizad o dcl método dc las penali-
PENAL IZADO dades al problema
p
Minimizar z=MIX! +cx
sujeto a
.-1
A
U
( ~ ) b
X'. x > O

Hay que hacer notar que en el caso de q ue el problema origi nal fuese un
problema de maximlsaci ón, entonces habría que introducir las variables artifi-
ciales en la función objetivo multiplicadas por un coeficiente - M. donde M es
un número po sitivo arbitrariamente grande, siempre mayor quc cualquier otro
número con el cual se le compare en el transcurso de los cálculos del algoritmo
dcl simplcx. Por esta razón, el método se llama también m étodo de la gran M.
Los resultados sig uientes son evidentes:
El algoritmo del simplex 137

a) Si uno de los problemas, original o awnentado, no tiene ópt imo finito


entonces el otro tampoco lo tiene.

b) Todo programa del problema original es también un programa del pro-


blema aumentado, pues basta pcner r" O. =
e) Si exi ste un programa del problema original entonces el programa ópti-
mo del problema aumentado no puede contener variables arti ficiales en
la base con valor estrictamente positivo.

d) Todo programa del prob lema aumentado que no contenga variables arti-
ficiales estrictamen te posi tivas es un programa del problema original.

Según los resultados anteriores. podemos aplicar el algoritmo del simplex al


problema aumentado hasta su fi na lización. Puesto qu e lo qu e se pretende es
expulsar a las variables artificiales de la base, una estrategi a que ahorrará ite-
raciones consiste en tencr la precaución de que en el momento en que una
variable artificial sale de la base se la excluye del criterio de entrada en las
iteraciones posteriores, impidiendo que vuelva a formar parte de la base. Te ~
niendo en cuenta que, por construcción, el prob lema aumentado es siempre
factible, las situacio nes que pueden presentarse son:

l . El problema aumentado es no acotado con óptimo no fini to. Ento nces el


problema inicial es también no acotado con óptimo no finito .

2. Se ha llegado al óptimo del problema aumen tado. Pueden ocurrir dos


casos:

a) Si la base óptima del problema aumentado tiene variables artifi-


ciales no nulas, entonces el problema original es no factible. El
sistema de restricciones del problema original es incompatible.
b ) Si la base óptima del problema aumentado no cont iene variables
artificiales estrictamente positi vas, entonces se dispone de un pro-
grama básico inicial para el problema original. Aquí también se
pueden distinguir dos posibles situaciones:
t ) La base no contiene variables arti ficiales: se dispone enton-
ces de un programa bás ico del problema original. Se continúa
aplicando el algoritmo del simplcx, al problema original has-
ta su finalización. Las variables artificiales pueden descartarse
en esta etapa .
2) La base contiene variables artificia les a nivel nulo. Se dispo-
nc en tonces de un programa básico del problema origina l con
menos de lit variables estrictamente positivas. Reco rdando las
fórmulas de Iransfonnaeiún. si se desea descartar las variables
artific iales prcscmes en la hase pueden sustituirse por varia-
bles no básicas, tales que tengan un coeficiente no nulo en la
138 UN IDAD DmÁCT ICA 2 Algoritmos dc programación lineal

ecuación de la variable artificial. Esto simplemente equivale a


despejar una variable no básica en la ecuación de la variable
artific ial presente en 1<1 base y sustituirla en las demás ecuacio-
nes. Como el valor de la variable artificial es nulo, la variable
que se intercambia con ella entrará también en la base con va-
lor nulo y el programa inicial de que se dispone seguirá siendo
el mismo.

EJEM PLO 2.6 Cons ide remos el siguiente p roblema de programación lineal:

Minimizar Z = Xl + 2x2; x4+xs-5x6


sujeto a
6x I 2x, + Xl x, + x, -l 2x. • 4
2x,
JXI
!X2
x, 1-
Xl
2xl
\
\
X4 xs
4x, -] i XS + t X6 ~
J
2

A primera vista no se encuentra una base por 10 cual se crea artificialmente introdu-
ciendo las variablesxj • .xi y xj. El problema penalizado es:

Minimizar Z = XI +a 2 f ..\"4 +Xs - 5X6 -i- MX¡ + M.ti ·t M.xj


sujeto a
("'1 - 2x, +x, -x, cx, ~ 2x. cX¡ 4
2x, - IX2 -x, C - ¡x, X, +~ ~

J
JXI -txz c2x, +4X4 -1 lXj +x. ü~ - 2
XI. X2. X). X4 . xs. 4. XI' xj, xl > O

Apl icamos ahora el algoritmo del simplcx. La tabl a inicial es la siguiente:

Tabla ¡nici!!1
1 2 O I 5 M M M

z
,,
"
11M - 1
.Q

11M- 2
.Q X<

4M -1
"
2M - 1
',. ..: ..: 4
M ..:..;
'M
,• -, 'M
I I 1
3M .. 5 O
1
O
O
O
O
-1 /3 - 1 1/2
M
M 4 2
0 -1 z ,1
1/2
O O
O
1
O
O
1

Las iteraciones son:

Ilcraci6n 1

,
'1
" " X<

1 " '. l/ ..: ..; .<';


¡ ~-\ _ J ~11 +~ ~ -1 -~ t
", ,
:.l/M- ~
O J_)A1 1 O

".

"
I
O -, -,
, e"
M 1
M ..; , /3 - 7/ 3
" O
- 213 1 - 213
1 21) - 1/ 3 2/,
'13
.jI ]
1/ '
I / t, "
'1
"' O O
"' -
El algoritmo del simplcx 139

lteraci6n 2
X, x, X. x1 x'1
M
2


,"
O
XI

O
O
O
O 3
Xl

-3M- ~1 -9M-1'
X4

-9
1
J
O
,
J
O
O
¡
-M + 7
O
-3M "
-2
-!f
2
1
x,
XI
5
,
7
O
I
1
O
-7
,s
-5
-,1 ¡, -2
1
l
O
O
3
1
-2
,
1

La única variabl e artifi cial que permanece en la base tiene valor nulo. Adem ás
todos los coeficientes de los términos en M de la primera fila son negativos o nulos.
Así pues hemos termi nado la primera etapa. El programa

X2 = 5;

es un programa (degenerado} del problema original. Sin embargo, nu es un progra ma


óptimo puesto que aun existen (z j - Cj ) positivos, en partic ular Z s - es = ':1 Zfo - Cl> = !
j . Pasemos a la segunda etapa. Continuarnos con la aplicación del algoritmo; co mo
Y6 < O deducimos qu e no existe progra ma minimo fin ito para el problema aumentado
y por tanto tampoco para el original.
En Wl3 situación como ésta es posible. si se quiere, eliminar la variable artificial de
la base, introduciendo en su lugar otra cualquiera con pivote no nulo, incluso negativo.
Esto se deduce 1I..: la fórmula ~ = X.r - Xl Y.r.t ya que si Xl = O, entonces ~ = X.r. Por
Ytk
ejemplo, podemos introducir en la base la x) en lugar de la x110 cual nos daria la tabla:

Iteración 3

"! ..¡ "!


" " 'l
'" " "
2 37/3 (1 11 (1 r07/ 3 1/3 2/3 M ~ - M+7 - M I 'J
O
2 " O
5
(1
(1
11
1
1
11
3
16
O
1/ 2
O
-2
- 1/3
7/3
O
, 2/3
' /3
1 "
XI 7/3 1 O (1 14/3 1/ 3 - 1/3 5/9 1 7/9

Si se desea. a part ir de ahora se pueden eliminar las tres ultimas colum nas ya que
no SOI1 necesarias. Al seg uir aplicando el algoritmo vemos que Z6 - C6 = ~ > O e

y" = ( ~2 ) < O por In cual no existe programa óptimo fin ito.


- \ /3

2.1.4 .3 El método de las dos fases


El método de las penalidades puede presentar dos inconvenientes cuando
se programa en un ordenador. Dado que, antes de comenzar las iteraciones,
hay que introducir un número M concreto. si se util iza un número demasiado
pequeño puede ocurrir que en el transcurso de las comparaciones que hace
el algoritmo resulte ser menor que otro de los números con el que haya que
compararlo, posiblemente conduciendo a secuencias erróneas; por otra parte,
si se uti liza un número M demasiado grande, en el transcurso de las iteraciones
140 UN IDA D DIDÁCTI CA 2 Algoritmos de programación linea l

pueden producirse errores de redondeo que, al acumularse, hagan inexacta la


so lución obte nida.
Ot ro método que se puede utili zar para eliminar las variables artificiales de
la base es el m étodo ác las do,,, fhscs. Este método es el método que se util iza
normal mente cuando se programa el algoritmo del simplcx en un ordenador ya
que evita tener que asignar a priori un número M arbitrariamente grande, como
en el método de las penalidades. Corno su nombre indica el método resuelve
el problema en dos fases :

Fase Determinar si el problema original es factib le y en caso afirmativo,


í :

calcular un programa inicial de base.

Fase 2: A partir del programa ca lculado en la fase anterior encontrar el pro ~


grama óptimo.

Veamos cómo se hace esto en la práctica.

Fase 1

Independientemente de que se trate de un problema de maximizar o mini-


mizar, en la fase 1 la función objetivo se reemplaza por una función aux iliar
que sea la suma de las variables artificiales y se mi nimiza esta función. El
problema que se considera se llama problema auxiliar.
PROBLEMA Definición 2.5 . El problema auxiliar del método de las dos [ases es
AUXILI AR DEL
MÉTODO DE LAS Minimizar ' ='i.;lxf
DOS FASES sujeto a

A" C~ ) - b

.\ .(1 , .r > O

Se verifica que:

1) Todo programa básico del problema original es también un programa


básico del problema auxilia r con x' = O. Por tanto si el problema origi-
nal es factible, lo cual implica que existe al menos un programa básico,
el mínimo del probl ema auxiliar vale necesariamente cero , ya que por
definición' > O.

2) Si se dispone de un progra ma del problema aux iliar en el cual ~ =


O,
o equivalentemente, en el cual todas las variables artificiales son nulas,
entonces se dispone de un programa para el problema original.

La primera fase consiste pues en reso lver el problema auxiliar hasta que se
llegue a u na de las situaciones siguientes:
El algo ritmo del simplex 141

a) t; = O Y la base actual no contiene variables artificia les: el programa


b ásico actual es un programa básico para cl problema original. Se pasa
a la segunda fase, estado a).

b) t; = O Y la base actual contiene variables artificiales (necesariamente


nu las): el programa actual es un programa, no necesariamente de base,
del problema original. Se pasa a la segunda fase. estado b).

e) t; > O y mínimo: el problema original no tiene soluciones factibles. Se


finaliza la aplicación del algoritmo.

Fase 2

En esta fase se vuelve a tomar la función objetivo original


n
Maximizar Z = I Cj X j
j -I

Y se utiliza la tabla del simplcx tal como se ha obtenido al final de la primera


fase . La parte de la tabla correspondiente al sistema de ecuaciones se utiliza tal
como está. Si no se consideran necesarias la" variahles artificiales para análisis
posteriores pueden eliminarse en las iteraciones siguie ntes. Utilizando los vec-
tores del tabla Yj y considerando lo s coeficientes básicos Gr de la func ión z, se
recalculan los términos Zj - Cj correspondientes a la función objetivo original
z. En las iteraciones posteriores del algoritmo las decisiones se toman en base
a esta nueva fila. En ocasiones, puede interesar simultanear desde el comienzo
los cálculos relativos a las funciones t; y z de modo que al final de la primera
fase ya se d isponga de los coeficientes Zj - ej . A continuación se prosigue la
aplicación del algoritmo, ten iendo en cuenta lo siguiente:
a) Si al final de la primera fase se ha llegado a la situación denotada con
a), se aplica el algoritmo al conjunto de vectores columna de la matriz A
hasta la obtención del óptimo (finito o infinito).

b) Si al final de la primera fase se ha llegado a la situación denotada co n


b) se aplica el algoritmo a u n problema restringido que se obtiene al
añadir al problema original 1;IS restricciones adicionales .lj = O para j
ta l que t;¡ - cj < Oal fi nal de la fase l . donde ,~ es cero o uno según que
1:1 variable sea origi nal o art ifi cial, mientras ~ue e;
tiene el significado
habitual. Es dec ir, en las iteraciones siguientes no se consideran nunca
candidatas a en trar en la base aquellas variables que, siendo no básica s
al fi nal de la pr imera fase, son tales que el t érmino " - ~ relativo a la
, .. r . J
11IIl C I0 l1 ~ es cstnctamcntc negati vo, o sea nunca se pcrmitirú entrar en
la base ¡I 111m variable tnl que allinal de la primera fase tenga un n úme ro
estrictame nte negativo en la fi la de la tabla del sim plex correspondiente
a la funci ón auxiliar t; . El algoritmo se detiene cuando se llega al óptimo
[fi nito o infinito).
142 UNIDAD DIDÁ CTI CA 2 Algoritmos de programación lineal

La utiliza ci ón del problema restringido para las itcracioru..'S siguientes gnranti-


1'..3 que ninguna variable artificial presen te en la base con un valor nulo pase a
tomar un valor positivo, lo q ue significaría haber abandonado la región fa ctib le
del problema orig inal. De este modo (mios los programas obtenidos en las itc-
rac iones posteriores son programas del problema ori gina l. En e fecto, la forma
expl icita 2. 1 J de la rund ún nuxil inr al fi nal dc la primen¡ fase es

¿ (l -q·f+ ¿(O- t;¡ )Xj = t; - t; (2.22)


«» iU

domJeJ' es el conj unto de índices de las variables artificiales no básicas. En la


expresión 2.22 lo s términos ( 1- ~ ) . (O- ' 1) son todos positivos o 11111 o~. por-
que estamos en un programa óptimo de la función auxiliar ' . Ad emás ~ O. =
puesto que estamos al final de la etapa I estado b). Ahora bien, si en las ite-
raciones siguientes no se permi te que entre en la hase. y por 1<11110 tomc un
val or positivo , una variab le artific ial fuera de la hase :'f, i E J" ni tampoco mm
variable fuera de la hase Xj . j E J para las cua les los coeficicntes e n la expre-
sión 2.22 son positivos. oc urrirá que el valor de S seguirá siempre siendo nulo
para cua lq uier programa básico que se cons ide re en las iteraciones posteriores.
Esto lleva consigo que todas las variab les artifi ciales seguirán siendo nul as y
por tan to d ichos prog ramas básicos poste rio res serán efectivamente program as
del prob lema origi na l. Por otra parte. en un programa cualquiera .r del proble-
ma origina l no puede haber valores .'9 , donde j E J Y t:11 que el coeficiente
(O- ~j ) de la ex presión 2.22 es pos itivo, que sean positivos porque ello im-
plicada que S > O con lo cual no tedas la variables art if iciales se rian nulas, en
contrad icc ión con que .r es un programa del problema o rig inal. Podemos pues
afi rmar que todo programa del problema origi nal es tam bién un progra ma del
problema restringido. por lo c ual podemos co ncl uir que un programa óptimo
del problema restringido será también un programa óptimo del probl ema ori-
ginal.
EJEMPLO 2.7 Vamos a resolver el siguiente problema de programación lineal por
el método de las dos fases.
Maximizar Z = 3xI + 2x2 t· X3 + X4 + SX5
sujeto a
3x , + Xl X, - 3
X, + x, - 3X4 - - 12
X, -i Xl I- x, '- 4
XI, X2, X), X4 , Xs > O
Introducimos las variabl es artifi ciales y co nsideramos el problema auxiliar.

Minimizar
suj eto a
3x, +Xl - 3
XI t- X2 +x; ~ -12
X2 + X3 .¡.tj ~ 4
.t1, ~ ,xj > O
El algoritmo del simplex 143
- - --
PR IMERA FASE:
Las tablas del simpl ex de las iteraciones de la primera fase son:

labia inicial
O O O O O 1 1 I
x, x, X, X4 X, xf x'i x'j
í 19 2 - 1 2 3 O O O O
I .r¡ 3 3 O I O - 1 I O O
I
I
4
x'j
12
4
I
O
- 1
I
O
I
0O O
I
O
O
I
O
O
1

Iteración I
X, x, X, X4 x, .r¡ 4 .r¡
í 7 3 I 2 O O O - 1 O
xf 3
X4 4
0
- 1/ 3 - 1/ 3
O 1
O
O
1
- 1
O
I
O
O
113
O
O
x'j 4 O 1 I O I O O 1

Iteraci ón 2
x, x, X, X4 X, .r¡ 4 x'j
í 4 O I I O I - 1 - 1 O
x, I I O 1/ 3 O - 1/ 3 1/3 O O
X4 13 /3 O - 1/3 1/9 1 - 1/ 9 1/9 113 O
x'í 4 O I 1 O
CD O O 1

Iteración 3
x, x, x, .... x, xf x'i x'j
í O O O O O O - 1 - 1 -1
x, 7/ 3 1 1/ 3 2/3 O O 1/3 O 1/3
X4 43 /9 O - 2/ 9 2/9 I O 1/9 113 1/9
x, 4 O I 1 O 1 O O 1

Puesto que S = Ohemos llegado al final de la primera fase. Como no hay ninguna
variable artificia l en la base estamos en el caso a). Disponemos de un programa básico
del problema original.
S EGUNDA FAS/i:
Como ya no necesitamos las columnas correspondientes a las variables artificiales
las excluimosde los cálculos. Tenemos que calcular los coeficientes Z j - ej correspon-
dientes a la función objetivo original. Esta función es z = 3x I + 2.r2 + x} ·1 x,. + 5x:¡
y se trata de un problema de maximizaci ón, Podemos considerar la función - z _
- 3 x l - a 2 - X ) - .(4 - SX5 y plantear un problema de minimización. La tabla es:
144 UNIDAD DIDÁ CTICA 2 Algoritmos de programación lineal

Iteración 4
-3 -2 -1 -1 · ·5
X, x, x) x, x,
e
x,
- 2'1.(1/ 9
7/3
O - 34/ 9 - 56 / 9 O O
-3 1 1/3 2/3 O O
- 1 x, 4319 O - 219 2/ 9 I O
·5 x, 4 O 1 1 O 1
-
Puesto que todos los coeficientes Z j son menores o iguales que cero, la solu-
- ej
ción actual es la solución óptima. Los valores de la variables son x I = 7 /3, X2 =- O.
XJ = O, x. -= 43 /9, X5 =-- 4 que proporcionan un valor - z =- ~286 /9 o 10 que es lo
mismo z = 286 /9 que es el máx imo buscado.

2.1.5 Converg encia de a lgoritmo del simplex


2.1.5.1 Degeneración y ciclaje
El número de programas básicos de un problema de programación lineal es
finito. El algoritmo del simplex es un procedimiento que explora el conjunto de
programas básicos obteniendo en cada iteración un programa básico '011 menos
tan bueno como el anterior, en particular en un problema de minimizaci ón
Z < z. Si cada programa fuese estrictamente mej or que el precedente (j < s),
se podría afirmar que todas las bases aparecerían como m ucho una sola vez en
la secuenc ia dc iteraciones y, por consiguiente, la base óptima se alcanzarla en
un número fi nito de iteraciones, o bien se llegarla a tener la evidencia de que
no existe programa óptimo fi nito. La situación real no es exactamente así pues,
en ocasiones, un programa de base es degenerado y es posible que en dos
iteraciones sucesivas el valor de la funci ón objetivo no mejore estrictamente •

DEGENER AC iÓN Definición 2.6. Se dice que un programa básico es degenerado cuando los
valores dc una o más variables básicas son cero.

Proposición 2.3 Una condición necesaria y suficiente para qu e una va-


riable básica se haga nula en el transcurso de una iteración es que entre en
la base en sustitución de una que ya era nula o que el mínimo calculado
por el criterio de salida del símptcx no sea único.

Demostración
Trivial.

C uando hay degeneración la función del obj etivo puede tornar el mismo
valor en dos iterac iones sucesivas. En particular, supongamos que en una itera-
=
ción dada a.t es el vector que entra en la base y sea -»* > O y Xl O. Entonces
El algoritmo del simple. 145

sale de la base el vector ot y el nuevo valor de z será:

z' = z- !!.-(ZI el) =Z


Ytt
El nuevo programa sigue siendo degenerado. Si esto ocurre durante varias ite-
raciones sucesivas, es posible encontrar una base ya obtenida anteriormente
y a partir de ella repetir indefinidamente la misma secuencia de bases. es de-
cir, puede ocurrir el fenómeno denominado cíe/aje del algoritmo del simplex.
Veamos uno de los ejemplos más conocidos en que se produce este hecho.
EJEMP LO 2.8

sujeto a
x, + fX4 - 8.rs - .16 1 9X7 = O
+ 2.14 - la s - ~X6 + 3.17 = o
XJ --/ .16 = 1
X, • .12, x) • .14. Xs. x(" .17 >o
Aplicamos el algoritmo del simplex de la forma habitual. Obtenemos la secuencia de
iter aciones siguiente:

Tabla inicial
O O O - 3/ 4 20 - 1/ 2 6
X, x, X, x, x, X6 x,
z O O O O 3/4 - 20 1/ 2 -6
O
O
x,
x,
O
O O
J O
1
O
O
8 1/2
-8
- 12
- 1
- 1/ 2
?
3
O X, 1 O O 1 O O 1 O

Iteración I
X, x, X, x, x, X, x,
z () -3 O O O 4 7/2 - 33
- 3/ 4 X4 () 4 O O 1 - 32 - 4 36
O x, O -2 1 O O
0O 3/2 -1 5
O X, 1 () O 1 O 1 O

Iteración 2
X, X, xJ x, x, X, x,
z O - 1 () () () () 2 - IX
- 3/ 4
20
X4
Xs
()

O
- 12
- 1/2
X
1/ 4
()

O
1
O
O
1
0 - X4
3/ X - 15/ 4
O X) 1 O () 1 O () 1 O
146 UN IDA D DIDÁCTICA 2 Algoritmos de programación lincal

Iteración 3
XI x, X, X, x, X6 x,
z O 2 - 3 O - 1/ 4 O O 3
- 1/ 2 x, O - 3/2 I O 1/ 8 O 1 - 21/2

20 x, O 1/ 16 - 1/ 8 O - 3/ 64 1 O
0 1~
O x, 1 3/2 - 1 - 1 - 1/ 8 O O 21/2

Iteración 4
XI X, X, x, x, X6 x,
z O 1 - 1 O 1/2 - 16 O O
- 1/2 X6 O 0) - 6 O 5/2 56 1 O
6 X, O 1/ 3 - 2/ 3 O - 1/ 4 16/ 3 O 1
O x, 1 -2 6 1 5/2 - 56 O O

Iteración 5
XI X, x, X4 X, X, X,

z O O 2 O 7/ 4 - 44 - 1/ 2 O
XI O 1 - 3 O -5/4 28 1/ 2 O
X, O O @ O 1/6 - 4 - 1/ 6 I
X, 1 O O 1 O O I O

Iteración 6

XI X, Xl x, x, X6 x,
Z O O O O 3/ 4 - 20 1/2 - 6
XI O 1 O O 1/4 - 8 - 1 9
x, O O 1 O 1/ 2 - 12 - 1/ 2 3
Xl I O O 1 O O 1 O

En esta iteración se ha obtenido la misma base que la de la tabla inicial. A partir


de aquí la aplicación del algoritmo repetirla la misma secuencia de bases sin detenerse
por lo que no lI egarfa a encontrar la solución óptima.

2.1.5.2 Regla lexicográfica para prevenir el ciciaje


La existencia de degeneración en la soluc ión básica no siempre neva con-
sigo el ciclaje. Por otra parte, experimentalmente se puede comprobar que el
ciclajc es poco frecuente. Sin embargo, desde el punto de vista te órico es un
probl ema interesante. Sólo si logra encontrarse algún procedimiento para evi-
tar e l cic1ajc podremos demostrar que el método del simplex converge. Existen
El algoritmo del simplex 147

varias regl as par pn.evenir


. el ciclajc. Un criterio simple es seleccionar arbitra-
riamente la variable saliente cuando se produce empate en el criterio de salida
del simplcx. Otra regla uti lizada con frecuen cia es la denominada regla lexi-
cográfica que conduce a la forma lexicográfica del algoritmo del simplcx y que
desarrollamos a continuación.
Consideremos el problema de programación lineal en la forma estándar.

Minimizar z = ex
suj eto a:
A. = b
. >0
siendo A una matriz m X n de rango m. Como el método del simplcx siempre
comienza por la matriz unidad como matriz bás ica, supongamos por simplifi-
car las notaciones que esta matriz inicial B =
1m. está formada por los m pri-
meras co lumnas de A. Para prevenir el ciclaje se aplica el método del simplcx
utilizando un criterio de salida modifi cado.

Criterio de salida modificado

Dada una solución básica factible con base B supongamos que la variable
no básica seleccionada para entrar (..'11 la base por el criterio de entrada es la
variable XA;, es decir;

El índice E de la variab le que debe salir se selecciona de la manera siguiente:

a) Calc ular:
Mínimo {y"X.l' I Ysk > O, sE l}
• Si este mínimo es único y se obtiene para s = l entonces hacer salir
de la base la variable Xi.
• En caso contrario, sea:

/1 ={ r E/ [ X'
Y,k =
M' { X'
In YSt I y,. > 0, so}}
b) Calcular ahora
'
M In {i',1
-
Y,k
, s E !) }
• Si ~stc mínimo es único y se alcanza para s = l , entonces hacer
salir de la base la variable Xi.
14M UNIDAD DIDÁCTICA 2 Algoritmos de programación lineal

• En caso contrario sea :

h ={r E/l I y"


Y rk
= Min {Y'I.
Ysk

e) Repetir el proceso an terior definiendo, en general, el conjunto ~ a partir


del I¡ -1 de la forma siguiente:

Ij = {r E: Ij _ t I Yr j-l
Y rk
= Mío { Ysj¡ .
Ysk
s(; IjI}}
El hecho de que B' sea de rango máximo implica que no puede tener dos
fi las proporcionales y por lo tanto los empates han de romperse a lo ma s
tardar después de hacer las operaciones anteriores (m + 1) veces. Por
tanto, este procedimiento proporciona un mínimo del criterio de salida
único.

Demostraremos que la aplicación de las reglas anteriores p reviene el ciclado, es


decir, al aplicar el algoritmo del simplcx no se repite ninguna base previamente
examinada.
EJEMPLO 2.9 Vamos a aplicar la regla lexicográfica al ejemplo 8

Tabla inicia l
O () () - 3/ 4 20 - 1/ 2 6
XI X, Xl x, x, X6 X7

Z O O O O 3/4 ·20 1/2 - (,


O XI O 1 O O 1/4 - 8 - 1 9

O X, O O I O @ - 12 - 1/ 2 3
O Xl 1 O O I () O 1 O

El criter io de salida es aho ra:

a) Min { T'I } = 0. Entoneesl¡ = {1,2} .

b) Mín { ly,t} = M ln { 1'1 } =-: 0. Bntonccs s e Z.

Iteració n I
O O () - 3/ 4 20 - 1/ 2 6
XI X, Xl x, x, X6 X7
Z () () - 3/ 2 O O -2 5/ 4 - 2 1/ 2
O .\:1 () 1 - 1/ 2 O O -2 - 3/ 4 15/2
3/4 x, O () 2 () 1 - 24 - 1 6
O Xl 1 O O 1 O O C0 O
El algoritmo del simplex 149

Iteración 2
x, x, X, X, X, X, X,
z - 5/ 4 O - 3 /2 - 5/ 4 O - 2 O - 2 1/ 2
.l , 3/4 I - 1/2 3/4 O -2 O 15 /2
X, 1 O 2 1 1 - ·24 O 6
X, 1 O O I O O I O

La tabla anterior contiene la solución óptima.

2.1.5.3 Forma lexicográfica del método del simplex


Vamos a demostrar que la regla dada en el apanado anterior sirve efectiva-
mente para prevenir el ciclaje. Para ello probaremos que la secuencia de bases
que se obtiene no se repite por lo que al haber un número finito se tiene garan-
tizada la convergencia del algoritmo. En la demostraci ón se utiliza el concepto
de vector lexicográficamente positivo que definimos a continuación.
VECTOR lEXI- Definición 2.7. Un vector se dice lexicográfi camente positivo (x >- O) si:
COGRÁFICAMENTE
1. Jil vector x no es el vector cero.
POSITIVO
2. La. primera. componente no nula de x es positiva.

Un vector es lex icográfi camente no negativo si x >- O o bien es el vcctor


cero.

EJEMPLO 2.10
• Los vectores (0,2, - 1,3), (2, 1,- 3, 1), (O,O, 1, - 1) son lexicográficamente po-
sitivos.
• Los vectores (- 1,1,2,3), (O,O,O, O), (0,0, - 2, 1) no son lexicográficamente po-
sitivos.

Teorema 2.4 Si se utiliza el criterio de salida modificado del aparta-


do 2. 1.5.2 cada una dc las tilas de la matriz m x (m + 1)

que se obtiene en el trascurso de las iteraciones del algoritmo del simplex,


es un vector lexicográficamente positivo.

Demostración
a) En la iteración de partida se tiene B = l , J!l = b > O. Por tanto en la ite-
ración original ~ada ~cclor de la matriz ti' ,B- I) = (b,J) >- O, es decir,
es un vector lexJcografi camcnlc positivo.
150 UNmAD DIDÁ CTI CA 2 Algoritmos dc programación lineal

b) Vamos .1 probar abom que si (:¡!I. B - 1) es lexicográficamente posr u-


vo por lilas en tonces (x"' .JI' - 1 ) también es lcxicográfi camcntc positivo.
siendo Ir la matriz deducida de la B por cambio de la columna {t por la
a k. es decir, los vectores saliente y entrante de las iteraciones del simplcx
y J!1' el programa de base asociado a 11. Consideremos las dos tablas
siguientes dclmétodo del simpl cx en donde por simplicidad se ha colo-
cado a la matriz unidad I original en las primeras columnas. de fonna
que ahí estará en cada momento la matriz inversa de la base actual.

XI Xj x~ XIII+! x. x.
z z ZI - el 'j ej ... z'" - c", Zt -Cl • •• z" -e"
Xj , Xj, Yil l • •• • •• • •• YJ... Yjl! • •• Y j¡n

• •
• • •• • • ••
x, x, Y>1 Y'j y,. • •• y,.
••
••• • ••

Xl Xl YlI Ylj
e YIA

• ••
Xj ... Xj", Yi",l Yjm] Yj.m ••• J'j . l • •• Yi. n

XI Xj • •• X. x•
t z- Xl (ZA;
y"
_q ) (ZI -ej) - ~; (Z.l; - Ci ) ... o (Zn-Clf )-~~ (Z~ - C,t )

XJo .. . ... .. . •
• o

• ... ...

X, .f~ !.L Y.•(
- y"
f!I.
Y .' ) - YIIY.1k


• ·.. ... ... •

Xl k
y"
.. . ! t.¡
y"
1

...
Xi'" ·.. o

Consideremos una fila típica de (J!'.B'l ). Será de la fonna:

[x, para '< C l -{l}

L~l .Ytl 0 ••• 0 YI"' ] para s= k


LYu Yu Yu
El algoritmo del simplex 151

Puesto que Ytt > O y la fi la l es lexicográficamente positiva antes de hacer el


pivotaje, se deduce que la fila k después del pivotajc también será lexicográfi-
camente positiva. Consideremos ahora una fila s G / - [ é}. Recordemos que
hemos llamado 1, ~ { r EI I Yrlt.
u. = Min
J
{ "'- IY,¡ > O}} .
Y~t

• Supongamos s rt 11·
• Consideremos el caso en que Ys1 < O. La fila s después del pivotaj c
viene dada por:
_ ,Ysl • . . . ,Y.fm) - Y'k
(Xs (_
- - Xt,Yt ]. · · · ,y (",
)
Ylk
Ahora bien, los vectores:

(X" ,Ysl, .. .'Y.I'IJ'I ) Y (X/ ,yi••.. . ,Yl".)


son lexicográficamente positivos por hipótesis y como .RI: < O,
Yti > O, entonces ~ < O; por tanto -;; > O. As! resulta que la
nueva fila s es el resultado de sumar dos vectores lexicográfica-
mente positivos con lo cual será lexicográficamente positivo.
• Consideremos el caso en que Y.vk > O. Como s no pertenece a JI
resulta que !L < ~. Entonces X,s > Xt ,u ya que Y-d: > O. As! pues
Ytl Yu ni
xJ - Xt fa > O. Por tanto la primera componente de la nueva fi la s
Ya
es positiva y el vector es lexicográficamente positivo.

• Supongamos s E J¡.
En este caso se tiene que Y.tk > O, X,s - Xl ;:' = O ya que es uno de los
índices en que se alcanza el mlnimo. De nuevo consideremos dos casos.

• s (/ h.
i'U < h!. por lo que Y,sl _ .w.YJk
Entonces YtI > O y de nuevo el vector
y.k Ytl
es lexicográficamente positivo.
• s (;. 12 ,
Aquí consideramos de nuevo dos casos, s E 1J 6 sr¡. 1).
Siguiendo de cste modo, al cabo de a 10 sumo ni + 1 p ' ISOS. se llega
a la conclusi ón de que el vector es lexicográficame nte positivo. Po r
tanto (xH' ,B' 1) >-- Opor fi las que es lo que teníamos que probar.

Utilizaremos el resultado del teorema 2.4 para probar la convergencia finita


del algoritmo del simplcx.
Proposició n 2.4 Se cumple que
152 UNIDAD DIDÁCTICA 2 Algoritmos dc programación lineal

Demostrac ión
Es claro que el vector

(CES- l b,c-"S- ' ) - (e-" Sr' b, cJ3' Sr') = z, - c,(_x"Y'''YU , . . . ,Ykm )


YIk
sin más que observar las primeras fi las de la tabla antes y después del pivotaje .
Ahora bien, (Xk,ykl,Yk2 • . . •,Ykm) >- O por hipótesis, Zk - Ck > O por ser Xk la
variable entrante e Yi k > Opor ser el pivote. Por lo tanto el resultado es obvio.

Teorema 2.S L as bases generadas por el m étodo del simp1cx en su for-


ma lexicográfica son todas distintas.

Demostración
Por contradicci ón, supongamos que se tiene una sucesión de bases:

por la proposición 2.4 se tiene:

(C.BjB~J i b• cEJBe')
J - ( C;Rj+l
- ]+ B Ci 1 b' c8j+ 1 B·~
} -I1 I ) r~ O con J' = l , 2 , ... , t - l

Sumando ahora sobre j = 1, 2•. . . ,t - 1 Yusando la suposición de que ~ = B 1


se llegaría a que O >- 0, lo cual es absurdo. '.

Corolar io 2.3 El algoritmo del símplcx en su fonna lexicográfica con-


vcrgc en un número finil o dc itesecíoncs.

Demost ración
Trivial, pues sólo hay un número finito de bases.
Dualidad 153

2.2 Dualidad

Al plantear un modelo de programación lineal los datos de entrada esencia-


les son una matriz de números reales A de dimensión m x n. un vector e de J:;,
y un vector h de E."m. A partir de estos datos puede formularse. como hemos
hecho en los apartados anteriores, un prob lema de program ación lineal con n
variables en el que el vector e contiene los coefic ientes de la func ión objetivo
que se quiere min imizar, el vector b contiene los eleme ntos del lado derecho
de las restricciones y la matriz A contiene los coeficientes de las restricciones.
Ahora bien, con los mismos datos de entrada podemos formular otro problema
de programación lineal, en el cual se consideren m variables, el vector b con-
tenga los coeficientes de la func ión objetivo que se quiere ahora maximizar,
el vector e contenga los elem entos del lado derecho de las restricciones y la
matriz A T contenga los coeficien tes de las restricciones. Como vamos a ver es-
te apartado, ambos problemas están estrechamente relacionados y la solución
de uno proporciona una completa informaci ón sobre la solución del otro. Este
estudio recibe el nombre de dualidad. Bajo este epígrafe se encuentran algunos
de los resultados más importantes de la programación matemática no sólo por
su interés teó rico sino también por las posibilidade s que abre para el desarrolle
de nuevos algoritmos numéri cos.

2.2.1 Definiciones
Consideremos el problem a de programación lineal definido en el aparta-
do 1.2.

Minimizar Z = C¡XI + C2XZ +.. .+ c"xn


sujeto u
QI IX ¡ + a JZx 2 + • •• + al"x" >
- b,
X
02I ' + a 22X2 + ••• + a 2JrX" > bi
• •


a pl x l + a p 2x 2 + •• •
+ ap" x" - bp
a p + I ,l x l + Gp l- l .2X2 + + u p _I (,,,XII - bp I 1
• •
• •
Q", IX I + Qm2X2 + ... + QwmX" bm
X I . X2, · · · ,Xq > O
Xq t l , Xq + 2, " " X" cualesquiera

=
Introducimos las sigu ientes notaciones: ,Al' { I, 2, .. . , n] , .JI = { 1, 2, . .. ,m},
.Aí = {l,2, ... ,q }, ,.h", = {q+ l,q + 2,.. . ,n} = JV - .Aí, Al, = {p + l ,p +
2, ... ,m} = A -Afl • Consideremos también un vector de m variables J =
(UI , uz. · · " um ) y una variable w. La definición siguiente introduce la noción
de par de problemas duales de programación lincal.
154 UNIDAD DIDÁCTICA 2 Algoritmos de programaci óo lineal

FORMA GENERAL Definición 2.8. Dada una malrizA =


(aij) iC-R JE..4't, m X n , un vector d =
DE LA DUALIDAD (e l,'" ,e,,) de En Y un vector If = (h [, ... ,hm) de Em se define un par
de problemas dual es denominados problema primal y problema dual del
modo sig uiente:

PROBLEMA PRIMAL PROBLEMA DUA L

Minimizar z - L CjXj Max. imizar w = L b¡u¡


j E.% iE.,/{

L QijXj > b;
jC%

I L QijXj b; ti; cl",lquic:m /1


j E'%
Xj > O j E JYí L llijll¡ < ej
;EII

Xj cualquiera j E .%, L
¡(JI
{lil ft ; = ej

La definici ón 2.8 posee las propiedades siguientes :

a) Es invclutive. Si se fo rm ula el dua l del problema 11 se encuentra el pro·


blcma l . Es decir, el dual del dual es el primal. Se puede decir entonces
que los prob lemas I y 1/ forman una p;u de problemas duales c1UIlO del
otro, siendo una cuestió n de convenio eleg ir uno u otro como primal.

b) Sus características son:

i) A una restricción en forma de desigualdad le corresponde una va-


riable du al sujeta a la restricción de no negatividad y recíproca-
mente.
ii) A una restricci ón en forma de igualdad le corresponde una variable
d ual de signo cualquiera y recíprocamente.
iii] La matrices de los coeficientes de las restricciones, distintas de la
restricciones de no negatividad, son respectivamente la traspuesta
una de la otra.
iv) Los segu ndos miembros de las restricciones de cada uno de los
problemas son los coefi cientes de la [unc ión objetivo del otro pro-
blcma.
v) Las restri cciones son del tipo " mayor o igual" en uno de los pro-
blcmas y "m enor igual" en el otro, siendo en el primer caso un
problema de min imizaticn y en el segundo de maximización.
Dualidad 155

EJEMPLO 2.11 Consideremos e l siguiente problema de progr amaci ón linea l.

Minimizar Z =X ] + X2+ X ]
sujeto
x, 3x, + 4x, - 5
X, x, < 3
2.<, Xl >
- 4
X, > O
X, > O
X, cualquiera

Para poner el problema en el formato de la definición 2.8 podemos multiplicar la


segunda restricción por - I para obtener la desigualdad - X l + X2 > - 3. Si aplicamos
la definición las restricciones del dual son

Restricción dual ~ ) Restricción primal

" l -Ul <I XI >O


- 3 11 1 1 /12 + 2 11] < 1 X2 > O

4 11 1 -11 ) = 1 .\) cualquiera


/1 1 cualquiera xl - l r2 f 4x] = 5
U2 >0 - X I + X2 >-3
ti ] >O a 2 -X] > 4

Entonces el problema d ual es

Maximizar W =5Ul -3 u2 +4uj


sujeto a
< l
'"
- 3u l ·1 '" + 2u ] < l
4" , '" 1
'" cualquiera
'" > O
'" > O
'"

2.2.1.1 Formas equivalentes

La definición general de un par de problemas duales contiene tres formas


particulares importantes que se utilizan con frecuencia. La primera, denomina-
da fonna mixta, contiene a las otras dos, la forma canónica y la forma estándar.
Recordemos que la fila de la matriz A se denota con q y la columna j por a j o
í
156 UNIDAD DID ÁCTI CA 2 Algoritmos de programación lineal

fOR MA MIXTA DE Definición 2.9. La forma mixta de la dualidad se obtiene de la fonna


LA DUALIDAD general suponiendo que ....Y1 es vacío.

Maximizar w = >--, b. u¡
Minimizar z = L. CjXj ,cd
j~ .A '
lltlj < ej j E .AI"
tu x > !Ji i E ./I)
11, > O ¡ E .-If ,
a ix = b¡ i E ''//1
'-"lJ:Jh¡uicr.J i E ./f,
"i
X¡ > O j E.A '

FORMA CANÓ N ICA Definición 2.10. La forma canónica de la dualidad se obtiene a punir de
DE LA DUALID AD la fonna general suponiendo que ..1/1 y .A" I son vacíos, o sea:

M inimizar z = ex Maximizar w = ub
le Ax > b tt; uA < e
X > O u > O

FORM A ESTÁNDAR Defi nición 2.11. La forma estándar de la dualidad se obtiene de la forma
DE LA DUALIDAD general suponiendo que Al¡ y JY' I son vec íos.

Min;m;7.ar z = ex Maximi7.ar w = u b
le Ax - b tt, uA < e
X > O u cualquiera

Las formas mixta, canónica y estándar son tan generales como la forma
general, por lo que cualquiera de ellas puede tornarse como definición de par
de problemas duales. En efecto, es cl aro que a partir de la forma general puede
deducirse cualquiera de las otras tres sin más que hace r las co nsideraciones
oportunas. Para ver la equivalencia, sólo hay que demostrar que si la dualidad
se define med iante una de las formas mixta, canónica o estándar. es posible
deducir la expresión / / del problema dual de un problema dado bajo la fonna
general /. Esta demo straci ón se basa en las tres cons ideraciones siguientes :

l . Cuan do se reemplaza una variab le Xj de signo cualquiera por la d iferen-


ci a de dos variables no negativas afectadas por el m ismo 9, se añade a
la matri z de los coefi cientes del primal una columna - aj ; la fonnul aei6n
mixta, canónica o estándar del dual comprende entonces dos restriccio-
nes uu¡ < ej y - u aj < - eJ que pueden reemplazarse por la ecuación
uaj = ej . Entonces una variable de signo cualquiera en el primal origina
en el dual una ecuación .

2. Cuando se reemplaza una restricción de igualdad q:x = b¡ por las res-


Dualidad 157

tricciones de desigualdad q x > b¡ y (- aix) :::: ( - b¡) , la formulación


canónica del dual, comprende entonces dos variable no negativas z4 y u/
asociadas respectivamente a las desigualdades consideradas y aparecen
bajo la forma de diferencia (z< - U~' ) en todas las restricciones del dual.
Se puede entonces reemplazar esta diferencia por una variable de signo
cualquiera.

3. Cuando se reemplaza una desigualdad O;X > b¡ por la ecuación que se


obtiene al añadir la variable de holgura o;x b¡ la formulación - .xi =
estándar del dual no impone a la variable dual lf la restricción de no
negatividad, pero la restricción dual asociada a la variable de holgura ~
no negativa es U¡ > O.

En la tabla 2.2 se representa un esquema general de las relaciones entre un


par de problemas dua les.

PRIM AL
Variables XI ~ OX2 > 0 x:•. .. •X ¡, . • . ,Xn > O Relación Constantes
"

U¡ > O a ll a l' • •• al . > hl


D U2 >O a21 a22 .. . a2n > h,
• •
U uJ cualquiera •


• - h¡
• •
A tI¡ <O •


• < h,
ti", > () ami (/1//2 .. . a m• > hm
L Relación <
- <
- .. . < < M :.h IV

Constantes el C, cí c. > Min z


Tabla 2.2: Tabla de las relaciones entre un par de problema duales.

EJEM PLO 2.12 Consideremos de nuevo el ejemplo 2. 11. Veamos cómo son su for-
ma canónica y su forma estándar.

• Fo rme Canónica

• Primal.
Sustituimos la variable X 3 que tiene signo cualquiera po r la d ifcrcncia de
d~IS vari?blcs no negativas, X 3 :-:: xt -
xl' Además, cambia rnos la rcstric-
ción de Ig ua ldad por dos restricciones de desigualdad . Resulta:

Minimizar Z-= X¡ + X2 + (xj - X))


sujeto a
3X2 + 4(xj - x,) > 5
+ 3X2 - 4(x1"- x, ) > - 5
+ X2 > 3
2.x, (xi - x)) > 4
l -
X I. X2, X} .x) > O
\58 UNIDAD DID ÁCTICA 2 Algoritmos de programación lineal

• Dual.
Las restricciones son :

"', ", - ", < 1


- 3u ll + 31.1 ] r + 2 /1} < 1
'"
4" I' 4u¡ "J < 1

- 4u t + 4u l + "J < - 1
+ I/j". 112. "J > O
"1 •

Si hacemos la su stitución UI = u¡t - u 1 entonces U1 puede tomar un valor


cualquiera y las restricciones quedan:

- 3 Ul
", +
'"
+ 2,,)
<
<
1
1
4", '" "J < 1
- 4u I r "J < - 1
cua lquiera
"' > O
'" "J > O

De las dos últimas desigualdades se deduce que 4u I - UJ ="= 1, por lo que


el problema dual es :

Máximizar w = 5 1.1 1 +- 3U2 +- 41.1 )


sujeto n
< 1
'"
- 3 11 1 ~ "'
", t 2u) < 1
4/(1 "J - 1
cualq uiera
'" ", > O
"J > O
que es la forma del problema que hemos obtenido en el ejemplo 2.1).

• Fonna es tándar

• Primal.
Consideramos de lluevo la sustitución de la variable .oC ) por x j - xi" .
Además, a (as restricciones de dcsiguntdad le añadimos sendas variables
de holgura, xf y x~. con el signo correspondiente.j unte con las condicio-
nes de que d ichas variables sean no negativas. Las restricciones loman 1:1
forma

x, 3x, + 4 (xj - XJ" ) - 5


x, + xl = 3
Xl
2" (xi - XJ )
XI . x2 x1' x )
- 1
xi. > 2
= 4
O

La función obj etivo es z = XI !- X2 t xj - x) + Ox1 + 04.


Dualidad 159

• Dual.
Las restricciones del dual son

u] ·1 u' , <
- 3u¡ u'a + 2U3 <
4u ] U3 <
- 4U1 + U3 < -1
u'a < O
U3 > O

y la función objetivo que hay que maximizar es w = 5u 1 + 3u2 -1-4U3. Si


hacemos el cambio de de variable U2 = - uí
y tenemos en cuenta que las
desigualdades 4U 1 - "3 < 1 y - 4 U1 +"3 < - 1 equivalen a la igualdad
4U l - U3 = 1 tenemos el problema dual

Maximizar w ;- 5u I - 3U2 + 4u ]
sujetoa
u] u, < I
- 3u l + u, + 2U3 < 1
4u] u, I
u, > O
U3 > O
u] cualquiera

que coincide de nuevo con la forma obtenida en el ej emp lo 2. 11 .

2.2.2 El teorema de la dualidad

Dedicaremos este apartado a demostrar el importante teorema de la duali-


dad en programación lineal que relaciona las soluciones óptimas de lU1 par de
problemas duales. La forma de la dualidad que utilizaremos es la forma canóni-
ca que, como se ha dicho, es suficientemente general, es decir, consideraremos
el siguiente par de problemas duales.

Minimizar z = ex Maximizar w = ub
sujeto a sujeto a
I Ax > b If
uA < e
x > O u > O
160 UNIDAD DIDÁCTICA 2 Algodono, de programaci ón lineal

RESTRICCIONES I>efinición 2.12. Se llaman restricciones duales de un par de problemas


DUALES duales a los pares de restricciones tales que

a ¡x > b¡ y u, >
- 0

uaj < ej y x,· >O


-
Se dice también que U¡ es fa variable dual de la restricción de índice i, y
que x; es la variable dual de la restricción de Índice j.

Proposición 2.5 Si x y u constituyen sendos programas de un par de


problemas duales, que llamaremos simplemente programas duales, se lÍe-
nc:
ex > uh .

Demostración
Puesto que x y u son programas, utilizando 1 y 11 se puede escribir

cx >uAx >ub

Corola r io 2.4 Si x y u son programas duales que verifican la relación


ex = u b, o de un modo más geneml ex < u b, entonces son programa ópti-
mos.

Demost ración
Observemos en primer lugar que la condición ex < ü b ya impl ica ex =u b
sin más que tener en cuenta la proposición 2.5. Supongamos que k no fuese
x
óptimo. Entonces ex istiría un programa tal que

e~ < ex < ub
lo cual está en contradicción co n la proposición 2.5. Un argumento análogo,
puede aplicarse a u. Si este programa no fuese óptimo existiría-u tal que

ub >u!J =ex
contradiciendo de nuevo la proposición 2.5.

Los resultados anteriores se pueden ilustrar mediant e un gráfico sencillo


en el caso de q ue ambos problemas sean factibles; es decir, si poseen a l me-
110 S una solución entonces la posición relativa de los va lores que alcanzas las
respectivas funciones objetivo se ve CIl la figura 2.2.
Dualidad 161

Dual Primal

;~I'-u-
,- dominio de w ~M~áx
"""-"
, dominio de z ---+~
-e-e Min z o válor
fi nito finito

Flgura 2.2: Posici ón relativa de Io.~ valores de la función objetivo en un par de problemas
duales.

Proposición 2.6 Sea K una matrÍí¡; enúsim éuice. es decir, K' = - K.


Entonces el sistema autodual

Kx > O
X > O
tiene una solución x que verifica Ki +'j > O.

Demostrac ión
Utili...taremos el corolario 1.7. Con las notacion es del citado corolario pon-
gamos AT = K , e = e, = (O•. . . , 1, .. . ,0), donde el 1 ocupa el lugar i, Entonces
A = K T = - J:. Si designamos por klla fil a ¡-si ma de K siempre va a existir
una solución i tal que k¡X' + ~ > Ocorno vamos a probar a continuación.
Si el sistema I ti ene so lución entonces cxistc j' > O tal que

- K~ < O y e¡xi > O

es decir
~>O y ,> O
x~

Si el sistema I J tiene solución entonces cxistc f ? O tal que

o sea

Kx' > O
k I -X 1 > 1 >0
Ahora bien. lo anterior es cieno para todas la filas de K sin más que tomar como
e el vector e¡ = (0•. . .• 1•.. . •0). i = I . .. •n. Entonces el vector x = I.7:1 x! es
una solución del sistema 1/ tal que

k¡i +x¡ > k¡x! +x: > O


162 UN IDAD DIDÁ CTI CA 2 Algor itmos de programación lineal

Proposición 2.7 El sistema de inecuaciones lin eales hom ogéneo

AX-Ib > O x >O (2.23)


- uA + l e > O u >O (2.24)
u b - cx > O 1> 0 (2.25)

tienen al m en os una solución (..ro,UQ ,to) tal que

> O
Axo -tob + uT; (2.26)
- uoA + tO C+ x6 > O (2.27)
uob -cxo + to > O (2.2S)

Demost ració n
El sistema puede escribirse:

O A -b uT II
_AT O cT x >0 siendo .r >0
hT -e O I 1
Si tenemos en cuenta que la matriz del sistema es antisim étrica podemos apli-
car la propo sición 2.6 para obtener el resultado.

Corolario 2.5 Cualesquiera que sea la matriz A y los vectores e y b,


una de las afirmaciones siguientes a) ó b), mutuamente ex cluyentes, es
verdadera.
a) Los problema s duales 1 y 11, poseen una par de programas óptimos
(x ,u) tales que
ex = ub.
b) 1) Ninguno de los dos problemas tiene programa óptimo.
2) Uno al menos de Jos problemas no tiene ningún programa.
3) Si uno de los problemas tiene al menos un p rograma el con -
junto de sus programas no es acotado y no existe óptimo finito
para este problema.

Demostración
Consideremos la solución (Xo ,uo,to) cuya existencia se ha establecido en la
proposición 2.7. Se pueden dar dos casos mutuamente excluyentes yexhausti-
vos.
Dualidad 163

a) lO> O

1 1 ( = Xo
En este caso, os va ores j - ,U ud 1)
= -r-, ·
constnuycn taro bié
len una
lO lo
solución del sistema homogéneo de inecuaciones 2.23, 2.24, 2.25. Es
decir se verifica que Ax > b, x > O. uA < e, u ? 0, 'úb > d . Por tanto
x, ü, forman una par de programas duales. Además, al aplicar el corola-
no 2.4 resulta que x,ii so n óptimos, mientras que de la proposición 2.5
=
obtenemos que ci iib. Hemos demostrado entonces que se verifica la
afinnaci6n a) del enunciado.

b) lo =O
Supongamos que existe un par de programas :i, u. Entonces se cumple
queAj > h, x > 0, uA < e, Ü > O. Dado que (.lO,uo ,O) es una soJuci6n del
sistema homogéneo de inecuaciones 2.23. 2.24, 2.25 se verifica A ~ > O,
XO ;:::: O, lIoA < O, Uo > Oy Uo b > exo. De de las desigualdades anteriores
se SIgue que

cxo > ü Axo > O > UoA x >uob

lo cual es una co ntrad icción con que l() b > CX(l. Así pues, no puede
ex istir u na pareja de prog ramas duales en el easo en q ue 6 = O llegando
as! a la parle b} 2. es decir, al menos uno de los problemas no tiene
soluciones factibles.
Supongamos ahora que uno de los problemas tiene programa, por ejem-
p lo el primal. Sca x un programa del primal. Se tien e por definición
Ax > b, x:::: O. Sea A :::: O un escalar arbitrariamente grande. Dado que
Xo .>- Opor ser solución del sistema 2.23 resu lta A~ > Ocon lo que

x+ Áxo > O (2.29)

Como Xo y fo = O es solución del sistema 2.23, se verifica ~ > O.


Entonces:

(2.30)

De 2.29 Y 2.30 sc deduce que x + AXo es un programa para todo valor


de A. . Por otra parte, hemos obtenido anteriormente que l.() b - CXo > O
y "o b < (l. De estas dos desigualdad es resulta C)() < Uo b < O. Conside-
remos ahora la expresi ón c(x + Á.'IQ} = ex + ACX(l. Puesto que no < O
y Á > O es arbi trariamente grande, la exprcsión anterior puede hacerse
tan pequeña como se quiera. Llegamos entonces a la conclusión de que
j + AXO puede hacerse tan grande como se quiera sin dejar de ser un
programa. es decir. la región de programas no está acotada. Además, la
función ()~jcli\'() (:(x + Axo) puede hacerse tan pequeña como sc quiera,
lo cual quiere decir q ue no existe óptimo finito. liemos llegado entonces
164 UN Il)A D DIDÁ CTI CA 2 Algoritmos dc programación lineal

a la afirmación b) 3. Ahora la parte b) l. resulta directamente de b) 2


Y b) 3. • ya que por b) 2 ambos problemas no pueden tener programas
simulláncamcntc y por b) 3 si un problema tiene programas entonces no
tiene programa óptimo finito.

A partir de los resultados obtenidos hasta ahora es posible demostrar de una


manera simple el teorema de la dualidad. Este teorema se divide en dos: un
teorema de existencia de programas óptimos duales y un teorema de dualidad
propiamente dicho.
EXISTE NCIA DE Teorema 2.6 Dado un par de problemas duales, una y una sola de las
PROGRAMAS tres afinnacioncs siguientes es verdadera.
Ó PT IMOS DUALES
• Ninguno de los problemas tiene programas.
• Un problema no tiene programas, y el otro tiene al menos un pro-
grama pero no un programa óptimo finito.

• Los dos problemas tienen programas óptimos.

Demost ración
Es consecuencia inmediata del corolario 2.5.

T EOREM A DE Teorema 2.7 Dado un par de problem,1s duales, una condición nece-
D UA LIDA D PARA saria y suficiente para que un prognuna x (pu) de uno de los problemas
LA sea óptimo, es que exista un programa u (o·x) del otro problema tal que
PROGR AM ACi ÓN
LINEAL cx =ub
EIprograma u {ox} es esím ísmo un programa óptimo y la relación anterior
se cumple evidentemente para todo par de programas óptimos.

Demostración
Este teorema resulta inmediatamente del corolario 2.5, condición suficien-
te, y del hecho de que la existencia de un programa óptimo para uno de los
dos problemas, quiere decir, que nos encontramos en el apartado a) del coro-
lario 2.5, condición necesari a.

EJ EMPLO 2.13 La labia 2.3 reflej a las posibles situaciones que pueden darse en un
par de problemas duales de acuerdo con el teorema de la dualidad. _

EJEM PLO 2.14 En la tab la 2.4 se muestran ejemplos concretos de los cualro casos
que pueden presentar un par de problemas duales.
Dualidad 165

El primal JiJprimal
tiene so luc iones no tiene soluciones
f act ibles. factibles.
(1 ) El dlml Mln z e- Máx w Máx w - } +00
tiene soluciones
fact ibles.
b) El dual Min z - > _ 00 caso que puede pre-
no tiene so luciones sentarse
factibles

'rabia 2.3: Situaciones posibles de dos problemas duales, de acuerdo con el rcorema de fa
dualidad.

2.2.3 Los teore mas de las holguras compleme nt arias


El teorema de la dualidad en programación lineal puede cnunciarsc bajo
otras formas equivalente s que ayudan a comprender mejor la estructura de los
problemas duales.

TEOREMA DÉB IL Teorema 2.8 Dado un par de problemas duales una condición necesa-
DE LAS HOLGURAS ria y suficiente paro que los progrnmasx y u sean óptimos es que verifiquen
COM PLEMENTA- las rc1aciones:
RIAS
u(Ax -b) - O
(e - uA )x O

Demostra ción
Dado que X, u son programas se cu mple que Ax > b, x > O, uA < e, u > O.
De aq uí Ax - b > O. e - uA < O. Como consecuencia a = u (Ax - d ) > O,
{J = (e - üA) x> (). Luego

ex + IJ = ü Ax - ub + cx- uAx = cx - uh

Según el teorema de la dualidad la condición necesaria y suficiente para que


X, u sean óptimos es que ex = ub. Esta condició n es lo mi smo que decir que
a + /3 = O, pero como ex > O y t3 > O se concluye entonces que tiene que ser
=
a OY f3 = O. De ello se sigue el resultado deseado.

Las relaciones del teo rema 2.8 se interpretan de manera sencilla. La igual-
dad u (Ax - b,) = Oes lo mi smo que r..i -I u¡((XiX- b¡) = O. Puesto que U j > Oy
a¡x - b¡ > O, I = 1" . "m resulta que U¡( (XiX - b¡) > O, pero como la suma ha de
166 UNIDAD DIDÁCTICA 2 Algoritmos dc programación lineal

PR IMAL DUAL

XI >
- O /11 < I
1'/~ /MA l ,
POS/HI.E x\ - 5 /1 1 cualquiera
[)UA l. I'OSIIlI.E XI - z (Min) 5 /11- w (Max)
Mio z = Máx w =5
XI = 5 UI = 1
XI > o
X2 > O "I < -1
PRiMA L POSIRLE : XI - X2 > 5 - 112 < - 1
D UAL lMPOSIRLE - x I - X2 - z (M in) 5u J - w (Max)
z - , -~

XI > o /1 1 < I
PRIMAL IMPOSIBl.E : XI -5 - 5u¡ IV (Máx)
DUAL POSIHW XI = z (M in) w -, +~

XI > O 111 + 112 < - \


x, > O - 11 1 - u 2 < - \
PR IMAL IM POSIBl.H : Xl - - X2 - 5 /1 1 cualquiera
DUAL IMI'OSIBLE Xl - X2 - -5 /12 cualquiera
- X I - ' X2 = z (Min) SU ¡ - 5 /(2 = u' (Max)

Tabla 2.4: Hjemplos de las diferentes alternativas en el teorema de la dualidad

ser cero tiene que ocurrir que 11¡( U;X - b¡) = O, i = 1, . . . , 111. Esta relación, que
se veri fic a para cualq uier par de problemas duales óptimos, ex presa el hecho
de q ue si uno de Jos términos del producto es estrictamente posit ivo, el o tro ha
de ser forzos ame nte nulo, es decir:
Si u, > O entonces a¡x = b¡ }
i = l , . .. ,m
Si ex¡x > b¡ entonces U¡ = O
Podemo s observar que las co nd iciones anteriores no excl uye n el caso en {] UC
los dos térm inos del producto sean nulos simul táneamente pam un par (o in-
cl uso var ios) de programas duales óptimos. Sin embargo, el teorema siguiente
aseg ura que esta situac ión no puede da rse para todos los pares de programas
óptimos d uales.
TEOREM A FUERT E Teorema 2.9 Dado un par de problemas duales que sean ambos facti-
DE LAS H OLGURAS bles existe al menos un par de programas óptimos ); y u que verifican las
CO MP LEMENTA· relaciones:
RIAS
(Ax- h)+ z1 > O
(c - uA) + x' > O
Dualidad 167

Demostración
Pu esto que ambos problemas son factibles, estamos en el caso a) del COTO-
lario 2.5, es decir fo > O y los valores:
._ Xo _ Xo
x= - u =.-
lo lo
constituyen un par de programas duales óptimos. Entonces si utilizamos las
Xo
relaciones 2.26 y 2.27 de la proposición 2.4 se cumple que A - b + J/o > O
fo fo
y - -Uo A+c+ --G, > O. A partir d c estas eondlIClones se ob uenc mmcdilatamente
o o o o

lo ro
el resultado deseado.

Las relaciones del teorema 2.9 pueden escribirse de la ma nera siguiente :

> O
a ¡.i - b¡+u¡ i = l •. . . ,m
- uaj + cj + Xj > O j = l , . . . •m
Las desigualdades anteriores se cumplen al menos para un par de programas
duales óp timos y expresan que si uno de los términos de la suma es nulo en-
tonces el otro ha de ser estrictamente positivo, es decir, cxisten x ,u tales que

Si a¡ x : : : : /Ji entonce s Ü¡ > 0


Si ni = o entonces Oi.f > b,

Estas implicaciones se pueden expresar de forma conjunta en términos de lo


que vamos a llamar restricciones activas y restricciones inactivas en un pro-
grama determinado
RESTRICCION ES Dcfhrlcl én 2.13. Se llaman rcsuicctonce activas en un pmgmnw de un
ACT IVAS Y problema de progmnlc1cicín lincu! a ¡¡'lucHas restricciones que se vcrfflca n
RESTR ICCIONES en igu<I /d¡j(/ para dicho pmgrmlJí1. Si una tcsu ícción no es activa se llama
IN ACT IVAS inac tiva.

Coro lar io 2.6 Dados dos problemas duales que tengan cada uno m + n
restricciones llamadas respectivamente duales unas de las otras según la
correspondencia biunívoca

- b., <->
a ,o: > , >- O
U· i ::::::: l , .. . ,m

x, >
- O <--> UUj :'S: e, j = 1, . .. . n

una condición ncccseriu y sulicic.·ntc para que una restriee íón de uno de
los probkmas sea ilJ3etiv.1 para al menos un progf¡jlJ r.1 óptimo es que su
J"(.·stricción dual sea ecíive para todo pmgmrua ciptitllo del problema dlWI.
168 UNIDAD DIDÁCTICA 2 Algoritmos de programación lineal

Dem ostración
Necesidad:
Supongamos qu e la restricción; del problema primal es inactiva en el pro-
grama X, es decir a¡x > b.. Entonces por el teorema débil de las holguras com-
plementarias se deduce que U¡ = O para cualquier programa óptimo dual, es
decir, la restricción Uj > Oes activa para cualquier programa óptimo dual.
Suficiencia:
Supongamos que la restricción Uj > O es activa para cualquier programa
óptimo dual, es decir, se verifica siempre en igualdad en el óptimo. Entonces
por el teorema fuerte de las holguras complementarias ha de existir un pro-
grama óptimo primal x tal que ~x - b¡ > 0, es decir, la restricción i primal es
inactiva. n
Del corolario 2.6 se deduce que si una restricción es inactiva, la restric-
ción dual correspondiente es automáticamente activa para cualquier programa
óptimo. En otras palabras, si consideramos las 2m + 2n restricciones primales
y duales podemos afirmar que habrá como mínimo m + n restricciones acti-
vas ya que si no habría mas inactivas que activas, en contradicción con lo que
asegura el corolario. Esto vale para cualquier par de programas duales ópti-
mos. Además, el teorema fuerte de las holguras complementarias asegura que
habrá una parej a de programas óptimos para los que habrá también como máxi-
mo m + n restricciones activas y, por lo tanto, exactamente m + n restricciones
activas.
EJ EM PLO 2.15 Sea el par de problemas du ales

PROBLEMA PRIMAL PROBLEMA DUAL


Minimizar z = 15x [ + 33x2 Maximizar W =6Ul + 6 U2 + U3
3x I + 2" > 6 3U l 1- 6u, < 15
úr l + X2 > 6 2u, + u, ·1· u, < 33
x, > 1 u, • U,. u, > O
Xl, X2 > O

En la fonna estándar el problema primal es

Minimizar z = 15xl + 33x 2 -l Oxf -t Ox~ + Ox~


3.Q +2x2 - xi - 6
6x I + X2 - .r1 - 6
X2 ~ - I
Xi > O
y el dual es

Maximizar w = 6U l I 6U2 + U) +Ou1 +Ou~


3Ul + 6U2 + uf 15
2u¡ + U2 + u) + u~ 33
U¡ < O
La tabla óptima del simplex del problema primal es
Dualidad 169

15 33 O O O
XI X, xl /, x',
z 53 O O -5 O -23
15 x, 4/3 I O -1/3 O 213
33 X2 1 O 1 O O -1
O x', 3 O O -2 I 3

La tabla óptima del dual es:

6 6 1 O O
u, u, u, u'1 ,
u'
w 53 O 3 O 413 I
6 u, 5 1 2 O 1/3 O
1 u, 23 O -3 1 -2/3 1

Comprobemos que se cumple el teorema débil de las holguras complementarias.

• a, x -b' ~ (3.2) (O -6 ~6 -6 ~0, u l ~5.


(a, x -b, ) , , -0 ·5 ~0.

• a,x -b"- (6,1 )(n -6 =9 -6 ~ 3. u, ~O.


(a, x - b, )., ~ 3 · O ~ O.

• al x - b' ~ (O. I )(n -l ~l -l ~O' u, ~23.


(a,x - b,)u, = 0 · 2 3~ 0 .

También se cumple que

• cl -ual ~15 - (5.0.23) (~) ~ 15- 15 ~ 0. -


Xl =:'J .
4

(ct - ua¡)XI = O . ~= O

• c, - ua, - 33 -(5, 0, 23) ( : ) = 33 - 33 = 0,

(C2 - uaZ )X2 = O· I = O


Asimismo se cumple el teorema fuerte de las holguras complementarias
• (a¡x bl )+UI =O -t-5 ,-= 5 >O
• (U2x- b2) + U2 = 3 + 0 =- 3 > O
• (a,x - b,) +u, = 0 + 23= 23 > 0
• (c l -ua Jl + Xl = O-t- t = j > 0
• (c2- ua z) + x2=- O+ 1 = I > O
170 UNIDA D DIDÁ CT ICA 2 Algor itmos de programación lineal

2.2.4 El teorema del Lagrangiano


Veamos a continuación las relaciones existentes entre la dualidad y el clási-
co método de las multiplicadores Lagrangc. Las variables duale s 14 juegan un
papel análogo al de los mu ltiplicadores de Lagrangc en la teorla de los ex-
tremos condicionados. Según e l análisis clásico para encontrar la solución del
problema

Mini mizar z - ex
Sujeto a Cl¡X - b¡ i = 1•.. . ,m

se consideran ni multiplicadores de Lagrange l.4" y se busca el mínimo libre de


la función
m
ex + ¿U¡(ó, - a¡x)
j- 1

Este procedimiento no se puede aplicar directamente en la programación ma-


temática debido a las restricciones x > O. Vamos a ver que la búsqueda del
mínimo libre se reemplaza por la búsqueda del punto de silla.
lAGRANGIAND Definición 2.14. Vado un par de problemas duales de programación lineal
OEl PR OB LEMA se llama Lagrangiano, o función Lagrangiana, asociado a dicho pro blema
DE a la fu ncióIl de las variables x, 1I dcfinida por
PROGRAM ACIÓ N
LI NEA L Je(x,u) = ex+ uó- uAx

El Lagrangiano del problema no es otro que la func ión de Lagrange del


clásico pro blema de extremos condicionados,

n m
Je(x,u) = uó + (e -uA )x = ¿ CjXj + ¿ lI¡(b¡- a,x)
j= 1 j= l

PUNT O DE SILL A Definición 2. 15. lil par de vectores x > 0, u > 0. constituye un punto de
silla del Lagrangiano Y (x, u) si para todo par de vectores x > O,u > O se
ricnc
Je(x, u) < Je (x, ú) < Je (x,u)
es decir 2'(x,u) alcanza su m/nimo con respecto a la variable x enx y un
máximo con respecto a la vmable u en u.

Je(i,ü) = Mín Je(x,u) = Máx• .2'(x, u)


z
Dualidad 171

TEO REMA Del Teorema 2.JO Dado un par de problemas duales de ProhTTamac;Ón lineal,
LAGRA NGIA NO una condición necesaria y suficiente para que Jos vectores x > 0, u > O
formen un par de programas duales óptimos es que (x, u) forme un punto
de silla del Lagrangiano 2'(X,II). El valor 2'(:<,11) es el valor común de
las dos funciones obj etivo de Jos problemas.

Dem ostración
Necesidad.
Sean X, Ü programas duales óptimos. Por e l teorema débil de las holguras
=
co mpleme ntarias, teo rema 2.8, tenemos, ,,(Ax - b) O Y (e - 7IA}x = O. Esto
es 10 mismo que ñb = ¡¡Ai y eX = üAx. Asimismo, - uA.t + 11 h = O. Por lo
tanto
ex = uAx = íib = ex - uAx + u b = 2'(x,u)
Así pues, ~(x. u) es igual al valor de ambas funciones obj etivo. Además,
(x. u) es un punto de silla. En efecto, si x > O
.2'(x,u) - cx+ u b - II Ax
ub +(c - uA)x
> ub [ ya que e - nA > 0, por ser u un programa ]
y x > 0 por hipótesis.

- 2 ' (x,u)
Por otra parte, si u > O

2'(x, u) ex+ ub - uAx


- cx+ u(b - Ax)
< ex [ ya que b - .ti < O, por ser x un programa ]
y u > 0 por hipótesis.

- 2'(x,i1)
Suficiencia.
Sea .2'(X, II) un punto de silla del Lagrangiano. Entonces .2'(X,u) < 2'(x,u),
es decir,
cx+ u b - u Ax < cx+ u h - uAx
Al simplificar la expresión anterior y reordenar los términos se obtiene la
desigualdad (e - uA)(x - x) > O. Para j = 1, .. . ,n tomamos sucesivamente
x = x+ ej siendo tj = (O... . , 1, .. " O) donde el 1 ocupa el lugar j . Se cumple
O « e - uA )(x + ej - x ) = (c -uA)ej =Cj- U l/j

y por tanto obtenemos que ü aj < eJ, j =


L, ... , n. Esto quiere dceir que u es un
programa del problema dual. Aná logamente. de 2(x, u) > 5t(x, u) se sigue

d+ ü b - uAx > d+ uh - uAx


172 UN IDA D DID ÁCTI CA 2 Algoritmos de programación lineal

y al simplifi car y reordenar se llega a que (u -u)(b -AX) S O. Para i = I . . . ,m


tomamos sucesivamente u =
u+e; siendo e¡ = (0•. . . , 1, . . . •0). donde el 1
ocupa el 1ugar t. Se cumple
O> (u+e, - u)(b - Ax) =e,(b -Ax) = b, - cx,x
y por tanto obtenemos que ~x > bi • i = 1" . . ,m, lo cual prueba que x es un
programa primal. Finalmente tomando x = u = Ose tiene:
g(x, O) < g(x,u) < g(O,u)
es decir
0: + o, b -O ·A -x S; c ·x+ ub -uAx < c· O+ub + uA· O
Dc las desigualdades anteriores se deduce que ex <u b y por el corolario 2.4
esto es suficiente para que X, u sean óptimos.

"2
MaxiLll izar w = 4//1 ¡.. J lI ~
7

'" + -') l/ -J < 2


.
6
'" 2112
-
< J
O 2 11 1 t J U2 < 5
I < 2
5
'" 3 /11 I
"2
"2 < 3
., '" > o
= > ()
0 J
'tl" 2 -
... =
,
1
5
"2

V értice óptimo
, ,

7 /11

Figur a 2.3: Resolución de un problema de programación lineal mediante la aplicació n de los


resultados de duali dad.

EJ EMPLO 2.16 Vamos a encontrar la solución óptima del siguiente problema de


programación lineal mediante la aplicación de los re sultados de la dualidad.
Minimizar z = 2:t] -t 3X2 + 5X3 + 2x4 -l - 3X 5
sujeto a
XI -1- X2 + 2x3 + X4 + 3X5 > 4
2xj -2x2 +3x3 +X4 + X5 <: 3
X I,X2.X3,X4,X5 > O
Dualidad 173

El problema du al es
Maximizar w -4uI + 3U2
sujeto a
"1 ~ < 2", 2
", < 2", 3
2111 + 3", < 5
'" + '" < 2
3 11 1 + 2", < 3
II I,U2 > O
Este es un problema con dos variables que podemos resolver gráficamente como se
muestra en la fi gura 2.3. Su solución es Ul = ~ . U2 -=- J.
w = 5. Por el teorema débil
de las hotgurus complementarias tenemos X2 = O, X ) = O, X4 =- O. Asimismo ha de ser
XI f- 3xs = 4 yal + X5 =- 3 porlo quc J¡ ....., 1 Y X2 = l . Consccucntemcntc z = 5.

2. 2.5 El algoritmo primal del simplex y la dualidad


En este apartado vamos a estudiar de qué manera se puede encontrar la
solución óptima del problema dual cuand o se ha obtenido la solución óptima
del primal mediante la aplicación del algoritmo del simplcx. Consideremos el
prohlema primal bajo La forma can ónica

Minimizar z = ex
Ax > b
x > O

o bien, escrito por filas

Minimizar z = L." CjXj


/ -1
(XiX > b¡ i = l •. . . ,m
XI > O j= I , .. . • n

Para aplicar el método del simplcx pasamos el problema a la forma estándar


mediante la introducción de las variables de holgura.
n
Minimizar z = L e/xj
j~ '

a¡x - XII ¡.¡ - b, i =l . _.. ,m


Xj > O j = l •. .. • n +m

Notemos que los costes de las variables de holgura son cero. Observemos 13m.
bién que la matri z de coe fic ientes de las restricciones contiene por cada YJ.-
riable de holgura un vector columna unidad - lj que es el que da lugar a la
restricción de no negatividad de la variable dual co rrespondiente. ya que como
sabemos en el dual de la fo rma estándar las variables son no restringidas.
174 UNIDAD DIDÁ CTICA 2 Algoritmos de programación lineal

Proposición 2.8 Sea x una solución básica óptima del problema primal
en la forma estándar anterior con base asociada 8 . Entonces

-
U=c.8B- 1

es una solución óp tima para el problema dual. A demás

U¡ = - (Z" f¡ - Cn ti ) = -Zn H con i =l , . .. ,m

Demostración

Sea x la solución óptima primal. Sabem os que x = (~), j8 = B - rb > 0,


xN = O > O. Si j es óptimo, aplicando el criterio de optimalidad del método del
simplex para un problema de minim ización, ha de verificarse que Zj - ej < O,
cualquiera que sea j = 1, . . . , n + m. Definamos u = f! B - I . Al recordar qu e,
po r defini ción, Zj = ¿ Yi =
¿JB - 1a¡ resulta que
Zj - eJ = ¿ n -luj -ej = ua} - ej

Como Zj -Cj < O resulta uaj - cj < O, o sea ua¡ < cjoj = l , .. . •n + m. Las
desigualdades anteriores para j = 1, .. " n se pueden escribir en forma matricial
corno uA < e, por lo que diB lA < c. Si considerarnos ahora las desigualdades
anteriores para j = n + 1, .. . •n + m y tenemos en cuenta que para i l •. .. , m =
es QIl + i = e¡ y Cn J I = Oobtenemos la desigualdad
O > uan+ i - Cn t¡ = u ( - e¡) - O = - u e¡ =- U¡

y por tanto O < u¡ = (c lJ fl 1);. De ello se sigue q ue di B- 1 > O. Así pues


di 8'-1 verifica las restricciones del problema dual. es decir, es un program a
dual. Adem ás, es un programa óptimo , ya que
w = d'B- lb = d'xI' = z
y por el teorema de la dualidad Mi proporciona el valor máximo para la funci ón
objetivo. Finalmente, pues to qu e q., ti = - e; y en ti = O se obtiene, para i =
1,.. . ,m
Z,. li - Cn ti = In l ; - O= I n J¡ = c8 B - 1( - e ;) = ü( - e ¡) = - U¡

fJEM PLO 2. 17 Sea el problema

Minimizar z = 4..t ¡ + 3X2+ 6x)


x, + Xl > 2
X, + Xl > 5
x, > O
X, > O
Xl > O
Dualidad 175

El dual es
Maximizar W :..- 2UI + 5 U2
", > O
", > O
", ",
<
< 3
4

", ·1 ", < 6


La forma estándar del primal es

Minimizar z = 4x I -f 3X2 !-fu) I 04 + Ox~


x, + X3 .G 2
+ Xl - 5
XI, X" > O
y la forma estándar del dual es
Maximizar W =2U I+5u2 -I - OU~ f OU¡+Ou~
_ 4
", I u~
u1
", + 3
"1 + ", + u~ 6

Las tablas del método del simplcx para el pri mal son

4 3 6 O O
X, X, Xl X'4 x!
Z 23 O O I -4 -3
4
3
x,
X,
2
5
1
O
O
1
0I -1
O
O
-1

XI X, X, xl xl
Z 21 -1 O O -3 -3
6 Xl 2 1 O 1 -1 O
3 X, 3 -\ 1 O 1 -1

La tabla anterior muestra la solución óptima del primal. La base es la matriz B =


) ( I II ) ¡ .
( X) X2 = I I . .a uwcrsa es H , ( lO )
= 1 I '6"
. La soluci n opnrna es .\'" 2 = 3•
xJ = 2 que da a la función objetivu un valor z = 2 1. Si utilizamos los resultados de la
proposición 2.S tenernos

u - c 8 n 1 = (6,3 )( \
- 1 ~ ) = (3, 3) ~ (;'1,. ')
", = -Zm ~ - ( - 3) c- 3
", - - Z H " ~ - ( - 3) ~. 3

Comprobemos que los valores anteriores coinciden exactamente con los que se obtie-
nen al aplicar el método del simplcx al problema dual. La s tablas son
176 UNIDAD DIDÁ CTICA 2 Algoritmos de programación lineal

2 5 O O O

'-2" "2 ,,', ,,', ,,'s


O O n
O
'"
W
4 I
-5
O " 1 o O
O
O '" 3
6
O
I
CD1 O
O
l
O
O
l
'"

'" "2 ,,', ,,', ,,'s


w 15 -2 n o 5 n
O 4 I O 1 O O
5 '"
"2 3 O 1 O 1 O
O
'" 3 CD O O -1 1

'"O "2 "l "l ,,'s


w 21 O O 3 2
O "J 1 O O 1 I -1
5 ", 3 O 1 O 1 O
2 3 I O O -1 I
'"
La solución óptima del dual que se lec en la tabla es Uj = 3 Y U2 = 3 que proporciona
un valor w = 2 1. Estos valores coinciden son los obtenidos anteriormente. Podemos
también comprobar que la aplicación de los resultados de la proposición a la tabla
anterior nos lleva a la solución del primal. En efecto, la matriz básica y su inversa son

", ",O ", 1 I - 1


iliJ =
O D 1
1
&ir ' ~
( O I
O - 1
O
I )
Entonces

~
1
1 - 1)
b' fIiJ - - (0,5, 2) ( 1 ~ = (0, 3,2) =x
- 1
es decir, hemos obtenido los valores del programa óptimo primal.

2.2 6 Interpretación económica de la dualidad


Consideremos el par de problemas duales:

Minimizar z =cx Máximizar w =u b


Ax > b uA < e
x > O " > O
Dualidad 177

En el apartado 2.2.5 hemos visto que si B es la base óptima primal entonces

m
- --
Z eft-R
x- -_ e RB- 1b -- -b
u -- w' -- ~ -
~ U¡ bi
;=1

Supongamos que los valores del lado derecho de la restricciones Q no son fi-
jos sino que puede admitirse que varían en un determinado rango. Entonces,
podemos entender que el valor óptimo de la función objetivo -: es una fun-
ci6n que depende de los valores 4. i = 1, ... ,m. Es decir, para cada vector
11 = (bl •. . . ,h", ) se puede considerar el correspondiente problema de progra-
mación lineal en el cual el lado derecho de las restricciones es prec isamente el
vector b. Si resolvemos este problema entonces podemos designar a la solución
optima con i (b), a la solución ópti ma d ual asociada u(b ) y al valor que toma la
función objetivo en dicha so lución óptima -,,(b) = cx (b ) = ¿r=1u,(b) b¡. Po-
demos preguntamos ahora cómo varía el valor óptimo de la función objetivo
en función de cómo varia b. Encontramos la respuesta calculando las derivadas
parciales de z(b) con respecto a b. A la vista dc la expresión anterior vemos
que -9t¡ = Uj. De aquí se sigue la interpretación económica de las variables

duales.
PRECIOS SO MBRA Definición 2.16. El valor óptimo U¡ de la i- sima variable dual represen-
ta la .razón de cambio del valor óptimo del primal z contra incrementos
unitarios del í - eimo lado derecho del primal 4. es decir. = U¡ . En la 5t
lcnnino/ogia cconómica los valores'u¡ suelen denominarse precios so mbra
(shadow priees).

Dado que Uj > Oes claro que la razón de cambio de es no negativa con lo
á

cual z crecerá o se mantendrá constante fre nte a incrementos unitarios de Q.


EJ EMPLO 2.18 Supongamos que un comprador neces ita dispo ner de ciertas can-
tidades bl •. .. . h,.. de unos determinados productos i =' I .. .. . m. Para ello pretende
contratar a un fabricante y desea que le proporcione el suministro al menor coste po-
sible. Para fabricar los productos hay que desarrollar n actividades j = 1, ... ," a unos
determinados niveles Xj > O. El coste unitario del ejercicio de la actividad j es e j .
Llamemos Qij a la cantidad del producto i generada por una un idad de la actividad
j , Desde el punto de vista del comprador, sería deseable poder tener el control dc la
fabricación a fin de poder especificar qué actividades y a qué nivel se dedican a la
fabricación de cada uno dc los productos, con objeto de que el coste tota l de la pro-
ducción sea lo menor posible. Entonces el problcma del comprador puede formu larse
mediante el siguiente problema de programación lineal:


Minimi...ar Z '"'" L CjXj
j=1
sujeto a

L
j=1
CliJXj > b¡ i = l , . .. ,m

x, > O j = 1, ... . "


178 UN IDA D DID ÁCTI CA 2 Algoritmos de programaci ón lioeal

En lugar de tratar de controlar la operación, el comprador adopta otro punto de vista .


Deja que el fabricante contro le el proceso de producción y y acuerda pagar a éste unos
precios unitarios por cada producto, digamos u 1, .. . ,Um. Sin embargo. quiere que los
precios propuestos por el fabricante sean precios j ustos. Esto quiere dec ir que el com-
prador no está dispuesto a pagar más por el total de la producción de lo que costaría si
e l prop io comprador pud iese disponer del control del proceso de producción. Veamos
a dónde conduce esta idea. Dado que a ij es la cantidad del producto i producido por
una un idad de la actividad j resulta que u ¡Qij es el valor de la cantidad de producto
n
í producido por una unidad de la actividad j y. por tanto. 2. U ;aij rep resenta el valor
/- 1
(implícito) de una unidad de la actividad ) . Para que los precios u i sean justos. el valo r
implícito de ejercer la actividad j no debe ser superior al valor real. es decir. el com-

prador aceptarla pagar unos precios que verificasen L Uja U < Cj j = 1•.. . • n . Con
;= 1
esta limitac ión. el fabricante tratará de maximizar su beneficio, es dec ir, se plantea el
sigu iente problema del fabricante
m
Maximizar w = L b jUi
i= 1
sujeto a
m
L. U ij U ; < C} · j = l , . . .• n
1= 1
Ui > O j = 1, .. . •m

que. como se puede apreciar. es el probl ema dual del anterior. El teorema dc la dua-
lidad asegura que hay un conj unto de n iveles de las actividades. Xjo j = 1 ... ,n. y
un conjunto de p recios. u" j = 1, .. . , m. que es tán cn equilibrio. es dec ir, el costo de
producción mínimo es igua l al beneficio de la ganancia máxi ma.

EJEMPLO 2.19 Este eje mp lo es una revisión del problema de la dicta que se vio en
el apartado 1.2.2.2. Supongamos que u na persona está afectada de ciertas carencias ali-
menti cias. El nutricion ista que le atiende le recomienda someterse a una determinada
d icta. Supongamos, por simpl icidad, que las cantidades mínimas dc calorias y vita-
minas que debe tomar cada día para una alimentac ión adec uada son respectivamente
2 .800 unidades y 200 unidades. El terapeuta le facilita un cuadro con los contenid os
en calorías y vitaminas de cada uno de los alimentos usuales. Estos datos fi guran en
la tabla 2.5 . La tabla también incluye el coste promedio, en euros p or kg., de cada uno
de los alimentos en el mercado. Ev identemente el objetivo del paciente es elaborar

Ca lorías / kg Vitaminas / kg Coste / kg .


Carne 1000 47 4.00
Pescado 950 52 3.80
Leg umbres 100 40 0.55
Fruta 85 44 0.60
Lácteos 37 49 0.50

Tabla 2.5: Com posición en nutrientes de algunos alimentos y precio unitario de estos.
Dualidad 179

una dieta que satisfaga tudas sus necesidades energéticas y le salga lo mas barata po-
siblc. Para resolver el problem a puede utilizar se un modelo de programación lineal.
Llamemos

Xl = kg de carne que hay que incluir en la dicta.

X2 = kg de pescado que hay que incluir en la dicta.

XJ = kK de legumbres que hay q ue incluir en la dieta.

X4 = kg de fruta que hay que incluir en la dicta.


..(5 = kK de productos lácteos que hay que inclui r en la dicta .

Entonces el problema del paciente es el siguien te problema de programación lineal :

1000xl + 950.<, + lOOx, + 85x 4 + 37x5 > 2800


47.1"¡ 1 52<, + 40.<, + 44r, + 49x5 > 200
XI. X2. Xl. ..(4 . Xs > O
4.00..r ¡ + 3.80.<, + 0.55x] I O.6OX4 + o.soe, - z (M inimizar)

Cam ino de su casa se detien e en la farmacia del barrio y comenta su caso con el
farmacéutico. A éste se le ocurre un p lan . Para ahorrar a s u vecino la molestia de ir
al mercado todos los días y tomarse el trabajo de pesar las cantidades necesarias de
alimentos le proponed siguiente trato . El farmacéutico fabricará dos tipos de píldoras:
unas de aporte calórico y otras de aporte vitamínico y le suministrará la cantidad
suficiente de cada tipo para poder satisfacer sus necesidades de calorías y vitaminas.
Además, el farmacéu tico se las venderá a un precio que será competitivo con el p recio
de los alimentos de form a que co n un mi smo aporte energético que un alimento dado le
saldrán a 10 sumo tan caras como éste. El paciente acepta y el farmac éutico sc dispone
entonces a fabricar las pastillas. Supo ngamos por sen cillez, que una pastilla de tipo
calórico aporta 100 unidades de calorías y una de tipo vitaminico aporta 100 •.midadcs
de vitaminas. Entonces ha de fabrica r 28 pastillas de tipo eufórico y 2 past illas dc tipo
vita mín ico. A la hora de decidir los precios de las pastillas, que llamaremos " I para
la de: tipo ca lórico y " 2 para la de tipo vitamínico. el farmac éutico hace el siguiente
razonamiento: los precios ha n de ser competitivos con los de los alimen tos. o sea,
que a igualdad de aporte de nutrientes no deben sobrepasar los precios de mercado
de cada UIlO de los alimentos. Por ejemplo. para obtener un aporte energét ico similar
al de la carn e ha de tomar l O pastillas de tipo calórico y 0.47 de tipo vitam ínico .
Pues bien. el prec io de esta combinación no debe ser superio r al prec io de la carne, es
decir, 1011 1 '-' 0.47111 < 4 . Razonando d e manera análoga para el resto de los a limentos
tenemos las siguientes restricciones en los prec ios:

Carne: 1O.00UI + 0.47u2 < 4.00.


Pes cado: 9 .50ul + 0.52u2 < 3.80.
Lcgumbrc.~ : 1.00ul -i-0.40u2 ~ 0.55.

Fruta: 0.85u I + 0.44U2 :$ 0.60.

Productos láctcos: 0.37u 1 -f 0.49u2 < 0 .50.


180 UNIDAD DIDÁ CTICA 2 Algoritmos de programación lineal

-o
" , "1
-+
o
t

o
~
-8
o
'"
S
11 -+
· t

w
ce
o ..
o
~

S
1
,.11
8
6

3
//1 O.3X
¡h _ 0.43
\1 ' _ 11 .511
Vérti ce óptimo
• •

0.371f

'"
1.35 2

- 1

Fi~ura 2.4: El problema del farmac éutico dual del problema de la dicta.

Por otra parte, el farmac éutico desea sacar el mayor provecho posibl e de la venta de las
píl doras. El beneficio obtenido será evidentemente w = 28u 1 l· 2U2. Asl pues, puede
Dual idad 181

plantearse el siguiente problema de programación lineal

10.OOul + 0.47u 2 < 4.00


9.50u ] I 0.52u 2 < 3.80
1.00ul I 0.4Ou 2 < 0.55
0.85u] + 0.44u2 < 0.60
O.37ul + O.49u2 < 0.50
ul. " 2 > O
28.00ul + 2.00U2 - w (Maximizar)

En la figura 2.4 se representa gráficamente el problema. La solución óptima es JI 1 =


0.38, U2 = 0.43 Yproporciona un beneficio igual a w - 11 .50 euros.

2.2.7 El algoritmo dual del simplex


En los apartados anteriores se han estudia do los aspectos teóricos dc la
dualidad. Vam os a ver en este apartado de qué manera se puede utilizar la dua-
lidad para idear nuevos métodos de cá lculo para la obtención práctica de la
so lución. Como hemos podido apreciar, en muchas ocasiones desde el pun-
to de vista práctico es mejor reemplazar un problema por su dual y resolver
num éricamente éste. Esto está especialmente indicado, por ejemplo, cuando
lUl problema tiene muchas más restri cciones que incógni tas pues a su dual le
ocurrirá 10 co ntrario. Por experiencia, se sabe que la reso lución numérica de
un problema de programación lineal es menos costosa cuanLas menos restric-
ciones tenga. Otras situa ciones en que puede ser de interés acud ir al dual son
aquéllas en que es necesario introduci r en el prob lema muchas variables arti-
ficiales, 10 cual lleva con sigo más iteraciones y un mayor tiempo de cá lculo.
Vamos a estudi ar a contin uación nuevas formas del algoritmo del simplex ba-
sadas e la dualidad . Comenzamos introd uciendo el concepto de solución básica
dual factible de un problema de programación lineal.

SOLUCiÓ N BÁSICA Definición 2.17. Sea B una base del problema primal y sea que iI la
DUAL FACT IBLE solución básica del primal esocíede a B. Se dice que J!l es una solución
básica dual factible si cfl B I es un programa del programa dual.

La idea de considerar soluciones básicas duales factibles tiene interés por-


que cuando dichas soluciones básicas son tamhién programas básicos, es decir
verifican las restricciones del primal, entonces necesariamente son so luciones
óptimas del problema.

Proposición 2.9 Sea B una base del problema primal y sea J!1 la solu-
ción básica del primal asociada a H. S upongamos que 11 es dual factiblc.
Si ¡B es también primal factib le, o sca si verifica todas las restricciones del
primal, entonces xB es una solución óptima.
182 UN ][)A D DIDÁ CTI CA 2 Algoritmos de programación lineal

Demostración
Sea B una base y xl' la so lución básica asociada a B. Por scrtJ dual factib le
se cumple que c!n- 1 es un program a dual, es decir, J1B - 1a j = Zj < c j> j =
l , o•. ,n. De aquizj -cj < O, j = J • • • • • n que es L
a condición que se utiliza en
el algoritmo del simplcx para identificar la situación de óptimo en un problema
de minim ización. Si además tenemos quc r" verifica todas las restricciones del
primal, es inmediato que xB es un pro grama básico 6ptimo.

2 .2 .7 .1 Fund amentos d el algorit mo dua l de l si m plex

El algoritmo dual del simplex se basa en el resultado que expresa la pro-


posición 2.9. Se parte de una solución dual factible, es decir, verificando el
criterio de óptimo. En principio, dicha solución no tiene por qué ser primal
factible, es decir, algunas variables pueden tomar valores negativos. Entonces
en cada iteración se trata de disminuir el número de variables negativas mante-
niendo el criteri o de optimalidad. El algoritmo f inaliza cuando se consigue que
la solución sea primal factible. es decir. con todas las variables no negativas.
En este momento por la proposición 2.9 será una solución óptima .
Vamos a formalizar la idea anterior. Utilizaremos la forma estándar de la
dualidad.

Primal Du al
Minimizar z = ex Maxi mizar w = uh
sujeto a sujeto a
Ax > b uA = c
x >O u cualquiera

Supongamos conocida una base B del primal. B = (ajl • . . . •a j , • • • aj m) . siendo


I = {jl •.. .•jm }. tal que el vector u = dl B- I constituye un program a dual. es
decir, ua} < Cjo j E: J = N - l . o equ ivalentemente Zj - ej < O. j E J (observe-
mos que la relación anterior se verifica en ig ualdad cuando j E / ). Entonces la
solución básica J!1 = B - 1b es dual factib le. Los resultados siguientes propor-
cionan la justificación teórica del algoritmo dual del simplex.

Pmpusiclén 2.10 Sca B es una base del primal. Y! = B·· 1by u = eB B - 1.


Supongamos q ue x}J es dual factible.
I. Si u no es un programa óptimo del dual entonces la solución básica
primal xB no es primal factible. es decir. existe un s E / tal que ~ < O.

2. Si existe ec t tal que Xt < O en tonces es posible encontrar otro pro-


grama dual fI mejor q ue u.
Dualidad 183

Demostració n
1. Es consecuencia inmediata del teorema de la dualidad. puesto que como
jR es dual fa ctible se cumple el criterio de óptimo del simplcx; ento nces
si x.R es primal factible es tambi én óptimo.

2. Denotemos con Ar
la fila s de la matriz S -l . Definamos i1 = ü - 0Pt.
donde e es un número real. Puesto que:¡R = B - 1 b se verifica

rt b = ub - IJfJ,b = ub - IJx,

Por lo tanto, puesto que X, < O. si O > 0, se llega a que JI b > ísb, para
e
todo > O. Por otra parte para j E (J UJ ) = N l:s Tlaj = Ütlj - O/3(d]. S i
=
tenernos en cuenta que B (CI)-).Iu. 1J - 1 = (Ps ).r€1 resulta que el produc-
lo de una fi ja n-l. como /31. por una columna de B como llT da igual a
cero salvo que tengan el mismo índice en cuyo caso vale uno. Si ade más
utilizamos las notaciones habituales obtenemos

Ita) - üUj - 6 {3[Joj = uOj 6Ylj = Zj -eYtJ j EJ


f1 as UO J 6 Pla" = ua" = Cs
- SE I -{f}
r/a" UGl - epeGt = ual - B = Zl- 6 =Ct - 6

Cons ideremos ah ora los dos casos que pued en darse: a) X J > Opara todo
j E J Yb) y,} < Opara algún j E J

a) Y l] > O, j E J .
En este caso para 6 ~ O está claro que rI es un
programa del dual ya que:

Además T/ U f = (".1 < Cs . s E / - {l } Y también TI tll = el - O < cr.


En definitiva, T/ sat isface todas las restricciones del dual. pa ra 6 >
O. Pero por otra parte. el valor de la función del o bjetivo en 11 es
=
TI " f¡ b - (J;f, y da do que X, < O este valor crece indefinidamente
cuando O ---+ +00. Se deduce entonces que el problema dual no tie-
ne máximo finito y por tanto , aplicando el teorema de la dualidad,
el primal no es factible.
b) Y l] < Opara algún j C: J. En este caso rI seguirá siendo un programa
dual en tanto en cuanto Zj - 6Yt} < Cjo j E J, lo cual dado que
Y l] < O ocurre si 6 < !Jy: CJ • Así pues ha de ser
I

6< Mín
j¡'." <o
{Zj-ej
Yl}
J EJ}
184 UNIDAD DIDÁCTICA 2 Algoritmos de programación lineal

Si se toma exactamente

e = Zk - Ck =M ín { Zj -Cj . j EJ, Yi¡< O}


Ye t Yi}
entonces se verifica:
~ zk - Ck
UQk =zk - Yl , =q
n;
Consideremos ahora la matriz J1 deducida de la B por sustitución
de la columna ae por la ah. Puesto que ye, t= O podemos asegurar
que Jf también es una base. El conjunto de índices de las columnas
es I' = 1- {E} + {k }. Ahora bien, hemos demostrado antes f! a, =
es> s E 1 - {l} Y que acabamos de ver que ti ah = eh; deducimos
=
entonces que 11!J' = ¿r, de donde u' ¿r (B' )- 1 es precisamente
el programa dual buscado.

Seu ahora X'B = (B' r I b la nueva solución básica del primal. S1X H > O
entonces esta solución es un programa óptimo básico del primal. Si, por
el contrario, existe s c: 1 tal que ~ < Oentonces se puede repetir el procc-
so anterior y encontrar un nuevo programa u' mejor que u. Dejaremos
e
aparte el caso en que = o que correspondería a la situación de degene-
ración dual y que no vamos a desarrollar aquí porque es completamente
similar al caso del algoritmo primal del simplex. Entonces en cada ite-
u
ración se tiene que b = u b - (h s con lo cual se obtiene una mejora
estricta de la función objetivo dual w.

Observemos que para iniciar el proceso iterativo descrito en la proposi-


ción 2.10 es necesario conocer un programa de partida que verifique las res-
tricciones del dual, por lo que scgún el teorema de la dualidad no puede darse
el caso de que el primal tcnga mínimo infinito. Notemos también que al haber
e
supuesto que > 0, tenemos la seguridad de que no se repite ninguna base.
Por consiguiente como el número de bases es finito, forzosamente después de
un número finito de iteraciones, en el peor dc los casos después de examinar
todas las bases, sc llega a una de las situaciones siguientes: o bien-i > O es un
e
programa óptimo del primal; o bien existe E 1 tal quex, < o e Yi) > O, j E J,
en cuyo caso el primal no es factible.
Resta una observación adicional. Para obtener el máximo crecimiento de la
función dual en cada iteración habría que cambiar la variable entrante, de indi-
ce k, por la variable de índice E que hiciese máxima la expresión - "J( !!'~ Ck. En
la práctica se utiliza un criterio más simple, eligicndo como variablesaliente
la variable decretada por
Dualidad 185

Estarnos ahora en condiciones de enunciar la fonna general del algoritmo dual


del simplcx para un problema de minimización. Las modificaciones para el
caso de maximi zaci ón son el ementales.

2.2.7.2 Form a de l algoritm o dual del simplex


a) Dctenninar una base B del problema primal tal que

-
z } · - c} · < O j El
en donde J designa el conjunto de índices de las columnas de A asociadas
a los vectores fuera de la base. Denotamos 1 = N - J . Y

Zj = ¿'Yj = ¿'B-' aj .

b) Comprobar el vector ~ = B - 1 b.

• Si x H > Oentonces es un programa mínimo . FINALIZAR.


• En caso contrario, sea /1 e 1 el conjunto de índices s tales que
XJ < O.

e) Comprobar Ysjt s El), j EJ.

• Si Y Jj ?' O pam al menos un s E JI Y para todo j E: J en tonces el


primal no es factib le. FINALIZAR.
• Si Ysj < O para al menos un j E J Y para todo s e 1) entonces
o Dctenninar f. por el siguiente criterio de salida :

XI = Min {x" s E /,}


o Dctenninar k por el siguiente criterio de cmredo:

= Min { • Y l¡ < O,

d) Considerar la nueva base JJ obtenida a partir de la B sustituyendo la


column a a l por la G4. . Calcular los nuevos valores #, 1, Y', es decir, la
nueva tabla del simplex asociada a O. Utilizar para ello las fórmulas de
transformac ión. Repetir la aplicación del algoritmo a partir del paso b) .

EJEMPLO 2.20 Consideremos el siguiente problema de p rogramación lineal.


Minimizar z =- 2x 1 + 3X2 + 4x J
sujeto a
x, -t- 2.<, + x,
> 3
2.<, x, -j- 3x, > 4
XI, x2, Xl > O
186 UNIDAD DIDÁ CTI CA 2 Algoritmos de programación lineal

La forma estándar es
Minimizar z = 2x 1 t- 3X2 + 4X3
sujeto a
x, + a, + x] X4 - 3
a, x, + X3 - X, 4
XI, X2. X3 , X4 . X5 > o
Si multipli camos las dos ecuaciones por -cl , tenernos automáticamente una base H
correspondiente a las columnas X4 y X5. Como además los coeficientes de la función
objetivo son todos positivos, esta base proporc iona un programa de base dual factible
pero no primal factib le. Con este programa comenzamos las iteraciones del algoritmo
dual del simplex. La tabla inicial es la siguiente

Tab la inicial
2 3 4 O O
X, x, X3 X4 X,
z O ·2 ·3 -4 O O
O X4 ·3 .] ·2 .] ] O
O x, -4 0) ] ·3 () I

Vemos, en p rimer lugar, que no todos los valores de las variables son positivos, es
decir, no tenemos un program a primal factible. Asimismo observamos que ninguna
de las dos fi las de res tricciones tiene todos los coeficientes estrictamente positivos.
Entonces debernos iterar. Tenernos 1 1 = {4,5 }. Buscamos en primer lugar la variable
saliente
Mln{x, } ~ Min{x4,x, } ~ Mlo{- 3,-4} ~ - 4 ~ x, .
4~s<o
:leJ¡
Por tanto sale X5. Veamos ahora cuál es la variable entrante. El criterio de entrada es

Mín
j [YI,<O {
Zj C; } =
Y lj
M in {-2 -4} {4}
-
- 2
, -
- 3
= M ín 1, -
3
= I = Y SI

Luego entra la variablc xr . El pivote es YSl = - 2. La nueva tabla es

Iteración 1
x, X, X3 X4 X,
z 4 O -4 ·1 O ·1
X4

x,
·1
2
()

I
e · 1/2
1/2
3/2
l
O
·1/2
· 1/2

La única variable negativa es x4. por tanto 11 - {4}. Vemos que no toda la fila es
positiva, p or lo que hay que iterar para que salga dc la base la variable X4 . La variable
entrante es

MIO
.{ -4 -I } .{S}~ S
. 5/ 2 ' - 1/ 2 = MIO 5,2 5
Por 10 tanto entra X3. La nueva tabla es
Dualidad 187

Iteración 2
X, X2 X3 X, X,
z 28/5 O O -9/5 -8/5 - 1/5
x, 2/5 O I - 1/5 -2/5 1/5
x, 11 /5 1 O 7/5 - 1/5 -2/5

Puesto que i B > Oel programa actual es el programa óptimo. Los valores óptimos de
las variables duales son Ul = ~. U2 ~ ~ .

2.2.7 .3 El método de la restricci ón artificia l

El algoritmo dual del simplcx se utiliza habitualmente cuando se dispone


con facilidad de una solución básica dual factible inicial; un ejemplo típico
es el caso de un problema de minimización con restricciones de tipo mayor o
igual en el cual los coeficientes de la función objetivo y los términos del lado
derecho de las restricciones son todos no negativos. Sin embargo, en ocasiones
puede ser de interés aplicar el algoritmo dual del simplcx sin tener de manera
evidente una solución inicial dual facti ble. En este caso es necesario disponer
de un método para poder encontrar dicha solución inicial dual facLible que
sirva de punto de partida para la ap licación del algoritmo dual.
En este apartado vamos a desarrollar uno método senci llo que se denomina
método de la restricción artificial. Este método puede considerarse la fonna
dual del método de las variables artificiales que estudiamos para e l algoritmo
primal del simpl ex. El método parte de la hip ótesis de que se conoce una ba-
se primal, es decir, se s upone que las m ecuaciones del primal, en la forma
estándar, son compatibles y no redundantes y además se conoce un conjunto
de m vectores columna Qj linealmente independientes. En particular) en el caso
de que las restricciones sean originalmente desigualdades este conjunto es el
conjunto de vectores columna correspondiente s a las variables de holgura que
se han introducido para pasar el problema a la forma estándar.
Supondremos que la solución básica asociada a B es tal existe algún s E 1
con X:y < O, y también existe algún j E J con (Zj - ej) > O, en el caso de W1
problema de minimizaci ón. Podemos escribir el sistema explícito, pg. 11 7, con
referencia a la base JJ conocida del primal como

X.I• + ~>.f)Xj = r, sEJ


JO

Z + ¿ (Zj - Cj )Xj = z
j E.!

Añ adamos ahora al sistema la restricción (m + 1)

¿ Xj <M
j El
188 UN IDAD DIDÁCTICA 2 Algoritmos de programación lineal

en donde M es un número positivo tan grande como se quiera, es decir superio r


a cualquier número finito con el que sea comparado en el transcurso de los
cálculos. Esta restricción artificial se tra nsforma en una ecuación añadiendo
una variable de ho lgura X() no negativa y con coste nulo en la función objetivo.
es decir añadimos al problema las dos restricciones siguientes

Xo + ¿ xj = M
jfC'J

Con estas notaciones podemos considerar el siguiente problema aumentado.


PROB LEMA Definición 2.18. Se llama problema aumentado del algoriUDo dual del
AU MENTADO DEL simplcx al siguiente problema
ALGORITMO DUAL
D EL SIM PLEX Minimií'Ar z =z ¿ (Zj - c¡)Xj
JO
sujeto a
x, + L Y sj Xj x, s E!
JO
Xo + ¿ Xj - M
j6l
XO. x!. Xj > O

Como es sencillo comprobar. el conjunto de valorcs x s• s E I Y.eo = M = X

constituye una solución básica del problema aumentado asociada a la matriz


I m + J • Consideremos el índice k defi nido por

Dado que estamos suponiendo que no todos los Zj - e j son negativos o nulos
y Zl - q es el máximo de ellos podemos afirmar que 2'« - Ck > O. Efectuemos
ahora un cambio de base tomando como pivote el coeficiente I de la variable
Xl en la ecuación Xo + L j EJ Xj =
M . Esencialmente, lo que hacemos es sustituir
en todas las ecuaciones, menos en la última, el valor de -'l despejado de última
ecuación. Xl = M Xo - ¿ j E,) X j' con lo que la función objetivo queda
jl l

z = z - ¿ (zj - ej )xj - (z, - e,) M - xo ¿ Xj


j (J J~J
jl k jl k

- z - (z, -q )M+ (z, -e, )xo + ¿ [(z, - e, )(zj - cj )]Xj


jf:.J
1/ 4
=- (z, -e,)M - [- (z, - q )xol ¿ - [(z, - q ) -- (z¡- Cj )]Xj
JO
JI /';
Dualidad 189

Ahora bien, por la definición de ~ - Ct resulta que - r(Zt - q ) - ( Zj - ej) J < O


y - (Zt - c.t ) < O. Tenemos entonces una solución básica en la que todos los
coefic ientes de las variables fuera de la base son negativos u nulos. es decir.
tenemos una solución de básica dual fact ible. Estamos ya en (as co ndiciones
de partida del algoritmo dua l del simplcx. L¡¡ aplicación del algoritmo dua l
co nd uce obligatoriamente a lino tic estos tres casos:

a) El problema aumentado no es fa ct ible. En este C:150 , el problema o rigina l


tampoco es factible puesto que si existiese un progruma'x para el proble-
ma original. estos valores j unto con el va lor :-~ = M - "ijcJ Xj formar ían
un programa para el problema aumentado.

b) El problema aumentado tiene un programa mínimo y -'b no es una varia-


ble básica de dicho programa minimo. En este caso el problema original
no tiene, en general, programa mínimo fi nito a unque excepcionalmente
puede haber una arista infinita paralela al hipcrplano óptimo'a = el'.

e) El problema aumentado tiene un programa mínimo y ~ es una variable


básica de este programa. En este caso las variables básicas distintas de
Xo constituyen un programa mínimo del problema primiti vo.

EJE MPLO 2.21 Sea el problema


Minimizar z= - a l- X2 - x ]
sujeto a
4x I t- fu, 1- 3x, + X; 8
X\ 9x, + X, -1 .0, - 3
- 2.< , 3x, .; 5x, f- x1 - - 4
h
xI' o
El sistema está puesto en forma explíc ita respecto de las variables de holgura. Toman-
do la base correspondiente a es tas. obtenemos la solución básica:
4 =8, X; = - 3, --1 = - 4, XI = X2= X] = O, Z~O
Esta so luci ón es no factible para el primal. Asimismo, tampoco es dual factible ya
que los Z j - CJ so n positivos, Z I - C I --: 2, Z2 - C2 = 1 Z] - C] = l . Introducimos la
restricción art ificia l: Xo + Xl + X2 t- x] "= M Y calculamos la variable que va a salir de
la base mediante el criterio

Max {'r Cj} ~ Máx {2, I, I} ~ 2 ~ z \ - C,


),J

Así pues, dcspcjamos x¡ en la restricción artificial, X I -= M - xo- X2 - x ) , y sustituimos


su valor en las demás
Minimizar z = -2(M -xo -X2 -X] ) - X2 - X]
sujeto a
4(M - xo - X2 -X] ) -i 6X2 --1 3x] 8
( M - x O - X2 - XJ) 9X2-+ .(] -3
2(M -xo - X2 - X] ) 3X2 + 5x] -4
190 UNIDAD DIDÁ CTI CA 2 Algoritmos de programación lineal

En definitiva, tenem os el siguiente problema aumentado

Minimizar z = - 2M+ 2xo + X2 + X3


sujeto a
- 4xo + 4 , Xl / x1 8 4M
- Xo IOX2 + 0, 3 -M
4 0 x, + 7X3 + x1 - 41 2M

Xv + X I + X2 +X) M

La solución evidente del sistema anterior

J: = 8 - 4M, x~ = - 3 - M, ~ = - 4-¡- 2M , XI = M

es una solución básica dual factible ya que todos los [a j - Cj) fuera de la hase son no
negativos o nulos, si bien no es primal factible. Podemos ahora aplicar el algoritmo
dual del simp lcx. La tabla inicial es

Tabla inicial
O -2 -/ -/ O o O
Xo X\ X, Xl x1 0, .0,
z -2M -2 O -\ -1 O O O
O xl 8 - 4M 0) O 2 -/ 1 O O
O xh - 3- M -1 O - 10 O o \ O
o )1 - 4 / 2M -2 o -\ 7 O O /
-2 x\ M \ \ \ \ o O o
Las iteracione s son

Iteración 1
\ \
z -4 O O -2
I
-1
- 1 -, O O
Xo M -·2 1 O 4 O O

0, -5 O O @ , -,
-,• \

13
\

\
1 o
0, O O O O O \
x\ 2 O 1 ~, ,1
3 O O
~

Iteración 2
_ 64 23 19 4
z O O O O
- '? - '? - ~'
Xo
X, M-Hn /
O
O O
O 1 ~'
- jj
-V - TI
';! O
O
x'3 O O O O 'f O \
x\ , 9
O \ O n
... ;
14 ,I
O

Puesto que la solución actual es dual factible y también es primal factible tenc..m es
una solución óptima del p roblema aumentado. Como xu está en la base del programa
Dualidad 191

mínimo, entonces la solución óptima encontrada, sin Xo. es asim ismo so lución óptima
del problema original, es decir,

_ 64
z= - -
21
es la solución óptima del problema original.
La convergencia del algoritmo dual se fundamenta en que en cada iteración
se obtiene una base distinta. Como sabemos, en presencia de degeneración
esto no tiene porque ser necesariament e cierto y al igual que en el caso primal
puede presentarse ciclajc. El tratamiento de este problema es similar al del caso
primal y conduce a la forma lexicográfica del algoritmo dual. No entraremos
aquí en una exposición detallada del m ismo.
192 UNIDAD DmÁ CTl CA 2 Algori tmos de programación lineal

2.3 Formas especiales d el m étodo del simplex

La form a general del algoritmo del simplex, tanto en su versión primal


como dual, es susceptible de muchas mejoras técnicas a la hora de su puesta
en práctica en problemas reales que son tratados con un ordenador. Dichas
mejoras dan lugar a diversas formas especializadas del algo ritmo que presentan
una mayor eficacia computacional. Dedicarnos este apartado a estud iar algunas
de las variantes más utilizadas.

2.3.1 El método del simplex revisado

El examen del desarrollo de los cálculos del algoritmo ordinario del sim-
plex nos permite observar algunas circunstancias relevantes desde el punto de
vista práctico. En primer lugar, podemos apreciar que todos los números que
constituyen la tabla del simplcx en cada iteración se puede calcular directa-
mente a partir de los datos inici ales. la matriz A y los vectores b y c. tan pronto
como sc haya calculado la matriz B 1, inversa de la base B correspondiente a la
iteración dada. Por otra parte. para efectuar las iteraciones en realidad tan sólo
cs necesario vo lver a calcular una parte dc los números que figuran en la tabla
del simplex, puesto que muchos de ellos, como las columnas de las variables
de la base, son automáticamente conocido s una vez que se tiene identificada la
base B.
El método del simplex revisado se basa precisamente en las consideraciones
anteriores. Esencialmente. realiza exactamente Ios mismos pasos que el m ótc-
do del simplex pero utiliza en la práctica una tabla mas pequeña. En realidad,
desde el punto de vi sta teórico la forma revisada del simplex no aña de nada
digno de mención. En cambio, contemplado desde el punto de vista práctico
las ventajas son indudables, ya que util iza una ca ntidad menor de memoria
de almacenam iento en el ordenador, por lo cual pueden tratarse problemas de
mayores dimensiones. También ocurre normalmente que el número de opera -
ciones aritméticas que efectúa la forma revisada es menor que el número de
operaciones que necesita el dcsarollo de la forma normal, por lo cual el pro-
ccdimiento ser á, en princip io, más rápido. Así pues, podernos sintetizar las
ventaj as del método del simplex revisado diciendo que añade mayores facili-
dades para cl tratamicntc de problemas de grandes dimensiones y que obtiene
la solución de una manera más rápida.

2.3.1.1 Just ificación de la forma revisada del mét odo del simplex

Supongamos que conocemos una solución básica factible. es decir un pro-


grama básico asociado a una base B cuya inversa 0 - 1 también es conocida.
Inmediatamente podemos calcular J' = el' B - t, xB = B - 1 b, z" = el' xl' y po-
Formas especiales del método del simplex 193

demos escribir la siguiente tabla resum ida

-8
U

n i
Puesto que se COnl'lCC 111 = c!IJ 1 Y la matriz ti = (8 N) = (a J aj ) podernos
calcular fuera de la tab la los Zj - Cj ya que Zj =
di JI - IUj = ¡¡BUj. Si resu lta
que z¡ - Cj < O pam lodo I, el prog rama actua l es el óptimo. Supongamos por
el contra rio que existe un k tal que ~ - e... > O. Usando JI - 1 se puede calcu lar
i
Y.t = 8 - 1lIk · Si YA: < Oentonces el problema no tiene so luci ón fin ita. Si ) l O
se puede insertar este vector co lumna a la derecha de la tabla para obtener

z ,¡I'
Zk - C.t
Yj,ic
Yj~ .t
x" n- I

Y j",k

Se determina ahora la variable saliente utilizando el criterio de salida usual.


Una vez identifi cado el pivote Ytk se efectúa un pivotajc de la manera usual.
Esto actual iza la labia (m+ 1) x (m+ 1) y el procedimiento puede repetirse.
Así pues. el m étodo revisado no es más que una presen tación especial del
método del simplcx: por ello tiene las mi smas propiedades de convergencia
que la forma normal .

2.3.1.2 Forma revisada del algoritm o del simplex


a) Determi nar un programa inicial dc base )(J asociado a una base B con
inversa B- 1•

b) Calcular ¡¡R = c" n-l . Formar la tabla


z -U 8

B-1

c) Para cada vari able no básica , calcular Zj - e] , j EJ.


ScaZk - ck =r¿9 {Zk - Ck}.

c l) Si Zk - Ck < O FINALIZAR: la solución actual es la soluci ón ópti-


ma .
c2) En caso contrario, caicular jj, = 0 - 1at .
c2. 1) Si Yk < O FINALIZAR: no existe solución óptima finita.
,
194 UNIDAD DlDACTlCA 2 Algoritmos de programación lineal

c2.2) En caso contrario. añadir a la tabla la columna:

z ¡¡B

xl' n- I

d) Oetenninar f por la relación:

-l
X
-= mm
. {-Xs
- ,
Y/k Ylt> O Ysk

Pivotar sobre Yik para actualizar la tab la. Eliminar la co lumna Xk y volver
al paso e).

EJEMPlO 2.22 Sea el problema

Minimizar z = - X¡- 2't:2+ X3- X4 - 4xs+ 2x6


suj eto a
XI + X, + XJ + x. + X, + X, < (,
2x, X, 2xJ + x. < 4
xJ I x. 1 2x, + x, < 4
X ¡,X2 , x3 x4. Xj, x, > O

Se introducen las variables de holgura X7 ,XH, X9. La base inicial es B = (X7,X8, X9) = J,
8 - 1 = /, uB = ¿¡ H- J = (0, 0,0) 1 = (0, 0, 0), X7 = 6, X8 - 4, X9 - 4, siendo
nulas las restantes variables.

Iteración 1

z O O O O 4
X7 fi I O O 1
X, 4 O 1 O O
X, 4 O O O 0_ - Pivote. Sale X9

ZI - q = 1
Z2 - ('2 - 2
z) - e J = - 1
Z.¡ - q - 1
Zj - e j = 4 - ; Entra Añadir
Z6 - C (, - -2
Formas especiales del método del simplex 195

Iteración 2
x,
-8 O O -2 , 2,
o
7.

x, 4 1 O - I\ - Sale X7
x, 4 O 1 O -1
x, 2 O O ~ O

z l -Q
Z2 - C'2
=
- 2
1
- ~ Entra
I
Añ adir
ZJ - CJ - -3
%.4 - C4 - - 1
Z(¡ - C6 - -4
z~ - "9 = -2

u = (0,0, - 2);

Iteración 3

z - 16 -2 O -1 z\ - c¡ = - \
x, 4 1 O - zj - el - -4
x, 8 1 1 -, ;::4 - C'4 = -2
x, 2 O O ~ 4 - ( '6 - -5
%7 - C7 - -2
u= (- 2,0,-1 ) %9 - ( ,' 1} - O

Puesto que todos los Zj - Cj son menores o iguales que cero, la base es la óptima.
,-

2.3.1.3 Comparación e nt re la forma ordinaria y la forma revisada


del algoritmo del simplex
Vamos a hacer algunas comparaciones entre las cargas computacionales de
las formas ordinaria y revisada del algoritmo del simpIcx. Por lo que se re-
fiere al tamaño de las tablas, la fonna ordinaria utiliza una tabla del orden
(m + 1) x (n + 1). mientras que la forma revisada utiliza una tabla del orden
(m+ 1) x (m + 1) . Por tanto si n > m, lo cual es el caso usual en las apli-
caciones, la utilizaci ón de l método revisad o supone un considerable ahorro de
memoria en el ordenador. El número de operaciones que hay que hacer en cada
iteración en cada uno de los métodos puede verse en la tabla 2.6. Obsérvese
que el número de operaciones efectuadas en cada iteración por el método del
sirnplex ordinario es ligeramente inferior que el número efectuado por el méto-
do revisado . No obstante en los problemas en los que la matriz zt es poco densa.
es decir. en los casos en que el porcentaje de elementos de A que son distintos
de cero es bajo lo cual es usual en la mayor parte de las aplicaci ones reales.
,
196 UNIDAD DIDA CTI CA 2 Algoritmos de programación lineal

OPERACIÓN
METODD PI VOl1<JE Z¡ - c¡ rorxt,
Simplcx M ultiplicaciones (m i- I)( n- m+ 1) m(n - m) + n+1
ó divisiones

Ordinario Sumas m(n -m + 1) m(n -m +l )


6 Restas

Simplcx Multiplicaciones (m 1 1)' m(n -m) m(n -m ) + (m +I )'


ó divisiones

Revisarlo Sumas m(m + 1) m(n -m) m(n - I)


ó Restas

Tabla 2.6: Número de operaciones en cada iteración de la forma ordinaria y la forma revisada
del método del sim plcx.

el método revisado permite explotar esta característica. En efe cto, al calcular


los Zj - Cjo se tiene que Zj = uaj = I Ujaij y de esta suma pueden eliminarse
los elem entos an = O. Corno el método revisado siempre trabaja con los datos
originales esto puede preverse de antemano y por tanto el número de operacio-
nes a efectuar se reduce considerablemente. Podemos entonces concluir que si
r¡ es signifi cat ivamente mayor que rn y la densidad de la matriz A es pequeña.

entonces el esfu erzo co mputacional del método simplex revisado es sensible-


mente inferior al del método del sim plcx. Otra ventaja del método revisado es
que emplea en todas la iteraciones los datos originales lo cual elimina en buena
parte los problem as derivados del redondeo de los números que forzosam ente
ocurre en el ordenador al hacer los cálculos en precisión finita.

2.3 _1.4 Form a produ cto de la inversa

La forma producto de la inversa es un procedimien to del álgebra matricial


que calcula la inversa de una base a partir de la inversa de otra base supuesto
que ambas se diferencian en una columna. Este procedimiento como es obvio.
está especialmente indicado en la programación lineal y se basa en el concepto
de matriz elemental.

MATRIZ Definición 2.19. Una matriz elemental es una matriz cuadrada que dificre
ELEMENTAL de la identidad cn una sola columna (o una sola fJla).

=
Sea una iteración dada en la cual la matriz básica es B ( ajl . aj2 •. . . ,ajm) =
(a'~)SEJ Y su inversa E - l. En la iteración siguiente la columna no básica a;
reemplaza a la a l y obtenemos una matri z d . Veamos tul procedi miento a l-
Formas especiales del m étodo del simplex t 97

tcmativo al pivotajc pura encontrar (11) - ] a partir de B - l . Recordemos que


YA:= =
n - l a! o eq uivalentemente a¡. BYA:. Asimismo. as = Be, donde ~ =
(O•. . . • 1•. ..• 0). con el I situado en c1 lugar s, Entonces

siendo T = (C¡, ('2• • . .•Yh .. . . e", ) mm matriz que se diferencia de la matri z


identidad en una única columna j j , es decir, es una mat riz e lemental. Como se
puede comprobar fácilmente sin más que hacer el producto co rrespond iente, la
inversa de T, que vamos a denotar por E. tiene la forma siguiente
_ Yil l
I O • .• O O . •• O
O 1 O
'"
-~ O • ••

O O O
'" o ...
_Yj]!

E - '"

• •



• 1 • •
• •
• •
y"

• • • •
• • • • •
y •
o O ••• O _ !a' .
y"
O 1

en donde hemos denotado por g la columna no unitaria de E . Por lo tanto

o sea que para calcular la inversa de B hay que multiplicar B - 1 por una matriz
elemental E . Esta matriz elemental E viene especificada almacenando la co-
lumn a no unitaria g y su posición k. Utiliza ndo esto recursivamente se obtiene
la inversa en cualquier iteración. En efecto, supongamos que la base 8. dc la
primera iteración es la matriz unidad l . Entonces

siendo HI la matriz elemental correspond iente a la primera iteración. Análoga-


mente:
SI
3

n;' = H' _IEt _ 2•. . .• E2EI


La expresión anterior se conoce con el nombre de forma producto d c la in-
versa . Si usamos esta manera de calcular la inversa de una matriz todos los
pasos del método de l simplcx se pueden efectuar sin pivotec como se verá a
continuación.
Sea E una matriz elemental cuya columna no unitari a es g y aparece en la
posición k. Veamos cómo se opera con esta matriz.
198 UNIDAD DIDÁCT ICA 2 Algoritmos de programación lineal

• Postmultiplicación
Sea e un vector. Entonces si multiplicamos este vector por E resulta
columna
k
j
l •• • 1:, ... O
• •

• 1 g2 •

cE - ( C1 , C2, .•. •Cm ) • •



O O gM I
- (el , e2. · . .• CIt _ 1, eg , Ck+ J• • • •• c", )

es decir. obtenemos un nuevo vector que es igual al anterior excepto en


la k-sima componente que vale el producto escalar e - g .

• Prcmultiplicación
Sea a un vector. Si multiplicamos la matriz E por este vector resulta

l 1: , O a, a, g,
• •
• •
1:2 • •


Ea - •







a, O + a, 1:,
• •• •
• • •
• • • •

O .. . I:M .. . l aM am I:M
8 +ur g
siendo él e l propio vector a excepto que la r - sima componente es un
cero.

A partir de las expresiones anteriores podemos calc ular fácilmente los datos
necesarios para hacer las iteraciones de la forrna revisada.

• Cálculo de!! = cBn l.


En una iteración / se tiene

entonces ,1 puede calcularse iterativamente usando la fúnnula de post-


multipli cación. Se comienza calculando primcro JlEt _1 mediante di-
cha fórmula, se aplica d e nuevo la fórmula al resultado para calcular
(c!r..~ - I ) E' _2 y se procede sucesivamente hasta obtener e". Este proce-
so de transformaci ón hacia atrás se denomina habitualmente BTRAN.
Después de calcular Ji"I podemos calcular los valores Zj - ej u Haj - e j =
para las variables no básicas y a partir ellos decidir si el algoritmo ha
finalizado o bien es necesario seguir iterando.
Formas especiales del método del sirnplcx 199

• Cálculo de y¡ yde x".


Si en la iteración 1 entra.e tendremos

que puede calcularse por aplicación repetida de la fórmula de prcmulti-


plicaeión. El cálculo se ej ecuta aplicando sucesivamente dicha fórmula
en el orden E I ,E2•. . . ,E". Este proceso de transformación hacia adelante
se denomina habitualmente f<.RAN . Si .Y.t "h O se detiene la aplicación
del algoritmo con la conclusión de que la solución es no acotada. En otro
caso, se calcula med iante el criterio habitual de salida el índice t corres-
pondiente a la variable qu e abandona la base. Entonces JK entra l,'11 la
base y Xl sale de la base. Sc genera entonces una nueva matriz elemental
El cuya columna diferente de la identidad es

1-
g -
(_n,¡ _1 _y¡.¡)
Ylk , . .. .Ylk •. . . • Yu.

y aparece en la posición k. El nuevo valor del programa básico es

Puesto que B¡ I b cs conocido a partir de la iteración anterior entonces


una sim ple apl icación de la fórmula de premultiplicación actualiza el
vector x.

• Actualización de la inversa de la base.


Como se señaló anteriormente. la inversa de la base se actualiza gene-
rando E" Recordemos q ue cada matriz elemental queda completamente
dctenninada por la columna distinta de la unidad y el lugar que ocupa en
la matriz, es decir, por el vector g y el indicc k. Así pues. estos datos son
los únicos que hay que almacenar cn la memoria. Observemos tamb ién
que en cada iteración el número de matrices elementales que hay que
almacenar crece en una unidad. Si este número se hace grande hay que
tener previsto un procedimiento para contraer la matriz inversa y repre-
sentarla por medio del producto de un número de matrices elementales
inferior a la capacidad de la memoria dispo nible.

EJEM PLO 2.23

Minimizar Z -= - XI - 2x2 + Xl
sujeto a
x, + x, ~ x, < 4
- x, + 2.<, 2.<, < 6
2.<, + x, < 5
.er, X2 . Xl > O

200 UN IDA D DIDACTI CA 2 Algoritmo, de programación lineal

Introducimos las variables de holgura X oi, xs. X6. La base inicial está formada por los
vectores columna correspondientes a las variables de holgura, es decir,

O - (a,a ,a. ) _1 0 -1 = I

Iteración 1

z = c'i
R
~ (0.0.0) ( i ) ~ O
iI' - c'0 ' - (O. O. O) / ~ (0.0. 0)

Calculamos ahora Zj - ej . j E J.

%1 - Cl (0,0,0) ( - i)
= (0,0,0) ( ~) - (- 2) - 2

z) - (;] (0,0,0) ( -~ ) . I ~ l
Por el criterio de entrada z ~ - Ck = Máx{ I,2, 1} = 2 =. %2 - ca, por lo que entra en la
base la variable X2 . La variable saliente viene dctcnninada por

X
.I X, X' }
Mio {YU' YS1 ' Y62 -
{4 6S} X,
Mio 1'2'1 = 3 =- YS2

es decir, sale de la base la variable Xs. La columna no unitaria de E I es

y" 1
-- --
2
YS2
1 1
g- - -
Ys2 2
yoz
-- YS2
1
- -2
y El se representa por [ ; ] .
Formas especiales del método d el simplex 201

Iteración 2
Procedcmos a la actualización de los datos de la tabla . Utilizamos para cllo las
fórmulas de premultiplicación, para el cálcu lo dc x", y dc pustmutiplicación, para el
cálculo de ü.

F,l" ~ ~
El [ ] = [ ~ ] +6 [ ~ ¡~n -[i] ;~ = [ ]

z Z- j2(Z2 - C2) = 0 - 3 - 2 =- 6
u - c"E , - (O, - 2,O) E¡ = (0,- 1,0)

Z¡ -CI (0, - 1.0) ( -i) H)~ 2


z] - e ] (0, . 1,0) ( ~ )-1=1
Observemos que no es necesari o calcular Z2 - ci pues acaba dc salir de la base. Segun
el crite rio de entrada, ha de entrar la variable X l ' Para saber qué variable sale calcula-
mos la col umna j q.

El criterio dc salida es

Mín {.,)!. '13., } ~23 = y," t


por lo e-tal sale de la base la variable X4 . La columna no unitaria de E2 es el vector

g= [ _Y!~ ] y E, se almacena como [ f ]-


Iteración 3

2/3, ]
[ 10/3
x" =

2
3 ] + 1 [ 21/
E2XB = [ O
2
- 18- 4
/3'3 ]

22
- 5/3
-
1/3
-
[;:]
z - - 6- 2-- = = - -
3 3 3
U c"E,Et ~ (- I, -2,O)E,E, ~ ( ;,-2,O)Et ~ (- ~ , - ~ ,o)
z) - C] - UUJ -CJ ~ (-;,- ~,o) ( -D 5
1- --
3

zs - es = Uu,e, = H,-:,o) (n - o ~ -:
202 UNIDAD DIDÁCTICA 2 Algoritmos de programacióo Iincal

Todas las Zj - ej < O. Por lo tanto la solució n óptima es


_ 2 22
XI = 3' 3'

2.3.2 El método del simplex para variables acotadas


En la mayoría de los problemas reales las variables están acotadas , es de-
cir, los valores del vector x tienen que pertenecer a una determinada región
de En limitada por una serie de hipcrplanos paralelos a los ejes coordenados.
Las restricciones de acotación tienen una estructura peculiar que puede ser
aprovechada para desarrollar una forma del algoritmo del simplcx que permi-
ta tratarlas de manera particular, siendo posible obtener un procedimiento de
cálculo más potente que resulta más ágil y permite el tratamiento de problemas
con mayores dimensiones. Vamos entonces a estudiar una variante del algorit-
mo del simplex especi alizada en la resolución de problemas dc programación
lineal en los que las variables están acotadas.
Consideremos e l problema:

Minimizar z = ex
sujeto a:
Ax - b
f < x < ti

en donde f. y u son los vectore s con los valores de la cotas inferiores y superio-
res respectivamente

f, /11
f2 /12
( = 11 =

f" ti'/

Las siguientes observaciones son todas evide ntes.

1. El caso habitual del problema de programación lineal usual es t= 0,


u = ee.

2. Las cotas inferio res admiten un tratamien to simple mediante el cambio


de variable x= e
x - e. La restricción de acotación inferior < x se co n-
vierte entonce s en la condición de no negatividad usual .é > O.

3. Si se recurre a la forma general que utiliza el método del simplex pa-


ra manejar este tipo de restricciones habría que introducir vectores de
variables de hol gura X I y X2 tales que x + X l = U, X - X2 = f.. Esto incre-
menta el n úmero de restri cciones de igualdad a m + 2n y e l número de
Formas es peciales del método del simplcx 203

variables a 3" . Es claro entonces qu e cl trutamicntc genera l de las restric-


ciones de acotación incrementa notablemente el tamaño del problema y
por tanto su complejidad computacional. De aquí que sea necesario bus-
car un método más eficiente desde el punto de vista computacional para
tratar dichas restricc iones.

El método que vamos a desarrollar a continuación se basa en una idea muy


similar a la que se ha utilizado en la forma general del simplex para manejar
las restricciones de no negatividad en las variables. Es necesario comenzar
revisando los conceptos de variables básicas y no básicas.

VARIAB LES Dcñnjcí ón 2.20. Sea A una matriz m x n de rungo m. Sea el sistema de
BÁS ICAS Y NO restricciones
BÁSICAS EN El Ax - b
MÉTODO DEL l < x < u
S IMP l EX PARA
El vector x es una solución básica del sistema si A se puede descomponer
VARIA BLES
de la forma en A = (8 N I N2) donde B es una submatriz m x m de rango m
ACOTADAS
y se verifica:

x"
_
X -
_N,
..
x'"
donde

Si además se cumple que

lB < x" <u"


x'" - lN,
x'" uN,

entonces x se dice que es una solución básica facti ble. La matriz B se


!Jama matriz básica o base, las vari:lbles J!I se llam an variables básicas y
las variables x.N t , xNJ se llaman variables no básicas en sus cotas inferior y
superior respectivamente. Si adem.is se cumple que

entonces el vector x se dice que es una solución básica factibl e no dege-


ncrada. La partición (B NI N2 ) se llama partición básica (factible). Dos
particiones bésfca s (factibles) se dicen adyacentes si todas las van"able.'i no
básicas excepto una coinciden en las dos penicíoncs, estando fijas en las
misma cotas.
204 UN IDA D DIlJ ÁCTI CA 2 Algoritmos de programación lineal

Xl <
+ -'".2 5
-x, + 2'"2 <
O < .\"1 <
4
4
85
- 1 < X2 s 4

Xl = 4
(0,2)

(4,1 )

10.-1 1 (4,-1 )

Fi¡:::UT.II 2.S: Un problema con variables acotadas.

EJEMPLO 2.24 Consi deremos el siguiente conjunto de restricciones

x, + x, < 5
- XI + 2<, < 4
O < x, < 4
- 1 < x, < 4
Introducimos las variab les de holgura

x, + x, -+ x, - 5
-X, + 2<, + X4 - 4
O < x, < 4
- 1 < x, < 4
O < x, < ~

O < x, < ~

Observemos que al tener en cuenta las cotas de las variables originales en realidad
los valores superiores de XJ y X4 son, respectivamente, 6 y 10. Para hallar un solución
básica de este sistema se elige una base de las dos primeras restricciones, se resuelve
respec to de las variables no básicas y después se asigna a las variables no bási cas
los valores de las cotas inferiores o superiores. Por ejemplo, tomamos B - (aZ,a4 ) =

(~ ~) ; entonces IJ -J .= ( ~2 ~) _Multiplicamos las dos primeras ecuaciones por


Formas especiales del método del simplex 205

B - 1 Ypasamos X I ,x] al segundo miembro, es decir, dcspej amos x-.x,

- 6 l-3x¡ + 2.:C)
Ahora asignamos las variab les no básicas a sus cotas inferiores y superiores. Por ejem-
plo, si XI = OYX 3 = Oentonces e¡ = 5 YX 4 = - 6 que es 110 factible. También si X I = 4
YX 3 = Oentonceso = I Y-"-t = 6 Y la solución básica (4, 1, O, 6) es factible. De forma
similar pueden obtenerse el resto de las soluciones básica s factibl es:

(2,3,0,0) (0,2,3,0) (4, 1,0,6) (0,- 1, 6,6) (4, - 1,2, 10)

cuya representación corresponde a los puntos extremos de la región factibl e, figura 2.5.
)ot.

Como podemos observar en el ej emplo las soluciones básicas factibles y los


puntos extremos de Ax = b,f < .x < e son equivalentes. No es dificil comprobar
que este hecho se cumple en general.

2.3.2.1 Fundamentos del método del simplex para variables aco-


t adas
Supongamos que se dispone de una base B y que la matriz no básica se des-
compone en NI y N2 • o sea A = (B NI N2)' Troceamos los vectores x y e según
/'
los índices de las co lumnas de B, x = :/,1 •e = (C/J. c..NI,c'VZ) . Entonces:
, .N,

x" S - lh -S -I N,x'" -- S -' N,x'" (2 .3 1)


z ex = JIx" + r!" x'" + eN, J'>
d'W-Ih - S - IN,x'" - S - IN,J'» + r!" x'" +cN,J'>
eHB- ' h+(r!" -cHS 'N¡)x"' +(cN, -d'n - 'N, )x'" (2.32)

Supongamos que una determinada iteración disponemos de la so lución básica


factible correspondiente a B dada por

podernos sustituir los valores anteriores en las ecuaciones 2.31 y 2.32 Y ten-
dremos:

;?' S -'h -s-'N,eN, - /J -'N,tI"


z cHB- 'b + (r!" - d's -'N, )eN, + (e'" - d' S - IN, )uN,

Observemos que las expresiones anteriores proporcionan los verdaderos va-


lores de z y x! cn la solución básica actual; estos valores no deben confun-
dirse con el t érmino independiente de la expresión de z, que es JI 8 - 1b, ni
2U6 UNIDA D DIDÁCTICA 2 Algoritmos de progr amaci ón lineal

con los términos del lado derecho de las ecuaciones que son B: 1 b. Tratare-
mas ahora de investigar si es posible mejorar el valor de la función objeti-
vo modificando los valores de alguna de las variables no básicas. Observe-
mos que (¿VI - ¿ n- IN!) y (c!'2 - eBB- 1N2) son, respectivamente, los valo-
res (ej - Z j) de las variables no básicas en sus cotas inferiores y superiores, es
decir, podemos poner:

z =c"B-'b - I (zj -ej )xj- I (Zj -Cj)Xj


j CR 1 j C R2

siendo

R, es variable no básica que está en su cota inferior}


R, es variable no básica que está en su cota superior}

Ahora bien, si j E R, Y Zj - ej > O sería conveniente aumentar el valor de la


variable no básica Xj desde su cota inferior fj a un valor mayor. A su vez, si
j E R 2 Y Zj - ej < O sería conveniente disminuir el valor de Xj no básica en
su cota superior a un valor más pequeño. Corno se hizo en el método ordinario
del simplex, seleccionamos para introducir en la base una única variable -l . El
índice k de la variable que entra en la base se elige de la forma siguiente. En
primer lugar se calcula el valor

Máximo{Máximo (Zj - Cj ), Máximo (Cj - Zj))


j ER I j~R2

Si el m áximo anterior es negativo o cero entonces resulta que Z;' - Cj < 0, pa-
ra j E R¡ Y también Zj - Cj > O para j E R2. Así pues, no se puede lograr un
mayor decrecimiento de la función objetivo y la solución que tenemos es por
consiguiente una solución óptima. Alternativamente, si dicho máximo es po-
sitivo entonces llamemos k al índice en que se alcanza el máximo . Si k E= Rt
entonces aumentaremos x"
desde su valor actual en la cota inferior fk • mien-
tras que si k C R2 entonces disminuiremos Xk desde su valor actual en la cota
superior Uk . Analizaremos los dos casos anteriores de forma separada.

Caso 1: Incremento de Xk desde su nivel actual i k .

Analicemos hasta dónde se puede incrementar 4. Pongamos Xk ik + f'j,k. =


siendo f'j,k el valor del posible incremento (igual a cero en la solución actual).
Sustituimos este valor en las expresiones de jJ y z:

xli = B - 1h - B - 1N¡ INl - fJ - 1N 2 u"2- B - 1Ok/},/C = re - Ykf'j,k


Z = e n-'b -
B
I (Zj - cj )lj - I (Zj - Cj )Uj - (z, -- q )tl, = z- (z, - q) tl,
j ER¡ jE-R2

Puesto que (Zk- Ck ) es positivo porque k E U[. resulta que cuanto mayor sea
I':1 k mayor será la disminución de z, Pero ~ no puede aumentarse indefinida-
mente sin tener en cuenta las restricciones. El aumento de puede bloquearse "*
Formas especiales del método del simplcx 207

debido a la diferentes situaciones que pueden presentarse y que discutiremos a


continuación.
1) Una variable básica disminuye hasta su cota inferior.
Observemos que se tiene que cumplir que t J < x lJ Xi! - y"ó ". Por tanto=
YIl. Ók < .1 1 - f /l , Ahora bien , si Yk < O resulta que para cua lquier ~ > O
la desigualdad anterior sigue siendo válida. por lo tanto 4. puede in-
crcmcntarsc indefi nidamen te sin vio lar las restricc iones de cota inferior
de ninguna variable básica. Si, por el contrario. existe un s E I tal que
Y.k > O, entonces llega UIl momen to en que una variab le básica alean-
Z' I Sll Cota inferior, por lo cua l no puede seguir aumentándose t.. . Esto
ocurre para un va lor:
Xl - el = mm
. { ~ - fs
Yi } S[M > O y.~1I.

Definamos dic ho límite de aumento de ~ como Yl dado por:


Xl -el .
SI Yk o
Yei (2.33)
00 Si Yk < O

2) Una variable básica akanza su cota superior.


En este caso ha de cumplirse r! - YkÓk < ,}J . Si Yk > Oentonces 1111. pue-
de hacerse indefinidamente grande sin violar esta desigua ldad. Si )lr O i
entonces I1k sólo puede aumentar hasta un valor dado por:

u-:
- 'l---_X-'" = m m
• { u, - ~~
- Yik .flv,.,¡ <o - Y.\'k

El límite de I1k será:


~

u i - Xl

Y.! - - Yilt
SI Yk i O
(2.34)
~ SI Yk > O
3) La variable Xt alcanza su cota superior l4..
Evidentemente esto ocurre cuando ~ llega a va ler Uk - fk,
En resumen, el valor máximo que puede aumentar una variable no básica .l:
vendrá dado por el más pequeño de los tres valores anteriores, o sea :
8k = Min {Yi>y'! .Uk - fk}
=
Si 1111. +00, entonces el aumento de Xk no está bloqueado y por tanto el pro-
blema no tiene solución óptima finita ya que puede incrementarse indefi nida-
mente la variable Xk disminuyendo indefinidamente la función objetivo , Alter-
nativamente, si I1k < 0<.>, entonces se obtiene una nueva solución básica factib le
dando a Xk el valor Xk + 1111. y modificando las variables básicas de acuerdo con
la ecuación que la expresa en función dc n .
208 UNIDAD OlDÁCTlCA 2 Algoritmo, de programaci ón lineal

Actualización de la tabla cuando crece una variable no básica

Analicemos ahora cómo se modifica la tabla del simplcx al aumentar una


variable no básica.
1. Si!!k = Uk - f k entonces no se hace ningún cambio de base Y.lk sigue
siendo no básica, excepto que ahora está en su cota superior. S610 hay
que cambiar la primera columna de la tabla para actualizar los valores
de la función objetivo y de las variables básicas. Estos cambios vienen
dados por las fórmulas

z = z- (Zk - q )" k
x" - ?' - Yk"k
2. Si I'1 k está dado por i1 Ó 12. entonces la variable Xk entra en la base y la
variable Xf sale de la base, donde t. viene dctcnninada por 2.33 si ¡'j¡. = Yl
=
o 2.34 si !'1k )'l. La tabla del simplex se actualiza pivotando sobre »'*
como es usual, exceptuando la primera columna. Notemos que}rk puede
ser positivo o negativo, pero esto no afecta al pivotaje, ya que la primera
columna no se pivota. La primera columna se actualiza de acuerdo con
las ecuaciones

Z z - (Z, -q)"k
x" ?' - Yk"k
Xk f k +'"
Alternativamente la primera columna se puede actualizar directamente
con el resto de la tabla. Para ello hay que reajustar previamente dicha co-
lumna mediante mediante la aplicación de las tres operaciones siguientes
que se pueden ejecutar en cualquier orden:

a) Multiplicar la columna de la variable no básica entrante por su va-


lor actual. ya sea f.k o Uk. Sumar el resultado a la primera columna.
b) Multiplicar la columna básica de la variable saliente por el valor
que va a tomar, ya sea fl o ur. Restar el resultado de la primera
columna.
e) Efectuar un pivotaje normal sobre la primera columna ajustada.

Caso 2: Disminución de Xk desde su nivel actual Uk.

Esta situación es similar a la que acabamos de analizar y únicamente se


van a señalar los principales aspectos. Ahora es 2k - ek < O. Xk = Uk - /j,k, con
/j,k > o. Tendremos:

x" ?' +Yk"k


z z+ (Zk - q )"k
formas especiales del método del sim plex 209

El incremento máximo Ók vendrá dado por:

",, =Mín (l'I.)'> .u, - f ,j

siendo:

si y.;¡~ O
71 =
si y. > 0

Ui - - Xi
--'---'
Ylk

= m III
sty.. >0
{ us - ~ ; s E
Ys.
.¡}
)'> =

si Yk <O
Si /)J. = oo. ento nces la solución óptima es no finita. Si ÓIc < 00 ,
se obtiene
una nueva solución básica factible co n q = Uk - 6 •. La nueva tabla se obtiene
pivotando sobre Yi k.

Actualización de la tabla c ua ndo dec rece una variable no básica

l . Si Ó i = U j; - ti entonces XL sigue siendo no básica pero en su cota infe-


rior. La tabla no se cambia excepto la primera columna que se actualiza
de acuerdo con las fórmulas:

¿ X" +y,""
z = z+ (z, - q) ""

2. Si Ó k está dado por 11 o l'l. entonces Xi entra en la base y Xi sale de la


base. La tab la. excepto la primera co lumna, se actual iza pivotando sobre
Ylk que puede ser positivo o negativo. La primera columna se actualiza
según las ecuaciones anteriores y el valor de la variable que entre es
X,t = U,t - ti! . Alternativamente se puede uti lizar el procedimiento de
pivotajc descrito antcrionnente.

2.3.2.2 Inicialización del método del simplex para varia bles acota-
das
Cuando no se dispone de una solución básica factible adecuada sc puede
iniciar el método usando variables artificiales. Esto se efectúa siguiendo los
pasos siguientes :

l . Se igualan todas la variables originales a una de sus cotas.

2. Se ajustan conveniente mente los valores de b, multiplicando si es preciso


alguna restricción por - 1 para tener b > O.

2 10 UNIDAD Dll)ACTlCA 2 Algoritmos de programación lineal

3. Se añaden las variables artificiales necesarias.

4. Se eliminan de la base las variables artificiales usando el método de


penalización o el método de las dos fases.

De manera análoga al método del simplcx, se demuestra que el algoritmo para


variables acotadas converge.

2.3.2 .3 Esquema del algoritmo d el sim plex para variables acotadas


(m inim izació n)
Paso de Inicialización

1) Encontrar una solución básica factible inicial, recurriendo en caso nece-


sario a la introducción de variables artificiales.

2) Sca x" el vector de variables básicas y 1"1 variables no básicas en su cota


inferior y xf"h. variables no básicas en su cota superior.

3) Representar el sistema

-z c!'B- Ib + (ti" - c"B- 1NI )i N , + (e'" - c!'s-IN, )tI"


X" - B-'b -B- 1N l i N, - B- IN, u'"

en forma de tabla del simplex de la manera siguiente;

z z O c!'B- IN, -<!"

Paso principa l

1) Si Zj - Cj < Opara toda variable no básica en su cota inferior y z¡ - Cj > O


para toda variable no básica en su cota superior, enton ces FINALIZAR:
la soluci ón actual es la solución óptima.
De lo contrario sea k la variable dada por:

zk - q = Máx { jMáx
ERI
Z ' -C '
J J'
Máx
J Elll
Cj - Zj }

S ik E R¡ ir a Z.
Si k E R2 ir a 3.

2) Incrementar Xk en el valor fj,k dado por fj, k = Min{ ')'l , ~ , Uk - f.k } '
Si fj, k = oc , entonces FINALI ZAR: no exi ste so luci ón óptima finita.
En caso contrario actualizar la tabla y repetir el paso 1).
Formas especiales del método del eimplex 21 1

3) Decrementar X¡ en cl valor ó ¡ dado por ó ¡ = Mín{y"J'¡,u¡ - f¡ }.


Si t!J." = 00, fJ NALlZAR. no existe solución óptima finita.
En caso contrario actualizar la tabla y repeti r el paso l .

EJEMPLO 2.25

Minimizar z = - 2x ¡ - 4 x 2 - XJ
sujeto a
2.1;1 + X, + Xl < 10
Xl + X, Xl < 4
O < Xl < 4
O < X, < 6
1 < Xl < 4
Introducimos las variables de holgura

Minimizar z = - 2xl - 4X2 - Xl -1-OX4 + Oxs


suj eto a
2.1;1 r X, + Xl + X, - 10
Xl + X, Xl -1 x, - 4
O < Xl < 4
O < x, < (,
1 < Xl < 4
O
O
< .q <
< Xs <
--
La base inicial es (lI4,tlS) . L~IS variables no básica.s en sus cotas infe riores son x¡ = O,
X2 ;= O, Xl = I que proporcionan los valores X4 = 10 - X3 = 9, Xs = 4 + X3 = 5 Y
z = - l. Escribimos la tabla inicial en la cual med iante la letra 1. o la letra u se indica,
respectivamente, si una variable no básica está en su cota inferior o en su cota superior.

'la bia inicial


e f e
Xl X, Xl X, X,
z - 1 2 4 1 O O
X, 9 2 1 1 1 O
X, S 1 CD - 1 O 1

Usamos ahora el criterio de entrada modifi cado con R l = {1,2,3 }, R2 = 0.

Máx {Zj - Cj} = Máx{2, 4, l} ~ 4 = z, - C2


l eN¡

Lucgo k = 2 Yentra la variable X 2 . Para determinar la vari able saliente utilizamos el


criterio dc salida modificado.

n - . {x.-t.
M In -
~
- Y sk
}
> O = Mio - - {9-0I ' S-O}
1
= 5 o:- s. -«
.'"-....::0
Y S2
_. 00 ya tille Y2 >O
1'l
Y2 - 1.2 - 6 -0 = 6
,
212 UNIDAD OID ACTl CA 2 Algoritmos de programación lineal

De aqul 6/{ = Mín {5, 00, 6} -= 5 y, por tanto, sale la variable x 5, Entonces se pivota
conY52, salvo la primera columna que se actualiza de la manera siguiente

x, - 9 -1 , 5 ~4
X, 5 -5 =0
x, 5
z - 1 4 ,5 ~ - 21

La nueva tabla es

e e e
x, X2 Xl X, x,
z - 21 -2 o 5 o -4
x, 4 1 o 2 1 1
x, 5 1 1 - 1 o 1

Todas las variables no básicas es tán en sus cotas inferiores, R I = {l,3,5} Y Rz = 0.

Por tanto entra X). Para determinar la variable saliente calculamos

y,

De aquí, Mln{2, 1,3} - 1, por lo que sale la variablc r r y se pivota sobre Y2) . Ahora
se cambia la primera columna

X4 4 - 2· 1 = 2
X2 5 -( - 1)· 1 ~ 6
X3 x) f/j,/{ =11 1 =2
Z - - 2 1- 5, 1 ~ - 26

Observemos qucx2 es una variable no básica en su cota superior. Alternativamente se


puede actualizar la primera columna haciendo

donde la primera columna del primer miembro es la columna actual, la segunda es


la columna no básica entrante multiplicada por su valor actual y la tercera es la ce-
lumna no básica saliente multiplicada po r el valor que va a tomar, para luego pivotar
normalmente so bre esta columna. La nueva tabla es
Formas especiales del método del simplcx 213

e u e
XI X, X, x, x,
Z - 26 ] 5 O O - 1
X4 2 3 2 O 1 l
x, 2 - 1 - 1 1 O - 1

Procedemos a la siguiente iteración. Tenemos R 1 = { I,S} Y Rz . :.- {5}. Entonces


Máx{z¡-
j ER ¡
Cj I ~ Máx {J. - 1} = 3 - zr - C,

Máx{c¡- zj I ~ Máx ( -51 = - 5 = ca - Z,


j CR 2

Máx{Máx, Máx) = Máx {J. - 51 ~ 3


R, R2
por lo cual entra la variable x t • Para determinar la variable saliente
• { 2 _. O} = -2 = :::
X4,:-/:::4
y, = Mm
3 3 Y4 J

1'1 - Mío {4-2}~ 2=


1
U3 -
- Y3 J
X3

Uj - t I - 4-0~ 4

'" - Ming.2.4} ~ ~
por lo que sale la variable X4 . Se pivota sobre Y 41 y los nuevos valores de las variables
son
2
-26- 3 · -= - 28
3

Alternativamente, se puede calcular la columna

( -2~ ) +0( j ) 0( ~ ) = ( -2~ )


y se pivota normalmente. La nueva tabla es

u e e
x, x, Xl X4 X,
Z - 28 O 3 O - 1 O
2 2 1 1
x, - I - O - -
3 3 3 3
8 1 1 2
X3
3
O --
3
I -
3
-- 3
214 UNIlJAD DIDÁ CTICA 2 Algoritmos de programación lineal

Tenemos ahora R¡ --= {4,5} YR2 = {2}. Entonces

Máx{Zj - eJ} ~ Máx {- I,O} = O


JER 1

Máx {cr zJ } ~ Máx { -3 ) ~- 3

Máx {O, - 3} = O
Puesto que el máximo del criterio de entrada es menor o igual que cero obtenemos
que la solución actual es la soluc ión óptima :
_ 2
XI = 3' i , = 0, z = - 28

2.3.3 El algorit mo de descomposición


El algori tmo de descomposición es una versión particular del algoritmo del
simplex especializada en la resolución de problemas lineales de gran escala
con muchas restricciones y variables y una estructura peculiar. En mucho s pro-
blemas rea les se observa que el sistema que se quiere modelar se compone de
subsistemas que gozan de cierta independencia entre si y están interrelaciona-
dos únicamente a través de un número no elevado de condiciones que afectan
globalmente a todos ellos. Ello se traduce en que en la mayor parte de las res-
tricciones que modelan cada WlO de los subsistemas intervienen únicamente
unas pocas variables, m ientras q ue só lo en un número relativamente pequeño
de restricc iones aparecen involucradas todas las condiciones del sistema. La
matriz A de t érm inos dc las restri cciones presenta una estructura pecul iar en
forma de cajas dc elementos d istintos de cero como se representa en la fi gu-
ra 2.6.

RESTR ICCIO NES GLOBAI.ES


I
ISU RS IST EMA l

SUBS IST EMA 2

[ SU BS IST EMA R I
fo'igu ra 2.6: Estructura de la matriz de restricciones de un problema de programación lineal
susceptible de ser resuelto mediante el algoritmo de descom posición.

La estrategia del algoritmo de descomposición consiste en operar con dos


programas lineales; uno formado a partir del conj unto de restricciones globales
Formas especiales del método del simplex 215

y otro formado a partir del conjunto de restricciones de los subsi stemas. La


informaci ón se va pasando de uno a otro hasta alcanzar el óptimo.
El problema que consideraremos en este apartado tiene la forma siguiente

Minimizar z = ex
sujeto a
Ax b
x E: X

siendo X un conjunto pol iédrico definido por las restricciones particulares, es


decir, aq uellas que no afectan a la generalidad del sistema. Distinguiremos dos
casos según que X sea o no un conj unto acerado.

2.3.3.1 El caso X acotado


Supondremos en este apartado que el conj unto X es acotado. Entonces, por
el corolario l . t I X tiene un número fi nito de puntos extremos q ue denota rem os
con XI,X2, •. , XI E:: X . Por el teo rema 1. 15 cualquier .r E X se puede representar
como combinación convexa de dichos puntos extremos, o sea, .r = Lj I AjXj,
con I.}=:I Aj = I Y Aj > O para j = 1,2, . . . .t , Entonces podemos poner

z = ex = e (¿ AjXj) = ¿ (CXj )Aj

b = Ax = A (¿ AjXj) = ¿ (Axj )/.j


De esta forma el problem a original se puede transfonnar en el siguiente pro-
blema en las variab les A.jo denominado problema máster.
PROB LEMA Definición 2.2 1. Se Jlama problem a mástcr del algoritmo de descampo.
MÁSTER DEL s íc íón al siguiente problema de programación lineal
ALGORITMO DE
I
DESCOMPOSICiÓN
Minimirsr z = L (eXj) Aj
j=1
sujeto a
I

¿ (AXj )Aj b
j =- I
I
¿ Aj I
j = 1
Aj > O

Puesto que el número de puntos extremos 1 es en general muy grande, tra-


lar de enumerarlos todos expllcitarncntc y resolver directamente el problema
mástcr es, en general, eomputacionalmentc complicado, por lo que es necesa-
rio buscar tul método de resoJución apropiado para este problema.
,
216 UNIDAD DIIlA CTICA 2 Algoritmos de programación lineal

Utiliza remos para ello el método del simplcx revisado. Supongamos que
disponemos de una so lución básica del problema máster A = (l B.ÁN) Y co-
nocemos la matriz inversa de la base n-l. Ésta es una matriz (m+ 1) x (m+ 1)
ya que en el problema tenemos las m restricciones debidas a la matriz A y la
restricción adicional que exige que las variab les A, sume n uno. Denotamos
por u = ( u J." " um) las variables duales asociadas a las m primeras restric-
ciones y por ex a la variable dual asociada a la última restricción. Ponemos
además c= (CXI,CX2•. ..,CXI ) = (CXj) , j = 1. 2, . . . •1 que es el vector de coe-
ficiente s en la función objetivo del problema máster. Podemos entonces es-
cribir (!I B - 1 = (u, a), siendo en el subvcctor de costes correspond ientes a
las variables básicas. El lado derecho del problema es (~) y denotaremos

b = B-1 (~) . Con estas notaciones, la tabl a de la forma revisada del algorit-
mo del simplcx es
C"/; (u,a)
b 8-1

Procedemos ahora de la manen! que indica la forma revisada del algoritmo del
simplcx. Para saber si la solución actual es óptima calculamos
~

zk - CA Máximo (z¡- e])


1"5J '5t

- Máximo { (l/,a)
I $J< t
(A?) - CX] }
Máximo {l/Ax] + a - cx]} (2.35)
I $.J<;.t

Corno para las variables básicas se tiene que .<; - ~ = O, el máximo anterior
tiene que ser mayor o igual que cero. Ahora bien, si el máximo anterior es igual
a cero resulta que para cualquier índice j se tiene que :; - Cj < O, incluidas to-
das las variables no básicas; de ello podernos deducir que la solución actual es
la solución óptima; en otras palabras. el criterio de óptimo del problema máster
es que el máximo calculado en 2.35 sea cero, es decir; "l - CA: = O. Al ternati-
vamente, si Zk - CA: > Odeberá incrementarse la variable .Al . La detenn inaci6n
del índice k para el cual se alcanza el máximo no se puede calcular de manera
sencilla mediante la ecuación 2.35 puesto que el número de puntos extremos
es muy grande y además no se conocen explícitamente. Necesitamos utilizar
entonces un método alternativo. Como X es un conjunto poliédrico acotado,
sabemos que el máximo de una función lineal en X ha de alcanzarse en un
punto extremo:

Máximo( l/AxJ• + a - cxJ· } Máximo {uAx + a ex }


I $.i $t , ex
Máximo{ (uA - e)x + a }
, eX
Formas especiales del método del simplcx 217

As í pues, dada una solución básica factible (ltP,A. k) con variables duales (u,a)
para determ inar la variable en trante hay que resolver el llamado subproblema
lineal del algoritmo de d escomposición.
SUBPROBLEMA Definición 2.22. Se Jlama subproblema lineal del algoritmo de descom-
LINEAL Del posición al siguiente problema
ALGORITMO DE
DESCOMPOSICiÓN Maximizar (uA - c )x + a
sujeto a
x EX

En principio, el subproblema lineal es un problema "fácil" debido a la espe-


cial estructura de X. Observemos que la func ión objetivo contiene una constan-
te pero, trivialmente, ello no supone ninguna difi cultad para la maximización.
Sea xt una solución óptima del subproblema lineal y sea (~ - Ci ) el valor
óptimo de la funció n del objetivo en a . Si (Zk - Ck) = O, entonces la so lución
básica actual (A. B. AN) es óptima. De lo contrario, si (Zk - 2.tc) > O la variable
Ák debe entrar en 1.1 base. Según 1.1 forma revisada del algoritmo del simplex,
la columna k se actual iza de la fonna n = B - J [A;k].Puesto que estamos su-
poniendo que X es acotado, el probl ema mástcr no puede ser no acotado, por
lo cual no puede ocurrir que )i: < O. Se añade entonces a la tabla la columna
[ZkYkeh] . Sc detcnnina la variable que sale de la forma usual y se itera sobre
el pivote Yik volviendo a reiniciarse el proceso.

Esque ma del a lgorit mo de desco mposición para X acotado

Paso inicial

• Determinar una solución básica factible inicial del problema master aso-
ciada a la base B y formar la tabla maestra

,.B b (u,a)
b 8- 1

Pa so principal

1. Resolver el subprob lema lineal

Maximizar Z = (uA - c)x+ a


sujeto a x EX

Sea Xk una solución básica fact ible óptima con valor objetivo ~ - Ck.
218 UNIDAD DIDÁCTICA 2 Algoritmos de programaci ón lineal

Si Zk - c* = O, entonces FINALIZAR: la solución actual de la tabla


maestra es la solución óptima.
En caso contrario ir al paso 2.

2. Sea v« = B [A;!] .Añadir la columna [ Yk -] a la tabla maestra.


I
ZA: -r cs:

Determinar l por la relac ión:

b, , . b,
-Ylt = Mínimo
1:5.\':5m+ I { Ysk'

Pivotar sobre YIk. para actualizar la tabla. Eliminar la columna k y volver


al paso 1.

O bservaciones

l . El algoritmo de descomposición es una forma práctica especial del méto-


do del simplex, con la peculiaridad de que el cálculo de ~ - ék se en-
cuentra mediante la resolución de un determinado subproblema. Por tan-
to el algoritmo converge 1,.'Tl un número finito de iteraciones siempre y
cuando en caso de degen eración se adopte un regla para la prevención
del ciclajc tanto en el problema rnástcr como en el subp roblema.

2. En cada iteración el problema máster proporciona una nueva so lución


básica mejorada, en ausencia de degeneración, mediante la introducción
de la variable no básica ~ que es generada por el subproblema . En cada
iteraci ón el subproblema proporciona un nuevo punto extremo .lk; por
eso a este procedimiento se llama a veces esquema de gencrdc;ón de
columnas.

3. En cada iteración un vector dual diferente se pasa de la tabla maestra al


subproblema. En lugar de resolver de nuevo completamente el subpro-
blema se puede utilizar la base óptima an terior modificando el vector de
costes.

4. En cada iteración, no es estrictamente necesario llegar a encontrar el


máximo del subproblema. En real idad, basta con que el punto extremo
Xk satisfaga que Zk - éi =(uA - C) X k + ex > O. En este caso la variable
A.k es cand idata a entrar en la base en el problema máster.

5. Si las restricciones iniciales del problema master son restricciones de


desigualdad, entonces además de resolver el subproblema se deben com-
probar las z¡ - él para las variables de holgura no básicas, puesto que,
como podemos comprobar, estas variable no entran en el subproblema.
Furrnas especia les del método del simplcx 219

Para una restricción del problema máster de tipo menor o igual con va-
riable de holgura XS¡ se tendrá

Zy¡ -2.s'i = (U, b) (~) - O = ue¡+ O· O = ue¡ = u¡

De modo que si U¡ > O la variable de holgura Xs¡ seria candidata a entrar


en la base.

=
6. El algoritmo se detien e cua ndo Max (Zj - Cj ) O. Puesto que el número
de variab les 1. 10 )..2, . . • ,,\¡ puede ser mu y g rande, aplicar el algoritmo
hasta que se ve rifique dicha cond ición puede preci sar un elevado número
de iteraciones. Por ello, en la práctica se pued e proceder del modo que
se ind ica a continuación.

A) Buscar una cota inferi or para la función del objetivo en una solu-
ción factible y, consecuentemente, en la solución óptima.
B) Co mo cl algoritmo ge ne ra puntos fac tibles mejorados, el procedi-
miento pued e detenerse cuando la diferencia entre el valor actual
de la fu nción objetivo y la cota sea menor que una tolerancia aecp-
tablc.
Para encontrar una cota inferior para la func ión del objetivo se puc-
dc proceder del modo siguiente. Sea el problema:

Maximizar (uA--c)x + a
sujeto a x EX

Sea (Zk - CA:) el valor óptimo. Sea x cualquier solución factible del
problema original, es decir, Ax =
b, x E: X . Dado que (z.t: - ék) es
el máximo se tiene

z, - c, > (uA - c)x+ a = uAx -cx +"


por lo que

De aquí resulta

Dado que esto es cierto para cualquier x tal que Ax = b, x E X


resulta que
-8 -
Mínimo {cx I Ax = b; x C X } > e b - (z, - c,)
es decir [en b - (Zk - 'Ek)] es una cota inferior para la fun ción obje-
tivo.
220 U N ID AD DID ÁCTI C A 2 Algoritmos dc program ación lineal

Determ inación de una base inicial

El algoritmo de descomposición necesita comenzar con una hase inicial.


Veamos de qué manera se puede obte ner.

a) Restricciones de desigualdad Supongamos que se puede encontrar


XI E X tal que A XI < b, Entonces la base inicial es la siguiente

B =( ~ lA;' )
siendo 11a matriz identidad asociada a las variables de holgura qu e
denotaremos en esta ocasión con i. Obviamente B es un base cuya
inversa es de la forma

La tabla inicial de la forma revisada es

Tabla inicial
z cx, O ex,
xl' h - Ax l 1 - Ax ¡
A, l O l

Si no se puede encontrar XI E X de forma sencilla tal que satisfa-


ga Ax < b, entonces después de añadir las variables de holgura se
modifican conveniente mente las ecuaciones de forma que todas los
t érmi nos b¡ sean no negativos y se añaden las variables artificiales
necesarias para disponer de un matriz identidad. Para eliminar de
la base las variables artificiales se usa el método de las penalidades
o el m étodo de las do s fases.
b) Restricciones de igualdad
Se introducen las variables artifici ales necesari as para tener una
matriz unidad y se eliminan con uno de los métodos usuales.

EJEMPLO 2.26 Sea el prob lema

Minimizar z = -2x¡ -x2 -x3 +x4


sujeto a
XI
X,
+ x, < 2
+ X2 + 2x4 < 3
X, < 2
x, < 5
Xl + X4 < 2
2x3 + X4 < 6
xi, X2, Xl. x4 > O
Pormas especiales del método del simplex 221

Notemos que la tercera y cuarta restricción sólo contienen a .r I y X2 mientras que


en la q uinta y se xta sólo fi guran -'"3 y :q. Vamos a lo mar como X el conj unto de las
cuatro últimas restricciones j unto con las restricciones de no negativ idad. de fo rm a
que el subproblema de minimi zar una funciónlinea l cü X va a ser UIl proceso simple.
Llamamos

A-e o
I
I
o

{( X l , Xl) 0:. El I Xl < 2, Xl + 2X2 < 5, x r, X2 ? O}


{ (X ),X4 ) 0:.E2 1 - XJ t-X4< 2, 2xj +X4 <6, XJ,X4 >O }
{(x"X"X3,X4 ) CH4 ! (x" x,) E X" (X3, X4) e X, }

x, X, .\'4

3 .r ¡ = 2 3
(o.¡¡
X2
,>
2 •o .,,
(2. ~)
-I¡ '1-
"Y.
y

\1
<,-.., ~s
o-

1I 1I
o 2 3 Xl o 1 2 3 .\')

Figura 2.7: Región factible del subproblema del algoritmo de descomposición.

En la fi gura 2.7 se representan los conjuntos X l y Xl que serv irán para reso lver
gráficamen te los subprob lemas. Como punto de partida se puede tomar el punto x l =-
(0,0, 0, 0) que verifica evidentemente las dos primeras restricciones.

o
o o
Ax'
e I o
o
En dicho punto la función objetivo toma el valor

()

O
(- 2, - 1, - 1, 1) ()
= ()

()

Añadimos a la primera y segunda restricción sendas variables de holgura, denotadas


por .l¡', 4 · Entonces las variab les de la base de partida son x1 ,~, Al y tenem os los
222 UNIDAD DIDÁCTICA 2 Algoritmos dc programación lineal

datos iniciales que se expresan a continuación.

/J - G!~) B- =
J
G! ~)
(u, a) é"B- J = (O. O. O)B- ' = (0,0,0)

b B-
J
(7) ~ (~ ! Dm m =

Así pues, la primera tabla del problema m ástcr, donde Ll) significa "Lado Derech o de
las restricciones", es la siguiente:

Tab la inicial
LO Inversa
z O O O O

xl 2 I O O
>1 3 O I O
A, 1 O O 1

Itcmci6n 1

l . Subproblema
Puesto que u ~ (0,0), ex = O, c = ( 2, - 1, -1 ,1 ) resulta que

(uA- c)x+ ex = (O· A- e)x + O~ « ex = 2< , + x, + X' - X4

Entonces el subproblema es

Este problema se puede separar en dos partes: una con respecto a x I y X2 Y


otra con respecto a X3 Y 44_ La solución de cada una de ellas se encuentra fácil-
mente en la figura 2.7. Como podemos apreciar, los óptimos en X t Y X2 son,
respectivamente, (Xl.X2) =(2,~ ) Y(Xl ,x.. ) - (3,0). Entonces la solución ópti-
ma del subproblema es el vector x 2 =
( 2, ~. 3. 0)' en el cual la función objetivo
dc1 subproblema toma el valor Z2 - e2 2 ·2 + ~ + 3 = J,f > O. Por tanto la
=
solución actual no es óptima y hay que introducir en la base la variable J.. 2 ce-
rrespondientc al punto extremo x 2 que hemos obtenido en el subproblema. La
cota inferior que tenemos para la función objetivo es

- _ 17 17
é"b - (z, ~ C2) = 0 -- ~ --
2 2
El mejor valor de la función obj etivo que tenemos hasta el momento es z -= O,
que co rresponde al punto inicial. La diferencia entre este valor y la cota inferior
es apreciable por lo que debemos seguir con las iteraciones.
Formas especiales del método del simplex 223

2. ' "m blt.·ma unístcr

2
_
Z2- ez=-
2
17
Ax' -- [11 01 (', (2)] 3 /3
2
7i2
= [ ']
()

Para actualizar el vector (A¡] se multiplica por 0-1

Añadimos a la tabla la correspondiente columna.

LO Inversa
z () O O O I 1712 I
.<t 2 1 O O 0712
<t 3 O I ()

)., 1 O () 1 1

Para determinar la variable sal iente calculamos

. { 2 3 1} 2
Mm S' r l = 5

por lo que sale de la base x7 y se pivota sobre el 5. La labia actualizada es:

LD Inversa
z - 17/ 5 - 17/ 10 O O
)., 2 /5 1/ 5 O O
0, X/ 5 - 7/ 10 I O
)., 3 /5 - 1/ 5 () I

La mejor solución del problema completo que se conoce hasta ahora es

que da a la func ión objetivo un valorz = - l/.También tenemos que ("I. U2. a ) =
(-!.l. O,O)
,
224 UN IDAD DIDACTl CA 2 Algoritmos de programación lineal

Iteración 2

1. Subproblema
Como U l =- :~ < Oentonces x7 no es candidata a entrar en la base. Tenemos

(uA- c) = (-:~'O) (: o
1 O 2
1 0) _( _'2 - 1 _ 1 t ) =
."
(2. 1 _2. - 1)
10" 10'

Como a = Oel subproblema es

En la flgura 2.7 se encuentra que la solución óptima es x 3 - (O, ~,O, O). en la


cualla función objetivo vale z] - el
= ~ > O. Esto indica que hay que intro-
ducir A] en la base. La cota inferior que tenemos para la función objetivo del
probl ema general es

mientras ~uc el valor de z en la mejor solución conocida hasta el momento es


igual a - 57 • Como la d iferencia entre ambos valores es apreciable debemos
seguir con las iteraciones.

2. Problema mésrcr

o
_ 5
ZJ- C]- -
2 Ax' ~ [ : ~ ~ ~] 5~2 = [5~2]
O

Calculamos el vector

y , -B I .-!x']
[1 = [1
- 7//510
- t/ 5

y añadimos esta columna a la tabla.

LD Inversa
--
z - 17/5 - 17/ 10 O OI I 512 I
)., 215 1/ 5 O O O
s, R/5 -7/ lO t O 5/2

-
A, 3/5 - t/5 O t CD
'-' -
El criterio de salida detcnnina que sale de la base la variable A). Después de
pivotar sobre el I se obtiene la tabla siguiente.
Formas especiales del método del simplcx 225
-
LD Inversa
z 49/10 - 6/ 5 O - 5/2
A2 215 1/ 5 O O
52 1/10 - 1/ 5 I - 5/ 2
A, 315 - 1/5 O I

La mejor solución factible conocida del problema original es

X=A2x' _,x' = 52 (2'2,3,0


+A 3 ) + 53 ( 0'2,0,0
5 ) = (45'10'5,0
21 6 )

en la cual la función objetivo toma el valor z = - ~ . Asimismo (UJ, u2. a ) =


(-~ , o, -n ·
Iteración 3
l . Subproblema
Como 11 1 < () entonces xt no es candidata a en tra r en la base. Tenemos
O 1
O
0)
2
_ (.2 _ 1
• • •
_1 1 ) = (41
5"
_~
S'
_ 1 )
I

Como a = - i el subproblema es
. . {4
Maximizar 1
- X I+ X2- - X l - X4- -
5
55 2
Si rec urrimos de nuevo a la fi gura 2.7 vemos q ue la soluc ión óptima es x 4 _-
(2. ~ ,0, 0) en la cual la funci ón objetivo loma el valor Z4 - 24 = ~ > O. Entonces
se introduce ~ en la base.La cola infe rior tille tenemos para la función objetivo
del problema genera l es

- _ 49 3 55
c"b - (z. -c. ) ~ - - - - =- - = - 5 5
105 10 ·
El mejor valor conoc ido de z hasta ahora es - 4 .9. Si esta precisión fuese suñ-
cientc se podría parar aq uí la aplicación del algoritmo.
2. Probkma m éstcr

2
_ 3
Z4 - C4 = - > O
5 Ax' = [ : ~ ~ ~] 3~2 = [772]
O
Calcu lamos el vector:

= [;~;]
3/5
y añadimos esta columna a la tabla.
226 UNIDA D DIDÁ CTI CA 2 Algoritmos de programacióo lineal

LO Inversa
z - 49/ 10 - 6/ 5 O - 5/ 2 3/5
A, 215 1/ 5 O O 215

.<1
Al
1/10
3/5
1/ 5
- 1/ 5
1
O
- 5/ 2
1
(0 3/5

El criterio de sal ida determi na que abandona la base la variable x ~ . Al pivotar


sobre ~ se llega a la tab la siguiente

LD Inversa
z - 5 - 1 - 1 O
A, 1/3 1/ 3 2/ 3 5/3
A., 1/6 - 1/ 3 5/ 3 - 25/ 6
Al 112 O - 1 7/ 2

La mejor solución factib le conocida del problema completo es

A,"" + A]x' + 4<'


2 O 2 I
3/2 1 5/2 I 3/ 2 1 2
3 3
- + O -2 + O -6 1
O O O O
en la cua l la función obj etivo vale z - - 5, Y (ul,uZ, a ) = ( - 1, - 1,0 ) .
Iteración 4
l . Subproblem a
Como 11 1 < 0, 112 < 0, entonces las vari ables x7.x1 no son candidatas a entrar
en la base. Tenemos

(UA-Cl -(- I.- il (: ~ ~ ~) - (-2. - I . - I.l l = (0.0'0. -3l


Por tanto el subproblema es

Maximizar {OXI + OX2 + fu) 3X4 I ( X J, X2) E X I , (X3,X4) E- X2}


En la figura 2.7 vemos que la solución óptima es x I = O, Xl O, Xl - O, X4 = =
O con función objetivo Zs - e5
= O. Por tanto hemos llegado a la condición
de fi nalización del algoritmo. Observemos que la cota inferior para la función
objetivo es
=
é"b - (z, - c, ) - 5- 0 ~ - 5
que es la mejor solución conocida hasta ahora y por tanto es la solución óptima.
En resumen , la solución

XI = 1, X2 - 2, Xl - 1, X4 = O, z"- -5
es la solución óptima.
Formas especiales del método del simplcx 227

En la figura 2.8 se representa la evolución de los valores de función objetivo y de la


cota inferior a lo largo de las iteraciones .

1 2 J 4 Iteración

o I
- -.,
El
>
o Valor obj etivo pr imal
o
.-"o- " J
, ·0· 0
-
4
. ~
2 ·~
••
- -1. \1
-,
-. 5
- o

--
".
00
O"

-' ''>.
>
-7
s
- 5.9
- 5.5
Cota inferior

-9

FI~urK 2.8: Representación de la evo lución de los valores de la función objeti vo a lo largo de
1a.'I iteraciones .

Por ejemplo, en la iteración 3 se sabe que la so lución actual vale - 4.9 y que no
ex isten soluciones fact ibles que den a la func ión objetivo un valor inferior a - 5.5. El
punto óptimo ( 1,2, 1,O) corresponde a los puntos ( 1, 2) ~ X t Y ( 1, 0) E Xl tal como se
puede aprec iar en la fig ura 2.7. Obsérvese que no son puntos extremos de X , YX2 nin-
guno de los dos, lo cuall ógicamente no tiene pur qué ocurrir. En cambio sí tienen que
ser puntos extremos si añadimos las restricc iones maest ras como se ve en la figura 2.9.

X2 X4
•• o 2 3
XI
X,
2

I " o .~ . 1

o o
o 2 3 XI o '0 '- (1, 0) 2

Figura 2.9: Algoritmo de descomposición.

En efecto , la primera restricc ión del prob lema es x I -t X3 < 2 . Si añadimos la con-
dición X3 = 1 se obtiene la inecuación x I + l < 2, o sea X I < l . La segunda ecuación
es Xt + X 2 + 2x4 ~ 3. Si añadimos la condic ión X 4 '- O res ulta XI + X 2 + "5 3, o St.'3
X I + X2 < 3. Entonces si al conjunto XI le añadimos estas dos restricc iones adicionales
°
oblcnc mos una región factible en la cual el punto (1.2) sí es un punto ex tremo. Ami to-
,
228 UNIDAD DmACnCA 2 Algoritmos dc programación lineal

gameme, si en la primera y segunda restricci ón sustituimos I I Y X2 por sus valores


óptimos queda I t Xl < 2, o sea XJ < 1. También I +2 +- 2r4 < 3, O sea I4 < O. En la
región factible así considerada el punto ( 1,0) si es punto extremo.

2.3.3.2 El caso X no acotado


Si el conjunto X es no acotado el algoritmo de descomposición debe expe-
rimentar una ligera modificación debido a que, como hemos visto en el teore -
ma 1. 15,105 puntos dcX se representan como combinación convexa no sólo de
sus puntos extremos sino también de sus direcciones extremas. Ello significa
que si Xj son los puntos extremos y dj las direcciones extremas de X entonces
un punto x E X se puede escribir de la forma
I l
x L AjXj + L /l}dj
j =-l )=1
I
L ).} l
j= 1
Aj :> O j ~ 1, ,1
/lj .> O j ~ I, ,l

El problema primal se puede rcfonnular entonces como un problema en las


variables 1..1 " .. •Át. 111•. . . •l1t Y convertirse en el problema siguiente:

I l
Minimizar a e L (CXj) Aj + L (c dj )/li
J= I j=l
sujeto a
I l
L (AXj )Aj + L (A dj) /lj b
j=1 j - l
I
L Aj 1
j -: I
Aj :> O j ~ 1, ,1
/l} :> O j ~ l, ,l
Si utilizamos el método del simplex revisado para resolver este problema, en
una iteración cualquiera tendremos la tabla

C"b (u, a )
b B I

en donde

-
e _ (CX I •• .. ,cx¡, cdl , ' . . , edi )
(u,a) C" B- 1
b B-
1
G)
Formas especiales del método del simplcx 229
- - - -- - - - - - - - - - - - - - -
Scgún el criterio de optimalidad la solución actual será óptima si se verifica
que Zj - S
< O para tod as las variables. En particular, se han de cump lir las
condici ones sig uientes :

• Para Aj no básica

(2.36)

• Para Jlj no básica

al ) - cdj = uA dj - cdj < O


Zj - cj = (u, a ) ( Ad (2.37)

Como, en general, el número de puntos ex tremos y d irecciones extremas es


mu y elevado es inviable co mproba r d irectamen te las co ndiciones anteriores
examinando el valor de los Zj - ej en cada uno de dichos puntos y d irecciones.
En su lugar, hay que idear un proced im iento indirecto que permita sabe r si se
verifican o no d ich as co ndiciones de optimalidad y en caso nega tivo encon trar
una man era de determinar qué variable debe en trar en la base. Planteamos
entonces el sig uiente subproblema:

Maximi zar (uA -c)x +a


sujeto a x <= X

Supongamos en pri mer lugar que el problema anterior tiene un óptimo no aco-
tad o. Esto sólo es posible si existe una di recci ón extrema 4: para la cual se
cumple que (uA - c)d" > O, puesto que como Jq > O pued e hacerse arbitraria-
mente grande entonces x = JIK(h es fa ctible para valores arbitrariamen te g ran-
des con lo cual la funci ón objetivo (/fA- e ) (Jlkd/i. ) + ex - ) ee. Así p UCS, en este
C"1SO no se cumple la cond ic ión de óptimo 2.37 para e l co rrespondiente ~ - eh
=
es deci r, Z/i. - C/i. (l/A - C)dk > O, con lo cual t1k será clig iblc para entrar en la
hase. Se ge nera entonces 1a co lumna [ AO
d. ] ' se actua l·Iza prcmu 1np
·1 rcanco
· ·'

por IJ- 1 para obtener la col um ua w y se añ ade a la tab la la co lumna resultante

[
Z! -
y.
ek
] , co ntinuando con la aplicac ión dd m étodo del simplex revisado .

Supongamos ahora que la so luc ió n óptima del s ubproblema es acotada. Pa-


ra ello es condición necesaria y suficien te que ( /lA - c)(~' < O pa ra todas las
direcciones ext remas. Como con secuencia, se cumple la cond ición 2.3 7 pa ra
todas )¡IS variab les JEj. veamos qué ocu rre con la condición 2.36. Se" ~ el
punto ex tremo óptimo ge nerado y sea 1,1; - Ck el correspondiente valor de la
fun ción objetivo del subproblema. Si 1,1; - CA: < O enton ces, al ser óptimo, pam
cualq uier otro punto extremo xl' se tendrá
230 UNIDAD DIDÁ CTI CA 2 Algoritmos de programaci ón lineal

y, por tanto, la condición Zj - ej < O se cumple para todas las variables 'A¿
fuera de la base. Si por el contrario zt - Ck > 0, entonces hay que introdu cir
.
en la base la variables A¡¡ . Para ello se genera la columna Yk = B - ,(AX,)
1

Y se añade a la tabla la co lumna [Zk Ck] continuando con la aplicación del


Yk
algoritmo. Notemos también que, al igual que en el caso acotado, si ha sido
preciso añadir variab les de holgura antes de decidir la optimalidad es preciso
comprobar sus valores Zj - ej _

EJ EM PLO 2.27 Sea el problema

Minimizar Z = - X l - 2 X2 - x]
suj eto a
x, + x, + x, < 12
-x, + x, < 2
-x, + !x, < 8
x, < 3
x,, x" x, > O

Cons ideramos que la restricción relativa al sistema global es la pri mera, de fonna que
A es la matriz. A = ( 1, 1, 1) mientras que b = 12. Las otras res tricciones forman el
co nj unto X. Este conjunto, se descompone en los dos subconjunt os

Xl { (XJ,X2 ) E E2 I Xl + X2 < 2, - X l + 2x2 < 8, XI > O, X2 > O}


X2 {x ] E E l I x ] < 3, x3 > O}
cuya representación gráfic a sc encuentra en la f igura 2.1 O. El punto .x 1 = (O, O,O) es tal
que x l E X YAX I = O < 12. Por tant o la base inicia l esta formada por Al, correspon-
diente a x l• y por la variable de holgura de la primera restricción X h. La tabla inicial
es

Tabla inicial
LD Inversa
z O O O
x" 12 1 O
Al I O 1

Iteración 1
l. Subproblema
Puesto que uA - e = O· ( 1, 1, 1) - (- 1, - 2, - 1) - ( 1,2, 1) el subproblema es

Maximizar z - XI + 2x2 +X ] + O
sujeto a
+ x, < 2
+ !x, < 8
x, < 3
xr , X 2, X 3 > O
Formas especiales dcl método del simplcx 231

x,
7 -;
x,
6
5
4
J
-1
o

o J--~
Xl
o 2 3 4 5 (, l'
Figura 2.10: Representación gráfica del ejemplo 2.27.

Para resolverlo lo separarnos en dos partes: una en la que sólo interv ienen las
variables X I y X2 Y otra en la que sólo interviene la vari able Xl. La soluc ión ópti-
ma del problema cn r j es obviarncnrc x j = 3. La solución óptima del probl ema
en X I Xl se puede encontrar gráfi camente con facilidad, pero vamos a hacerlo
usando el algoritmo normal del simplcx. Introduci mos pa ra ello las corrcspon-
dientes variab les de holgura.xa en la primera rest ricc ión y x s en la segunda. Ln
labia inicial del simplcx ordinario es:

x, X, x. x,
z O - 1 - 2 O O
x. 2 - 1 1 1 o
x, 8 - 1 2 o 1

Si observamos la columna de XI ya sabe mos que la solución óptima va a ser no


acotada . Sin embargo supongam os que se proced e come lo haria norrnnl mcntc
el método del simplcx introduciendo en la base, de acuerdo con el criterio habi-
tual de entrada, la variable X2 . Las tabl as correspondientes a las dos iteraciones
siguientes so n:

x, x, X4 x,
z 4 -3 O 2 O
x, 2 - 1 1 1 O
x, 4 1 O - 2 1

x, x, X4 X,
z 16 O O -4 3
x, 6 O 1 - 1 1
x, 4 1 O -2 1
,
232 UNIDAD DIDA CTI CA 2 Algoritmos de programación lineal

Al utilizar ahora el criterio de entrada correspondería entrar a X4. pero como


toda su columna es negativa el algorimo detecta la solución no acotada del
subproblema. Se ha encontrado en el espacio (.l"¡ ,X2) la dirección di ...:.. (2, 1)
que corresponde a una dirección del conjunto factible que da una solución no
acotada.

Entonces, si X4 -+ 00, significa que (X I, X2) - ) 00 sin sal irse del conjunto. Juego
(2, 1) es una dirección de X. A esta dirección en el espacio (x hxz ).le corres-
ponde evidentemente la dirección (2, 1, 0) en el espacio (x I,X2,X3) . Asl pues,
la so lución del subproblema ha dado como salida una dirección d 1 - (2, 1,0) Y
un coe ficiente

ZI - éi = (uA -c)d l = [O·A - ( - I ,-2,- I)] (l) = 4

Por tanto, se introduce en la base la variable 111 -


2. Problema master

ZI - CI = 4 A d i = ( 1, 1, 1) m = 3

y, ~ B- 'C~I) = (~ nG) ~ G)
Añadimos esta columna a la tabla

LO Inversa
z O O O I 1 4

x"
Al
12
I
1
O
O
I
0O
Según el criterio de salida abandona la base la variable x" , Al pivotar sobre 3
se obtiene la nueva tabla

Z 16 4 /3 O

111 4 1/3 O
Al l O l

Iteración 2
l . Subproblema
Tenemos u -- - j y a = O. Como 11 < 0, la variable x" no es candidata a entrar
en la base. Tenemos
4 1 2 l
uA - c = - - (1 1 I} - (- I - 2 - 1) = (- - - - - )
3" ,. 3'3 ' 3
Formas especiales del método del simp1cx 233

por 10 que los nuevos subproblemas son


I 2 .. 1
Maximizar - 3xr " j'x2 +0 Maximizar - 3 X3
sujeto a sujeto a
- Xl + X2<2 Xl <3
- XI 1- 2q < 8 X3 >O
X\,X 2 >O

Aquí a = O se añade a uno solo de los dos problemas. Obviamente la solución


del segundo es X 3 = O. Para resolver el prim ero util i...tamos la tab la de la última
iteración ante-rior, hab iendo cambiado la fi la de los costes.

- 1/ 3 2/3 O O
X, X, x, x,
z 8/3 O O O 1/3
2/3 x, 6 O 1 - 1 1
- 1/ 3 XI 4 1 O - 2 I

Esta es la solució n óptima (no única). La función objetivo del subprob lema es

z, - ej = 1> O. Por tanto entrará la variable ~, correspond iente a x' ~ (i)


2. Problema mástcr

Añadimos esta columna a la tab la.

LD Inversa
z - 16 - 4/ 3 O
/11 4 1/ 3 O
~I I O 1

Sale la variable Al y a l p ivotar se obtiene la tab la

LJ) Inversa
z -56 /3 - 4/ 3 -8/3
/11 2/3 1/ 3 - 10/ 3
~, 1 O 1

Ob servemos que la cola inferior del problema que conocemos hasta el momen-
to, - ~:'. coincide con el valo r que hemos obtenido pa ra la función objetivo.
Por ello. podemos ya asegurar que la solución ac tual es la so lución óptima.
Comprobaremos este al rea lizar la iteración siguiente.
234 UNIDAD DID ÁCTI CA 2 Algoritmos de programación lineal

Iremci6n 3
1. Subprob lema
Como u = - ~ < O,:r!' no es candidata a entrar en la base. Tenemos ahora

uA - c = - 4( 1 11 ) _ ( _ 1 - 2 - 1)=
3 " .,
(_ ~3'32 '-3~)

. . I
Maximizar - 3 X )
sujeto a sujeto a
- Xl + X2 < 2 X3 <3
- Xl + 2x 2 < 8 x) >O
XI,X2 :::: O
Evidentemente la solución óptima de cada uno de los subpro blemas sigue sien-
do la misma que en la iteración anterior, es decir, x I = 4, X 2 = 6, x ) = O. Sin
embargo, la función objetivo vale ahora z ) - 2] = ~ + O- ~ = O Por tanto la
solución actual es la solución óptima. La solución del problema general viene
dada por
16
3
20
'r
O

El valor de la función objetivo es z = - 5)6 .


An álisis de la so lución óptima 235

2.4 Anál isis de la solución ópt ima

El estudio de un modelo de optimización no final iza cuando el al goritmo ha


proporcionado la so lución óptima . Co nocer. simplemente. los valores ó ptimos
de las variables y el valor de la funci ón objetivo suele ser insuficicnte para un
análisis en profundidad del modele por varias razones.
En primer lugar. hay que tener en cuenta que en la mayoría de las aplica-
cienes algunos datos del problema no se conocen co n exactitud y por tan to se
tienen que estimar de la mejor manera posible. Es importante entonces dispo-
ner de procedim ientos que permitan rec al cular la solución óptima confo rme
se actualiza la informaci ón sobre los da tos sin tener que empezar de nuevo.
En segundo lugar, en las primeras etapas de la formulaci ón del problema se
pueden haber pasado por alto algunos fac to res que en rea lida d influyen de 01.1-
ucra significativa en clrnodclo. Por ello, puede ser de interés incluirlos en una
reformulaci ón del mismo. Ello puede llevar consigo la adición de variables.
restricciones o la mod ifi cación de los criterios que conforman la func ión ohje-
tivc. Fina lmente. en muchas situac iones las cond iciones que definen el modelo
no son estrictas. Por ejemplo, una restricc ión puede refleja r 1.1 di sponibilidad
de algún rec urso ; este recurso se puede incrementar median te compras o tiem -
po ex tra. Entonces es deseab le poder examinar el efecto de modiflcnr alguna
restricci ón sin necesidad de resolver el problema desde el princi pio. Toda s es-
las ideas constituyen el análisis de la so lución ópt ima que aborda mos en este
apartado. De UII modo ge neral, trataremos de da r respuesta a la pregunta ¿cuál
es el efecto sobre la solución óptima de una variación en los elementos del
modelo de programación lineal'! La respuesta puede enfocarse de dos mane-
ras: rea lizar el estudio tina vez enco ntrada la solución óptima del problema,
o s uponer que algunos da tos del model o tienen fo rma variable, es deci r, pue-
den ser co ns iderados parámetros. Esto Il OS conduce a tres g randes niveles de
análisis de la solució n óptima.

l . Posloplimi7.ación
Los análisis incluidos en este grupo se refi eren a aquellas situaciones en
que se efectúa una modificación discreta de los datos, matriz A. vector
del lado derecho b, vector de coeficientes de la función objetivo c. Se
pueden distinguir varios tipos de modificación:

• Alguna componente. o varias, del vector b cambia una cantidad


d iscreta.
• Alguna componente. o varias, del vector e cambia una cantidad
discreta.
• Una única columna de A cambia una cantidad (vectorial) discreta.
• Una única fila de A cambia una cantidad (vectorial) discreta.
,
236 UN IDA D DI DACT ICA 2 Algoritmos de programación lineal

• Se añade una nueva restricc ión al modelo.


• Se añade una nueva variable al modelo.

Asimismo, es posible considerar simultáneame nte varias modificacio nes


de los tipos anteriores.

2. Análisis de sensibilidad
En este grupo se trata de determinar un intervalo en el cual un dato puede
fl uctuar sin que la solución obtenida dej e de ser óptima. De esta forma
se puede dar respuesta a cuestiones como: si se modifica ligeramente
un dato ¿cambia m ucho la soluci ón" , ¿viene sensiblemente afectada la
sol ución óptima si se p roducen pequeñas imprec isiones en los datos? u
otras similares. Los análisis de sensibilidad mas importantes son los que
se hacen sobre el vector del lado derecho de las restricciones b y sobre
los coeficientes de la funci ón de coste c.

3. Análisis paramétrico

En este análisis se considera que los datos pueden variar de manera con-
tin ua en un determ inado rango de val ores y se trata de ver cómo influye
dicha variación en la sol ución óptima. El caso más general en el cual
uno o varios datos son una función cualquiera de uno o varios paráme-
tros es mu y complejo. Normalmente só lo es posible rea lizar un análisis
más senci llo en el que los datos son función lineal de un sólo parámetro.
En part icular, estudiaremos el caso en que los vectores e y b son función
lineal de un paráme tro.

A lo largo de todo este apartado es importante ten er en cuenta un hecho


que hacemos notar a continuación. Sea XJ = S -I h un programa básico co-
rrespondiente a la base B. Está claro que J!l no depende del vector c. Por
otra parte, en el criterio de entrada del simplex só lo intervienen las cantida-
des zi - ej = eHB - 1a j - ej las cuales no dependen del vector b. Por 10 tanto
pode mos afirmar que:

a) Si se modifi ca el vector h, la solución básica J!l puede dej ar de ser primal


factible, es decir, algunas de sus componentes p ueden ser negativas, pero
sigue siendo dual fact ible, o sea, e! 8 - 1 es un programa dual.

b) Si se modifica el vector e, la solución 111 sigue siendo un programa pero


puede dej ar de ser óptimo, es deci r, algún =¡ - e j puede ser positivo, o
sea, cfl H - 1 puede dejar de ser un progra ma dua l.

Así pues las modificac iones que se hagan en los datos a fectarán a la facti-
bilidad de la solución, a su optimalidad, o bien a ambas características .
Análisis d e la solución óp t ima 237

2.4.1 Postoptimización
El estudio d e la postoptimi zaci ón se desarrollará sobre la base de un ejem-
plo sencillo que nos dará pie para ir introduciendo las oportuna s considcracio-
ncs sob re el a ná lisis d e la so luci ón ó pt im a . Presentamos a co ntinua ción di cho
ejemplo y su sol ución ó pt ima obtenida mediante el a lgo ritmo p rimal del sim-
plcx .

EJEMPLO 2.28 Una compañia fabrica dos productos /'. y / ',.. Para ello nece sita
dos tipos de materia prima A y B. La tabla 2.7 mu estra las necesidades de materia
prima para 1,1 fabricación de cada tonelada de producto y las can tidades dispo nibles
diariamente de cada una de ellas.

Toneladas d e materia prima Can ti dad d isponible


p or toneladas d e material diariamente en tonelada s
P¡ f',
Matcria A I 2 6
Materia B 2 1 8

Tabla 1.7: Ejemplo para el análisis de pOMoptim;zación.

Las previsiones de ven ta establecen que la demanda d iaria de 1'2 no va a exceder en


más tic una tonelad a a la de /'1. Un estudio de mercad o demostró que la máxima
demanda d iaria pa ra P2 es de 2 tonelad as por dla. El precio de venia de / '. es de J
mil euros por tonelada y el de P2 es tic 2 mil euros por tonelada. El problema de
la co mpa ñia consiste cn saber cuá ntas toneladas de cada producto deben fabricarse
diariamente para obtener el m áximo benefic io. El modelo de programación lineal es
el siguiente:

Maximizar z = 3x¡ -+ 2.:c2 (B enefi cio]


suj eto a
x, -í a, < 6 [Materia prima A]
a, ~ x, < 8 (Materia prima 8 1
-x, + x, < I [Limite demanda conjunta]
x, < 2 [Límite demanda P,:]
x" x, > O (Cond iciones naturales]

Resolvemos este problema por el método del sim plcx . Para ello lo ponemos baj o la
forma estándar como problema de minimiza ci ón introduciendo las variables de hol gu-
ra X), .44, X 5 Y.46 Ycambiando los coeficientes de la función objetivo por sus opuestos.

Min imizar - z :-: - 3x . - a2


sujeto a
x, ~ a, -j x, - 6
al -j x, -l- x, - 8
- x, ~ x, -1 x, ~

I
x, + X6 -. 2
Xl, X2, x). x 4. x5. X6 > O
238 UN IDA D DID ÁCTI CA 2 Algoritmos de programaci ón lineal

El problema dual es

Minimizar w =-- 6U l + 8U2 + UJ + 2 U4


sujeto a
"1 + 2u, u, > 3
2u I + u, + Ul + u, > 2
U 1. va, "3. U4 > O
Resolvemos el problema primal mediante el algoritmo del simplex. Las tablas son las
siguientes:

Tabla inicial
-3 - 2 O O O O
X, x, X, X, X, X,
Z O 3 2 O O O O
O Xl 6 l 2 1 O O O
, -,
11 X, 8 I 2 , 1 11 1 O O
O X, 1 '-'
- 1 1 O O 1 O
O X, 2 O 1 O O O 1

Iteración I
XI X, X, X, X, X,
z - 12 O 112 11 - 3/ 2 O O

11
- 3
X, 2 O @ 1 - 1/2 O O
X, 4 1 112 O 1/ 2 11 O
O X, 5 O 3/2 O 1/ 2 1 O
O X, 2 11 1 O O O 1

Iteración 2
X, X, X, x, X, X,
z - 38/ 3 11 O - 113 - 4/ 3 O O
-2 x, 4/ 3 O I 2/3 - 1/ 3 O O
- 3 x, 10/ 3 1 11 - 1/ 3 213 11 11
O x, 3 11 11 - 1 1 1 11
O x, 2/3 O O - 2/3 1/3 O 1

Observemos que si se hubiese maximizado directamente la función objetivo en la


primera fila de la tabla obtendríamos los opuestos de los términos que figuran en la
misma. Como se Ice en la tabla óptima la solución consi ste en producir diariamcn-
te XI - ~ toneladas de PI y Xz = ; toneladas de Pz- Ello proporciona un beneficio
Aná lisis de la solución óptima 239

\8
máximo de z = mil euros. Además la tabla óptima nos informa de que la primera
restricción se c umple en igualdad debido a que x } = O(o bien el valor dual lit = í). es
í
decir, I . ~ t- 2 · = Jf = 6, 10 eU:11 qu iere decir que se usa lodo el material dispo nible
de la materia pri ma A. Asimismo. la segunda restricción se cumple en igualdad. ya
í
q ue ."4= O (u bien U2 = ~ ). es decir, 2· lf + I • = 'Jf = 8, es decir. se utiliz..1 toda
la mater ia 11 dispon ible. Las restricciones de demanda no se verifi can en igualdad, ya
que las variables de holgura correspondientes son positiY'J.s, .xs = 3, X6 = j. Esto sig-
nifica que las restricciones de demanda no influyen cn la solución óptima y el máximo
beneficio que puede obtenerse viene limitado por la disponibil idad de materia prima y
no porque el mercado no acepte mas producción. Observemos que la base óptima es
2 1 o O
1 2 O O
1 - 1 1 O
1 O O 1

y que su Inversa es
2 1
- O O
1 ~
O O
3 3
- 1 1 1 O
2 1
O 1
3 3
según puede leerse di rectamente en la tabla.
Veamos ahora cómo puede usarse toda la in formació n proporcionada por
la tabla óptima del algoritmo del simplex para efectuar un análisis de postop-
" .,
tmuzacrón.

2.4.1.1 Modifica ción del vector del lado derecho de las restriccio-
nes
Veamos cómo afecta a la soluc ión óptima una perturbación de los elementos
del vector del lado derecho de las restricciones. Sea b + oh el nuevo valor del
-r
segundo miembro y R la nueva solución básica asociada a hase B, es decir, a
la base óptima antes de la perturbación de b. Tendremos:

Como este cambio solo afecta a la factibilidad de la solución tenernos una de


las dos situaciones siguientes:

a) Si x tB = 0 + B- 1(ób) > Oentonces -xB es un programa óptimo.


b) Si ~ = X s + /3s( oh) < O para algún índice s entonces la nueva solución
no es un programa . En este caso e l modo más sencillo para reoptimizar
consiste en aplicar el algoritmo dual del simplex.

EJEMPLO 2.29 Consideremos de nuevo el ejemplo 2. 28. Introducimos los cambios


que se indican a continuación.
240 UNIDAD DID ÁCTI CA 2 Algoritmos de programación lineal

a) Supongamos que se p uede disponer diariamente de 7 toneladas de materia pti-


ma A cn lugar de 6. j. Qué OCUlTe en la solución óptima?
Tendremos que la nueva so lució n básica asociada a la base óp tima actual H es
2 I
- - - O O
3 3
x, ¡ 2 7 2
x, -- - O O 8 3
3 3 - = j'/J
x, -
- 1 I t O I 2
x, 2
2 O
I
- -3 ..
3
O 1

-r
Puesto que B > O esta so lución básica sigue siendo un programa por lo que sigue
siendo óptimo ya que la función objetivo no se ha modificado. El plan de producción
óptimo es ahora fabricar Xl = 3 toneladas de P I y X2 = 2 toneladas de ~, lo cual pro-
porciona un beneficio de i = 3 ·3 ·t 2 ·2 - 13 mi l euros. Observemos que la di ferencia
entre el nuevo valor de la función objetivo y el antiguo vale 13 - ~ = = til . por Jo í
que U l se puede entender como el precio 'J usto" que hay que pagar por aumentar en
una unidad la disponibilidad de materia A, es decir, pasar de 6 a 7 unidades. Rccncon-
tramos dc nu evo la interpretaci ón económica de las variables duale s como "precios
sombra" (ver página 177).
b) Supongamos que la disponibilidad diaria de materia prima es de 7 toneladas
para A y 4 toncladas para /J . ¿Cómo afecta esto a la solución óptima?
En este caso el vector del lado derecho es (7,4, 1,2) /, La solución básica asociada es

2 1
- --
3 3
O O
10
-
3
x, I 2 7 I
x, - -3 - O O 4 -3
x, - 1
3
1 I O 1 -2
x, 2 1
2
4
--3 -
3
O 1 - -3
Como X s y X6 son negativas esta solución no es un programa. Para rcoptimizar utiliza -
mos el algoritmo dual del simp lcx sobre la tabl a óptima modificada :

-3 -2 O O O O
Xl X, X3 X, x, x,
z - 23/ 3 O O - 1/3 - 4/3 O O
- 2 x, 10/3 O 1 2/3 - 1/ 3 O O
- 3 x, 1/3 I O - 1/ 3 2/3 O O
O
O
x,
x,
-2
- 4 /3
O
O
O
O
G
- 2/ 3 1/3
1
O
1 O
1

Como xs = - 2 = mln {x} = min{ --2, - 4 /3) sale de la base la variable x s. El único
i~ <O
término de la fila de Xs que es negativo es YS) . Por tanto este elemento es el pivote y
entra en la basc la variable X) .
Análisis de la so lución óptima 241

X, x, Xl x, x, x,
z -7 O O O - 5/ 3 -1 /3 O
x, 2 O O O 1/3 2/ 3 O
x, 1 1 O O 1/ 3 - 1/3 O
Xl 2 O O 1 - 1 - 1 O
x, O O O O - 1/3 - 2/3 1

Tenemos una solución primal factible y dual factible por lo cual es una solución ópti-
ma. El nuevo programa de producción es XI =- 1 tonelada y X2 = 2 toneladas lo cual
proporciona un benefic io de 7 mi l euros.

2.4.1.2 Modificación del vector de coeficientes de la función obje-


tivo
Veamos a continuaci ón cómo afecta a la solución óptima una modificación
+
del vector de coeficientes de la funci ón obj etivo. Sea e Oc el nuevo valor del
vector c. Vamos a razonar supon ie ndo que se trata de un problema de minimi-
zación. P uesto que este cambio no afecta a las restricciones, la solución básica
óptima actual asociada a la base B sig ue siendo un programa. En cuanto a los
términos de la función objetivo la modificación supone los siguientes cambios.

zj (c+ oclYj =c"Yj+ (oc)"Yj =Zj + oc"Yj l El

zj (c+ oc)Bx" = cx" + oc"x" =z+ oc"x"


Por lo tanto:

a) Si zj - Cj < O, para todo .i (- J . entonces x! sigue siendo un progr ama


+
ópt imo. El valor de la fun ción objet ivo es e n este caso -i = z E)(}JxH y
só lo se verá m odificado s i se modifican los coeficien tes G. . ,<; e l .

b) Si zj - ej > O para a l m enos un j pe rteneciente a J . entonccs1fl ya no


es mínimo . Mediante las expresiones anteriores se recalcula la primera
fila de la tabla del simplcx y se continua con la aplicación del algoritmo
a partir de la última tabla obtenida. Notemos que en este caso no hace
falta conocer explícitamente la inversa de B.

EJEMPLO 2.30 Cons ideremos de nuevo el ejemplo 2.28. Supongamos que se intro-
ducen los cambios que se indican a continuación.

a) El precio de venta de [J, es de 5 mil euros por tonelada y el precio de venta


de P:1. es de 4 mil ceros por tonelada. ¿Cómo afccta este cambio a la solución
óptima?

La nueva función objetivo es ahora z = 5x I + 4X2 . o bien en el formato de mini-


mizac ión - z = - 5x l - 4 X2' Calculamos los zj para las variables fuera de la base con

242 UNIDAD DIDACTI CA 2 Algoritmos de programación lineal

los nuevos coeficientes c' = ( - 5. - 4, 0, 0, 0, 0) . Tendremos que e B = (C2, CIoC5, C6) =


( - 4. - 5.0. 0) Y por consiguiente

.', - c, = c'Hy, - c, = (-4 - 5 0 0)


- . "
(23'3 - ~) '- O = - I - O =- I
. : "_13
z,r -c, =cy,
'. - c, = ( - 4 -500) ( I -2 1 -1)' - 0 = - 2 - O:.. - 2
--
. • " 3'3"3
Puesto que z; - el <Oy ~ - C4 < O la so lución sigue siendo óptima. El nuevo valor
de s es 5· \º + 4· j = 22.
b) El precio de venta de PI es de 4 mil euros por tonelada y el precio de venta
de 1'2 es de 1 mil euros por tonelada. ¿Cómo afccta este cambio a la solución
óptima?
La nueva función obj etivo es z = 4x 1 /-' X2. o bien en el form ato de minimización
- z = - 4xI ~ X2 . Entonces:

2 1 1) ' 2 4 2
r,, -c, = ( 1•-400)
,. - - - - 1
( 3' 3' • 3 - - - 0= - - +
3 3 - - -
3

z,, -c, - (-1 •-400)


• •
( --1 -2 1 -1) ' - 0 = -t - -
3'3 "3 333
8 = - -7

Como zJ -CJ > O la solución actual deja de ser óptima. Entonces hay que seguir
optim izando a partir de la última tabla previa a la modificación de la primera fila.

-4 - 1 O O O O
x, x, x, x, x, x,
z - 44 /3 11 O 2/3 - 7/3 O O
- 1 x, 4 /3 11 I @ - 1/ 3 O O
- 4
11
.x," 10/3
3
1
O
O
11
- 1/3
- 1
2/3
1
O
1
O
O
11 Xl. 2/ 3 O 11 - 2/3 1/3 O 1

x, x, x, x, x, x,
z - 16 O - 1 O -2 O O
x, 2 O 312 1 - 1/ 2 O O
x, 4 1 1/2 11 1/ 2 O O
x, 5 O 3/2 11 1/2 1 O
x, 2 O 1 11 O O 1

La nueva solución óptima cs XI = 4, X2 - 0, xJ = 2, X4 = 0, X5 -' 5, X6 = 2, que da un


valor máximo dci = 16 mil euros, es decir, hay que dej ar d e fabricar el producto P2 y
dedicar todo el material a fabricar el producto PI _
Análisis de la solución óptima 243

2.4 .1.3 Adición de una varia ble

Supongamos que se añade una variable al prob lema. En es te caso está cla ro
qu e el programa óptimo de base actua l sigue siendo un programa de hase del
nuevo problem a, con valor nulo para la nueva varia ble, pero puede no ser ya
óptim o. La adición de una variab le .x;¡ -t I quie re decir que se añade a la matriz
A una nueva columna an t-l Y al vector e una n ueva componente Cñ¡.¡ . Las
consec uencias de añadir esta nueva variable se deducen fácilmente si se conoce
la m atriz inversa H- 1 • En efecto,

• Si eH B- 1(In 1- 1 - CII ¡ I < n, e ntonces el programa mínimo de que se dispo-


ne antes de la introducción de la nueva variab le es tamb ién un programa
mínimo del nuevo proble ma.

• Si diB- lan+ 1- C" t l > 0, entonces se mej ora el valor de la fun ción ob-
jetivo introduciendo la variable ~ +t en la base. Para ello se aplica el
algoritmo del simp lex a la última tabla completada previamente con un a
nueva columna correspondiente a la variable añadida.

EJEMPLO 2.31 Consideremos de nuevo el ejemplo 2.28. Introducimos en el pro-


blema la modifi cación siguiente.

a) Supollg<llJlOS 'IU<" 1<1 cmprcse esl.; pensando en labriC<lr un nuevo producto 1')
¡
que IIcc<.'silll wncllldas de c.ld;l una de las lI !<llen aS"rimlls A y ¡¡ por rondad;1
producid'l y 'lile le tmcc la emll" I.' renci.1 .1 Jos otros dos productos de modo que
la diferencia curre tu cmltid¡Jd dcm;lIId.1da de 1'2 y 1.1s dc J'. y Ij j Ull w.'i no es
superior iI 1111;1 Ilttidad. 1.<J eompiltiíll picnsa ohrctler de /1) ltll beneficio deí
mil cer os por roncl.1d.1. ¿l lllbcl que f.,bric.1r el " nxluc1o J}J ();Ira obtener más
bcndido?

Si llamamos x- a la cantidad de toneladas de 1-'] que se van a producir el nuevo pruble-


ma es
3
Maximizar z = 3xI + 2x2+ 2 X7
sujeto a
3
XI + a 2 + - .l7 < 6
4
3
al + X2 1- - ' 7 < 8

<
" 1
- -X I .l2 -'7
X2 < 2

:q. X2. X7 > o


1
La solución actual x =- Jj-. X2 = completada COn);1 :-: O sigue siendo una solución
ractible para el nut..evo problema. El beneficio sigue siendo z= 3)11 . Ahora bien, la adi-
ción de X7 puede hacer que esta solución no sea óptima. Para averiguarl o calculamos
244 UNIDAD DIDÁCTICA 2 Algoritmos dc programación lineal

el coeficiente Z7 - "1,

z, - C7 - c!B- l a 7 - c7
2 1
3
- - -3 O O -
3
1 2 4
-- - O O 3
= ( - 3,-2, 0,0) 3 3 -4 -( D
- 1 1 1 O - 1
2 1
- -3 -
3
O 1 O

1
-
4
1
-
- (- 3, - 2, 0, 0) 4
- 1
- (- ~)
1
-
4
5 3 1
- --4 + -2 - -4
Por tanto como Z7 - C7 > o. al introducirx i en la base se obtendrá un valor mejor para
la función objetivo. Si realizamos la correspondiente iteración obtenemos las tablas
siguientes:

- 3 -2 O O O O - 3/ 2
x, X, X, X4 X, X, X,
z 38/3 O O - 1/3 - 4/ 3 O O 1/ 4
- 2
- 3 X,
X, 4/ 3 O 1 2/3 - 1/3 O O (3
10/3 1 O - 1/ 3 2/ 3 O O 1/4
O X, 3 O O - 1 1 1 O - 1
O X, 2/3 O O - 2/ 3 1/ 3 O 1 - 1/ 4

X, X, X, X, X, X, X,
z - 14 O - 1 - 1 - 1 O O O
X, 1M 3 O 4 8/ 3 - 4/ 3 O O 1
X, 2 1 - 1 - 1 1 O O O
x~ 25/3 O 4 5/3 - 1/ 3 1 O O
X, 2 O 1 O O O 1 O

La solución óptima que se lec en la tabla anterior es fabricar Xl = 2 toneladas de PI.


X7 = -~16 toneladas de P.l y X2 = Otoneladas de 1'2. lo cual da un beneficio de 14 mil
euros.
Análisis de la solución óptima 245

2.4.1.4 Modificación de los coeficientes al Y el de una variable Xl

El caso de la variación simultánea de al y ej puede tratarse combinando los


resultados del apartado 2.4.1.2 y el análisis quc vamos a exponer brevemente
para el caso de la modificación de aj o Supongamos entonces que se modifica
la columna a j o

• Si la columna modificada es un vector fuera de la base tl se aplica el ra·


zcnamiento del apartado 2.4. 1.3 como si se tratase de una nueva variable
poniendo k en lugar de n + l .

• Si la columna modificada es un vector de la base (l e 1) la nueva matriz


Ir deducida de la B por sustitución de '1t' por tÍt puede no ser ya una
base. Si lt es una hase, la solución básica asociada puede no ser factible
y aun en caso de que sea fac tible puede no ser óptima. Como se puede
apreciar cl análisis de postoptimizaci ón en este caso es muy complicado
y no se va a efectuar con detalle. En lineas generales el procedimiento
seguiría el esquema siguiente:

• Comprobar en primer lugar si ¡{ es una base calculando jj = B - l ~


Yviendo si y" # o.

• En caso afirmativo calcular la nueva solución de base é" .

• Si x8 > O y i¡ - el S; O, el programa actual sigue siendo óptimo.


• Si existe un j perteneciente a J tal quc i¡ - el > Oseguir aplicando
el algoritmo.

• Si ~ < O y Z¡ - ej < O, aplicar el algoritmo dual.


• Si no se está en ninguno de los caso anteriores y se conserva la
sucesión de bases volver a la iteración previa a la entrada del vector
a l en la base y reiniciar desde ahí los cálculos.

EJEMPLO 2.32 Consideremos una vez más el ejemplo 2.28 y la situación siguiente.

a) Supongamosquc la fum:iún ohj(.·tivo l'S Z = 4x I f- X2 Y'lue se cambia el proceso


de fabricación por lo que 1m. ncccsidadc..<; unir"ri.1S de mafcri.1/(.·s A y JJ pam P2
son respcctivementc 4 y 3. ¿Qué ocurrirá con 1.1 solución óp linr.1?

En la forma de m inimiza ci ón la función objetivo es - z = - 4x 1 - X2. En este caso


hemos visto en el apartado 2.4.1 .2 que X2 no está en la base óptima. Calculemos ahora
246 UNmA D DIDÁCTI C A 2 Algoritmos de programación lineal

el coeficiente Z2 - cz
I
I - -2 O O
1 4
O - O O 3
Z2 - e 2 - (0, - 4,0,0) 2 - (- 1)
1 1
O - 1 O 1
2
O O O 1

5
2
3
(0, - 4,0,0) 2 - (- 1)
5
2
1
- 6 + 1~- 5< O

Por tanto este cambio no afecta al óptimo.

2.4.1.5 Adi ción de una restricción


Puede ocurrir que una vez resucito el modelo de programac ión lineal se
considere necesario añadir una nueva restricción. Los motivos pueden ser va-
rios. Por ejemplo, puede ser interesante resolver un probl ema de menor tamaño
y luego ir añadiendo restricciones. También pueden surgir nuevas restricciones
en el futuro. Lo primero que hay que observar es que la adición de una restric-
ción nunca puede significar un mejora de la función objetivo. Como es obvio,
la nueva región factible está contenida en la anterior por Jo que el óptimo se
busca en un conjunto menor y nunca podrá ser mejor que el anterior. Así pues,
podemos establecer las conclusiones siguientes:
a) Si el programa óp timo del problema origina l verifica también las res-
tricciones suplementarias entonces también será óptimo para este nuevo
problema. Si las restricciones suplementarias son inecuaciones de l tipo
">" o "<" se puede completar el programa óptimo con valores positivos
de las variables de holgura asociadas a estas restricciones para tener un
programa básico. Si las nuevas condiciones son restricciones de igual-
dad , el programa óptimo es degenerado. Puede incluso ocurrir que el
problema tenga restricciones redundantes.

b) Si no se verifican en el programa óptimo algunas restricciones suplemen-


tarias debe volver a calcularse por completo el prog rama óptimo . Para
ello hay que reconstruir la factibilidad. Esto se hace del modo siguiente .

• En primer lugar, las restricciones suplementarias se pasan a la for-


ma de restricciones de igualdad añadiendo variables de holgu ra si
es preciso.
Análi sis de la solució n óptima 247

• A continuación y utilizando los datos de la tabla del simplcx en la


cual cstán despej adas las variables básicas, sc eliminan éstas de las
restriccion es adiciona les.

• Se añade la nueva restricción mod ificada a la tabla del simplcx y


se aplica el algoritmo du al para completar la optimización.

EJEMPLO 2.33 Consideremos de nuevo el ejemplo 2.28 en el que introducimos las


siguientes modificaciones.

a) Supongamos que la demanda del producto P I viene limitada a 4 toneladas.


¿Cómo afecta csre hecho al programa óptimo de producción?

La modi fi cación introducida supo ne que hay que añadir al problema una nueva restric-
ción. Xl < 4. La solución óptima actua l XI = \0 , X2 = ~ cumple la nueva restricción
ya que XI = ~ < 4. Por tanto la solución actual sigue siendo ó ptima. L.' hase puede
co mpletarse con una variable de holgura XI! = 4 - Jf
= j.

b) S upongamos que la demam13 del p roducto 1' 1 es a Jo sumo de 3 fond adas.


¿Cómo af(,.'Cta cste hecho al programa óptimo de producción?

La nueva restricción es aho ra XI < 3. Es ta restricción no se verifica en el óptimo ac-


tual XI = ~ > 3. Veamos c ómo se puede recon struir la optimalidrad. Pongamos la
restricción en forma de igualdad XI +XI = 3. X8 > o. Ahora en la tabla óptima XI
era un variable de base. Entonces vamos a despej arla en funci ón do las variables fu e-
ra de la hase y sustituir su valor en esta ecuación. La ecuación de la tabla en donde
está despejada X I (,."S X I - IX) -r j.r.. = ~ . po r lo qucx ¡ = ~ + !X]- j X4 y al sustituir
Jt .. i.
!X] - j X4 + XII = 3, o bien 1X) - jX4 + XII = - Obtene mos asi una ecuación
en donde está expresada XtI en función de las variables fue ra de la base. Ahora inrro-
ducirnos XtI en la base. es decir añadimos una llueva li la a la labia del shnplcx. Co mo
ellado derecho es menor que cero. la solución básica actual co mpletada con XII = - t
no es fact ible y po r lo tanto no es óptima. Como estos cambios no han a fectado a los
coefic ientes de la fu nción del o bjetivo. en donde aparece X II con un coste nulo, resulta
que la primera fi la de la tab la sigue siendo menor o igual que cero, es deci r. la so-
lución quc estarnos considerando es dual fact ible. Ap licamos ahora e l algoritmo d ual
del simplcx para reconstruir la optimización:

x, x, x, X4 x, x, x,
z -38/ 3 O O - 1/ 3 - 4/ 3 O O O
Xl 4/3 () 1 2/3 - 1/ 3 () () ()
x, 10/3 1 O - 1/3 2/3 () O ()
x, 3 O O - 1 1 1 O O
x, 2/3 O O - 2/ 3 1/ 3 O 1 O

x, - 1/3 O O 1/3
G O O 1
,
248 UNIDAD DIDACTICA 2 Algoritmos de programación lineal

X, X, X3 x, x, X6 X8
z - 12 O O - ] O O O - 2
x, 3/2 O 1 1/ 2 O O O - 1/ 2
x, 3 1 O O O O O 1
x, 512 O O - 1/ 2 O 1 O 3/2
X6 112 O O - 1/ 2 O O 1 112
x, 1/2 O O - 1/ 2 1 O () - 3/ 2

La nUL'Va solución óptima es XI = 3, X2 = ~ que da un beneficio de z = 12 mil euros,


que evidentemente es menor o igual que el que obtuvimos en el caso anterior en el
cual la demanda de PI no estaba restringida.

2.4.2 A ná lisis de se nsib ilidad


Dedicamos este apartado al estudio del análisis de sensibilidad de la solu-
ción de un problema de programación lineal. Como ya se ha indicado, dicho
estudio consiste en encontrar el rango de valores de los datos del problema en
el cual la solución sigue siendo óptima. Nos limitaremos a estudiar el caso del
vector del lado derecho de las restricciones y el caso del vector de coeficientes
de la función objetivo. Pueden hacerse otros análisis de sensibilidad pero son
complicados y poco útiles en la práctica.

2.4.2 .1 Análisis de sensibilidad del vector del lado derecho de las


restricciones
1) Dado un programa óptimo, ¿en cuánto pucde variarse en los dos sentí-
dos, es decir en más o en menos, un elemento del vector del lado derecho
de las rcsuiccioucs sin que la base deje dc ser óptima?

Un cambio en el valor del c1cmento b¡ correspondiente a la restricción supone


í

una variación del vector b de la forma b + OG, donde e ¡ = (O, O, . . . , 1, .. " O) ,


con el 1 en el lugar Los nuevos valores de las variables de la base vienen
í.

dados por xB + ()B - t e¡ , es decir, xH + OSI donde hemos denotado ~ = s:' ej.
e
Si hacemos variar a partir dc cero para valores positivos o negativos se dctcr-
mina un valor negativo el o positivo 9.-.. para el cual una componente del vector
xB + OSI pasa a ser negativa. El campo de variación del elemento del segundo
miembro es entonces [h¡ + e/ ,b; + es] . Para estos valores extremos del campo
de variación del elemento del segundo miembro, cl valor de la función obje-
tivo es cf1 (x" + OB- 1e l ) = Z + ecHB -1 e¡ y si representamos I¡ = c!B --1e¡ a la
i-ésima componente del vector fila ¿ S -I resulta que el campo de variación
de la función objetivo es [z + B¡1;,z + Osi;].
En el caso de que en la base óptima la variable de índice i corresponda a una
variable de holgura o a una variable artificial, el análisis se simplifica haciendo
innecesario el cálculo anterior. En erecto,
Análisis de la solución óptima 249

• Si se trata de una variable de holgura que tom e en el óptimo un va1or-r


se puede hacer decrecer el segundo m iembro hasta el valor h - xj sin
q ue cambie la base óptima. El campo de variación del correspondiente
elemento del vector del lado derecho de las restricci ones es [l? - :i¡'. +ooJ.
La función del objetivo no varía cuando el término del lado derecho de
las restriccion es varía en este intervalo.
• Si se trata de una variable artificial, y por tanto nula en el óptimo, el
campo de variación del segundo miembro se red uce a 4.

EJ EMPLO 2.34 Consideremos el siguiente problema de programación lineal:

Min imizar z =- - 5x l - 6x2


sujeto a
3xI + 4 X2 < 18
2x I + X2 < 7
XI. X2 > O
En la fi gura 2 .11 se encuentra su representación gráfica.

"<> -

3 (2,3) = (1' ,,1',)

2 -J/.
'x
"",')'"
. '""" :--':" o/1','
' <l' '-',
() "-'----;,---.~_.r- \-,-----,----"'''''',__

o 2 3 5 .r 1

Figura 2.11: Ejemplo de análisis de sensibilidad.

Resolvemos el problema ut ilizando el método del simplcx. Para ello introducimos


las vari ables de holgura.

M inimizar z = -5XI - ÚX2 + 0X3 "¡ OX4


suj eto a
3X1
a,
+ x, IR
7
> o
250 UNIDAD DIDÁCT ICA 2 Algoritmos de programación lineal

Las iteraciones son

Iteración 1
- 5 -6 O O
Xl X, X, X,

Z O 5 6 O O
O
O
X,
x,
18
7
3
2
0 O
l
O
O
1

Iteración 2
Xl X, X, X,

z - 27 1/ 2 O - 3/2 O
-6 x, 9/2 3/ 4 1 1/ 4 O
() x, 5/2 5/4 O - 1/ 4 1

Iteración 3
X, x, x, x,
z - 28 O O - 7/ 5 O
-6 x, 3 O 1 215 -3/5
-5 Xl 2 1 O - 1/ 5 415

La última tabla muestra la solución óptima. En ella podemos ver que la hase óptima

cs !J = (a2,tll) = (43
2)I. y suinvcrsa xv -e ( 2/5
- 1/ 5 -43/
155) . Nos planteamos
ahora las cuestiones siguientes:
a) ¿Para qué rango de valores de b 1 la matriz B sigue siendo la base óptima?
b) ¿Para qué rango de valores de b2 la matri/' B sigue siendo la base óptima?
Ha de ser x H + OS-l e ] ~ Opor lo que
2
3 f- - 8
(O)< (3)
O
( 215 - 3/ 5) ( 1)
2 + 8 - 1/ 5 415 O =
5

2 - -8
I
5

de 10 que se deduce que - li < 6 < 10. Por tanto 18 ·- '5 b1 < 18 -l- 10, o equiva- 'i
lentemente 'lf< b1 < 28. Por otra parte también tiene que ser xB -t- 9S- l e2 > O, por
lo que
3
3- - 8
(O
) < (3)+ (-2/1/55
() - 2 8
- 3/ 5)
415
(O
)1 __ 5
4
2 -j -8
5
Análisis de la solución óptima 251

de lo que se deduce - ~ < 8 < 5. Por tanto 7 - ~ < bz < 7 + 5, o equivalentemente


; < bJ. ~ 12. Concluimos entonces que si dejamos fijo b 2 y bl varia en [~ . 28] la
base actual sigue siendo óptima. Asimismo, si dejamos fijo b I Y iJ.I varia en [ ; ,12 ] •
la basse actual sigue siendo óptima.
Veamos qué ocurre con la función objetivo en uno de los extremos. por ejemplo,
tomando b l _-; 221 . In =- 7. Como la hase actual es óptima, la solución óptima será la
solución del sistema
21
2
7

que en forma matricial es (~ ~) (:~) = (r) y su solución se obtiene como


j(i,) = B- ]b= (2/5 -3
XI
/5
4 /5
) (';)
7
(0)
- 1/ 5
=
~

de donde r = (- 6, - 5) (~) :..: - 31. A este mismo resultado se llega de la siguiente


manera. Tenemos

/1 '= c 8 H_ ] el :::" (
- 6, - 5 )(2/5
- 1/5

por lo que

t = z + B¡/ ] = - 28+ (_~)


2
(_7)
5
= - 28-1 105 = _ 35
10 2
En la figura 2.12 podemos ver gráficamen te el resultado.

2.4 .2.2 Análisis de sensibilidad de los coeficientes de la fu nción


objetivo
1) ¿Dado un programa óptimo. en cuán to puede variarse Jos coeficientes
de la [unción objetivo en los dos sentidos, sin que la base dej e de ser
óptima?

Un cambio en el coeficiente (p de la variab le xp corresponde a una varia-


ció n del vector e de la forma e + Oep siendo ep un vector fila unitario con n
componentes cuya p -sima componente es igual a 1. Cuando varía 8, la so-
lución básica asociada a IJ sigue siendo un programa pero puede dejar de ser
ópti mo. Los valores Zj - ej de las variables fuera de la base son

e::
en donde es un subvcctor de ep cuyas componentes se corresponden con las
columnas de 8 . Para O = O es Zj - ej < O. Haciendo varia r O a partir de cero
para valores positivos () negativos se determina un valor negativo 1I o positivo
252 UN If)A [) DIDÁ CTICA 2 Algoritmos dc programacióo lineal

6 -

o
o I 2 3

"'igur~ 2.12

Os a partir del cual un Zj - ej pasa a ser positivo. El campo de var iación de


e" es entonces [Cp O" ep OJ. Para todo valor de e comprendido entre [f,t. OsJ el
valor de z es mínimo e igual a L Csx~, + es; El campo de variac ión de z es
.r<; /
pues [z + e/x p , z+ esxp ].
Cuan do xl' es una variable fuera de la base, y po r tanto el vector ~ es nulo,
el campo de variación de el' es [z".+oo].
EJ EMPLO 2.35 Veamos cómo pueden modificarse los coeficientes del vector e del
ejemplo 2.34.

a) Modificación de el

Tenemos e = (C ¡, C2,C),C4) = ( - 5, - 6, 0, 0) por 10 que e 8 = ( C2, C I) ( - 6,-5).


-;o

Asimismo, e + Oe l ~ ( - 5, - 6, 0,0) + O( \,0,0, 0) = (- 5 + U, - 6,0, 0) Yzj - S =


eBYi - ej = ( - 6, - 5 t- 9 )Yj - ej _ Para las variables fuera de la base
Análisis de la solución óptima 253

4
Oprimo

I
<'( 12. 6)

o
o I 2 J

FI2u ra 2,13

Análogamente

El programa actual seguirá siendo óptimo en tanto en cuanto los Z j - ej sigan siendo
no nega tivos. es decir ~ - ~ < () y z~ - '-~. < O 10 cual ex ige que se ve rifiquen las de-
sigualdadcs - ~ - ~ o < O y - ~ - ~ o < O. Luego ha de ser O > - 7 = 9, Y también

O< ~ = Os. Por tanto el programa será óptimo para C I tal que - 12 < CI < - ~. la fi-
gura 2.13 representa geom étricamente las condiciones extremas, es decir representa la
función z = - 12x I - &2 . Análogamente si representamos z = - ~XI - 6X2 obtenemos
la figura 2.14.
b) Modificación de e 2
En este caso

, 7 ( 2/5 )
I, -C' = -5 + 0 ( 1, 0) - 1/ 5 =- 7S' 2
SO ~ O

z'J -¿' = - s2 tO (I.O) (-3/S) = - 25 - 3S O ~ O


4 /S

i
dc lo que se deduce que 9 > - j = 9, Y 9 < = 9s. Así pues el rango de variación de
C2 es - 2~ < C2 <; - ~ . En los valores extremos la función objetivo es z "'- - 5x I - 2j1 X2
quc es paralela a la restricción 3x¡ t- 4X2 '-- : 18 y z '=- - 5 t" 1 - ~X2 que es paralela a la
restricción 2x 1 + X2 = 7.
254 UNIDAD DI DÁ C TI C A 2 Algoritmos de programación lineal

6-


_ _ Oprimo

4
, Óp¡il11U
,
3

o ' - - - ' - - " -- 1-\·--r----,-~­


o 2 3 5 :q 6

Figur a 2.14

2.4.3 Análisis paramétrico

Por análisis paramétrico entendemos el estudio de los cambios que experi -


menta el óptimo de un problema de programación lineal cuando se modifican
los datos de manera continua . En este análisis se supone que los coeficientes
del problema son una función de un parámetro 9 . Usua lmen te, esta función
es un a función lineal aunque, en general, es posible considerar funciones no
lineales de los parámetros; esta situación es, no obstante, complicada por lo
que no entrare mos en ella.
El análisis param étrico se basa en la idea siguiente. Se calcula en primer lu-
gar la solución óptima del problema para O = O. A continuación, utiliza ndo los
criterios de optimalidad y factibilidad del método del simplcx, se busca un ran-
e,
go de valores de digamos [O, O¡ l. en el cual la solución sigue siendo óptima.
e
Esto qu iere decir que para > 8} la solución deja de ser factible y/o óptima.
Entonces hay que determinar una nueva solución que siga siendo óptima para
e E [ 0 1, (h l con ~ > 0 1• El proceso se repite hasta q ue llegue un momento
en no se experimentan cambios o bien se tenga la evidencia de que no existe
solución del problema. Al igual que en los apartados anteriores discutiremos
el caso del vector del lado derecho de las restricciones y el caso del vector de
coeficientes de la función objetivo.
Análisis de la solució n óptima 255

2.4.3. 1 Parametrización del vector del lado derecho de las restric-



clones
Supongamos que b es un función linea l de un parámetro O, es decir, supon-
gamos que b es de la forma b = ~ + 0 (5 , en donde bo Y Ó SOI1 vectores dados
fijos. Supongamos que pa ra un valor dado de O = lt, que mediante un cambio
de escala puede hacerse siempre igual a cero (Q¡ = O) sin perder ge neral idad,
conocemos un programa básico óptimo con base 8. es deci r, disponemos de
=
una solución del sistema H1J bo. Lla memos xg
a este programa óptimo bási-
co para e = xg =
o, e
8 - 1 !Jo. Cuando varia de fonna continua. el criterio de
optimalidad se verificará cn tanto en cuanto se conserve la base B, puesto quc
(} no interviene en el cálculo dezJ - ej. Ahora bien, la solución básica asociada
a Hes
~ = x'I 8 - 1!Jo + 88 - 1¡;
= = xl!
+ 8~
en donde hcmos denotado ~ = B - 1o. Supondremos, para fijar ideas, que se hace
e
crecer a partir de cero. Una discusión similar puede hacerse para f) decre-
ciente a partir de cero. Nos planteamos una serie de cuestiones que se indican
a continuación.

Det erminación del umbral crítico

La primera pregunta que p lantea el análisis de sens ibilidad puede formular-


se de la manera siguiente.

1) ¿t:xjstc un valor crítico e= ~ a petíir del cua l il deja de ser un progra-


ma (óp,jmo) ?

La repuesta a esta pregunta es inmed iata. Si ~ > O entonces -:f es 1111 pro-
grama para todo valor de B > O. Por ot ra parte, si ~ < Opa ra nl mcn os un s E 1,
=
ex iste un valor crítico O 9¡ a partir del cua l -XI deja de ser un progrmna,
puesto que al menos una componente se h '1CC negat iva. Este valo r critico es

Reoptimización a partir del umbral crítico

e
Cuando supera el umbml B tenemos que reoptimizar el problema. Esto
nos conduce a la siguiente pregunta del análisis de sensibilidad.

2) ¿Qué hay que hacer cuando O pasa el valor critico & para reopumiar
el problema o bien demostror que el problema ya no es factible ?

Cuando B sobrepasa el valor O¡, una o varias variables pasan a ser negativas .
Como se sigue verificando el criterio de óptimo, se puede aplicar el algoritmo
dual del simplex.
256 UN IDA D OID ÁCTI CA 2 Algoritmos de programación lineal

Primer caso

Supongamos q ue el minimo qu e defi ne O¡ se alcanza en un único índice e.


En parti cular. si este mínimo único es cero se tiene que Q = f'J¡l = O. En este
=
caso resulta que para O 01 la única variable que se anula es la variable ."Q' y
=
por co ntinuidad resulta asim ismo qu e par'l O ~ + e la única variable que se
hace negativa es xr. Si apl icamos e l a lgoritmo d ual del simplcx para O = ~ + f
se llega inmedia tamente <1 los siguientes resultados.

a) Si Yi} > 0, cualquiera que sea j perteneciente a J N - l . entonces =


e
no ex iste programa primal para > 8¡, puesto qu e Xe seguirá siendo
negativo para todo valor de () superior a ~ .

b) Si Yi} < O, para algún j perteneciente a J , entonces se dctcnnina k por el


cri terio de entrada del algoritmo dual del simplex

_z'---_'-''k = Mínimo {Zj - ej }


Y tk j lYtj <O Yti

y se sustituye Oh por a l transformando la base B en una nueva base 11.


Antes de efectuar la sustitución, cada una de las variables básicas para
(J= OJ vale

o bien escrito por fi las y teniendo en cuenta el valor de ~ quc se defi -


nió antes

- - ~- O
x, XIs = X01' - ~I Xue > s El - {f}

XI x le = O

Efectuamos ahora la sustitución d e Il por ak Y calcularnos cómo se mo-


difican los valores de las variables. En primer lugar denotemos O =
0 1 + (}', es decir, referimos el parám etro (} al valor de ~ . Entonces la
solución básiea correspondiente a la base 11 y al valor O del parám etro
es

(BY ' (bo + 90 )


(BY' (bo+ 9,o+ 9'0)
(BY ' (bo+ 9,o) + 9' (B' )-' o
_ x;" + 9'(8' )-' o

en donde hemos denotado XíH (B,)-I (bo +( 10). Ahora bien, recor-
=
demos que XII = O, es decir, el valor de la variab le básica .~ es cero, y
ésta es la fi la que sale, o sea es la fi la del pivote. Al recordar las fórm ulas
Análisis de la so luci ón óptima 257

de trasformación, si una eolum na es tal que tiene un cero en la fila del


pivote, al hacer el cambio de base queda co mo está, es decir, los valores
de las var iab les de base asoc iadas a JJ son las mi smas que las asociadas a
/J', aunq ue en JJ es té e n la base X¡ al nivel cero mientras que en JI sea .\"",
In q ue cst ó e n la base :., 1 nivel cero. En definit iva, lo que estamos ascgu-
ramio es q ue 1:.1 primera co lumna queda como está a l ca mbiar JI por JJ y
por tan to ~/J = .'\1 = :xg+ 0 1';. Por lo q ue respecta :.11 vector (J1) - 18 re-
s ulta ser el transformad o del vector IJ lo. es decir del vector ~ = IJ -1o
al cambiar de base. Este vector se trusfcnuará según las fórmulas habi-
tuales de trasformación, es decir, según las fórmulas de cambio de base
estudiadas anteriormente, 2.20 y 2.21, pg. 128.

~: - S E I - {R}

En defin itiva, podemos co ncluir con las sigu ientes expresiones:

-,
x, -
Xü.~ -
.;,- + 0" ~\. - O,Y,'
T XÜl - ~l
, sEl - {R}
<;,e Yu.

z, o,k
~"
Puesto que la parte de Xo qu e no depende de 9' es positiva, ya que es XI ,~ ,
y puesto que 9 < O, Y ik < O se deduce lo sigu iente

i) O bien J!B es un programa ópti mo para todo valor de f1 ::::: 0 1, lo


cual ocurre cuando (8 1 ) - 1 8 > O.
ii) O bien exi ste un valor (1¡ tal que i 8 es un programa para todo (j
tal que O < (J ' < O;, es decir, para todo O tal que O¡ < B < O] O{ y +
ya no es un programa para fY > B[, lo cu al ocurre cuando al menos
,)
una componente de (B - 1Ó es negativa.
Usando la expresión de ~ vista antes, se puede encontrar este valor
O~ resolviendo la ecuación en f:1 que resulta al hacer ~ = o.

Segundo caso

Supongamos que el mínimo que define 9) no se alcanza en un único índ i-


ce. En este caso las expresiones de X¡/J y .rJ{ siguen siendo válidas . A hora se
tien e por hip ótesis que X"ls = O para alg ún s E I tal que s '# t. Por lo tan to es
posible que X;" tome un valo r negativo cua ndo fllo1ll3 valores positivos IllUY
pequeños. Según la expresió n: iR = x;IJ+ O' (lJl)- 18 será efectivamente ne-
gativo si y solamente si la componente;; de ~ I = o
(B1) -1 es negativa. En
este caso no existe un intervalo no nulo de variación de O tal que X8 sea un
,
258 UN IDA lJ DID ACTI C A 2 A lgoritmo s de programación lineal

program a para los valores de es te intervalo, (observemos qu e el caso particu-


lar 0 1 = O es de este estilo). Entonces es preciso efectuar un nuevo cambio
de base aplicando como en el primer caso el algoritmo d ual de l simplcx. En
general. puede ocurrir que sea necesario efectuar varios cambios de base para
e = el y si se supone qu e no hay cic1ajc del algoritmo dual se está seguro de
alcanzar después de un número fi nito de pivotajcs o bien un programa o bien
la seguridad de que no existe programa para > i\ . a
La discusión anterior puede resumirse en el siguiente resultado .

AN ÁLISIS DE Proposición 2.11 Si partimos de un programa básico óptímo1fjo. corres-


S ENSIBILIDAD DEL pondiente a la base So y al valor l:t = O del parámetro y hacemos cre-
VECT OR DEL lADO cer (decrecer) e por valores positivos (negativos) se puede dcterm íner una
DERE CHO DE LAS serie de valores distintos, es decir cstricuuncmc crecientes (decrecic1Jles)
RESTRI CCI ONES (exceplu<m do el caso en el que el mínimo para calcularlos no sea único, en
cuyo caso el = 00), 0 1,0:2•.. ' l ep dc (} y una serie de bases 8 1, 8 2, " . ,8 p ,
pudicndo no existir Bp • tal que tienen la sig uiente propiedad.
• Cada base B ¡ se deduce de la B i - l por sustitución de un único vector
ail en fugar de Gj ¡_ 1 si (Ji csré determinado por un m ínim o único o
por más dc un vector en caso contrarío.

• La solución básica J!ij asociada a la base B¡ y al vector /Jo + 08 es un


programa óptimo para todo valor de (J tal que pertenezca al ímerveío
0; <0 < 0;+1, (1 < i< p - I ).

• xBp es un programa óptimo para todo valor de e > ep en el caso en


que (Hp)-l o > O, o bien no ex isten programas para e > ep (en este
último caso no cxtste Bp ) .

EJEMPLO 2.36 Consideremos el siguiente p roblema de programación lineal en el


que el vector de términos dcl lado derecho de las restricciones depende de un paráme-
tro 9.
Minimizar - z= - 3Xl - 2x2- 5x)
sujeto a
XI + 2x, + X, < 40 -0
3xI + 2x, < 60 + 29
X, + 4x, < 30 - 70
X I. X2. X3 > O

Tenemos

<1" =[~~J , =hJ


Comenzamos haciendo (J = 80 ~ 0, es decir tenemos el probl ema siguiente bajo la
forma estándar:
Análisis de la solución óptima 259

Minimizar - z- 3x, 2xl - 5x)


sujeto a
x, t 2x, + Xl -l x, - 40
3Xl + 2x, r x, - 60
Xl l- 4X2 + x. - 30

Las tablas del simplcx son:

Tabla inicial
- 3 -2 -S O O O
X, X, Xl X, X, X.
Z O 3 2 S O O O
O x, 40 1 2 ¡ 1 O O
O x, 60 3 O 0) O 1 O
O x. 30 1 4 O O O 1

Iteración I
Xl x, x, x, x, x,
z - ISO - 9/ 2 2 O O - S/ 2 O
O x, 10 - 1/ 2 0) O 1 - 1/2 O
-S Xl 30 3/2 O 1 O 112 O
O x. 30 1 4 O O O 1

Itcración 2
x, x, X, X, X, X,
z - 160 -4 O O -1 - 2 O
x, S - 1/4 1 O 1/2 - 1/ 4 O
Xl 30 3/2 O 1 O 112 O
x. 10 2 O O - 2 ¡ 1

En la última tabla se encuentra la solución óptima para (} = 0, xgo --: (X2 .X) ,X6Y :..
(5,30.1OY que co rresponde a la matriz básica Ro ~ (a2.a),a6) euya inversa es la
matriz

Bo ' = [I~: ~~4 ~]


Calculamos ahora el vector ~
,
260 UNIDA D D[[)ACTlCA 2 Algoritmos de programación lineal

Puesto que ~ i. Oexiste un valor crítico a partir del cual .fo deja de ser óptimo. Ese
valor se determina por la relación

81 = M ío
5
{ - - 1' - - 3
lO } _ 10 _
- 3-- ~
'06
o sea que la base Bo es óptima en el intervalo (} E [O, ~I . El valordcl programa óptimo
para cada (3 de este intervalo es

y el valorde la función objetivo:


- 2(5 - B) 5(30 +B ) - - I60 -3 B
Ahora para 9 - ~ el valor de la variable X 6 se hace cero
10
x6 ~1O -3Bo -IO -33 ~0

Si se aumenta 8 a un valor superior a 1º entonces la v'ariable X6 pasa a ser negativa


y dejamos de tener un programa. Hay que reoptimízar usando el algoritmo dual del
simplcx. Sale entonces de la base la variable X6 . Como no toda la fila es positiva
resulta que es posible mejorar la función objetivo. Aplicando el criterio de entrada
del algoritmo dual, debe entrar en la base la variable ..(" 4 _ Escribimos la tabla para
8 =8 1 = °
1
3

-3 -2 -5 O O O
XI X, X, X, X, X,
z - 170 -S O O O - S/ 2 - 1/ 2
-2 X, S/3 1/4 1 O O O 1/ 4
-5 X, 100/3 3/2 O 1 O 112 O
O X, O - 1 O O 1 1/2 - 1/2

La base óptima es ahora B = (a2,a ), a4) cuya inversa es

H 1= [~ I ~2 1~4 ]
1 - 1/ 2 - 1/ 2
Calculamos ahora el rango de valores de B para los cuales esta base es óptima. Calcu-
lamos pri mero H I (j de la forma siguiente:

B '~ = [~ 1~2 1 ~4] [ -; ] _ [ ] -~/4


1 - 1/2 - 1/2 -7 3/2
Como ~ 1- Oexiste un valor critico de 6 a partir del cual dejamos de tener un programa.
Veamos cómo se calcula .
15
B-1 b =
O O
O 1/ 2 1/4 ] [40]
O 60 = 2
30
[ 1 - 1/2 - 1/ 2 30 -5
Análisis de la solución óptima 261

El p rograma actual es
IS 7
- - -O

1 ~~2] + 0[ -;/4 ] =
2 4
_ [ 30 -1 0
-s 3/2 3
-s t- - O
2

Obsérvese que para ti = 1j! tenemos el valor que est á en la base


IS 7 10 s
x, -
2
- - - =-
4 3 3
x, _ 30 +~ _ IOO
3 3
3 10
X4 - S + 2 3 = 0

El valor de la función objetivo es

IS
z ~ - 2 ( "2 7)
- 4 0 - 5 (30 H ) + 0 - 5 1 20 (3 ) = - 165 - 230
Observemos que para B = .1]0 tcnemosz - - 165 - ; JP
=- - 170. I.a base actual pcrma-
ncccrá óptima mientras siga siendo un programa, es decir; mientras B 1 6 > O. Como
8 - 16 = (- 7/ 4, 1,3/2)' 1:. O existe un valor límite para 8 a partir del cua l dejamos
de tencr un programa. Dicho limite resulta de exigir que Jt -
~ 8 > O y de esta de -
sigualdad obtenemos qu e 8 < ~o = 9l . El valor anterior se puede obtener también del
cociente
15
Mlnirno { _
.rl{'< O
X:5"'5 }_Mínimo - -2
7
_ _30 _ a
- 7 - v,
4
Es decir, para ..!j!- < O< ~o la base (az, a) ,a4) es la óptima y el programa básico es

Xz = 1; _ ~ B, x] _ 30-1- 8, X4 = - 5 + ~ 8 y se tiene z = - 165 - ~8. Siguiendo


con el anál isis debe salir de la base la variable X2 que es la que alcanza el mínimo.
Aplicando el algoritmo dual del simplex, vemos qu e toda la fila correspond iente a
A2 es positiva o cero. Por tanto, podemos concl uir que el problema no es factible
para 8 > 3j'. Finaliza entonces el análisis paramétri eo. Podemos resu mir entonces la
situación en la tabla siguiente

O x, x, x, z

O -< O -<~
3 O S- O 30+ 0 - 160 - 30

10 O 30
-3 -< <- O ~_ 70 30+0
3
- 16S - - 0
- 7 2 4 2
O 30
>- no hay solución factible
7

262 UN ([)A D DlD ACTl C A 2 Al gorilmos de programacióo lineal

2.4.3 .2 Para metrización del vect or de coeficie ntes de la fun ción


o bjet ivo

En este apartado estudiaremos el caso en que se hace variar el vector e


de forma continua dependiendo linealmente de un parámetro O. Supongam os
entonces que el vector de coefic ientes de la fu nción objetivo es de la forma
=
e cO + By en donde cfJ y r son vectores fijos. Supongamos que se conoce
un valor de (J = &l. que mediante un cambio de origen pued e hacerse igual a
cero, para el cual existe un programa óptimo finito. Sea B la base ópti ma para
e = 00 = O. Cuando se varia 8, Ia solución básica asociada a B sigue siendo un
programa, pero puede dej ar de ser óptimo. Los valores Zj - ej correspondientes
a la base B y el valor son e
d'Yj-Cj
(cO+ BY)"Yj - (co + BY)j
c"Yj + BY'n - (c~ + BYj )
en donde yO den ota las componentes del vector y cuyo s elementos vien en
indicados por el conjunto 1 de índices de las col umnas de B. Si de notamos
= c"
~j Y'Yj. Yj z'] podemos poner
=
Zj -Cj = z~ - c~ +B (~j -Yj) (2.38)

e
Supongamos, para fijar ideas, que se hace creecr a partir de cero (el easo en
e
que se hace decrecer es análogo). De forma similar al apartado 2.4.3.1 nos
planteamos a continuació n una serie de cuestiones que constituyen el anális is
de sens ibi lidad .

Det e rm in ació n del umbral crít ico

La primera pregunta que pode mos formul ar es la siguiente.

1) ¿Existe un va lor crítico B = Bt a partir del cual el programa tJ dej a de


ser óptimo?
La respuesta a esta cuestión es inmed iata. Supongamos que se trata de un pro~
blema de minimización. Si tenemos en cuenta la expresió n 2.38,-jI será óptimo
en ta nto en cua nto Zj - Cj < O y por tanto p odemos afirmar que:

a) Si y'l y - Y < O, entonces la base B será óptima para todo valor e > 0.
b) Si ~j - Yj > o para al menos un j E J, entonces existe un valor crítico ~
a partir del cual Zj - Cj es positivo.

Es sen cillo encontrar dich o valor critico. Vendrá definido por

el = ~
z2-c'!k = mínimo
¡;, - )1 j ll'r 1¡»0
Análisis de la solución óptima 263

Reoptimización a partir del umbral crítico

Cuando 9 supera el umbral 9¡ tenemos que reoptimizar el problema. Esto


nos conduce a la s iguiente pregunta del análisis de sensib ilidad.

e
2) ¿Qué hay que hacer cuando $obrcpasa el valor critico Q para rcop-
rimizar el probJcm~ o bien demostrar que no existe progrdma mínimo
finito?

Para responder a es ta p regu nta utilizamos el algoritmo del simplex.

Primer caso

Supongamos que el m ín imo que define O¡ se alcan za en un único índ ice k.


En panicular. si este mínimo es cero se tiene ~ = =
00 O. En esta situación,
z.- Col es el único coeficiente que se an ula para e
= Q, m ientras q ue, por con-
tinu idad , pa ra O > 8 1 es positivo. Esto nos conduce a una de las dos posibles
s ituaciones que di scutimos a continuación.

a) Si Yd: <; O para todo s pertenec iente a l, no existe programa mínimo finito
para 11 > 91•

b) Si Ysk > O para al menos un s perteneciente a / , entonces se determina l


por el criterio de salida del simplex

y se sustituye ar por Qk transformando así la hase B en una hase Ji.


Antes de la s ustituci ón de al po r Uk se ten ía para 8 = 81

j EJ - {k }

Después de sustituir el vec tor ti( por el


esta en la columna del pivote vnlc cero.
a4-. cl =
y puesto quc el elemento que
O. como consecuenc ia
inmediata de las fórmulas de cambio de base del método del simplcx
resulta que los elementos de la fila de z modificados. o sea los relati-
vos a la base 1/ . valen exactamente igu al qu e los relativos a la hase 1/.
Por e llo . si denotamos t) a l valor corres pondi ente a O = O¡ relat ivo u la
=
base. 8' pod emo s afirmar que i¡1 z} . Por lo que respeta a ~I se transfor-
mara de acuerdo con las fórm ulas generales. Fina lmente pond remos ()
264 UNIDAD DIDÁCTICA 2 Algoritmos de programación lineal

=
de la forma a al + (J I , ( (J I ~ o.) Por tan to, después del cambio de base
tendremos una expresión similar a la obtenida inicialmente para (J = liJ.

eJi'v¡ - ej

{eO + {Ol + O' )y)B'Yr {eO+ (O, + O' )Y)j


e o' + 01-,. C Y j + O' .-,C y¡ -c¡o - un IYj - vYi
n'

- zj' -e}+ O'{y'tyrJ'j )

en donde, en In última igua ldad hemos denotado t; = c°B' + el yB'Yi y


e} = (.~! + 0 1Yj ). Pero co mo hemos comprobado antes t; = z5mientras
que r tYi = ~; según la transformaci ón usual. Por tan to queda

Asimismo, ten iendo en c uenta las fórmu las generales de cambio de base
se tiene también:
i, - e, = _ O' ~k - Yk
Yik
En resumen, efectuando el cambio de base, tenernos la'! siguientes ex-
prcstoncs

zj - el z} - e} +O' {~; - Yj) JEJ' - {e}


zi -Ct - _ O' ~k - Yk
Ytk

Puesto que la parte de i¡ - el que no depende de e' es estrictamente


negativa por hipótesis y puesto que 9: - Yk es mayor qu e cero podemos
concluir que

i) O bien la base B' es óptima para cualquier valor de fJ > ~ lo cual


es as í en el caso en que ~; - Yj < O cualquiera que sea j E ./.
ii) O bien existe un valor lY¡ tal que Ir es una base óptima para O'
ta l que () < (JI < O; • es decir para 01 < O < lh = 01 + O; y no
es una base óptima para O' > O;.
Esto OCUlTe en el caso en que
~; - Yi > O para al menos un j. Las expresiones anteriores nos
permiten ca lcular O; como el va lor q ue hace t; - e j O. =
Segundo caso

Suponga mos ahora que el mínimo q uc define ~ se alcanza en más de un


índ ice . En este caso, las expresiones de ~ - cj y de i; - Cj calculadas antc-
tiorrucntc siguen siendo vál idas pero ahora se tiene que ~- - e) para al = ()
menos un j ':ft k. Resulta entonces q ue t; - ej puede ser posit ivo cuando o
Análisis de la so lución óptima 265

torna valores positivos por pequeños que sean. Cuando ocurre esto no existe
un intervalo no nulo de variación de O en el cual la base 1/ sea óptima (el caso
el =o es d e este tipo). En esta situación hay qu e efectuar un nuevo cambio de
base aplicando el a lgoritmo primal para (f =
e. De esta manera puede ocurrir
que sea necesaria real izar varios cambios de hase para un valo r fij o B de e, y
s up uesto que no hay c ic laj c , después de un nú mero fin ito d e pivotajes acaba
por alcanzarse o bien una hase óptima o b ien la segurida d de que no existe
programa óptimo fi nito para los va lores 8 > e.
e
Observemos fi nalmente que cua ndo varia se pasa de manera discreta de
una base a otra, pero tanto el vector e y por tanto la fu nción objetivo varían de
forma conti nua. La discusión anter ior puede resumirse de la forma sig uiente.

A NÁLISIS DE Pmpuslcf ún 2. 12 Si P¡lI1irJ!os de un progr<l tJw b<Ísico áptimo asociado n


SENSIBILI DA D DEL 1111<1 base /Jo y,,'
ve íor O = Odel parámetro y lmcemos crecer (} p;lra vaforcs
VE CTOR DE positi\'()s se puedc dcíctminer U11<1 scrie ác vníorcs críticos dh.,ill tos. es
COEFI CIENT ES DE decir. estrict.1lnente crecientes (exccpwél1ldo el (';.1.',0 en el 'lile el m ínimo
LA FUN CiÓN que los define es /lulo) ~ .02 •.. . •0J1 y nnn serie de bil.'ies /J1 . lh •. . .•O,'
ODJETIVO (pudiendo no existir IJ,,) con las propicd,ules siguientes:
• Cada base B¡ difierc de la anterior Bi _ 1 en un único vector si o¡
está determinado por un único mínim o o en varios vectores en caso
contrario.

• La base Bi es óptima para todo valor de e del intervalo i¡ < O < OH l .


( I <i < p - l).
• 8 1, es base áptinm [lam todo valor e > el' si
IIlI a I pB;; 1A - r < 0, o
bien no existe prognU1m óptimo íínito para () > q, (en este caso no
existe 81')'

EJ EMPLO 2.37 Cons ideremos el siguiente problema de programación lineal en el


cual el vector de coeficien tes de la función objctivo depende de un parám etro e.

M inimiza r - z :.. . : ·(3 - 60 )x , - (2- 20 )x,- (5+ 50) Xl


sujeto a
x, t- 2x, , Xl < 40
3x, + 2x.1 < 60
X, -l- 4X2 < 30
xr , x2, Xl > O

Sean X4. Xs Yx 6 las variables de hol gura correspondie ntes. respectivame nte. a la pri-
mera, segunda y tercera restricción. Resolvemos el problema para 9 = O mediante el
algoritmo del simplcx. La tabl a óptima es:
,
266 UNIDA D DIDA CT ICA 2 Algoritmos dc programación lineal

X, x, Xl x. x, x,
z - 160 -4 O O - 1 -2 O
x, 5 - 1/ 4 1 O 1/2 - 1/ 4 O
Xl 30 3/2 O I O 1/2 O
x, 10 2 O O -2 1 1

Co nsideramos ahora la fonna param étrica del vector de costes. De acuerdo con las
notaciones de este apartado c O- (-3, - 2, - 5,0, 0,0) Y y = (6, 2, - 5, 0.0,0), de fonna
quc
e= c' + 9r = (-3, - 2, - 5,0,0,0) + 9 (6,2, -5,0,0,0)
La form a paramétrica de los elementos 2 j ej es Zj - ej = z'} - cJ + (] (~j - "ti )'
Aquí 8. = (a" a" a, ), Por tanto c" = ( - 2,-5,0), r' ~ (2, - 5,0) Y como cense-
cucncra:

2 1 - el z? -c? +B (~, - y,)=-4+ 0 [ (2, -5,0) (~t) - 6]


= -4-140
z: - c:+ 9(';' - y.) ~ - 1+ 0 [ (2, - 5,0) (~:) - O]
- 1+ 9

zs -r cs z~-c~+ 9(~, 1'5 ) = - 21- 9 [(2, -5,0) (~(z4) - O]


= - 2 - 39

Observemos que los cálculos anteriores proporcionan los elementos de la primera fila
cuando se uti liza el vector de costes paramctrizado. En efecto, la manera habitual de
realizar dichos cálculos en el algoritmo del simplex es:

~ ~10 ! - ~ O
(-2+ 29, 5 - 59,0) l O1 O lo 1- (3- 69), -(2- 29),-(5+ 59) ,0,0,0)1
200 -2 11

~ ( 4 149,0,0, - 11-9,-2 -39,0 )


Tenemos 2,-c'} := ( - 4.0.0, -cl , - 2,0) y ; ) - y, = ( - 14,0,0, 1. - 3,0) . Si roda In
primera fila es no positiva ten ernos un progrmna ópti mo de basc. Ahora bien par¡¡
O > O es - 4 - 14 0 < O y - 2 - 30 < O; en camhio - 1 + O i o. Es decir, dado que
~ - rol = l > () no pod ernos asegurar que el programa es un programa óptimo JXIr.1
todo O > O. En efecto, cuando O > I = 0 1 \.-S Z4 - C4 > O y el programa deja de ser
óptimo. El umbral 0 1 se calcula como

91= 1 - - - 1 :- M mun
" o { - T1}
T
Análisis de la solución óptima 267

Así pues, el programa actual es óptimo para todo 6 tal que O < 6 < l . El va lor de la
func ión del objetivo en este intervalo es:

z( B) = - (2 - 2B)5 - (5 + 5B )30 + 0 · 10 ~ - 160 - 1400


Pera O = 0 1 = 1 z.. - C4 = O. Co mo este es el único coe ficiente que se anula pa ra
O = 0 1 + r este es también el único que se hace positivo. Debe rnos efectuar un ca mb io
tic base siendo x" la variable entrante. En pr imer lugar, como en la co lumna de x.,
exi ste algún elemento positivo no podemos concl uir que el problema tien e un mínimo
infinito. Si utjl iz...U Il OS el criterio de salida llegam os a q ue debe sa li r la variable .1' 2.
Efec tua mos el pivotajc sobre c l Y2". La nueva tabla es:

x, x, x, x, Xl x,
z - 300 - 18 O O O -5 O
x, 10 . 1/2 2 O I - 1/ 2 O
Xl 30 3/2 O 1 O 1/ 2 O
x. 30 I 4 O O O 1

La primera fil a de la tab la anterior es la fil a de los t érminos Z~I , es decir la fila co-
rrespondiente al va lor de O = 6 . = I Y a la base (U4, U3 , il6) ' Como hemos visto en
el desarrollo teórico estos coefic ientes S<1Il igua les a los z } ya qu e el z.. - C4 = O pa-
ra O = Ot - Vamos a detenemos en comprobar este hecho. La nueva mat riz básica es
Ir = (tl4, Cl },,,,,) Y su inversa es

Entonces

(O, - 5 - 5B,O) [~~2] - (-(3 - 6B»~. ~ _227 B


(O, - 5 - 5B. O) m( - 2+ 2B) = 2 - 2B

= (0,-5 - 5B,O) [!]-(- 5 - 5B)= 0

(O, -5 - 5B, O) [~] - 0= 0


,
Zs - c~ (O, - 5 - 5B,O) [~~~2]
O
- O=- ~-
2 2
~ B
- O
Por tanto para O ,,-- I
,1 9 27
z¡ - q = - - - - 1 = - 18
2 2
268 UNIDAD DIDÁCTICA 2 Algoritmos de programación lineal

Z2" - C2 =2 -2·! =O

id - C5 = _ 5_ 5 1
2 2
---s
La tabla siguiente resume los cálculos anteriores

Xl

=) - ej - 4 - 140 O O - 1+ O - 2- 30 O

Para (J - I - IK O O O - 5 O

9 27 5 5
~- Cj ---- O 2 -20 () () --- - O O
2 2 2 2
Para B = 1 - 18 O O O - 5 O

Como se ha indicado en el apartado teórico efectuamos el cambio O = 91 + t:JI = 1+ el


con lo que los z~. - ej quedan como sigue

i¡ - el
9 - -27 ( 1+0')
- - ~- 1 8 -- 0
27 ,
2 2 2
2 -2(1 +0 ') = -29'
O
O
5 - -S ( 1+9 ')
-- ~- 5 - - 0
5 ,
2 2 2
O

Es decir, la primera fi la se puede poner de la siguiente manera:

X,
- 18 - 7j. O' - l B' O O - 5-~ 8 ' O (conO ' > l)

Hs sencillo comprobar también que ~ { 71 = _ 27, ~~ _ Ys _ _ 5 Y_ ~ - Y4 - - 2.


2
2}14
Como puede observarse, la parte que no depende de (J ' es menor igual que cero. Ahora
bien, como todas las ~; 7j < O cuando el aumenta para valores mayores que 1,
resulta que todos los =) - e j son menores iguales que cero, es decir, se cumplen las
condiciones de óptimo. El valor de z será :

z(9) 0- 10 +30 (-5 -59 ) + 30- 0


- 150 - 150 9
- 150- 150( 1 1 9 ')
- 300 - 150 0 1

El cuadro siguiente resume el análisis realizado, presentando la solución óptima del


problema y el valor de la función del objetivo para los distintos valores de O.
Aná lisis de la solución óptima 269

z
o 5 30 - 160 - 1400
O O 30 - 150 - 1500
Problemas de autoevaluaci ón 271

• •
Problemas de autoevaluación ".
_,;. Il

Problema 2.1 a) Plantear un mod elo de programación lineal para la


Consideremos de nuevo el probl ema de la nave y el as- empresa, a fi n de determinar las can tidades de cada
teroide, problema 1.2 de la unidad didácti ca 1 (pg. 105). producto que hay que fabricar para maximiza r los
ben efic ios y resolverlo por el algoritmo primal del
a) Formu lar el dual del problema de program ac ión Ji·
simplex. Si es preciso utilizar variab les artificiales
neal obtenido en el problema 1.2.
ap licar el método de las penalizaciones.
b) Utilizando la teoría de la dualidad deducir cond icio-
b) Un segu ndo proveedor se ofrece a suministrar uni-
nes para que el tiempo mínimo de col isión sea posi-
dades de M. Determinar si sería ren tabl e adquirir
tivo y establecer una cota inferior para dicho tiempo
unidades adiciona les de M y, en caso afirmativo, cal-
mínimo de colisión.
cular el precio que se podría pagar por cada una de
ellas y cuántas unidades adicionales merecería la pe-
Problema 2.2 na adquirir.
Resolver medi ante la forma revisad a del algori tmo del
simplex y la fonna producto de la inversa, el problema de c) Discutir la estrategia comercial que exige fabricar
programación lineal siguiente: 700 unidades de C y D, razonando si sería provecho-
so o no relajar esta cond ic ión y, en caso afirmativo,
Minimizar z '- -- 3x I + X2 -t X3 determ inar hasta que punto habría que modificar la
condición cn la producción mínima de C y D .
sujeto a
d) Una reorganiza ción de la cadena de producción su-
X¡ -2x2 + X3 < 11
pone que el tiempo necesario para fabricar una uni-
- 4xJ, X2 -+- 2x) >3 e
dad del producto aumenta en 1 hora. Determinar
2q -x) = - 1 las consecuencias de esta modi fi cación en el progra-
ma óptim o de producción.

Problema 2.4
Problema 2.3 Cons idere mos el si guiente problema de programación
Una empresa fabr ica 4 produc tos A. n, e y D. Para el lo linea l pa ram ótnco:
empica dos recursos: ma teria prima M . que le suministra
un determ inado proveedor, y tiempo . En la tahla s iguiente Problema P(k¡,k2 )
se muestran las can tidades dc materia pr ima y de tiempo Máx z = 5 X l 1- 3x 2 + 2x)
necesarias para fabrica r una unida d de cada uno de lus pro-
tlUclos, así como el be ne fi cio q ue se obtiene de la ve nta de sujeto a
una unidad de cada uno de ell os. XI + 2.q + X3 .5 kl

Prod ucto A II e D 4x I + X2 + 2~) < k a


Materia prima M (unidades) 3 4 S 6 X j, X2, X3 >O
Tiempo (horas) 2 3 4 7 donde Xl ,X2 > Oson números reale s.
Beneficio (euros) 80 120 140 160
a) Resolver de fonna paramétrica e l problema P(k 1, 1) ,
Se desea pla nificar la producción para un pe riod o de 46 para todos los posibles valores de k I > 0, en contran-
scmanas. En cada semana se d ispone de 200 horas de tiem- do la solución óptima y el valor de la función obj e-
po. El proveedor de materia prima só lo puede s um inistrar tivo en fun ción de k l .
IOQ(lO unidades de M para todo el periodo. Por otra part e. b) Utili zando el resultado del apartado a) resolver el
pur razones de estrategi a comercial. se desea que clmuncro problema P(k l ,X2) para todo X, ,k2 > O.
de unidades de e y D, en conjunto, sea al menos de 700 .
Soluciones de los problemas de autocval uación 273

Soluciones de los problemas de"autoeval " . •

Solución del problema 2.1 d) La solución sigue siendo óptima pero el valor de la
El dual es variable de holgura se reduce a 825.

Max imizar - b' u - d' w


Solución del prob lema 2.4
sujeto a a) La solución óptima en función de k es:
_ Al u C' w =O
vn 'A' u + v. f (..;' W -< I k, X, x, X, S, s, z

. >0 0< *.< 1 k, O O O 1-4k , Sk,

w>O ~ < k1 < 2 '? , 4k1 -1


O O O k , 1- I
k >2 O 1 O k, - 2 O 3
Una condición para que se dé la colisión de la nave y el as-
teroide en un tiempo positivo es que existan u E R ). W E u,)
verificando las restricciones del dual y tales que
b) Hacemos loscambios z' = ~ , ~ ...; ~ -4 =- i;..r; =- 1;
k= *1 I k2 • Es inmediato que
- hl u - d'w > O

Solución del problema 2.2


Solución óptima: Xl ...-, 4, X2 = J ,.1) = 9, i: = - 2. es decir, estamos en la misma situación que en el caso an-
terior.
Solución del problem a 2.3
a) El problema es:

Maximizar z = 80.\:1-\ 12Ox2 -\ 140xJ + 160x4

sujeto a

2x1 -f 3X2 t- 4x) I 7X4 < 9200


X3 + X4 > 700

Solución óptima: XI = 0, X2 = 1625, XJ = 700• ..1:4 =


O, z = 293000
b) Merece la pena aceptar la oferta de unidades ad icio-
nales de materia prima M hasta un máximo de 6 1~
unidades, siempre que el precio unitario sea inferior
a 30 euros.
e) La restricción puede eliminarse por co mpleto, me-
j orando la solución óptima.

También podría gustarte