P. 1
Optimizacion Lineal

Optimizacion Lineal

|Views: 645|Likes:
Publicado porPilar Rivera

More info:

Published by: Pilar Rivera on Jun 19, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/17/2013

pdf

text

original

Sections

  • 2.1. El modelo de Programación Lineal
  • 2.2. Formulación de un problema de Programación Lineal
  • 2.3. Fases en la resolución de problemas de Programación Lineal
  • 2.4. Tipo de soluciones en un problema de programación lineal
  • 2.5. Resolución de un problema de programación lineal mediante el método gráfico
  • 2.6. Propiedades de las soluciones
  • 2.7. Algoritmo del Simplex
  • 2.8.1. Método de la “M” o de Penalización
  • 2.8.2 Método de las dos fases
  • 2.9. Soluciones múltiples
  • 2.10. Soluciones degeneradas
  • 2.11.1. Determinación de la inversa. Forma producto de la inversa
  • 2.11.2. Etapas del método del simplex revisado
  • 2.12. Resolución mediante programa de ordenador

21

CA P Í T U L O 2
P ROGRAMACI ÓN L I NE AL

2.1. El modelo de Programación Lineal
En los siglos XVII y XVIII, grandes matemáticos, como Newton, Leibnitz,
Bernoulli y, sobre todo, Lagrange, que tanto habían contribuido al desarrollo del
cálculo infinitesimal, se ocuparon de obtener máximos y mínimos condicionados
de determinadas funciones.
Posteriormente, el matemático francés Jean Baptiste-Joseph Fourier (1768-
1830) fue el primero en intuir, aunque de forma imprecisa, los métodos de lo que
actualmente llamamos programación lineal y la potencialidad que de ellos se
deriva.
En 1939, el matemático ruso Leonid Vitalevich Kantorovitch publica una
extensa monografía titulada Métodos matemáticos de organización y
planificación de la producción en la que por primera vez se hace corresponder a
una extensa gama de problemas una teoría matemática precisa y bien definida,
llamada hoy en día programación lineal.
En 1941-1942 se formula por primera vez el problema de transporte,
estudiado independientemente por Koopmans y por Kantorovitch, razón por la
cual se suele conocer con el nombre de problema de Koopmans-Kantorovitch.
En los años posteriores a la Segunda Guerra Mundial, en Estados Unidos se
asumió que la eficaz coordinación de todas las energías y recursos de la nación
era un problema de tal complejidad, que su resolución y simplificación pasaba
necesariamente por los modelos de optimización que resuelve la programación
lineal.
Paralelamente a los hechos descritos se desarrollan las técnicas de
computación y los ordenadores, instrumentos que harían posible la resolución y
simplificación de los problemas que se estaban gestando.
En 1947, G. B. Dantzig formula, en términos matemáticos muy precisos, el
enunciado estándar al que cabe reducir todo problema de programación lineal.
Respecto al método simplex, que estudiaremos después, señalaremos que su
Q. MARTÍN MARTÍN


22
22
estudio comenzó en 1951 y fue desarrollado por Dantzig. Los fundamentos
matemáticos de la programación lineal se deben al matemático norteamericano de
origen húngaro John Von Neumann (1903-1957), quien en 1928 publicó su
famoso trabajo sobre Teoría de juegos.
La Programación Lineal es un conjunto de técnicas racionales de análisis y de
resolución de problemas que tiene por objeto ayudar a los responsables en las
decisiones sobre asuntos en los que interviene un gran número de variables.
El nombre Programación Lineal no procede de la creación de programas de
ordenador, sino de un término militar, programar, que significa realizar planes o
propuestas de tiempo para el entrenamiento, la logística o el despliegue de las
unidades de combate.
La Investigación Operativa en general y la programación lineal en particular
recibieron un gran impulso gracias a los ordenadores. Uno de los momentos más
importantes fue la aparición del Método del Simplex. Este método, desarrollado
por G. B. Dantzig en 1947, consiste en la utilización de un algoritmo para
optimizar el valor de la función objetivo teniendo en cuenta las restricciones
planteadas. Partiendo de uno de los vértices de la región factible, por ejemplo el
vértice P, y aplicando la propiedad: si la función objetivo no toma su valor
mínimo en el vértice P, entonces existe una arista que parte del vértice P y a lo
largo de la cual la función objetivo no aumenta, es decir, se pasa a otro vértice
donde el valor de función objetivo sea menor o igual que el alcanzado en P.
Iniciarse en la técnica de programación lineal teniendo como referencia al
método científico: la representación o modelo en formulación matemática lineal
de algunos problemas elegidos, será nuestro objetivo en este capítulo.
La Programación Lineal es una de las técnicas agrupadas como
programación matemática, aplicable a problemas de asignación de recursos
limitados, con actividades competitivas hacia un objetivo común, que puede ser
de maximizar beneficios o minimizar pérdidas. Se utiliza un modelo matemático
con representación válida de la problemática en estudio; sus relaciones deben ser
lineales, que significa utilizar, sólo variables de primer grado en cada término.
El objetivo de la Programación Lineal es encontrar el valor de la función que

Max (Min) z = c
1
x
1
+ c
2
x
2
+ … + c
n
x
n


denominada función objetivo.

La función objetivo se encuentra sujeta a una serie de restricciones
Programación Lineal 23


st
a
11
x
1
+ a
12
x
2
+ … + a
1n
x
n
= b
1

a
21
x
1
+ a
22
x
2
+ … + a
2n
x
n
= b
2

….
a
m1
x
1
+ a
m2
x
2
+ … + a
mn
x
n
= b
m


donde x
i
> 0 (i=1, 2, …, n) son las condiciones de no negatividad de las
variables.

Cada columna de coeficientes:

A
j
= , X=
|
|
|
|
|
.
|

\
|
mj
j
j
a
a
a
...
2
1
|
|
|
|
|
.
|

\
|
n
x
x
x
...
2
1

(A
1
, A
2
,…, A
n
, b

)=
|
|
|
|
|
.
|

\
|
m mn m m
n
n
b a a a
b a a a
b a a a
...
.... .......... ..........
...
...
2 1
2 2 22 21
1 1 12 11

x
1
A
1
+ x
2
A
2
+…+ x
n
A
n
s b;

x
i
> 0, ¬i

Matricialmente lo anterior se escribe como:

Max z = c
T
X
st
AX s b
X > 0

siendo
z: la función objetivo
c = (c
1
,...,c
n
)
T

: vector de coeficientes de la función objetivo.
X = (x
1
,...,x
n
)
T
: vector de variables de decisión.
A = (...,a
ij
,...): matriz de coeficientes técnicos (i =1, 2, ..., m; j =1, 2, ..., n).
b = (b
1
,...,b
m
)
T

: vector de demandas (recursos).
El conjunto de soluciones factibles de un problema de Programación Lineal
viene dado por:
Investigación Operativa


24
X = {x eR
n
/ A x s b , x > 0}

Como se verá posteriormente, todos los óptimos (si existen) deberán estar en
la frontera del conjunto de soluciones factibles.
La solución de un problema de programación lineal, en el supuesto de que
exista, debe estar en la región determinada por las distintas desigualdades. Esta
recibe el nombre de región factible, y puede estar o no acotada.


Región factible acotada

Región factible no acotada
La región factible incluye o no los lados y los vértices, según que las
desigualdades sean en sentido amplio (s o >) o en sentido estricto (< o >).
Si la región factible está acotada, su representación gráfica es un polígono
convexo con un número de lados menor o igual que el número de restricciones
siempre que no haya restricciones redundantes.
2.2. Formulación de un problema de Programación Lineal
Para que un modelo de Programación Lineal sea válido, debe cumplir las
propiedades siguientes:
Proporcionalidad. Significa que la contribución al valor de la función
objetivo y el consumo o requerimiento de los recursos utilizados, son
proporcionales al valor de cada variable de decisión. Así el término 2x
1
es
proporcional, porque contribuye al valor de la función z con 2, 4, 8, etc. para los
valores 1, 2, 3, etc., respectivamente, de x
1
. Se puede observar el aumento
constante y proporcional de 2 conforme crece el valor de x
1
.
Aditividad. Significa que se puede valorar la función objetivo z, así como
también los recursos utilizados, sumando las contribuciones de cada uno de los
términos que intervienen en la función z y en las restricciones.
Divisibilidad. Significa que las variables de decisión son continuas y por lo
tanto son aceptados valores no enteros para ellas. La hipótesis de divisibilidad
más la restricción de no negatividad, significa que las variables de decisión
pueden tener cualquier valor que sea positivo o por lo menos igual a cero.
Programación Lineal 25


Certidumbre. Significa que los parámetros o constantes son estimados con
certeza, o sea, no interviene una función de probabilidad para obtenerlos
El modelo de programación lineal es un caso especial de la programación
matemática, pues debe cumplir que, tanto la función objetivo como todas las
funciones de restricción, sean lineales.
Dependiendo del tipo de restricción que presente el problema de
programación lineal, tendremos:
Restricciones (=): Formulación estándar.
Restricciones (s) o (>): Formulación canónica.
Restricciones (s o (>) o (=): Formulación mixta.
Sin restricciones de signo: x
k
=(x+)- (x-), donde (x+) >0; (x-)>0
Por ejemplo, vamos a pasar un problema formulado en forma canónica a otro
en forma estándar.
Problema formulado en forma canónica:

Max (Min)z = c
1
x
1
+ c
2
x
2
+ … + c
n
x
n

st (s. t.)
a
11
x
1
+ a
12
x
2
+ … + a
1n
x
n
s b
1

a
21
x
1
+ a
22
x
2
+ … + a
2n
x
n
s b
2

…………………………….
a
m1
x
1
+ a
m2
x
2
+ … + a
mn
x
n
s b
m

x
i
> 0, ¬i
Escrito lo anterior en forma compacta, tenemos
Max z = c
1
x
1
+ c
2
x
2
+ … + c
n
x
n
=Max c
j
x
j

¯
=
n
1 j
st
a
ij
x
j
s b
i
, (i=1, 2, …, m)
¯
=
n
1 j
x
j
> 0, (j =1, 2, …, n)

Escrito en forma matricial sería:

Max z = c
T
X
st
AX sb
X>0

Cada columna de coeficientes técnicos A
j
representa un vector:

Investigación Operativa


26
A
j
=
|
|
|
|
|
.
|

\
|
mj
j
j
a
a
a
...
2
1

Las restricciones las escribiremos:

x
1
A
1
+ x
2
A
2
+…+ x
n
A
n
s b
x
i
> 0, ¬i

Problema formulado en forma estándar:

Max (Min)z = c
1
x
1
+ c
2
x
2
+ … + c
n
x
n

st (s. t.)
a
11
x
1
+ a
12
x
2
+ … + a
1n
x
n
+ x
n+1
= b
1

a
21
x
1
+ a
22
x
2
+ … + a
2n
x
n
+ x
n+2
= b
2

…................
a
m1
x
1
+ a
m2
x
2
+ … + a
mn
x
n
+ x
n+ m
= b
m

x
i
> 0, ¬i

A las variables x
n+1
, x
n+2
, …, x
n+m
se las denomina variables de holgura y se
introducen para convertir desigualdades en igualdades.
Cuando las variables de holgura son iguales a cero, implica que el recurso de
esa actividad se ha consumido en su totalidad (restricción saturada).

2.3. Fases en la resolución de problemas de Programación
Lineal

Las fases en la resolución de un problema de Programación Lineal las
podemos resumir en:

1ª Definir el significado cuantitativo de las variables de decisión (x
1
, x
2
,…,
x
n
).
2ª Establecimiento de la función objetivo cuyo valor se desea
maximizar(utilidad, rendimiento, ingreso, producción) o bien minimizar
(costo, tiempo, mano de obra, inventario).
3ª Establecimiento de las restricciones que limitan el valor óptimo que
puede tomar la función objetivo. Las restricciones que pueden presentarse
son del tipo: i) Si no se debe exceder del recurso disponible (s); ii) Para
no menos de lo requerido (>); iii) Para igualar el recurso especificado (=).
4ª Resolución del problema y análisis de la solución o soluciones.

Programación Lineal 27


Ejercicio. Un empresa tiene tres tipos de máquinas, A, B y C, que pueden
fabricar dos productos, P1 y P2. Todos los productos tienen que pasar por todas
las máquinas. La tabla siguiente muestra los recursos:

Tipo de Máquina Producto 1
Horas por u.
Producto 2
Horas por u.
Horas disponibles
semanalmente
A 2 2 16
B 1 2 12
C 4 2 28
Ganancia por u. 1 1,50

¿Qué cantidad de cada producto P1 y P2 se debe manufacturar cada semana,
para obtener la máxima ganancia ?

Desarrollado el problema en fases, resulta:

1ª fase:
x
1
= “ número de unidades de P1 “
x
2
= “ número de unidades de P2 “

2ª fase:
Max z = 1 x
1
+ 1.5 x
2


3ª fase :
2 x
1
+ 2 x
2
s 16
x
1
+ 2 x
2
s 12
4 x
1
+ 2 x
2
s 28
x
1
> 0, x
2
>0

4ª fase :
La resolución del problema y análisis de la solución o soluciones se verá
posteriormente.

2.4. Tipo de soluciones en un problema de programación lineal

El problema de programación lineal formulado matricialmente (estándar):


Min z = c
T
X (2.1)
st
AX = b (2.2)
X>0 (2.3)
Investigación Operativa


28
Donde A es una matriz de m filas (restricciones) y n columnas (variables),
siendo n > m. Generalmente las restricciones aparecen en forma de desigualdad
y son convertidas en igualdades al introducir las variables de holgura, esto hace
que la suposición de que n > m esté justificada. Además se supondrá que la
matriz A tiene rango m; lo que quiere decir que pueden seleccionarse m
columnas de A de manera que la matriz que forman tenga determinante no nulo.
El hecho de exigir que el rango de la matriz A sea m implica evitar que en el
problema aparezcan restricciones redundantes o contradictorias. Las
restricciones redundantes pueden eliminarse de la formulación del problema y
las contradictorias provocan que el espacio de soluciones factibles sea vacío y el
problema no tenga solución.
Cada una de las submatrices de A con determinante distinto de cero (es
decir, inversibles) formadas seleccionando m columnas de A, se llama matriz
básica o matriz de base. Si B es una de esas matrices, se dice que es una matriz
básica factible si el vector resultante de multiplicar su inversa por el vector b
tiene todas sus componentes mayores o iguales que cero
Cada matriz básica B del programa lleva asociado un vector que se conoce
como solución básica; el proceso de construcción es el siguiente:
1. Se dividen las variables de decisión en dos bloques:
Variables básicas: aquella que resulta de (2.2) al hacer (n-m) variables iguales a
0.
Variables no básicas: las restantes.
2. A las variables no básicas se las da el valor cero.
3. Se resuelve el sistema BX = b, donde X es el vector formado con las
variables básicas y se asignan a estas variables la solución obtenida.
Las soluciones de un problema de programación lineal se clasifican en:
- Solución factible: Es un conjunto de n + m variables x
j
, definidas
ordenadamente como un vector X = ( x
1
, x
2
, ... x
j
, ... x
n
, x
n+1
, ..., x
n+m
) que
satisface el conjunto de ecuaciones que constituyen el sistema (2.2) y (2.3)
sus componentes son todas positivas o nulas.
- Solución básica: Solución básica: aquella que resulta de (2.2) al hacer (n-
m) variables iguales a 0. Cada una de las submatrices de A con
determinante distinto de cero (es decir, invertibles) formadas
seleccionando m columnas de A se llama matriz básica o matriz de base.
Si B es una de esas matrices, se dice que es una matriz básica factible si el
Programación Lineal 29


vector resultante de multiplicar su inversa por el vector b tiene todas sus
componentes mayores o iguales que cero.
- Solución factible básica: aquella que es solución básica y cumple (2.3),
esto es, todas las variables son no negativas.
- Solución factible básica no degenerada: aquella que es solución factible
básica que tiene exactamente m variables x
i
positivas, es decir, todas las
variables básicas son positivas.
- Solución factible mínima: aquella que es factible y hace mínimo z.
- No factibles: alguna componente tiene un valor negativo.
Y, a su vez, en:
- Degeneradas: cuando alguna de las variables básicas tiene un valor nulo.
- No degeneradas: cuando todas las variables básicas son estrictamente
positivas.
El número de soluciones básicas de un problema lineal es siempre finito y
como máximo:
|
.
|

\
| +
! !
)! (
n m
m n

donde m es el número de restricciones de igualdad y n el número de variables en
su forma estándar. Éste es el número de posibles combinaciones para elegir m
columnas entre las n columnas existentes. Por supuesto, no siempre todas esas
combinaciones dan lugar a matrices con determinante no nulo.
A continuación se presenta un ejemplo de localización de soluciones básicas
de un programa lineal. Se trata de encontrar las soluciones básicas del problema

Min z=2x
1
+4x
2
+x
3

2x
1
+2x
2
s 6
x
1
+4x
2
-x
3
s12
x
1
, x
2
, x
3
> 0
y clasificarlas en factibles o no factibles, degeneradas o no degeneradas. En
primer lugar, debe formularse el programa en su forma estándar y obtener las
correspondientes matrices:
A b
2 2 0 1 0
1 4 -1 0 1
6
12
Las matrices básicas serán en este caso todas las submatrices inversibles
formadas al seleccionar 2 columnas de A.
Por ejemplo, la primera matriz básica que puede construirse es la formada
por las dos primeras columnas de A:

Investigación Operativa


30
B
2 2
1 4

En este caso, las variables básicas son x
1
y x
2
y los valores que toman en la
correspondiente solución básica se obtienen resolviendo el sistema:

2x
1
+2x
2
= 6
x
1
+4x
2
= 12

La solución de dicho sistema es x
1
=0 y x
2
=3. A las restantes variables, las
no básicas, se las da el valor cero y la solución básica que se obtiene es
X=(0,3,0,0,0). Las variables básicas son no negativas por tanto la solución
básica es factible y es degenerada porque la primera variable básica es nula.
De igual manera se construyen el resto de soluciones básicas, en este caso
todas las submatrices 2x2 son básicas excepto la que forman las columnas
tercera y quinta. En la siguiente tabla se presentan todas las soluciones básicas
obtenidas.

Variables
básicas
Variables no
básicas
Matriz
básica
Solución
básica
Tipo
x
1
y x
2
x
3
, x
4
y x
5

2 2
1 4
(0,3,0,0,0)
Factible
degenerada
x
1
y x
3
x
2
, x
4
y x
5

2 0
1 -1
(3,0,-9,0,0) No factible
x
1
y x
4
x
2
, x
3
y x
5

2 1
1 0
(12,0,0,-18,0) No factible
x
1
y x
5
x
2
, x
3
y x
4

2 0
1 1
(3,0,0,0,9)
Factible no
degenerada
x
2
y x
3
x
1
, x
4
y x
5

2 0
4 -1
(0,3,0,0,0)
Factible
degenerada
x
2
y x
4
x
1
, x
3
y x
5

2 1
4 0
(0,3,0,0,0)
Factible
degenerada
x
2
y x
5
x
1
, x
3
y x
4

2 0
4 1
(0,3,0,0,0)
Factible
degenerada
x
3
y x
4
x
1
, x
2
y x
5

0 1
-1 0
(0,0,-12,6,0) No factible
x
4
y x
5
x
1
, x
2
y x
3

1 0
0 1
(0,0,0,6,12)
Factible no
degenerada

Veamos, mediante un ejemplo el concepto de punto básico degenerado
(menos de m componentes positivas) y no degenerado:
Programación Lineal 31



Max z = x
1
-2x
2
+5x
3
- x
4

st
x
1
+x
2
+x
3
=1
x
1
-x
2
-x
3
+2x
4
=1
x
i
> 0 (i=1, 2, 3, 4)


El punto (1,0,0,0) es básico degenerado
El punto (0,0,1,1) es básico no degenerado
El punto (1/2, 1/4 ,1/4 ,1/2 ) es no básico

Veamos una serie de ejemplos de problemas de programación lineal con dos
variables atendiendo al tipo de solución que presentan:

i) Con solución única

Maximizar la función z = f(x,y) = 4x + 3y
st
30x + 20y s 1800
x + y s 80
x > 0 , y > 0

Tiene por región factible la región sombreada.
Los valores de la función objetivo en cada uno de los vértices son:
f(O) = f(0,0) = 0; f(C)=f(60,0) = 240; f(D) = f(20,60) = 260; f(E) = f(0,80) = 240
La solución es única, y corresponde al vértice para el que la función objetivo
toma el valor máximo. En este caso es el vértice D(20,60).

Investigación Operativa


32
ii) Solución múltiple
Maximizar la función z = f(x,y)= 4x + 2y
st 2x + y s 4 , x - y s 1 , x > 0 , y > 0

Los valores de la función objetivo en cada uno de los vértices
son:
f(O)=f(0,0) = 0, f(A) = f(1,0) = 4
f(B)=f(5/3,2/3) = 8, f(C) = f(0,4) = 8

La función objetivo alcanza el valor máximo en los vértices B y C, por tanto,
en todos los puntos del segmento BC.
Hay infinitas soluciones, solución múltiple, que corresponden a los puntos
del segmento situado entre dos vértices de la región factible. En estos casos,
como ya vimos en el capítulo anterior, la función objetivo es paralela a una de
las restricciones.

iii) Solución no acotada (No existe límite para la función objetivo)
Maximizar la función z = f(x,y) = x + y
st y s 2x , y > x/2
Tiene por región factible la zona coloreada que aparece en
la figura, que es una región no acotada. La función crece
indefinidamente para valores crecientes de x e y. En este
caso no existe un valor extremo para la función objetivo,
por lo que puede decirse que el problema carece de
solución.
Para que suceda esta situación, la región factible debe estar no acotada.

iv) Cuando no existe el conjunto de soluciones que cumplen las restricciones
Maximizar la función z = f(x,y) = 3x + 8y
st x + y 6 , x + y 2 , x 0 , y 0
No existe la región factible, ya que las zonas coloreadas que
aparecen en la figura son únicamente soluciones de alguna
de las inecuaciones .Por tanto, el conjunto de soluciones del
sistema de desigualdades no determina ninguna región
factible. Este tipo de problemas carece de solución.

2.5. Resolución de un problema de programación lineal
mediante el método gráfico
Programación Lineal 33


Lo que se pretende con el método gráfico es dar una visión geométrica del
problema que queremos resolver. Es evidente que su precisión no es la deseada,
pero nos puede dar una aproximación a lo que queremos resolver.
El procedimiento a seguir es:
1. Dibuje la gráfica de cada restricción sobre el mismo cuadrante no
negativo.
2. Convierta las desigualdades en igualdades y represente la rectas que
representan estas ecuaciones.
3. Escoja cualquier punto de ensayo que no pertenezca a la recta.
4. Evalúe el primer miembro de la expresión. Sustituya el punto de ensayo en
el primer miembro de la desigualdad y obtenga el valor numérico.
5. Determine si el punto de ensayo satisface la desigualdad.
6. Si el punto de ensayo satisface la desigualdad original, entonces todos los
puntos que estén del mismo lado que el punto de ensayo satisfacen la
desigualdad, en caso contrario será un punto no factible.
7. Localice la región de soluciones factibles (Región Factible).
8. Dibuje una recta arbitraria de la función objetivo, por ejemplo pasando por
el origen, para obtener la pendiente de la función objetivo.
9. Determine la dirección ascendente o descendente de esta recta.
10. Dada la pendiente de la función objetivo y teniendo en cuenta si es un
problema de maximizar o minimizar, determine el vértice del conjunto
factible que esté sobre la recta que representa la función objetivo.
11. Los valores de las variables de decisión, en este vértice, dan la solución al
problema.
El valor óptimo de la función objetivo se obtiene sustituyendo los valores
óptimos de las variables de decisión en la función objetivo.
Ejercicio 3. Resolver gráficamente el problema siguiente:
Un fabricante está tratando de decidir las cantidades de producción para dos
artículos: mesas y sillas. Se cuenta con 96 unidades de material y con 72 horas
de mano de obra. Cada mesa requiere 12 unidades de material y 6 horas de mano
de obra. Por otra parte, las sillas utilizan 8 unidades de material cada una y
requieren 12 horas de mano de obra por silla. El margen de beneficio es el
mismo para las mesas que para las sillas: 5 euros por unidad. El fabricante
prometió construir por lo menos dos mesas.
Solución: El primer paso para resolver el problema es expresarlo en términos
matemáticos en el formato general de PL.
Función objetivo:
Investigación Operativa


34
Maximizar z = 5x
1
+ 5x
2
en donde:
x
1
= número de mesas producidas
x
2
= número de sillas producidas
Restricciones del problema (st):
12x
1
+ 8x
2
s 96 (restricción de material)
6x
1
+ 12x
2
s 72 (restricción de mano de obra)
x
1
> 2 (restricción de promesa del fabricante)
x
1
> 0, x
2
> 0 (restricciones de no negatividad)

Poniendo todo junto el modelo, se tiene:

Maximizar z = 5x
1
+ 5x
2

st
12x
1
+ 8x
2
s 96
6x
1
+ 12x
2
s 72
x
1
> 2
x
1
> 0, x
2
> 0
La gráfica asociada al problema es:

Cualquier solución que esté en la frontera o dentro del área sombreada
cumplirá con todas las restricciones. Ahora se utilizará la función objetivo para
seleccionar la solución óptima.
Programación Lineal 35


Representando por líneas discontinuas la función objetivo moviéndose hacia
el valor óptimo (máximo) del problema, tenemos:

El valor óptimo estará sobre la línea recta que representa a la función
objetivo, más lejana al origen, pero que todavía toque la región factible. Esto se
muestra en la siguiente figura:

Con el punto óptimo localizado gráficamente, la única tarea que queda es
encontrar las coordenadas del punto. Nótese que el punto óptimo está en la
intersección de las líneas de restricción para materiales y horas de mano de obra.
Las coordenadas de este punto se pueden encontrar resolviendo el sistema de
ecuaciones que forman estas dos restricciones. Las coordenadas de este punto
Investigación Operativa


36
resultan ser (6, 3). La sustitución de este punto en la función objetivo da la
ganancia máxima: z = 5(6) + 5(3) = 45 euros.
En un problema de Programación Lineal con dos variables, si la región
factible existe y es acotada, el valor óptimo de la función objetivo se alcanza
en uno de los vértices del polígono que limita la región, o a lo largo de uno de
los lados. Si la región factible no es acotada, la función objetivo no alcanza
necesariamente un valor óptimo concreto, pero si lo hace, éste se encuentra en
uno de los vértices de la región.
Si la región es acotada lo único que hay que hacer es calcular el valor de la
función objetivo en todos y cada uno de los vértices del polígono, y en aquel en
el que el valor de la función sea mayor (o menor) habremos alcanzado el punto
óptimo buscado. Si se da el caso de que los valores correspondientes a dos
vértices coinciden, éstos serán adyacentes, de modo que a lo largo de ese lado
del polígono se alcanza el mismo valor de la función objetivo, que es
precisamente el valor óptimo. En este caso, las líneas de nivel tienen la misma
pendiente que la recta que contiene a ese lado del polígono, es decir, son
paralelas.



2.6. Propiedades de las soluciones

Las soluciones de un problema de programación lineal tienen diversas
propiedades, alguna de las cuales vamos ver.
Designemos por K el conjunto de las soluciones factibles de un problema de
programación lineal; K es una región de R
n
determinada por la intersección del
conjunto finito de restricciones lineales (2.2) y (2.3), por lo que K es:
i) K = C, no tiene solución el problema de programación lineal.
ii) K = C, cuando K tenga un número finito de vértices que se puedan
alcanzar todos (poliedro convexo). Existe solución de valor finito de la
función objetivo.
iii) K = C, cuando K tenga un número finito de vértices que no se puedan
alcanzar todos (región convexa ilimitada). El problema tiene solución,
pero el máximo podría ser ilimitado.

Si K es un poliedro convexo, entonces K es la envolvente convexa de los
puntos extremos de K. Toda solución factible podrá representarse como una
combinación convexa de las soluciones factibles extremas de K (salvo el caso en
que el poliedro sea ilimitado).

Proposición 2.1. El conjunto de soluciones factibles de un problema de
programación lineal es un conjunto convexo.
Demostración
Programación Lineal 37


Sean X
1
y X
2
soluciones factibles, entonces A X
1
= b, A X
2
= b, X
1
> 0, X
2
> 0.
Si formamos un vector X que sea combinación lineal de éstos dos:

X = o X
1
+ (1-o) X
2
, AX = o AX
1
+ (1-o) A X
2
= o b + (1-o) b =b

por lo que X es también una solución factible.

Proposición 2.2. Si K es un poliedro convexo, entonces la función objetivo z
dada por (2.1) alcanza su mínimo en un vértice de K; además, si este mínimo se
alcanza en varios puntos, también se alcanza en cualquier combinación lineal
convexa de los mismos.

Demostración
Sean X
1
, X
2
,…, X
p
los vértices de K y sea X
0
una solución factible mínima,
esto significa que c
T
X
0
s c
T
X para cada XeK.

X1
X7
X2

X4
X5
X6
X3
K

Se pueden dar los casos siguientes:

i) Si X
0
es un vértice de K, ya estaría demostrado.
ii) Si X
0
no es un vértice de K, entonces X
0
se podrá poner como una
combinación lineal convexa de ellos:

X
0
=
¯
o
i
X
i
; o
i
> 0 ; o
i
= 1
=
p
i 1
¯
=
p
i 1

Sustituyendo:
Min z = m= c
T
X
0
= c
T
( o
1
X
1
+ o
2
X
2
+…+o
p
X
p
)

Investigación Operativa


38
Supongamos que c
T
X
1
= c
T
X
i

i
min

m > c
T
( o
1
X
1
+ o
2
X
1
+…+o
p
X
1
) = c
T
X
1
(o
1
+ o
2
+…+o
p
) = c
T
X
1
> m

por consiguiente c
T
X
1
= m, es decir, que existe un vértice de K en el que la
función objetivo z= c
T
X alcanza su valor mínimo.
Para probar la segunda parte de la propiedad supongamos que z alcanza su
valor mínimo en X
1
, X
2
,…, X
q
y que X es una combinación lineal convexa de
ellos:
X =
¯
o
i
X
i
; o
i
> 0 , o
i
= 1
=
q
1 i
¯
=
q
1 i

c
T
X = c
T
( o
1
X
1
+ o
2
X
2
+…+o
q
X
q
) = o
1
c
T
X
1
+ o
2
c
T
X
2
+…+o
q
c
T
X
q
=
= (mo
1
+ mo
2
+…+mo
q
) = m (o
1
+ o
2
+…+o
q
) = m

con lo cual la proposición queda demostrada.

Proposición 2.3. Si tenemos un conjunto de k vectores A
1
, A
2
,…, A
k
, que
sean linealmente independientes y de forma que:

x
1
A
1
+ x
2
A
2
+…+ x
k
A
k
= b

con las x
i
> 0, entonces, el punto X = (x
1
, x
2
,…, x
k
, 0,…, 0)
T
es un vértice del
conjunto convexo K de soluciones factibles.

Demostración
Supongamos que X no fuera vértice, entonces podría expresarse como
combinación lineal convexa de dos puntos distintos de K:

X = o X
1
+ (1-o) X
2
, oe[0, 1], X
1
, X
2
eK

Puesto que las coordenadas de las soluciones factibles son no negativas y
o>0 deberá ocurrir que las n-k coordenadas últimas de X
1
y X
2
fueran iguales a
cero:
X
1
= (x
11
, x
12
,…, x
1k
, 0,…, 0)
T
X
2
= (x
21
, x
22
,…, x
2k
, 0,…, 0)
T


con X
1
= X
2
. Además, por ser soluciones factibles, se cumple que AX
1
=b y
AX
2
=b, por lo que podemos escribir:

x
11
A
1
+ x
12
A
2
+…+ x
1k
A
k
= b
x
21
A
1
+ x
22
A
2
+…+ x
2k
A
k
= b
Programación Lineal 39



Restando las expresiones anteriores obtenemos:

(x
11
- x
21
) A
1
+ (x
12
- x
22
) A
2
+…+ (x
1k
- x
2k
) A
k
= 0

y por ser los vectores A
1
, A
2
,…, A
k
linealmente independiente llegamos a la
conclusión de que:

x
11
= x
21

x
12
= x
22


x
1k
= x
2k


es decir, que X
1
= X
2
, lo que contradice el hecho de haber supuesto X
1
= X
2
, por
lo que necesariamente X debe ser un vértice de K.

Proposición 2.4. Si tenemos un vector X = (x
1
, x
2
,…, x
n
)
T
es un vértice de K,
entonces los vectores A
i
asociados con las coordenadas x
i
positivas forman un
sistema linealmente independiente, de lo que se sigue que, a lo sumo, m de estas
coordenadas x
i
son positivas.
Demostración:
Supongamos, para simplificar, que las k primeras coordenadas son las no
nulas, entonces :

x
1
A
1
+ x
2
A
2
+…+ x
k
A
k
= b

Si los vectores A
1
, A
2
,…, A
k
son linealmente dependientes, podremos
encontrar una combinación lineal de los mismos igual a cero con algún
coeficiente no nulo:

ì
1
A
1
+ ì
2
A
2
+…+ ì
k
A
k
= 0

Así tenemos:
x
i
A
i
= b
¯
=
k
1 i
c
¯
ì
i
A
i
= 0
=
k
1 i

donde c > 0. Si los sumamos y restamos:


Investigación Operativa


40
x
i
A
i
+ c ì
i
A
i
= b
¯
=
k
1 i
¯
=
k
1 i
x
i
A
i
- c ì
i
A
i
= b
¯
=
k
1 i
¯
=
k
1 i

Es decir, desarrollando las expresiones anteriores:

(x
1
+ c ì
1
) A
1
+ (x
2
+ c ì
2
) A
2
+…+ (x
k
+ c ì
k
) A
k
= b
(x
1
- c ì
1
) A
1
+ (x
2
- c ì
2
) A
2
+…+ (x
k
- c ì
k
) A
k
= b

De manera que tenemos dos soluciones distintas del sistema de ecuaciones:

X
1
= (x
1
+ c ì
1
, x
2
+ c ì
2
,…, x
k
+ c ì
k
, 0,… 0)
T

X
2
= (x
1
- c ì
1
, x
2
- c ì
2
,…, x
k
- c ì
k
, 0,… 0)
T

Sumando X
1
y X
2
, resulta:

X
1
+ X
2
= ( 2x
1
, 2x
2
,…, 2x
k
, 0,… 0)
T
= 2X

Despejando X= ½ (X
1
+ X
2
), lo cual contradice el hecho de que X sea vértice.
De ahí que, no puede hacerse la hipótesis de que los vectores A
1
, A
2
,…, A
k
sean
linealmente dependientes, por tanto son linealmente independientes y, como
estos vectores son m-dimensionales no podremos tener más de m linealmente
independientes, de ahí que, como máximo, m de las x
i
serán positivas.

Proposición 2.5. A cada punto extremo del poliedro convexo se encuentra
asociado un conjunto de m vectores linealmente independientes del conjunto
dado .
n
A A A , , ,
2 1


Demostración
La Proposición 2.4. prueba que existen k m s vectores linealmente
independientes. Para k =m la propiedad 2.5 queda comprobada.
Supongamos que y que podemos encontrar solamente
vectores adicionales tales que el conjunto , para
m k<
r k
A A , ,
1

+
m
r k k
A A A A , , , , ,
1 1
 
+
r< es
linealmente independiente. Los n-r vectores restantes dependen de
. Esto contradice la suposición de que tenemos siempre un
conjunto de m vectores linealmente independientes asociados con
cada punto extremo.
r
A A A , , ,
2 1

m
A A , ,
1




Programación Lineal 41


Teorema 2.1. (Caracterización de los vértices de K)
El vector X = (x
1
, x
2
,…, x
n
)
T
, de coordenadas no negativas, es un vértice de
K (conjunto convexo de soluciones factibles), si x
1
A
1
+ x
2
A
2
+…+ x
n
A
n
= b y
las x
i
> 0 son coeficientes de los vectores A
i
linealmente independientes.
Demostración
La demostración es inmediata aplicando las proposiciones 3 y 4.

Resumiendo lo anteriormente expuesto mediante propiedades y teoremas
tenemos:
Si existe solución al problema de programación lineal, entonces hay un
vértice de K (conjunto de soluciones factibles) en el que la función objetivo
alcanza su mínimo ( o su máximo). Max z = Min (-z)
Cada solución factible básica corresponde a un vértice de K.
A cada vértice de K se puede asociar una base de dimensión m del conjunto
de vectores A
1
, A
2
,…, A
n
.
El máximo número de vértices que puede tener el convexo K es C
n, m
=
|
| .
.
|

\
|
m
n
Aplicando un algoritmo llamado método del Simplex en un número finito
de pasos (en general entre m y 2m) se llega a la solución factible óptima.

2.7. Algoritmo del Simplex
El alumno debe aprender la utilización del método del simplex que
proporciona la solución de un problema de programación lineal, las diversas
circunstancias de su preparación antes de aplicar el algoritmo y los casos
especiales identificables en la tabla solución (última tabla).
Sea el problema de programación lineal:

Min z = c
T
X
st
AX = b
X > 0

Supongamos que tenemos una solución factible básica, es decir, se conoce
una solución de punto extremo en términos de m vectores del conjunto
original de n vectores. Podemos hacer que este conjunto de m vectores
linealmente independientes sean los primeros m, es decir, que las variables no
nulas sean las n-m finales X = (x
1
, x
2
,…, x
m
, 0, ..., 0)
T
que verifica:
j
A

Investigación Operativa


42

j j m m
x b A x A x A x ¬ > = + + + , 0 ,
2 2 1 1
 (2.1)

Como los vectores forman una base en el espacio m-dimensional, R
m
,
podemos expresar cada uno de los n vectores dados como combinación lineal de
los vectores de esa base:
m
A
m
i 1
¯
=
n j A A
j i ij
, , 2 , 1 ,  = = o
y si escribimos todas las ecuaciones:


(2.2)
¦
¦
¹
¦
¦
´
¦
= + + +
= + + +
= + + +
n m mn n n
m m
m m
A A A A
A A A A
A A A A
o o o
o o o
o o o



2 2 1 1
2 2 2 22 1 12
1 1 2 21 1 11
.......... .......... .......... .......... ..........

y la función objetivo z tomará en el vértice X el valor:

z = c
1
x
1
+ c
2
x
2
+ … + c
m
x
m
(2.3)



Observando en (2.1) que, si A
1
, A
2
,…, A
m
es la base canónica de los
vectores unitarios entonces x
1
=b
1
, x
2
=b
2
, ..., x
m
=b
m
.
Tomemos un j de modo que A
j
no esté en la base dada, pues bien si a (2.1)
le restamos (2.2) multiplicada por un escalar u
j
, resulta:

(x
1
- u
j
o
1 j
)A
1
+ (x
2
- u
j
o
2 j
)A
2
+ … + (x
m
- u
j
o
m j
)A
m
+ u
j
A
j
= b (2.4)

con lo cual, si elegimos u
j
> 0, de modo que x
i
- u
j
o
i j
> 0 para i=1, 2, ..., m
tendremos que el vector X’ = (x’
1
, x’
2
,…, x’
n
)
T
es una solución factible, donde:

x’
i
= x
i
- u
j
o
i j
> 0, i=1, 2, …, m (2.5)
x’
i
= u
j
> 0, i=j
x’
i
= 0, en los demás casos

La función objetivo en X’ = (x’
1
, x’
2
,…, x’
n
)
T
, solución factible, toma el
valor

z’ = c
1
x
1
’ + c
2
x
2
’+ … + c
m
x’
m
+ u
j
c
j
=
= c
1
(x
1
- u
j
o
1 j
)

+ c
2
(x
2
- u
j
o
2 j
) + … + c
m
(x
m
- u
j
o
m j
) + u
j
c
j
=
= z - u
j
(z
j
-c
j
) (2.6)

donde z es el valor de la función objetivo en X, y z
j
viene dada por la expresión:

Programación Lineal 43


z
j
= c
1
o
1 j
+ c
2
o
2 j
+ … + c
m
o
m j
(2.7)

así pues, en (2.6) vemos que debemos seleccionar u
j
y j de forma que
verificándose (2.5) se tenga que u
j
(z
j
-c
j
) sea positivo y máximo, con lo cual z’<z,
z’= z- u
j
(z
j
-c
j
). El procedimiento consiste, por tanto, en calcular las cantidades
(z
j
-c
j
) > 0 observando las relaciones (2.5), éstas corresponden a las variables
cuyos vectores asociados, si los incluimos en la base, mejoran el valor de la
función objetivo. Estudiaremos dos casos:

i) o
i j
> 0
ii) o
i j
s 0

Caso i): u
j
> 0, o
i j
> 0

x’
i
= x
i
- u
j
o
i j
> 0, u
j
s
ij
i
x
o
, u
j
=
¦
)
¦
`
¹
¦
¹
¦
´
¦
> 0 / min
ij
ij
i
i
x
o
o
(2.8)

y esto para cada j para el que se cumpla (z
j
-c
j
) > 0, a continuación calcularemos
los productos u
j
(z
j
-c
j
) y nos quedaremos con el índice j que da el producto
mayor, supongamos que éste es j=m+1, ello significará que seleccionamos el
vector A
m+1
, por otra parte, si el mínimo en (2.8) se alcanza, por ejemplo, para
i=1, es decir:

u
m+1
=
¦
)
¦
`
¹
¦
¹
¦
´
¦
> 0 / min
ij
ij
i
i
x
o
o
=
1 , 1
1
+ m
x
o
(2.9)

ello significará que x
1
’ = x
1
- u
m+1
o
1, m+1
= x
1
-
1 , 1
1
+ m
x
o
o
1, m+1
= 0, por lo que la
nueva solución factible X’ = (x’
1
, x’
2
,…, x’
n
)
T
= (0, x
2
’, …, x
m
’, u
m+1
, 0, …, 0)
T

será un vértice de K (conjunto de soluciones factibles) si los vectores A
2
, A
3
,…,
A
m+1
son linealmente independientes (Vea el teorema de caracterización de los
vértices de K).
Para probar que los vectores A
2
, A
3
,…, A
m+1
son linealmente independientes,
supongamos que fueran linealmente dependientes, esto quiere decir que existirá
ì
i
tal que
ì
2
A
2
+ ì
3j
A
3
+ … + ì
m
A
m
+ ì
m+1
A
m+1
= 0 (2.10)

para algún ì
i
distinto de cero y, puesto que los vectores A
2
, A
3
,…, A
m
son
linealmente independientes, deberá ser ì
m+1
=0. Por tanto, despejando A
m+1
de
(2.10), obtenemos:
Investigación Operativa


44
A
m+1
= -
1
2
+ m
ì
ì
A
2
-
1
3
+ m
ì
ì
A
3
-…-
1 + m
m
ì
ì
A
m


haciendo ¸
i
=-
1 m
i
+
ì
ì
(i=2, . .., m)
A
m+1
= ¸
2
A
2
+ ¸
3
A
3
+…+ ¸
m
A
m
(2.11)

Restando (2.11) de (2.2), con j=m+1, encontramos que

A
m+1
= o
1, m+1
A
1
+ o
2, m+1
A
2
+…+ o
m, m+1
A
m


0 = o
1, m+1
A
1
+ (o
2, m+1
- ¸
2
) A
2
+…+ (o
m, m+1
- ¸
m
)A
m


por lo que, al ser A
1
, A
2
,…, A
m
linealmente independientes obliga a que o
1,m+1
=0
y, sin embargo se supuso positivo (vea (2.9)).
En consecuencia, A
2
, A
2
,…, A
m+1
son linealmente independientes, por lo que
X’ es un vértice de K y además vuelve a ser una solución factible básica puesto
que tiene n-m coordenadas nulas y el resto son no negativas.
El proceso se volvería a repetir tomando X’ como solución factible básica
inicial y se iría repitiendo el proceso hasta encontrar z
j
-c
j
s 0 para todos los
valores de j=1, 2, ..., n, en cuyo caso ya no se podría disminuir la función
objetivo y, por tanto, se habría alcanzado el mínimo con el vector X que se
tuviera en esa etapa.

Caso ii): u
j
> 0, o
i j
s 0

x’
i
= x
i
- u
j
o
i j

z’ = z- u
j
(z
j
- c
j
) , con (z
j
- c
j
) >0

Como se puede elegir un u
j
tan grande como quiera, ocurrirá que z’ tiende a
menos infinito, es decir, no existe solución.
Cualquier problema de programa lineal puede reducirse a la búsqueda de
mínimos en un conjunto finito de puntos (las soluciones básicas factibles). Por
supuesto encontrar todas las soluciones básicas de un programa lineal requiere
de grandes esfuerzos de cálculo, únicamente resulta sencillo en problemas con
pocas variables de decisión. El más famoso de los métodos de resolución de
programas lineales (el método Simplex) está basado en la localización de una
solución básica inicial y el paso de una a otra hasta encontrar la óptima.
Programación Lineal 45



Dentro de los aspectos computacionales, la magnitud de los problemas
lineales que aparecen en la mayoría de las situaciones reales hace impensable su
tratamiento mediante el método simplex de forma manual. En tales situaciones
debe recurrirse al uso de los computadores electrónicos. Sin embargo, el método
Simplex no resulta muy económico desde un punto de vista computacional, ya
que se almacenan y calculan muchos números que no son estrictamente
necesarios. Por ejemplo, en las tablas del simplex aparecen gran número de
ceros; para un humano no supone ningún problema reconocer los ceros y darse
cuenta que al multiplicar un número por cero resulta cero, o que sumar cero a un
número no altera el resultado. Sin embargo, un computador no reconoce esas
situaciones y pierde tiempo realizando operaciones que realmente no son
necesarias.

Investigación Operativa


46
Teorema 2.2. Si en algún paso (puede ser el primero) del método simplex se
verifica que (z
j
- c
j
) s 0, ¬j (j=1, 2, ..., n), entonces, el último vértice obtenido
es la solución óptima.
Demostración
Sea X = (x
1
, x
2
,…, x
n
)
T
un punto extremo en el cual la función objetivo vale
z
0
y para el que se verifica que (z
j
- c
j
) s 0, ¬j (j=1, 2, ..., n).
Hemos de probar que para cualquier otra solución (z
j
- c
j
) s 0, ¬j (j=1, 2, ...,
n)

Y= (y
1
, y
2
,…, y
n
)
T
, con y
i
> 0

y valor de la función objetivo: z = c
1
y
1
+ c
2
y
2
+ … + c
n
y
n
(2.12)
se verifica z
0
s z.

Como (z
j
- c
j
) s 0 ¬ z
j
s c
j
y sustituyendo en la expresión (2.12) cada c
j
por
z
j
tenemos:
z
1
y
1
+ z
2
y
2
+ … + z
n
y
n
s z (2.13)

Sustituyendo en (2.13) cada z
j
(j=1, 2,..., n) por su valor
z
j
= c
1
o
1 j
+ c
2
o
2 j
+ … + c
m
o
m j
= c
i
o
i j

¯
=
m
1 i
tenemos:
( c
i
o
i 1
) y
1
+ (
¯
c
i
o
i 2
) y
2
+ … + (
¯
c
i
o
i n
) y
n
s z
¯
=
m
1 i =
m
1 i =
m
1 i
Agrupando términos en c
i
(i=1, 2, ..., m) se tiene:
c
1
( o
1 j
y
j
) + c
2
(
¯
o
2 j
y
j
) + … +c
m
( o
mj
y
j
) s z (2.14)
¯
=
n
1 j =
n
1 j
¯
=
n
1 j
Puesto que Y es una solución factible

Programación Lineal 47


y
1
A
1
+ y
2
A
2
+ … + y
n
A
n
= b (2.15)

Sustituyendo A
j
(j=1, 2, ..., n) por su valor:

A
j
= o
1 j
A
1
+ o
2 j
A
2
+ … + o
m j
A
m
= o
i j
A
i

¯
=
m
1 i
Sustituyendo este valor en (2.15) para cada uno de los j:
y
1
(
¯
o
i 1
A
i
) + y
2
(
¯
o
i 2
A
i
) + … + y
n
( o
i n
A
i
) = b
=
m
1 i =
m
1 i
¯
=
m
1 i

Ahora agrupamos términos en A
i
:
(
¯
o
1 j
y
j
)A
1
+ ( o
2 j
y
j
)A
2
+ … + (
¯
o
m j
y
j
)

A
m
= b
=
n
1 j
¯
=
n
1 j =
n
1 j
Como X es un punto extremo
x
1
A
1
+ x
2
A
2
+ … + x
m
A
m
= b

y por ser los vectores A
1
, A
2
, ..,

A
m
linealmente independientes, b se escribe de
forma única, por lo cual:
x
1
=
¯
o
1 j
y
j
; x
2
=
¯
o
2 j
y
j
; …; x
m
=
¯
o
m j
y
j

=
n
1 j =
n
1 j =
n
1 j
Sustituyendo en (2.14) se tiene:
c
1
x
1
+ c
2
x
2
+ … + c
m
x
m
s z

es decir z
0
s z .

Ejercicio 1. Resuelva mediante el Método Simplex el problema de
programación lineal siguiente:

Min z = –5x
1
+2x
2
-3x
3

st
2x
1
+2x
2
-x
3
s4
Investigación Operativa


48
3x
1
- x
2
+x
3
s3
2x
1
+x
2
+3x
3
s5
x
i
> 0 (i=1, 2, 3)

Pasando el problema a forma estándar añadiendo variables artificiales, de
manera que tengamos una base canónica para comenzar el método del simplex:

Min z = - 5x
1
+2x
2
-3x
3
+0x
4
+0x
5
+0x
6

st
2x
1
+2x
2
-x
3
+x
4
= 4
3x
1
- x
2
+x
3
+x
5
= 3
2x
1
+x
2
+3x

+x
6
= 5
x
i
> 0 (i=1, 2, 3)

Primera tabla
Se lleva a la tabla los datos del problema y se comienza a operar de acuerdo
con el algoritmo del simplex:

c
j
-5 2 -3 0 0 0
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
u
1
u
3

A
4
0 4 2 2 -1 1 0 0 2 --
A
5
0 3 3 -1 1 0 1 0 1 3
A
6
0 5 2 1 3 0 0 1 5/2 5/3
z, z
j
, u
j
0 0 0 0 0 0 0 1 5/3
z
j
-c
j
5 -2 3 0 0 0
u
j
(z
j
-c
j
) 5 - 5 - - -

El vértice inicial de partida es X=(0, 0, 0, 4, 3, 5)
T
. Para ver que vector sale
de la base y cuál entra operamos de la forma siguiente:
i) Calculamos z
j
= c
1
o
1 j
+ c
2
o
2 j
+ … + c
m
o
m j
.

ii) Calculamos (z
j
-c
j
).
iii) Para los valores (z
j
-c
j
) >0 calculamos u
j
=
¦
)
¦
`
¹
¦
¹
¦
´
¦
> = 0 / min
ij
ij
i
ij
i
i
b x
o
o o
.
iv) Buscando que u
j
(z
j
-c
j
) sea positivo y máximo.
v) El valor de i que hace
¦
)
¦
`
¹
¦
¹
¦
´
¦
> 0 / min
ij
ij
i
i
x
o
o
nos proporciona el vector
i-ésimo que sale de la base y, el valor de j que hace u
j
(z
j
- c
j
) nos
proporciona el vector j-ésimo que entra en la base.
j
max

Por ejemplo, para j=1, tenemos, z
1
= 0
.
2+0
.
3+0
.
2=0, z
1
- c
1
=0 - (-5)=5
Programación Lineal 49



Realizadas las operaciones correspondientes, tenemos:
- El vector que entra en la base es el A
1
( u
1
(z
1
–c
1
)=1
.
5=5).
1
max
= j
- El vector que sale de la base es el A
5
(u
1
=
)
`
¹
¹
´
¦
= =
=
3
3
min
21
2
21
2
2
o o
b x
i
=1).

El vector entrante en la base formará parte de la base canónica de manera
que el elemento pivote, en nuestro caso el 3, que se genera en el cruce del vector
que entra y el vector que sale, deberá valer uno y el resto cero.
Este proceso se repite de forma iterativa hasta que se verifique (z
j
- c
j
) s 0,
¬j (j=1, 2, ..., n).
El vector A
1
que entra en la base se convierte en un elemento de la base
canónica. El elemento pivote (que ha de ser un 1) se forma en el cruce del vector
que entra con el que sale (A
1
/A
5
). Veamos como se obtiene :
|
|
|
|
|
.
|

\
|
0
1
0
1
A

Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6

A
5
3 3 -1 1 0 1 0
A
1
=A
5
/3 1 1 -1/3 1/3 0 1/3 0

A
4
4 2 2 -1 1 0 0
2·A
1
2 2 -2/3 2/3 0 2/3 0
A
4
-2·A
1
2 0 8/3 -5/3 1 -2/3 0

A
6
5 2 1 3 0 0 1
2·A
1
2 2 -2/3 2/3 0 2/3 0
A
6
-2·A
1
3 0 5/3 7/3 0 -2/3 1



Llevando lo anterior a la tabla, tenemos:

c
j
-5 2 -3 0 0 0
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6

A
4
2 0 8/3 -5/3 1 -2/3 0
A
1
1 1 -1/3 1/3 0 1/3 0
A
6
3 0 5/3 7/3 0 -2/3 1


Investigación Operativa


50


Segunda tabla

c
j
-5 2 -3 0 0 0
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
u
3

A
4
0 2 0 8/3 -5/3 1 -2/3 0 -
A
1
-5 1 1 -1/3 1/3 0 1/3 0 3
A
6
0 3 0 5/3 7/3 0 -2/3 1 9/7
z, z
j
, u
j
-5 -5 5/3 -5/3 0 -5/3 0 9/7
z
j
-c
j
0 -1/3 4/3 0 -5/3 0
u
j
(z
j
-c
j
) - 12/7 - - -

Entra A
3
y sale A
6
.

Tercera tabla
c
j
-5 2 -3 0 0 0
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6

A
4
0 29/7=4.1448 0 22/7 0 1 -8/7 5/7
A
1
-5 4/7=0.5714 1 -4/7 0 0 3/7 -1/7
A
3
-3 9/7=1.2857 0 5/7 1 0 -2/7 3/7
z, z
j
, u
j
-47/7=-6.7142 -5 5/7 -3 0 -9/7 -4/7
z
j
-c
j
0 -9/7 0 0 -9/7 -4/7
u
j
(z
j
-c
j
) - - - - -

Observando la tabla tenemos (z
j
- c
j
) s 0, ¬j (j=1, 2, ..., n), por lo que hemos
llegado a la etapa final. Para buscar la solución dentro de la tabla miramos la
columna b y encontramos:

x
1
=4/7=0.5714, x
2
=0 (no aparece), x
3
=9/7=1.2857, z = -6.7142

El vértice final obtenido es X=(4/7, 0, 9/7, 29/7, 0, 0)
T
. La solución mediante
la matriz inversa asociada a la tabla del simplex, B
-1
la podemos encontrar
directamente en la última tabla del simplex observando los vectores
correspondientes a los de la base inicial, en este caso a los vectores A
4
, A
5
y A
6

de la tabla:

=
÷1
B {A
4
, A
5
, A
6
}=
|
|
|
.
|

\
|
÷
÷
÷
7 / 3 7 / 2 0
7 / 1 7 / 3 0
7 / 5 7 / 8 1


Programación Lineal 51


= =
÷
o
X b B
1
=
|
|
|
.
|

\
|
=
|
|
|
.
|

\
|
|
|
|
.
|

\
|
÷
÷
÷
7 / 9
7 / 4
7 / 29
5
3
4
7 / 3 7 / 2 0
7 / 1 7 / 3 0
7 / 5 7 / 8 1


y la matriz B se obtiene de la primera tabla mirando la base que figura en la
última tabla del simplex, A
4
, A
1
y A
3
:

B {A
4
, A
1
, A
3
}=
|
|
|
.
|

\
| ÷
3 2 0
1 3 0
1 2 1

Si resolvemos el ejercicio anterior con el programa LINDO, tenemos:

Min -5x1+2x2-3x3
st
2x1+2x2-x3 <= 4
3x1- x2+x3 <= 3
2x1+x2+3x3 <=5

LP OPTIMUM FOUND AT STEP 2

OBJECTIVE FUNCTION VALUE

1) -6.714286

VARIABLE VALUE REDUCED COST
X1 0.571429 0.000000
X2 0.000000 1.285714
X3 1.285714 0.000000


ROW SLACK OR SURPLUS DUAL PRICES
2) 4.142857 0.000000
3) 0.000000 1.285714
4) 0.000000 0.571429

THE TABLEAU

ROW (BASIS) X1(A ) X2(A ) X3(A ) SLK 2(A ) SLK 3(A )
1 2 3 4 5
1 ART 0.000 1.286 0.000 0.000 1.286
2 SLK 2(A
4
) 0.000 3.857 0.000 1.000 -1.143
3 X1(A
1
) 1.000 -0.571 0.000 0.000 0.429
4 X3(A
3
) 0.000 0.714 1.000 0.000 -0.286


ROW SLK 4(A
6
)
1 0.571 6.714
2 0.714 4.143
3 -0.143 0.571
Investigación Operativa


52
=
÷1
4 0.429 1.286

Operando de la misma forma para obtener las matrices:

{A
4
, A
5
, A
6
}=
|
|
|
.
|

\
|
÷
÷
÷
7 / 3 7 / 2 0
7 / 1 7 / 3 0
7 / 5 7 / 8 1
B

= B {A
4
, A
1
, A
3
}=
|
|
|
.
|

\
| ÷
3 2 0
1 3 0
1 2 1


Ejercicio 2. Considere el problema siguiente:

Max z= 5x
1
+2x
2
+3x
3

st
x
1
+5x
2
+2x
3
sb
1

x
1
-5x
2
-6x
3
s b
2

x
i
> 0 (i=1, 2, 3)

Para ciertos valores de los recursos, la solución es:

c
j
-5 -2 c
3
0 0
Base c
B
b A
1
A
2
A
3
A
4
A
5

A
1
-5 30 1 b 2 1 0
A
5
0 10 0 c -8 -1 1
z
j
-c
j
-150 0 a -7 d e


Calcule:
a) Los recursos.
b) Los valores de: a, b, c, d, e, c
3
.

Solución:

Tabla 1
c
j
-5 -2 -3 0 0
Base c
B
b A
1
A
2
A
3
A
4
A
5

A
4
0 b
1
1 5 2 1 0
A
5
0 b
2
1 -5 -6 0 1
z, z
j
-c
j
0 5 2 3 0 0
Programación Lineal 53




Tabla 2
Por la información que nos proporciona la tabla del enunciado, sale de la
base A
4
y entra A
1


c
j
-5 -2 -3 0 0
Base C
B
b A
1
A
2
A
3
A
4
A
5

A
1
-5 b
1
1 5 2 1 0
A
5
0 b
2
- b
1
0 -10 -8 -1 1
z, z
j
-c
j
-150 0 -23 -7 -5 0


Identificando, tenemos:
a) b
1
= 30, b
2
- b
1
=10, b
2
= 40,
b) a= -23, b = 5, c= -10, d= -5, e= 0, c
3
= -3


2.8. Determinación de una base inicial
Hemos supuesto en el método del simplex que partíamos de una primera
solución extrema a la cual teníamos asociada una base canónica. Veamos como
siempre es posible conseguir esto.
Si al introducir las variables de holgura necesarias para escribir el problema
en forma estándar ya tenemos la base canónica, podremos aplicar directamente
el método del simplex.
En la mayoría de los casos la situación anterior no se producirá, por lo que
tendremos que recurrir a métodos que nos conduzcan a él. Para conseguir partir
de una base canónica, para iniciar el método simplex, necesitaremos de lo que se
conoce como variables artificiales. Éstas construyen un problema artificial más
conveniente desde el punto de vista del método simplex.
Es oportuno resaltar la diferencia entre variables de holgura y variables
artificiales. Las primeras se introducen para convertir desigualdades en
igualdades, mientras que las variables artificiales se introducen para facilitar el
comienzo del método simplex.
La base canónica inicial la configuraremos con las variables de holgura más
las variables artificiales necesarias hasta tener esa base canónica.

Veamos, a continuación, un método que nos ayude a resolver los problemas
que contengan variables artificiales.


Investigación Operativa


54
2.8.1. Método de la “M” o de Penalización
En este método la función objetivo se modifica para que imponga una
penalización muy grande sobre las variables artificiales en el caso de que
adquieran valores mayores que cero. Las iteraciones del método simplex
automáticamente fuerzan a las variables artificiales a desaparecer (a volverse
cero) una a una, hasta que todas quedan fuera de la solución.
Consideremos el siguiente problema de programación lineal planteado en su
forma estándar:

Min z = c
T
X
st
AX = b
X > 0
Añadimos en las restricciones las variables artificiales necesarias para tener
en la primera tabla del simplex una base canónica, con lo cual tenemos el
sistema siguiente:

AX + I X
a
= b
X > 0, X
a
> 0

Tenemos como solución inicial: X
a
=b, X=0

Debemos buscar la forma de hacer salir las variables artificiales, es decir, las
X
a
, y que entren las otras variables. Para ello les asociamos un valor muy grande
M ( no es necesario especificar el valor de M) en la función objetivo.


Min z = c
T
X + M 1
T
X
a

st
AX + I X
a
=b
X > 0, X
a
> 0

En la resolución del problema por este método, pueden presentarse los casos
siguientes:
a) Tengamos solución finita:

i) Que el problema admita una solución óptima, con todas las variables
artificiales iguales a cero, X
a
= 0, entonces la solución obtenida es única
y óptima.
Programación Lineal 55


ii) Que el problema admita una solución óptima en la cual encontraremos al
menos una variable artificial distinta de cero, X
a
= 0, entonces el
problema original es imposible, no tenemos solución.
b) Tengamos solución no finita:

iii) Con todas las variables artificiales iguales a cero, X
a
= 0, en este caso
tenemos una solución no finita.
iv) Exista al menos una variable artificial que sea positiva, entonces el
problema original es imposible.

Consideremos el siguiente problema:
Max z = x
1
+6x
2
-4x
3

st
x
1
+2x
2
-x
3
=20
2x
1
+ x
2
+x
3
s 40
2x
1
+ x
2
+4x
3
> 55
x
i
> 0 (i=1, 2, 3)

Como explicamos anteriormente, para resolver este problema, debemos
construir un problema “artificial” que tiene, en caso de que exista, la misma
solución óptima que el problema real.

Min z = - x
1
-6x
2
+ 4x
3
+ 0 x
4
+ 0 x
5
+ M x
6
+ M x
7

st
x
1
+2x
2
-x
3
+ x
6
=20
2x
1
+ x
2
+x
3
+ x
4
= 40
2x
1
+ x
2
+4x
3
– x
5
+ x
7
= 55
x
i
> 0 (i=1, 2, ..., 7)



Primera tabla
Se llevan a la tabla los datos del problema “artificial” y se comienza a operar
de acuerdo con el algoritmo del simplex:

c
j
-1 -6 4 0 0 M M
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
A
7
u
A
6
M 20 1 2 -1 0 0 1 0 10
A
4
0 40 2 1 1 1 0 0 0 40
A
7
M 55 2 1 4 0 -1 0 1 55
z, z
j
, u
j
75M 3M 3M 3M 0 -M M M
z
j
-c
j
3M+1 3M+6 3M-4 0 -M 0 0
u
j
(z
j
-c
j
)
30M+60
Investigación Operativa


56

A los valores que hayan resultado ser (z
j
-c
j
) >0, en nuestro caso se da para
varios j, elegimos la de mayor diferencia y aplicamos el criterio

u
j
=
¦
)
¦
`
¹
¦
¹
¦
´
¦
> 0 / min
ij
ij
i
i
x
o
o


y buscando que u
j
(z
j
-c
j
) sea positivo y máximo, tenemos que entra A
2
y sale A
6
,
que, por corresponder a una variable artificial, ya nunca más volverá a entrar.
El vector entrante en la base formará parte de la base canónica de manera
que el elemento pivote, en nuestro caso el 2, que se genera en el cruce del vector
que entra y el vector que sale, deberá valer uno y el resto cero.
Este proceso se repite de forma iterativa hasta que se verifique (z
j
- c
j
) s 0,
¬j (j=1, 2, ..., n).



Segunda tabla

c
j
-1 -6 4 0 0 M M
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
A
7
u
A
2
-6 10 1/2 1 -1/2 0 0 - 0 -
A
4
0 30 3/2 0 3/2 1 0 - 0 20
A
7
M 45 3/2 0 9/2 0 -1 - 1 10
z, z
j
, u
j
45M-60 3M/2-3 -6 3M 0 -M - M
z
j
-c
j
3M/2-2 0 9M/2-1 0 -M - 0
u
j
(z
j
-c
j
)
45M+10

Entra A
3
y sale A
7
, que, por corresponder a una variable artificial, ya nunca
más volverá a entrar.

Tercera tabla

c
j
-1 -6 4 0 0 M M
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
A
7

A
2
-6 15 2/3 1 0 0 -1/9 - -
A
4
0 15 1 0 0 1 1/3 - -
A
3
4 10 1/3 0 1 0 -2/9 - -
z, z
j
, u
j
-50 -8/3 -6 0 0 -2/9 - -
z
j
-c
j
-5/3 0 0 0 -2/9 - -

Observando la tabla tenemos (z
j
- c
j
) s 0, ¬j (j=1, 2, ..., n), por lo que hemos
llegado a la etapa final. Para buscar la solución dentro de la tabla miramos la
columna b y encontramos:
Programación Lineal 57



x
1
= 0, x
2
=15, x
3
= 10, x
4
=15, x
5
= 0, z = -50

Luego, la solución del problema original planteado (maximización) es:

x
1
= 0, x
2
=15, x
3
= 10, z = 50



2.8.2 Método de las dos fases

Supongamos un problema planteado en su forma estándar

Min z = c
T
X
st
AX = b
X > 0

Añadimos en las restricciones las variables artificiales, X
a
, necesarias para
tener en la primera tabla del simplex una base canónica, con lo cual tenemos el
sistema siguiente:

AX + I X
a
=b
X > 0, X
a
> 0

Su resolución se abordará en dos fases:

Fase I:
Esta primera fase consiste en resolver previamente el problema siguiente:

Min z = 1
T
X
a

st
AX + I X
a
=b
X > 0, X
a
> 0

Si el problema original tienen solución factible, el mínimo del problema
anterior se alcanzará cuando las variables artificiales X
a
=0 y z=0.

Fase II:
En esta segunda fase, resolveremos el problema original planteado utilizando
la última matriz obtenida en la Fase I y por tanto dicha base.

Consideremos el siguiente problema:
Investigación Operativa


58
Min z = x
1
- 2x
2

st
x
1
+x
2
> 2
-x
1
+x
2
> 1
x
2
s 3
x
1
> 0 , x
2
> 0

Vamos a resolverlo por el método de las dos fases. El problema con las
variables de exceso , holgura y artificiales y la función objetivo de la primera
fase (la función objetivo del enunciado se optimiza en la segunda fase) es :

Min z = a
1
+a
2

st
x
1
+x
2
- h
1
+ a
1
=2
- x
1
+x
2
-h
2
+ a
2
=1
x
2
+ h
3
=3

pasamos a la tabla los datos y operamos según el algoritmo del simplex,
tenemos:
Primera tabla

c
j
0 0 0 1 0 1 0
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
A
7 u
1
A
4
1 2 1 1 -1 1 0 0 0 2
A
6
1 1 -1 1 0 0 -1 1 0 1
A
7
0 3 0 1 0 0 0 0 1 3
z z
j
u
j

3 0 2 -1 1 -1 1 0 1
z
j
-c
j
0 2 -1 0 -1 0 0


Segunda tabla

c
j
0 0 0 1 0 1 0
Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
A
7 u
A1
u
A5

A
4
1 1 2 0 -1 1 1 - 0 1 /2 1
A
2
0 1 -1 1 0 0 -1 - 0 - -
A
7
0 2 1 0 0 0 1 - 1 2 2
z z
j
u
j

1 2 0 -1 1 1 - 0 1/2 1
z
j
-c
j
2 0 -1 0 1 -2 0

u
j
(z
j
-c
j
)
1 - - - 1

Solución de la tabla, h
3
=2, a
1
=1, x
2
=1, z=1, al ser la función objetivo de
minimizar y tener z
j
-c
j
positivos la solución no es óptima. Para los z
j
-c
j
>0
Programación Lineal 59


calculamos u
j
, y el valor máximo de u
j
(z
j
-c
j
) se alcanza en x
1
y en h
2
, tomamos
x
1
por tener mayor z
j
-c
j
, será la nueva variable básica, siendo a
1
la fila donde se
alcanza el valor mínimo de u
j
y por lo tanto la variable que deja de ser variable
básica, la cual no volverá a entrar en la base y por lo tanto se puede eliminar de
la tabla, con lo cual terminamos la primera fase al obtener en la próxima tabla
z=0 con a
1
=0, a
2
=0.
Introducimos entonces la función objetivo original min z=x
1
-2x
2
y
continuamos con el algoritmo del simplex:

Tercera tabla

c
j
1 -2 0 0 0
Base c
B
b A
1
A
2
A
3
A
5
A
7 u
A3
u
A5

A
1
1 1 /2 1 0 -1/2 1 /2 0 - 1
A
2
-2 3/2 0 1 -1/2 -1/2 0 - -
A
7
0 3/2 0 0 1/2 1/2 1 3 3
z z
j
u
j

-5/2 1 -2 1/2 3/2 0 3 1
z
j
-c
j
0 0 1/2 3/2 0

u
j
(z
j
-c
j
)
- - 3/2 3/2 -

Cuarta tabla

c
j
1 -2 0 0 0
Base c
B
b A
1
A
2
A
3
A
5
A
7 u
A3
A
5
0 1 2 0 -1 1 0 -
A
2
-2 2 1 1 -1 0 0 -
A
7
0 1 -1 0 1 0 1 1
z z
j u
j
-4 -2 -2 2 0 0
z
j
-c
j
-1 0 2 0 0

Solución de la tabla, h
2
=1, x
2
=2 h
3
=1, z=-4, la solución no es óptima. Para
los z
j
-c
j
>0 calculamos u
j
, h
1
será la nueva variable básica, siendo h
3
la fila
donde se alcanza el valor mínimo de u
j
y por lo tanto la variable que deja de ser
variable básica.
c
j
1 -2 0 0 0
Base c
B
b A
1
A
2
A
3
A
5
A
7
A
5
0 2 1 0 0 1 1
A
2
-2 3 0 1 0 0 1
A
3
0 1 -1 0 1 0 1
z z
j u
j
-6 0 -2 0 0 -2
z
j
-c
j
-1 0 0 0 -2

El punto extremo es X
1
=(0, 3, 0, 0, 0, 0)
T
, z=-6.
Investigación Operativa


60

2.9. Soluciones múltiples
Cualquier problema de Programación Lineal con soluciones óptimas
múltiples (y una región factible acotada) tiene al menos dos soluciones factibles
en los vértices que son óptimas. Toda solución óptima es una combinación lineal
convexa de las soluciones factibles básicas óptimas.
El método simplex se detiene automáticamente al encontrar una solución
factible básica óptima. Una vez que el método simplex encuentra una solución
factible básica óptima, se puede detectar si existen otras y, si es así, se encuentra
observando si tengo algún vector j, tal que no pertenece a la base, pero que
cumple (z
j
- c
j
)= 0, esto nos indicará que existe multiplicidad de óptimos.
Supongamos que ya hemos encontrado una solución óptima (mínima) de un
problema y que se verifica (z
j
- c
j
) s 0, ¬j.



La función objetivo es: z’ = z - u
j
(z
j
- c
j
) = z

no hemos mejorado la solución anterior.
Repitiendo este proceso para cada una de las “j” que no pertenecen a la base
y verifican (z
j
- c
j
)= 0, obtendríamos todos los vértices que son soluciones
óptimas. Tomando una combinación lineal convexa de ellas, también sería
solución óptima, por lo cual el problema tiene infinitas soluciones.
Compruebe, mediante el método simplex, que el problema siguiente presenta
dos puntos extremos.

Min z = x
1
-2x
2
+3x
3

st
x
1
- x
2
+x
3
+ 2x
4
=10
x
2
- x
3
s 1
x
2
+ 2x
4
s 8
x
i
> 0 (i=1, 2, ..., 6)

Los puntos extremos son: X
1
=(2, 0, 0, 4, 1, 0)
T
, X
2
=(4, 1, 0, 7/2, 0, 0)
T

así como toda combinación convexa de dichos puntos.


2.10. Soluciones degeneradas
Al desarrollar el algoritmo del simplex supusimos que las soluciones eran
siempre no degeneradas, de manera que, en un número finito de iteraciones
llegábamos a la solución óptima.
Programación Lineal 61


Ahora bien, si al calcular el valor de u
j
=
¦
)
¦
`
¹
¦
¹
¦
´
¦
> 0 / min
ij
ij
i
i
x
o
o
existen varios i
tal que minimizan
ij
i
x
o
, no se podría hacer salir a la vez a todos ellos. Se podría
elegir uno cualquiera y, entonces, en el nuevo punto extremo al que se pasan
todas las coordenadas de X para las cuales se alcanza ese mínimo serían nulas,
es decir, estaríamos en un punto extremo que tiene menos de “m” coordenadas
positivas, esto es, un punto extremo degenerado.
Se identifica en la tabla simplex porque al menos una variable básica tiene
valor cero en la columna de solución. Este caso se presenta cuando se valora una
solución básica no única, la cual se tiene con al menos una variable básica de
valor cero en el sistema de m restricciones, alguna de ellas debe ser restricción
redundante que contiene sólo un punto vértice del conjunto factible.


2.11. El método del simplex revisado

Un procedimiento más eficiente que el simplex en su versión matricial es el
llamado simplex revisado.
Consideremos el siguiente problema de programación lineal:

Min z = c
T
X
st
AX = b
X > 0

donde A es una matriz de orden mxn y sea rang (A, b) = rang (A) = m.
Denotemos por A
i
la columna i-ésima de la matriz A y supongamos que los
m vectores linealmente independientes son los m primeros A
1
, A
2
,…, A
m
, la
matriz B= (A
1
, A
2
,…, A
m
) es la matriz básica.
Descomponiendo la matriz A de forma que A=(B, N)
donde B
mxm
es la matriz básica y N
(mx(n-m))
, la matriz no básica (los A
i
que no son
de la base).
Cualquier solución básica es de la forma X=
|
|
.
|

\
|
N
B
X
X
donde X
N
= 0 y BX
B
= b

Si X
B
es una solución factible básica, X
B
= (x
1
, x
2
,, x
m
, 0, ..., 0)
T
, tenemos

BX
B
= b, X
B
= B
-1
b

Investigación Operativa


62
y puesto que
A
j
= o
1 j
A
1
+ o
2 j
A
2
+ … + o
m j
A
m
= o
i j
A
i

¯
=
m
1 i
esto es

A
j
= BX
j
,

X
j
= (o
1 j
, o
2 j
, …, o
m j
)
T
, X
j
= B
-1
A
j





El valor de la función objetivo en ese punto es

z = c
B
T
X
B
= c
B
T
B
-1
b

y los valores de
z
j
= c
1
o
1 j
+ c
2
o
2 j
+ … + c
m
o
m j
=
¯
c
i
o
i j

=
m
1 i
z
j
=
¯
c
i
o
i j
= c
B
T
X
j
= c
B
T
B
-1
A
j
= ì
T
A
j

=
m
1 i

Donde ì
T
= c
B
T
B
-1
, al vector columna ì
mx1
se le denomina vector de
multiplicadores del simplex asociado a la base B.
Veamos el ejercicio siguiente. Dada la tabla óptima del Simplex:

c
j

Base c
B
b A
1
A
2
A
3
A
4
A
5
A
6
A
1
0.75 1 0 0 0.5 -0.5 -
A
3
1.75 0 0 1 0.5 0.5 -
A
2
3.25 0 1 0 -0.5 1.5 -
z z
j
-4.75 -2 -1 0 -0.5 -0.5 -
z
j
-c
j
0 0 0 -0.5 -0.5

a) Haciendo uso de la matriz básica y/o de su inversa formule el problema de
programación lineal que corresponde a la tabla anterior, si se sabe que la primera
restricción es (>) y el resto (s). Escriba la solución en el recuadro adjunto.

Ayuda: Max z=
|
|
|
.
|

\
| ÷
=
1 0
1 0
1 1
31
21
11
b
b
b
B

st

b) Formule el problema Dual y de la solución sin hacer operaciones.
Programación Lineal 63


Solución:
a) La matriz inversa se obtiene directamente de la tabla:

B
-1
= , (B
-1
)
-1
=B=
|
|
|
.
|

\
|
÷
÷
÷
5 . 1 5 . 0 0
5 . 0 5 . 0 1
5 . 0 5 . 0 0
|
|
|
.
|

\
| ÷
1 0 1
1 0 3
1 1 2

A continuación se calculan los vectores A
j
(j=1, 2, 3):

A
j
=B

X
j
= para j=1
|
|
|
.
|

\
|
=
|
|
|
.
|

\
|
|
|
|
.
|

\
| ÷
1
3
2
0
0
1
1 0 1
1 0 3
1 1 2
A
2
=B

X
2
=
|
|
|
.
|

\
|
=
|
|
|
.
|

\
|
|
|
|
.
|

\
| ÷
1
1
1
1
0
0
1 0 1
1 0 3
1 1 2
B

X=b=
|
|
|
.
|

\
|
=
|
|
|
.
|

\
|
|
|
|
.
|

\
| ÷
4
5 . 5
3
25 . 3
75 . 1
75 . 0
1 0 1
1 0 3
1 1 2

La formulación del problema sería:

Max z= 2x
1
+ x
2

st
2 x
1
+ x
2
> 3
3x
1
+x
2
s 5.5
x
1
+x
2
s 4
x
1
, x
2
> 0



b) Operando con el vector de multiplicadores del simplex asociado a la base B,
tenemos: c
T
= ì
T
B=(0 0.5 0.5) ) 1 0 2 (
1 0 1
1 0 3
1 1 2
=
|
|
|
.
|

\
| ÷



Investigación Operativa


64
2.11.1. Determinación de la inversa. Forma producto de la inversa
Sea B una base y B
-1
su inversa, si realizamos un cambio de base a la base
B
1
, podemos conocer B
1
-1
en términos de B
-1
.
En efecto, sea B= (A
1
, A
2
, A
r-1
, A
r
, A
r+1
,…, A
m
) y supongamos que al
realizar el cambio de base introducimos el vector A
j
y sale A
r

B
1
= (A
1
, A
2
, A
r-1
, A
j
, A
r+1
,…, A
m
), X
j
= B
-1
A
j
, B
-1
B
1
= R




donde R es la matriz identidad reemplazando la r-ésima columna por el vector
columna X
j
; esto es:
R=
|
|
|
|
|
.
|

\
|
1 ... ... 0 0
.. .......... ..........
0 ... ... 1 0
0 ... ... 0 1
2
1
mj
j
j
o
o
o
La inversa de R la denotamos por E y viene dada por
E=R
-1
=
|
|
|
|
|
|
|
|
.
|

\
|
÷
÷
÷
1 ... / ... 0 0
.. .......... ..........
0 .. .. / 1 ... 0 0
. .......... .......... ..........
0 ... / ... 1 0
0 ... / ... 0 1
2
1
rj mj
rj
rj j
rj j
o o
o
o o
o o

Entonces B
1
-1
= R
-1
B
-1
= E B
-1
, a la matriz E

se la denomina matriz elemental.
Cuando comenzábamos el método del simplex, tomábamos la base canónica,
es decir, B
1
=I, B
1
-1
= I y X
B
= b.
Siguiendo un proceso iterativo, tenemos:

B
2
-1
= E
1
B
1
-1
= E
1
I= E
1


B
3
-1
= E
2
B
2
-1
= E
2
E
1


y, en general la inversa de la base de la k-ésima iteración se obtiene

B
k
-1
= E
k-1
E
k-2
…. E
2
E
1


Programación Lineal 65


que expresa la inversa como producto de matrices elementales. A dicha
expresión se la conoce como forma producto de la inversa.


2.11.2. Etapas del método del simplex revisado

Toda la información necesaria para aplicar el método del simplex se puede
escribir en una tabla:

ì
T
= c
B
T
B
-1
z = c
B
T
B
-1
b z
j
- c
j
= ì
T
A
j
- c
j
…. z
j
-c
j
=c
B
T
E
k-1
E
k-2
…. E
2
E
1
A
j
-c
j
B
-1
X
B
= B
-1
b X
j
= B
-1
A
j
…. X
j
= E
k-1
E
k-2
…. E
2
E
1
A
j

La última columna representa la situación en la k-ésima iteración. En cada
iteración hay que controlar si todos los (z
j
- c
j
) s 0 ¬j, en cuyo caso ya
tendríamos la solución óptima. Si para algún (z
j
- c
j
) > 0 y X
j
s 0, la función
objetivo no tendría solución finita.


2.12. Resolución mediante programa de ordenador
1. Si el programa requiere que todas las variables sean no negativas, se
pondrán de manera que cumplan esta condición. Las modificaciones deben
ser hechas antes de introducir los datos en el programa.
2. Todas las variables de las restricciones deben aparecer en el primer
miembro, en tanto que todos los términos constantes (recursos) aparecerán a
la derecha.
3. En la columna de variables de holgura (SLACK OR SURPLUS) vienen los
resultados de esas variables (por restricción), las de valor cero indicarán que
el recurso se ha consumido en su totalidad.
El número de variables positivas (decisión + holgura) al finalizar el Simplex
debe ser igual al número de restricciones, de lo contrario el problema es
degenerado.
Hay que hacer notar que la presentación de la salida depende del programa
utilizado. Nosotros, mientras no se diga lo contrario, utilizaremos el programa
LINDO (L = Linear IN = Interactive D = Discrete O = Optimizer).
Utilizando el programa LINDO para resolver el ejercicio 1, tenemos:
Min z = –5x
1
+2x
2
-3x
3

st
2x
1
+2x
2
-x
3
s4
3x
1
- x
2
+x
3
s3
2x
1
+x
2
+3x
3
s5
x
i
> 0 (i=1, 2, 3)

Investigación Operativa


66
LP OPTIMUM FOUND AT STEP 2

OBJECTIVE FUNCTION VALUE

1) -6.714286

VARIABLE VALUE REDUCED COST
X1 0.571429 0.000000
X2 0.000000 1.285714
X3 1.285714 0.000000


ROW SLACK OR SURPLUS DUAL PRICES
2) 4.142857 0.000000
3) 0.000000 1.285714
4) 0.000000 0.571429

NO. ITERATIONS= 2


THE TABLEAU

ROW (BASIS) X1 X2 X3 SLK 2 SLK 3
1 ART 0.000 1.286 0.000 0.000 1.286
2 SLK 2 0.000 3.857 0.000 1.000 -1.143
3 X1 1.000 -0.571 0.000 0.000 0.429
4 X3 0.000 0.714 1.000 0.000 -0.286


ROW SLK 4
1 0.571 6.714
2 0.714 4.143
3 -0.143 0.571
4 0.429 1.286
Observando la salida del programa, el resultado es:
z = -6.714286; x
1
= 4/7=0.5714, x
2
=0 (no aparece), x
3
=9/7=1.2857

Que coincide con el obtenido mediante el algoritmo del simplex.

22

Q. MARTÍN MARTÍN

estudio comenzó en 1951 y fue desarrollado por Dantzig. Los fundamentos matemáticos de la programación lineal se deben al matemático norteamericano de origen húngaro John Von Neumann (1903-1957), quien en 1928 publicó su famoso trabajo sobre Teoría de juegos. La Programación Lineal es un conjunto de técnicas racionales de análisis y de resolución de problemas que tiene por objeto ayudar a los responsables en las decisiones sobre asuntos en los que interviene un gran número de variables. El nombre Programación Lineal no procede de la creación de programas de ordenador, sino de un término militar, programar, que significa realizar planes o propuestas de tiempo para el entrenamiento, la logística o el despliegue de las unidades de combate. La Investigación Operativa en general y la programación lineal en particular recibieron un gran impulso gracias a los ordenadores. Uno de los momentos más importantes fue la aparición del Método del Simplex. Este método, desarrollado por G. B. Dantzig en 1947, consiste en la utilización de un algoritmo para optimizar el valor de la función objetivo teniendo en cuenta las restricciones planteadas. Partiendo de uno de los vértices de la región factible, por ejemplo el vértice P, y aplicando la propiedad: si la función objetivo no toma su valor mínimo en el vértice P, entonces existe una arista que parte del vértice P y a lo largo de la cual la función objetivo no aumenta, es decir, se pasa a otro vértice donde el valor de función objetivo sea menor o igual que el alcanzado en P. Iniciarse en la técnica de programación lineal teniendo como referencia al método científico: la representación o modelo en formulación matemática lineal de algunos problemas elegidos, será nuestro objetivo en este capítulo. La Programación Lineal es una de las técnicas agrupadas como programación matemática, aplicable a problemas de asignación de recursos limitados, con actividades competitivas hacia un objetivo común, que puede ser de maximizar beneficios o minimizar pérdidas. Se utiliza un modelo matemático con representación válida de la problemática en estudio; sus relaciones deben ser lineales, que significa utilizar, sólo variables de primer grado en cada término. El objetivo de la Programación Lineal es encontrar el valor de la función que Max (Min) z = c1 x1 + c2 x2 + … + cn xn denominada función objetivo. La función objetivo se encuentra sujeta a una serie de restricciones

22

Programación Lineal st a11 x1 + a12 x2 + … + a1n xn = b1 a21 x1 + a22 x2 + … + a2n xn = b2 …. am1 x1 + am2 x2 + … + amn xn = bm donde xi  0 (i=1, 2, …, n) son las condiciones de no negatividad de las variables. Cada columna de coeficientes:

23

 a1 j     a2 j  Aj = , ...   a   mj 

 x1     x2  X=   ...   x   n

 a11 a12 ... a1n b1     a21 a22 ... a2 n b2  (A1, A2 ,…, An, b )=  ........................     a a ... a b  m1 m 2 mn m   x1 A1+ x2 A2 +…+ xn An  b; xi  0, i Matricialmente lo anterior se escribe como: Max z = cTX st AX  b X0 siendo z: la función objetivo c = (c1,...,cn) T : vector de coeficientes de la función objetivo. X = (x1,...,xn)T: vector de variables de decisión. A = (...,aij,...): matriz de coeficientes técnicos (i =1, 2, ..., m; j =1, 2, ..., n). b = (b1,...,bm) T : vector de demandas (recursos). El conjunto de soluciones factibles de un problema de Programación Lineal viene dado por:

24

Investigación Operativa X = {x Rn / A x  b , x  0}

Como se verá posteriormente, todos los óptimos (si existen) deberán estar en la frontera del conjunto de soluciones factibles. La solución de un problema de programación lineal, en el supuesto de que exista, debe estar en la región determinada por las distintas desigualdades. Esta recibe el nombre de región factible, y puede estar o no acotada.

Región factible no acotada La región factible incluye o no los lados y los vértices, según que las desigualdades sean en sentido amplio ( o ) o en sentido estricto (< o >). Si la región factible está acotada, su representación gráfica es un polígono convexo con un número de lados menor o igual que el número de restricciones siempre que no haya restricciones redundantes.

Región factible acotada

2.2. Formulación de un problema de Programación Lineal
Para que un modelo de Programación Lineal sea válido, debe cumplir las propiedades siguientes: Proporcionalidad. Significa que la contribución al valor de la función objetivo y el consumo o requerimiento de los recursos utilizados, son proporcionales al valor de cada variable de decisión. Así el término 2x1 es proporcional, porque contribuye al valor de la función z con 2, 4, 8, etc. para los valores 1, 2, 3, etc., respectivamente, de x1. Se puede observar el aumento constante y proporcional de 2 conforme crece el valor de x1. Aditividad. Significa que se puede valorar la función objetivo z, así como también los recursos utilizados, sumando las contribuciones de cada uno de los términos que intervienen en la función z y en las restricciones. Divisibilidad. Significa que las variables de decisión son continuas y por lo tanto son aceptados valores no enteros para ellas. La hipótesis de divisibilidad más la restricción de no negatividad, significa que las variables de decisión pueden tener cualquier valor que sea positivo o por lo menos igual a cero.

(j =1. (i=1. no interviene una función de probabilidad para obtenerlos El modelo de programación lineal es un caso especial de la programación matemática. donde (x+) 0. o sea. sean lineales. vamos a pasar un problema formulado en forma canónica a otro en forma estándar. m) xj  0. Dependiendo del tipo de restricción que presente el problema de programación lineal. t.(x-). Sin restricciones de signo: xk =(x+). am1 x1 + am2 x2 + … + amn xn  bm xi  0. Restricciones ( o () o (=): Formulación mixta. 2. tendremos: Restricciones (=): Formulación estándar.Programación Lineal 25 Certidumbre. Significa que los parámetros o constantes son estimados con certeza. tenemos Max z = c1 x1 + c2 x2 + … + cn xn=Max st  j1 n cj xj  j1 n aij xj  bi. pues debe cumplir que. i Escrito lo anterior en forma compacta. …. …. (x-)0 Por ejemplo. tanto la función objetivo como todas las funciones de restricción.) a11 x1 + a12 x2 + … + a1n xn  b1 a21 x1 + a22 x2 + … + a2n xn  b2 ……………………………. Restricciones () o (): Formulación canónica. n) Escrito en forma matricial sería: Max z = cT X st AX b X0 Cada columna de coeficientes técnicos Aj representa un vector: . 2. Problema formulado en forma canónica: Max (Min)z = c1 x1 + c2 x2 + … + cn xn st (s.

. t.   a   mj  Las restricciones las escribiremos: x1 A1+ x2 A2 +…+ xn An  b xi  0. 2ª Establecimiento de la función objetivo cuyo valor se desea maximizar(utilidad. i Problema formulado en forma estándar: Max (Min)z = c1 x1 + c2 x2 + … + cn xn st (s. rendimiento.…..26  a1 j     a2 j  A j =  . Fases en la resolución de problemas de Programación Lineal Las fases en la resolución de un problema de Programación Lineal las podemos resumir en: 1ª Definir el significado cuantitativo de las variables de decisión (x1.3.. 3ª Establecimiento de las restricciones que limitan el valor óptimo que puede tomar la función objetivo. xn+m se las denomina variables de holgura y se introducen para convertir desigualdades en igualdades.. iii) Para igualar el recurso especificado (=).) a11 x1 + a12 x2 + … + a1n xn + xn+1 = b1 a21 x1 + a22 x2 + … + a2n xn + xn+2 = b2 ….. …. implica que el recurso de esa actividad se ha consumido en su totalidad (restricción saturada)... am1 x1 + am2 x2 + … + amn xn + xn+ m = bm xi  0. 4ª Resolución del problema y análisis de la solución o soluciones... xn). Cuando las variables de holgura son iguales a cero... ii) Para no menos de lo requerido (). i Investigación Operativa A las variables xn+1. ingreso. producción) o bien minimizar (costo.. tiempo. mano de obra.. x2... 2.. xn+2.. inventario). . Las restricciones que pueden presentarse son del tipo: i) Si no se debe exceder del recurso disponible ().

B y C.50 Horas disponibles semanalmente 16 12 28 ¿Qué cantidad de cada producto P1 y P2 se debe manufacturar cada semana.3) . Tipo de soluciones en un problema de programación lineal El problema de programación lineal formulado matricialmente (estándar): Min z = cTX st AX = b X0 (2.2) (2. 2.Programación Lineal 27 Ejercicio. resulta: 1ª fase: x1 = “ número de unidades de P1 “ x2 = “ número de unidades de P2 “ 2ª fase: Max z = 1 x1 + 1. para obtener la máxima ganancia ? Desarrollado el problema en fases. que pueden fabricar dos productos.5 x2 3ª fase : 2 x1 + 2 x2  16 x1 + 2 x2  12 4 x1 + 2 x2  28 x1  0. Producto 1 Horas por u. 2 2 2 1. La tabla siguiente muestra los recursos: Tipo de Máquina A B C Ganancia por u. 2 1 4 1 Producto 2 Horas por u. P1 y P2. Todos los productos tienen que pasar por todas las máquinas.4.1) (2. Un empresa tiene tres tipos de máquinas. x2 0 4ª fase : La resolución del problema y análisis de la solución o soluciones se verá posteriormente. A.

2) y (2. se dice que es una matriz básica factible si el vector resultante de multiplicar su inversa por el vector b tiene todas sus componentes mayores o iguales que cero Cada matriz básica B del programa lleva asociado un vector que se conoce como solución básica. Generalmente las restricciones aparecen en forma de desigualdad y son convertidas en igualdades al introducir las variables de holgura. Se resuelve el sistema BX = b.3) sus componentes son todas positivas o nulas. xn+1. Variables no básicas: las restantes. Si B es una de esas matrices.. Cada una de las submatrices de A con determinante distinto de cero (es decir. lo que quiere decir que pueden seleccionarse m columnas de A de manera que la matriz que forman tenga determinante no nulo. Además se supondrá que la matriz A tiene rango m. invertibles) formadas seleccionando m columnas de A se llama matriz básica o matriz de base. Cada una de las submatrices de A con determinante distinto de cero (es decir. inversibles) formadas seleccionando m columnas de A. el proceso de construcción es el siguiente: 1. A las variables no básicas se las da el valor cero. xn+m) que satisface el conjunto de ecuaciones que constituyen el sistema (2. siendo n  m.2) al hacer (nm) variables iguales a 0. . se llama matriz básica o matriz de base. Las restricciones redundantes pueden eliminarse de la formulación del problema y las contradictorias provocan que el espacio de soluciones factibles sea vacío y el problema no tenga solución....  Solución básica: Solución básica: aquella que resulta de (2. x2.... Se dividen las variables de decisión en dos bloques: Variables básicas: aquella que resulta de (2. 2. . se dice que es una matriz básica factible si el . definidas ordenadamente como un vector X = ( x1. 3. donde X es el vector formado con las variables básicas y se asignan a estas variables la solución obtenida.2) al hacer (n-m) variables iguales a 0. Si B es una de esas matrices.28 Investigación Operativa Donde A es una matriz de m filas (restricciones) y n columnas (variables). El hecho de exigir que el rango de la matriz A sea m implica evitar que en el problema aparezcan restricciones redundantes o contradictorias. esto hace que la suposición de que n  m esté justificada. xj. . Las soluciones de un problema de programación lineal se clasifican en:  Solución factible: Es un conjunto de n + m variables xj. xn .

Por ejemplo.   El número de soluciones básicas de un problema lineal es siempre finito y  (n  m)!  como máximo:    m! n!  donde m es el número de restricciones de igualdad y n el número de variables en su forma estándar. todas las variables son no negativas. Solución factible básica no degenerada: aquella que es solución factible básica que tiene exactamente m variables xi positivas. debe formularse el programa en su forma estándar y obtener las correspondientes matrices: A 2 1 2 4 0 -1 1 0 0 1 b 6 12 Las matrices básicas serán en este caso todas las submatrices inversibles formadas al seleccionar 2 columnas de A. x2. es decir. no siempre todas esas combinaciones dan lugar a matrices con determinante no nulo. a su vez. degeneradas o no degeneradas. Solución factible básica: aquella que es solución básica y cumple (2. En primer lugar. x3  0 y clasificarlas en factibles o no factibles. Por supuesto. A continuación se presenta un ejemplo de localización de soluciones básicas de un programa lineal.Programación Lineal 29     vector resultante de multiplicar su inversa por el vector b tiene todas sus componentes mayores o iguales que cero. No factibles: alguna componente tiene un valor negativo. todas las variables básicas son positivas. Se trata de encontrar las soluciones básicas del problema Min z=2x1+4x2+x3 2x1+2x2  6 x1+4x2-x3 12 x1. Y. Éste es el número de posibles combinaciones para elegir m columnas entre las n columnas existentes. Solución factible mínima: aquella que es factible y hace mínimo z. en: Degeneradas: cuando alguna de las variables básicas tiene un valor nulo.3). No degeneradas: cuando todas las variables básicas son estrictamente positivas. la primera matriz básica que puede construirse es la formada por las dos primeras columnas de A: . esto es.

3. x3 y x4 4 1 0 1 x3 y x4 x1.0) (0.0) (0.0. x3 y x5 4 0 2 0 x2 y x5 x1. x4 y x5 1 4 2 0 x1 y x3 x2.12) Factible degenerada No factible No factible Factible no degenerada Factible degenerada Factible degenerada Factible degenerada No factible Factible no degenerada x4 y x5 x1.0. x4 y x5 1 -1 2 1 x1 y x4 x2.0.0.0. Las variables básicas son no negativas por tanto la solución básica es factible y es degenerada porque la primera variable básica es nula. x2 y x5 -1 0 Solución básica Tipo (0. x4 y x5 4 -1 2 1 x2 y x4 x1.0) (3. A las restantes variables.0.3. las variables básicas son x1 y x2 y los valores que toman en la correspondiente solución básica se obtienen resolviendo el sistema: 2x1+2x2 = 6 x1+4x2 = 12 La solución de dicho sistema es x1 =0 y x2=3. se las da el valor cero y la solución básica que se obtiene es X=(0.-12.0.0.0. De igual manera se construyen el resto de soluciones básicas.0) (0. Variables Variables no Matriz básicas básicas básica 2 2 x1 y x2 x3.3.0. En la siguiente tabla se presentan todas las soluciones básicas obtenidas. en este caso todas las submatrices 2x2 son básicas excepto la que forman las columnas tercera y quinta.0) (3.-9.0.0.3. x2 y x3 1 0 0 1 Veamos. mediante un ejemplo el concepto de punto básico degenerado (menos de m componentes positivas) y no degenerado: .6.3.0).0.30 B Investigación Operativa 2 2 1 4 En este caso. x3 y x4 1 1 2 0 x2 y x3 x1. x3 y x5 1 0 2 0 x1 y x5 x2.-18.0.9) (0.0.6.0.0.0.0.0.0) (12. las no básicas.0) (0.

1/4 . f(E) = f(0.1.y0 Tiene por región factible la región sombreada.0.1) es básico no degenerado El punto (1/2. 1/4 .0.0) = 0. f(C)=f(60. En este caso es el vértice D(20.0) = 240. .60) = 260. 3. 2. Los valores de la función objetivo en cada uno de los vértices son: f(O) = f(0. y corresponde al vértice para el que la función objetivo toma el valor máximo. 4) El punto (1.80) = 240 La solución es única.Programación Lineal 31 Max z = x1-2x2+5x3 .60). f(D) = f(20.x4 st x1+x2+x3 =1 x1-x2-x3 +2x4 =1 xi  0 (i=1.0.y) = 4x + 3y st 30x + 20y  1800 x + y  80 x0.0) es básico degenerado El punto (0.1/2 ) es no básico Veamos una serie de ejemplos de problemas de programación lineal con dos variables atendiendo al tipo de solución que presentan: i) Con solución única Maximizar la función z = f(x.

que corresponden a los puntos del segmento situado entre dos vértices de la región factible.Por tanto.0) = 0. como ya vimos en el capítulo anterior.32 ii) Solución múltiple Investigación Operativa Maximizar la función z = f(x. que es una región no acotada. En estos casos. el conjunto de soluciones del sistema de desigualdades no determina ninguna región factible. en todos los puntos del segmento BC. iv) Cuando no existe el conjunto de soluciones que cumplen las restricciones Maximizar la función z = f(x. por lo que puede decirse que el problema carece de solución.y) = 3x + 8y st x + y 6 .y)= 4x + 2y st 2x + y  4 .y  1 . ya que las zonas coloreadas que aparecen en la figura son únicamente soluciones de alguna de las inecuaciones . iii) Solución no acotada (No existe límite para la función objetivo) Maximizar la función z = f(x. y 0 No existe la región factible. y  0 Los valores de la función objetivo en cada uno de los vértices son: f(O)=f(0. x 0 . Resolución de un problema de programación lineal mediante el método gráfico .4) = 8 La función objetivo alcanza el valor máximo en los vértices B y C. f(C) = f(0. x  0 .y) = x + y st y  2x . En este caso no existe un valor extremo para la función objetivo. solución múltiple. la región factible debe estar no acotada. Este tipo de problemas carece de solución.2/3) = 8. Hay infinitas soluciones. f(A) = f(1. la función objetivo es paralela a una de las restricciones. La función crece indefinidamente para valores crecientes de x e y.5. por tanto. x . x + y 2 . y  x/2 Tiene por región factible la zona coloreada que aparece en la figura. Para que suceda esta situación. 2.0) = 4 f(B)=f(5/3.

determine el vértice del conjunto factible que esté sobre la recta que representa la función objetivo. Función objetivo: . El procedimiento a seguir es: 1. El fabricante prometió construir por lo menos dos mesas. Localice la región de soluciones factibles (Región Factible). Escoja cualquier punto de ensayo que no pertenezca a la recta. Es evidente que su precisión no es la deseada. 6. Resolver gráficamente el problema siguiente: Un fabricante está tratando de decidir las cantidades de producción para dos artículos: mesas y sillas. por ejemplo pasando por el origen. 9. 3. Se cuenta con 96 unidades de material y con 72 horas de mano de obra. Cada mesa requiere 12 unidades de material y 6 horas de mano de obra. El valor óptimo de la función objetivo se obtiene sustituyendo los valores óptimos de las variables de decisión en la función objetivo. El margen de beneficio es el mismo para las mesas que para las sillas: 5 euros por unidad.Programación Lineal 33 Lo que se pretende con el método gráfico es dar una visión geométrica del problema que queremos resolver. 11. Si el punto de ensayo satisface la desigualdad original. Por otra parte. Dibuje la gráfica de cada restricción sobre el mismo cuadrante no negativo. Solución: El primer paso para resolver el problema es expresarlo en términos matemáticos en el formato general de PL. en caso contrario será un punto no factible. entonces todos los puntos que estén del mismo lado que el punto de ensayo satisfacen la desigualdad. Ejercicio 3. 4. 2. pero nos puede dar una aproximación a lo que queremos resolver. 7. Determine si el punto de ensayo satisface la desigualdad. Evalúe el primer miembro de la expresión. para obtener la pendiente de la función objetivo. las sillas utilizan 8 unidades de material cada una y requieren 12 horas de mano de obra por silla. 8. Los valores de las variables de decisión. Determine la dirección ascendente o descendente de esta recta. Sustituya el punto de ensayo en el primer miembro de la desigualdad y obtenga el valor numérico. 10. Convierta las desigualdades en igualdades y represente la rectas que representan estas ecuaciones. dan la solución al problema. Dibuje una recta arbitraria de la función objetivo. en este vértice. 5. Dada la pendiente de la función objetivo y teniendo en cuenta si es un problema de maximizar o minimizar.

. se tiene: Maximizar z = 5x1 + 5x2 st 12x1 + 8x2  96 6x1 + 12x2  72 x1  2 x1  0.34 Maximizar z = 5x1 + 5x2 en donde: x1 = número de mesas producidas x2 = número de sillas producidas Restricciones del problema (st): 12x1 + 8x2  96 6x1 + 12x2  72 x1  2 x1  0. x2  0 Investigación Operativa (restricción de material) (restricción de mano de obra) (restricción de promesa del fabricante) (restricciones de no negatividad) Poniendo todo junto el modelo. x2  0 La gráfica asociada al problema es: Cualquier solución que esté en la frontera o dentro del área sombreada cumplirá con todas las restricciones. Ahora se utilizará la función objetivo para seleccionar la solución óptima.

Nótese que el punto óptimo está en la intersección de las líneas de restricción para materiales y horas de mano de obra. Esto se muestra en la siguiente figura: Con el punto óptimo localizado gráficamente. tenemos: El valor óptimo estará sobre la línea recta que representa a la función objetivo. Las coordenadas de este punto . pero que todavía toque la región factible. más lejana al origen. la única tarea que queda es encontrar las coordenadas del punto.Programación Lineal 35 Representando por líneas discontinuas la función objetivo moviéndose hacia el valor óptimo (máximo) del problema. Las coordenadas de este punto se pueden encontrar resolviendo el sistema de ecuaciones que forman estas dos restricciones.

cuando K tenga un número finito de vértices que se puedan alcanzar todos (poliedro convexo). ii) K  . por lo que K es: i) K = .1. Designemos por K el conjunto de las soluciones factibles de un problema de programación lineal. la función objetivo no alcanza necesariamente un valor óptimo concreto. Toda solución factible podrá representarse como una combinación convexa de las soluciones factibles extremas de K (salvo el caso en que el poliedro sea ilimitado). 2.3). En este caso. éste se encuentra en uno de los vértices de la región. que es precisamente el valor óptimo. La sustitución de este punto en la función objetivo da la ganancia máxima: z = 5(6) + 5(3) = 45 euros. las líneas de nivel tienen la misma pendiente que la recta que contiene a ese lado del polígono. éstos serán adyacentes. Existe solución de valor finito de la función objetivo. 3). Si la región es acotada lo único que hay que hacer es calcular el valor de la función objetivo en todos y cada uno de los vértices del polígono. son paralelas. no tiene solución el problema de programación lineal. Si K es un poliedro convexo. Propiedades de las soluciones Las soluciones de un problema de programación lineal tienen diversas propiedades. de modo que a lo largo de ese lado del polígono se alcanza el mismo valor de la función objetivo.36 Investigación Operativa resultan ser (6. K es una región de Rn determinada por la intersección del conjunto finito de restricciones lineales (2. pero si lo hace. entonces K es la envolvente convexa de los puntos extremos de K. el valor óptimo de la función objetivo se alcanza en uno de los vértices del polígono que limita la región. Si la región factible no es acotada. Proposición 2. Demostración . o a lo largo de uno de los lados. El problema tiene solución. y en aquel en el que el valor de la función sea mayor (o menor) habremos alcanzado el punto óptimo buscado. si la región factible existe y es acotada. pero el máximo podría ser ilimitado.2) y (2. cuando K tenga un número finito de vértices que no se puedan alcanzar todos (región convexa ilimitada). iii) K  . alguna de las cuales vamos ver. El conjunto de soluciones factibles de un problema de programación lineal es un conjunto convexo.6. En un problema de Programación Lineal con dos variables. es decir. Si se da el caso de que los valores correspondientes a dos vértices coinciden.

esto significa que cT X0  cT X para cada XK. X2.…. AX =  AX1 + (1-) A X2=  b + (1-) b =b por lo que X es también una solución factible. A X2 = b. Si formamos un vector X que sea combinación lineal de éstos dos: X =  X1 + (1-) X2. ya estaría demostrado.1) alcanza su mínimo en un vértice de K. entonces X0 se podrá poner como una combinación lineal convexa de ellos: X0 =  i 1 p i Xi . i  0 . X2  0. si este mínimo se alcanza en varios puntos. Demostración Sean X1. Si K es un poliedro convexo.Programación Lineal 37 Sean X1 y X2 soluciones factibles. entonces A X1= b.  i 1 p i = 1 Sustituyendo: Min z = m= cT X0 = cT ( 1 X1 + 2 X2 +…+p Xp) . entonces la función objetivo z dada por (2. X1 0. ii) Si X0 no es un vértice de K. X4 X3 X5 K X2 X6 X1 X7 Se pueden dar los casos siguientes: i) Si X0 es un vértice de K. además. Proposición 2. también se alcanza en cualquier combinación lineal convexa de los mismos. Xp los vértices de K y sea X0 una solución factible mínima.2.

1]. Proposición 2.…. el punto X = (x1. Demostración Supongamos que X no fuera vértice. que existe un vértice de K en el que la función objetivo z= cT X alcanza su valor mínimo.…. que sean linealmente independientes y de forma que: x1 A1+ x2 A2 +…+ xk Ak = b con las xi  0.…. X1. 0. [0.…. i  0 . x12. 0.  i1 q i = 1 cT X = cT ( 1 X1 + 2 X2 +…+q Xq) = 1 cT X1 + 2 cT X2 +…+q cT Xq = = (m1 + m2 +…+mq) = m (1 + 2 +…+q) = m con lo cual la proposición queda demostrada. x1k.…. 0)T con X1  X2. Para probar la segunda parte de la propiedad supongamos que z alcanza su valor mínimo en X1. Si tenemos un conjunto de k vectores A1. A2. Xq y que X es una combinación lineal convexa de ellos: X=  i1 q i Xi . xk. por lo que podemos escribir: x11 A1+ x12 A2 +…+ x1k Ak = b x21 A1+ x22 A2 +…+ x2k Ak = b .38 Supongamos que cT X1 = min cT Xi i Investigación Operativa m  cT ( 1 X1 + 2 X1 +…+p X1) = cT X1(1 + 2 +…+p) = cT X1  m por consiguiente cT X1 = m. 0)T es un vértice del conjunto convexo K de soluciones factibles. Además. X2K Puesto que las coordenadas de las soluciones factibles son no negativas y 0 deberá ocurrir que las n-k coordenadas últimas de X1 y X2 fueran iguales a cero: X1 = (x11. x22. X2. entonces.….…. Ak. 0)T X2 = (x21. x2k.….3. 0. entonces podría expresarse como combinación lineal convexa de dos puntos distintos de K: X =  X1 + (1-) X2. x2. es decir. por ser soluciones factibles. se cumple que AX1=b y AX2=b.

A2.Programación Lineal 39 Restando las expresiones anteriores obtenemos: (x11 .x2k) Ak = 0 y por ser los vectores A1. que las k primeras coordenadas son las no nulas. por lo que necesariamente X debe ser un vértice de K. a lo sumo. Demostración: Supongamos. xn)T es un vértice de K.x21) A1+ (x12 . m de estas coordenadas xi son positivas. de lo que se sigue que.…. A2. Si los sumamos y restamos: . Ak linealmente independiente llegamos a la conclusión de que: x11 = x21 x12 = x22 … x1k = x2k es decir. Si tenemos un vector X = (x1.4. Proposición 2.…. lo que contradice el hecho de haber supuesto X1  X2. entonces : x1 A1+ x2 A2 +…+ xk Ak = b Si los vectores A1. entonces los vectores Ai asociados con las coordenadas xi positivas forman un sistema linealmente independiente. que X1 = X2. para simplificar.….x22) A2 +…+ (x1k . Ak son linealmente dependientes. x2. podremos encontrar una combinación lineal de los mismos igual a cero con algún coeficiente no nulo: 1 A1+ 2 A2 +…+ k Ak = 0 Así tenemos:  k xi Ai = b   i Ai = 0 i1 i1 k donde  > 0.

… 0)T= 2X Despejando X= ½ (X1 + X2). . x2 +  2. Ak sean linealmente dependientes. An . como máximo. lo cual contradice el hecho de que X sea vértice. 2xk . A2 .…. Supongamos que k  m y que podemos encontrar solamente Ak 1 . Demostración La Proposición 2. como estos vectores son m-dimensionales no podremos tener más de m linealmente independientes.  i Ai = b i1 i1 k k Es decir. Ar vectores adicionales tales que el conjunto A1 . .…. Ar . A2 .…. . . 2x2.40 Investigación Operativa   i1 i1 k k xi Ai +   i Ai = b xi Ai . resulta: X1 + X2 = ( 2x1. xk +  k. Proposición 2. desarrollando las expresiones anteriores: (x1 +  1 ) A1 + (x2 +  2 ) A2 +…+ (xk +  k ) Ak = b (x1 . Ak . 2. A2. x2 . Esto contradice la suposición de que tenemos siempre un conjunto de m vectores linealmente independientes A1 .… 0)T Sumando X1 y X2. . k ) Ak = b De manera que tenemos dos soluciones distintas del sistema de ecuaciones: X1 = (x1 +  1. A cada punto extremo del poliedro convexo se encuentra asociado un conjunto de m vectores linealmente independientes del conjunto dado A1 . prueba que existen k  m vectores linealmente independientes. 1 ) A1 + (x2 .5. Para k =m la propiedad 2. . . 1. 0. por tanto son linealmente independientes y. m de las xi serán positivas. Am asociados con cada punto extremo.5 queda comprobada. de ahí que. 2 ) A2 +…+ (xk .…. Los n-r vectores restantes dependen de A1 . 0. De ahí que. k. xk . no puede hacerse la hipótesis de que los vectores A1. para r m es linealmente independiente.… 0)T X2 = (x1 .4. 0. Ak 1 . Ar .

Programación Lineal 41 Teorema 2. xm. es un vértice de K (conjunto convexo de soluciones factibles). Sea el problema de programación lineal: Min z = cTX st AX = b X0 Supongamos que tenemos una solución factible básica.. las diversas circunstancias de su preparación antes de aplicar el algoritmo y los casos especiales identificables en la tabla solución (última tabla). entonces hay un vértice de K (conjunto de soluciones factibles) en el que la función objetivo alcanza su mínimo ( o su máximo). 0)T que verifica: . El máximo número de vértices que puede tener el convexo K es Cn.…. 0.…. se conoce una solución de punto extremo en términos de m vectores A j del conjunto original de n vectores. Max z = Min (-z) Cada solución factible básica corresponde a un vértice de K. que las variables no nulas sean las n-m finales X = (x1. si x1 A1+ x2 A2 +…+ xn An = b y las xi > 0 son coeficientes de los vectores Ai linealmente independientes. (Caracterización de los vértices de K) El vector X = (x1. de coordenadas no negativas. x2.. Demostración La demostración es inmediata aplicando las proposiciones 3 y 4.7. . n m 2. A2. xn)T. An. es decir.   Aplicando un algoritmo llamado método del Simplex en un número finito de pasos (en general entre m y 2m) se llega a la solución factible óptima. x2. Resumiendo lo anteriormente expuesto mediante propiedades y teoremas tenemos: Si existe solución al problema de programación lineal.…. es decir.1. A cada vértice de K se puede asociar una base de dimensión m del conjunto de vectores A1. Algoritmo del Simplex El alumno debe aprender la utilización del método del simplex que proporciona la solución de un problema de programación lineal. m=   . Podemos hacer que este conjunto de m vectores linealmente independientes sean los primeros m..

i=1.. n y si escribimos todas las ecuaciones: 11 A1   21 A2     m1 Am  A1  A   A     A  A  12 1 22 2 m2 m 2  . j  1..  j Investigación Operativa (2.... 2. x2=b2. resulta: (x1 ...j  i j 0.…... m x’i = j  0...j  2 j ) + … + cm (xm ..5) La función objetivo en X’ = (x’1..j (zj -cj) (2..j  1 j )A1 + (x2 .. pues bien si a (2.6) donde z es el valor de la función objetivo en X.42 x1 A1  x2 A2    xm Am  b. podemos expresar cada uno de los n vectores dados como combinación lineal de los vectores de esa base:  i 1 m ij Ai  A j .1) Como los vectores Am forman una base en el espacio m-dimensional.4) con lo cual. 2.. x j  0. Tomemos un j de modo que Aj no esté en la base dada.. x’2.. …. x’2. si elegimos j  0. x’n)T es una solución factible.. si A1....j  1 j ) + c2 (x2 .1) le restamos (2.....….3) Observando en (2... y zj viene dada por la expresión: . .... m tendremos que el vector X’ = (x’1. 2. Am es la base canónica de los vectores unitarios entonces x1=b1......1) que.. A2. en los demás casos (2. x’n)T. i=j x’i = 0. toma el valor z’ = c1 x1’ + c2 x2’+ … + cm x’m + j cj = = c1 (x1 ...j  m j ) + j cj= = z . 1n A1   2 n A2     mn Am  An  y la función objetivo z tomará en el vértice X el valor: z = c1 x1 + c2 x2 + … + cm xm (2.. ... solución factible. de modo que xi ..2) (2...….j  2 j )A2 + … + (xm .j  i j 0 para i=1. donde: x’i = xi ..j  m j )Am + j Aj = b (2. ....... Rm..2) multiplicada por un escalar j... xm=bm.

0. …. por lo que la nueva solución factible X’ = (x’1.6) vemos que debemos seleccionar j y j de forma que verificándose (2. en calcular las cantidades (zj -cj) > 0 observando las relaciones (2.5) se tenga que j(zj-cj) sea positivo y máximo. éstas corresponden a las variables cuyos vectores asociados. x2’. z’= z. A3. A3. si los incluimos en la base. Estudiaremos dos casos: i) ii) ij > 0 ij  0 Caso i): j  0.8) i    ij  y esto para cada j para el que se cumpla (zj -cj) > 0. ….j (zj -cj). Am+1 son linealmente independientes (Vea el teorema de caracterización de los vértices de K). si el mínimo en (2.7) 43 así pues. Am son linealmente independientes.  i j > 0 x’i = xi . con lo cual z’<z. Para probar que los vectores A2.10). por ejemplo. supongamos que éste es j=m+1.…. xm’. obtenemos: . Por tanto. mejoran el valor de la función objetivo.m+1  1. por tanto.8) se alcanza. para i=1. Am+1 son linealmente independientes.….m1  ij  (2. puesto que los vectores A2. m+1 = 0.5). A3.Programación Lineal zj = c1  1 j + c2  2 j + … + cm  m j (2. deberá ser m+10. supongamos que fueran linealmente dependientes. despejando Am+1 de (2.j  i j 0.9) ello significará que x 1’ = x1 . a continuación calcularemos los productos j (zj -cj) y nos quedaremos con el índice j que da el producto mayor. ello significará que seleccionamos el vector Am+1. m+1 = x1 - 1. es decir: x  x1   m+1 = min  i /  ij  0 = i   1. j   ij xi . 0)T será un vértice de K (conjunto de soluciones factibles) si los vectores A2. m+1.10) para algún i distinto de cero y.…. esto quiere decir que existirá i tal que 2 A2 +  3j A3+ … +  m Am+  m+1 Am+1 = 0 (2.m1 x1  1.…. por otra parte. x’2. x’n)T = (0. x    j = min  i /  ij  0 (2. El procedimiento consiste. en (2.

A2. A2. m) (2. en cuyo caso ya no se podría disminuir la función objetivo y. A2. . n.cj ) >0 Como se puede elegir un j tan grande como quiera.2).. al ser A1. m)Am por lo que. m+1 A1 + ( 2. m+1 A1 +  2. El proceso se volvería a repetir tomando X’ como solución factible básica inicial y se iría repitiendo el proceso hasta encontrar zj-cj  0 para todos los valores de j=1. únicamente resulta sencillo en problemas con pocas variables de decisión. Am+1 son linealmente independientes.  i j  0 x’i = xi . Caso ii): j  0.3 A3 -…. 2.j  i j z’ = z.11) de (2..…. con j=m+1. ocurrirá que z’ tiende a menos infinito. sin embargo se supuso positivo (vea (2.. se habría alcanzado el mínimo con el vector X que se tuviera en esa etapa. por lo que X’ es un vértice de K y además vuelve a ser una solución factible básica puesto que tiene n-m coordenadas nulas y el resto son no negativas.11) haciendo  i=- Am+1 =  2 A2 +  3 A3 +…+  m Am Restando (2. es decir. Cualquier problema de programa lineal puede reducirse a la búsqueda de mínimos en un conjunto finito de puntos (las soluciones básicas factibles). 2) A2 +…+ ( m.44 Am+1 = i  m1 Investigación Operativa   2 A2 .. El más famoso de los métodos de resolución de programas lineales (el método Simplex) está basado en la localización de una solución básica inicial y el paso de una a otra hasta encontrar la óptima. . con (zj . m+1 .. m+1 .cj ) . m+1 A2 +…+  m. encontramos que Am+1 = 1. Por supuesto encontrar todas las soluciones básicas de un programa lineal requiere de grandes esfuerzos de cálculo.j (zj . m+1 Am 0 = 1.9)). por tanto. .…. no existe solución. . En consecuencia.m Am m1 m1 m1 (i=2. Am linealmente independientes obliga a que 1.m+1=0 y.

en las tablas del simplex aparecen gran número de ceros. un computador no reconoce esas situaciones y pierde tiempo realizando operaciones que realmente no son necesarias. o que sumar cero a un número no altera el resultado. la magnitud de los problemas lineales que aparecen en la mayoría de las situaciones reales hace impensable su tratamiento mediante el método simplex de forma manual. ya que se almacenan y calculan muchos números que no son estrictamente necesarios. En tales situaciones debe recurrirse al uso de los computadores electrónicos. Sin embargo. para un humano no supone ningún problema reconocer los ceros y darse cuenta que al multiplicar un número por cero resulta cero. . el método Simplex no resulta muy económico desde un punto de vista computacional. Sin embargo.Programación Lineal 45 Dentro de los aspectos computacionales. Por ejemplo.

m) se tiene: c 1 (   1 j y j) + c 2 (   2 j yj) + … +cm (   j1 j1 j1 n n n mj yj)  z (2. xn)T un punto extremo en el cual la función objetivo vale z0 y para el que se verifica que (zj .. 2.13) cada zj (j=1. n) Y= (y1. 2.cj )  0  zj  cj y sustituyendo en la expresión (2.. Demostración Sea X = (x1. n) por su valor zj = c1  1 j + c2  2 j + … + cm  m j = tenemos: (  c i  i 1 ) y1 + (  c i  i 2) y2+ … + (  c i  i n) yn  z i1 i1 i1 m m m  i1 m ci ij Agrupando términos en c i (i=1. (2.14) Puesto que Y es una solución factible . j (j=1. n). 2..46 Investigación Operativa Teorema 2.…..13) Sustituyendo en (2.cj )  0. j (j=1..12) cada cj por zj tenemos: z1 y1 + z2 y2+ … + zn yn  z (2. .. . x2.cj )  0. yn)T.. 2. Hemos de probar que para cualquier otra solución (zj .. 2. con yi  0 y valor de la función objetivo: z = c1 y1 + c2 y2+ … + cn yn se verifica z0  z.. y2...12) Como (zj . entonces... j (j=1.. .2..….cj )  0. n). Si en algún paso (puede ser el primero) del método simplex se verifica que (zj .. el último vértice obtenido es la solución óptima. .

Ejercicio 1.15) 47 Aj =  1 j A1+  2 j A2+ … +  m jAm =   i j A i i1 m Sustituyendo este valor en (2. A2.. . xm =   m j yj j1 j1 j1 n n n Sustituyendo en (2. 2.14) se tiene: c1 x1 + c2 x2+ … + cm xm  z es decir z0  z . por lo cual: x1 =   1 j yj . Am linealmente independientes. …. n) por su valor: (2. b se escribe de forma única. Resuelva mediante el Método Simplex el problema de programación lineal siguiente: Min z = –5x1+2x2-3x3 st 2x1+2x2-x34 ... x2 =   2 j yj .15) para cada uno de los j: y 1 (   i 1 Ai) + y 2 (   i 2 Ai) + … + y n (   i n Ai) = b i1 i1 i1 m m m Ahora agrupamos términos en A i: (   1 j yj )A 1 + (   2 j yj)A2+ … + (   m j yj) Am = b j1 j1 j1 n n n Como X es un punto extremo x 1 A1+ x 2 A2+ … + x m Am = b y por ser los vectores A1. ..Programación Lineal y 1 A1+ y 2 A2+ … + y n An = b Sustituyendo Aj (j=1..

x  b   iii) Para los valores (zj -cj) >0 calculamos j = min  i  i /  ij  0 . de manera que tengamos una base canónica para comenzar el método del simplex: Min z = .x2+x33 2x1+x2+3x35 xi  0 (i=1.2=0.cj) nos j proporciona el vector j-ésimo que entra en la base. para j=1. 4. z1 .48 3x1.x2+x3+x5 = 3 2x1+x2+3x +x6= 5 xi  0 (i=1.c1 =0 .2+0. i    ij  ij  iv) Buscando que j (zj -cj) sea positivo y máximo. zj. 2. el valor de j que hace max j (zj . Para ver que vector sale de la base y cuál entra operamos de la forma siguiente: i) Calculamos zj = c1  1 j + c2  2 j + … + cm  m j. 2.   x  v) El valor de i que hace min  i /  ij  0 nos proporciona el vector i    ij  i-ésimo que sale de la base y. 3. 0.j El vértice inicial de partida es X=(0.3+0. 5)T.(-5)=5 . Por ejemplo. z1 = 0. 3) Investigación Operativa Pasando el problema a forma estándar añadiendo variables artificiales. tenemos. 3) Primera tabla Se lleva a la tabla los datos del problema y se comienza a operar de acuerdo con el algoritmo del simplex: cj -5 b A1 4 2 3 3 5 2 0 0 zj-cj 5 5 j(zj-cj) 2 A2 2 -1 1 0 -2 -3 A3 -1 1 3 0 3 5 0 A4 1 0 0 0 0 0 A5 0 1 0 0 0 0 A6 0 0 1 0 0 1 3 2 -3 1 5/2 5/3 1 5/3 Base A4 A5 A6 cB 0 0 0 z. ii) Calculamos (zj -cj). 0.5x1+2x2-3x3+0x4+0x5+0x6 st 2x1+2x2-x3+x4 = 4 3x1.

Veamos como se obtiene   : 1   0   Base A5 A1=A5/3 A4 2·A1 A4-2·A1 A6 2·A1 A6-2·A1 cB b A1 3 1 A2 A3 A4 A5 A6 3 1 4 2 2 5 2 3 -1 -1/3 2 -2/3 8/3 1 -2/3 5/3 1 1/3 -1 2/3 -5/3 3 2/3 7/3 0 0 1 0 1 0 0 0 1 1/3 0 2/3 -2/3 0 2/3 -2/3 0 0 0 0 0 1 0 1 2 2 0 2 2 0 Llevando lo anterior a la tabla. El elemento pivote (que ha de ser un 1) se forma en el cruce del vector  A1    0 que entra con el que sale (A1/A5). tenemos: . n). . i2  21  21 3  El vector entrante en la base formará parte de la base canónica de manera que el elemento pivote.. j (j=1. 2. j 1 x b 3 . deberá valer uno y el resto cero. tenemos: cj b 2 1 3 -5 A1 0 1 0 2 A2 8/3 -1/3 5/3 -3 A3 -5/3 1/3 7/3 0 A4 1 0 0 0 A5 -2/3 1/3 -2/3 0 A6 0 0 1 Base A4 A1 A6 cB . en nuestro caso el 3. El vector A1 que entra en la base se convierte en un elemento de la base canónica.El vector que sale de la base es el A5 (1 = min  2  2   =1).Programación Lineal 49 Realizadas las operaciones correspondientes.El vector que entra en la base es el A1 ( max 1 (z1 –c1)=1.cj )  0..5=5). que se genera en el cruce del vector que entra y el vector que sale.. Este proceso se repite de forma iterativa hasta que se verifique (zj .

0)T.1448 -5 4/7=0. j -47/7=-6. La solución mediante la matriz inversa asociada a la tabla del simplex. A5 y A6 de la tabla: 1  8 / 7 5 / 7     {A4. A6}=  0 3 / 7  1 / 7  0  2 / 7 3 / 7   B 1 ..5714. 0. zj. 0.50 Investigación Operativa Segunda tabla cj -5 Base cB b A1 0 2 0 A4 -5 1 A1 1 0 3 0 A6 -5 -5 z. por lo que hemos llegado a la etapa final. 29/7.2857 z. n). j (j=1.cj )  0.7142 El vértice final obtenido es X=(4/7. 9/7. en este caso a los vectores A4. z = -6. x2=0 (no aparece).7142 zj-cj j(zj-cj) 2 A2 8/3 -1/3 5/3 5/3 -1/3 - -3 A3 -5/3 1/3 7/3 -5/3 4/3 12/7 0 A4 1 0 0 0 0 - 0 A5 -2/3 1/3 -2/3 -5/3 -5/3 - 0 A6 0 0 1 0 0 - 3 3 9/7 9/7 -5 A1 0 1 0 -5 0 2 A2 22/7 -4/7 5/7 5/7 -9/7 - -3 A3 0 0 1 -3 0 - 0 A4 1 0 0 0 0 - 0 A5 -8/7 3/7 -2/7 -9/7 -9/7 - 0 A6 5/7 -1/7 3/7 -4/7 -4/7 - Observando la tabla tenemos (zj . ..2857. Tercera tabla cj Base A4 A1 A3 cB b 0 29/7=4.5714 -3 9/7=1. j zj-cj 0 j(zj-cj) Entra A3 y sale A6. zj. B-1 la podemos encontrar directamente en la última tabla del simplex observando los vectores correspondientes a los de la base inicial. x3=9/7=1. 2. Para buscar la solución dentro de la tabla miramos la columna b y encontramos: x1=4/7=0. A5..

000000 1. A3}=  0 3 1  0 2 3    Si resolvemos el ejercicio anterior con el programa LINDO. A4.571 .285714 0.286 3. tenemos: Min -5x1+2x2-3x3 st 2x1+2x2-x3 <= 4 3x1.714286 VALUE 0.000 0. A1 y A3: 1 2  1   B  {A4.714 4.571429 0.000 0.429 0.000000 0.571429 ROW (BASIS) 1 ART 2 SLK 2(A4) 3 X1(A1) 4 X3(A3) X1(A1) 0.000000 ROW 2) 3) 4) THE TABLEAU SLACK OR SURPLUS 4.000 1.000000 1.143 0.000000 1.000 X2(A2) 1.571 0.000 -0.x2+x3 <= 3 2x1+x2+3x3 <=5 LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) VARIABLE X1 X2 X3 -6.Programación Lineal 1  8 / 7 5 / 7  4   29 / 7       B b  X o   0 3 / 7  1 / 7  3    4 / 7   0  2 / 7 3 / 7  5   9 / 7       1 51 y la matriz B se obtiene de la primera tabla mirando la base que figura en la última tabla del simplex.857 -0.000 1.714 X3(A3) 0.000000 DUAL PRICES 0.286 1.714 -0.286 ROW 1 2 3 SLK 4(A6) 0.143 0.000 0.571 0.143 6.285714 0.000 0. A1.000 SLK 2(A4) SLK 3(A5) 0.000 0.000 -1.285714 REDUCED COST 0.000 1.142857 0.

3) Para ciertos valores de los recursos. A5. A3}=  0 3 1  0 2 3    Ejercicio 2. A6}=  0 3 / 7  1 / 7  0  2 / 7 3 / 7   B 1 1 2  1   B  {A4. zj-cj cj b b1 b2 0 -5 A1 1 1 5 -2 A2 5 -5 2 -3 A3 2 -6 3 0 A4 1 0 0 0 A5 0 1 0 . d.52 4 0. Solución: Tabla 1 Base A4 A5 cB 0 0 z. b. c3.429 1.286 Investigación Operativa Operando de la misma forma para obtener las matrices: 1  8 / 7 5 / 7     {A4. b) Los valores de: a. la solución es: cj b 30 10 -150 -5 A1 1 0 0 -2 A2 b c a c3 A3 2 -8 -7 0 A4 1 -1 d 0 A5 0 1 e Base A1 A5 cB -5 0 zj-cj Calcule: a) Los recursos. 2. c. Considere el problema siguiente: Max z= 5x1+2x2+3x3 st x1+5x2+2x3b1 x1-5x2-6x3 b2 xi  0 (i=1. e. A1.

para iniciar el método simplex. a continuación. b) a= -23.b1=10. La base canónica inicial la configuraremos con las variables de holgura más las variables artificiales necesarias hasta tener esa base canónica. c= -10. Es oportuno resaltar la diferencia entre variables de holgura y variables artificiales.b1 -150 -5 A1 1 0 0 -2 A2 5 -10 -23 -3 A3 2 -8 -7 0 A4 1 -1 -5 0 A5 0 1 0 Base A1 A5 CB -5 0 z. b2. . b2= 40. Éstas construyen un problema artificial más conveniente desde el punto de vista del método simplex. necesitaremos de lo que se conoce como variables artificiales. Determinación de una base inicial Hemos supuesto en el método del simplex que partíamos de una primera solución extrema a la cual teníamos asociada una base canónica. Veamos como siempre es posible conseguir esto.8. b = 5.Programación Lineal 53 Tabla 2 Por la información que nos proporciona la tabla del enunciado. tenemos: a) b1= 30. podremos aplicar directamente el método del simplex. por lo que tendremos que recurrir a métodos que nos conduzcan a él. c3= -3 2. Para conseguir partir de una base canónica. sale de la base A4 y entra A1 cj b b1 b2. Las primeras se introducen para convertir desigualdades en igualdades. Si al introducir las variables de holgura necesarias para escribir el problema en forma estándar ya tenemos la base canónica. Veamos. e= 0. En la mayoría de los casos la situación anterior no se producirá. zj-cj Identificando. mientras que las variables artificiales se introducen para facilitar el comienzo del método simplex. d= -5. un método que nos ayude a resolver los problemas que contengan variables artificiales.

y que entren las otras variables. Método de la “M” o de Penalización Investigación Operativa En este método la función objetivo se modifica para que imponga una penalización muy grande sobre las variables artificiales en el caso de que adquieran valores mayores que cero. Xa= 0. las Xa. Xa  0 En la resolución del problema por este método. X=0 Debemos buscar la forma de hacer salir las variables artificiales. Consideremos el siguiente problema de programación lineal planteado en su forma estándar: Min z = cTX st AX = b X0 Añadimos en las restricciones las variables artificiales necesarias para tener en la primera tabla del simplex una base canónica. pueden presentarse los casos siguientes: a) Tengamos solución finita: i) Que el problema admita una solución óptima. Para ello les asociamos un valor muy grande M ( no es necesario especificar el valor de M) en la función objetivo. es decir. hasta que todas quedan fuera de la solución.1. con todas las variables artificiales iguales a cero. Min z = cTX + M 1T Xa st AX + I Xa =b X  0. . con lo cual tenemos el sistema siguiente: AX + I Xa = b X  0. Las iteraciones del método simplex automáticamente fuerzan a las variables artificiales a desaparecer (a volverse cero) una a una.54 2.8. Xa  0 Tenemos como solución inicial: Xa =b. entonces la solución obtenida es única y óptima.

.j 75M zj-cj j(zj-cj) -1 -6 A1 A2 1 2 2 1 2 1 3M 3M 3M+1 3M+6 30M+60 4 A3 -1 1 4 3M 3M-4 0 A4 0 1 0 0 0 0 A5 0 0 -1 -M -M M A6 1 0 0 M 0 M A7 0 0 1 M 0  10 40 55 . 7) Primera tabla Se llevan a la tabla los datos del problema “artificial” y se comienza a operar de acuerdo con el algoritmo del simplex: cj Base A6 A4 A7 cB b M 20 0 40 M 55 z. la misma solución óptima que el problema real.. 2. no tenemos solución. Xa= 0.. zj. debemos construir un problema “artificial” que tiene. 3) Como explicamos anteriormente. en caso de que exista. para resolver este problema. entonces el problema original es imposible. . iv) Exista al menos una variable artificial que sea positiva. en este caso tenemos una solución no finita. 2. entonces el problema original es imposible. b) Tengamos solución no finita: iii) Con todas las variables artificiales iguales a cero.Programación Lineal 55 ii) Que el problema admita una solución óptima en la cual encontraremos al menos una variable artificial distinta de cero. Consideremos el siguiente problema: Max z = x1+6x2-4x3 st x1+2x2-x3 =20 2x1+ x2+x3  40 2x1+ x2+4x3  55 xi  0 (i=1. Xa 0.x1-6x2+ 4x3+ 0 x4+ 0 x5+ M x6+ M x7 st x1+2x2-x3 + x6 =20 2x1+ x2+x3 + x4 = 40 2x1+ x2+4x3 – x5+ x7 = 55 xi  0 (i=1. Min z = .

.56 Investigación Operativa A los valores que hayan resultado ser (zj -cj) >0... Este proceso se repite de forma iterativa hasta que se verifique (zj . en nuestro caso el 2. ya nunca más volverá a entrar. zj.j45M-60 3M/2-3 zj-cj 3M/2-2 j(zj-cj) cj -6 A2 1 0 0 -6 0 4 A3 -1/2 3/2 9/2 3M 9M/2-1 45M+10 0 A4 0 1 0 0 0 0 A5 0 0 -1 -M -M M A6 M A7 0 0 1 M 0  20 10 Base A2 A4 A7 Entra A3 y sale A7. Segunda tabla -1 cB b A1 -6 10 1/2 0 30 3/2 M 45 3/2 z.. zj.cj )  0. que. deberá valer uno y el resto cero. por lo que hemos llegado a la etapa final. tenemos que entra A2 y sale A6. n).. elegimos la de mayor diferencia y aplicamos el criterio x    j = min  i /  ij  0 i    ij   y buscando que j (zj -cj) sea positivo y máximo. . por corresponder a una variable artificial. . 2.. en nuestro caso se da para varios j. por corresponder a una variable artificial. j (j=1. 2. El vector entrante en la base formará parte de la base canónica de manera que el elemento pivote. Tercera tabla cj Base A2 A4 A3 cB b -6 15 0 15 4 10 z. j (j=1. que se genera en el cruce del vector que entra y el vector que sale. ya nunca más volverá a entrar. n). que.cj )  0.j -50 zj-cj -1 A1 2/3 1 1/3 -8/3 -5/3 -6 A2 1 0 0 -6 0 4 A3 0 0 1 0 0 0 A4 0 1 0 0 0 0 A5 -1/9 1/3 -2/9 -2/9 -2/9 M A6 - M A7 - Observando la tabla tenemos (zj . Para buscar la solución dentro de la tabla miramos la columna b y encontramos: .

x2 =15.2 Método de las dos fases Supongamos un problema planteado en su forma estándar Min z = cTX st AX = b X0 Añadimos en las restricciones las variables artificiales. Xa  0 Si el problema original tienen solución factible. x2 =15. x4 =15. el mínimo del problema anterior se alcanzará cuando las variables artificiales Xa =0 y z=0. necesarias para tener en la primera tabla del simplex una base canónica. Fase II: En esta segunda fase.8.Programación Lineal 57 x1= 0. x5= 0. la solución del problema original planteado (maximización) es: x1= 0. Xa. x3= 10. z = 50 2. Consideremos el siguiente problema: . z = -50 Luego. Xa  0 Su resolución se abordará en dos fases: Fase I: Esta primera fase consiste en resolver previamente el problema siguiente: Min z = 1TX a st AX + I Xa =b X  0. con lo cual tenemos el sistema siguiente: AX + I Xa =b X  0. x3= 10. resolveremos el problema original planteado utilizando la última matriz obtenida en la Fase I y por tanto dicha base.

Para los zj-cj >0 .58 Min z = x1. h3=2. holgura y artificiales y la función objetivo de la primera fase (la función objetivo del enunciado se optimiza en la segunda fase) es : Min z = a1+a2 st x1+x2.2x2 st x1 +x2  2 -x1 +x2  1 x2  3 x1 0 . tenemos: Primera tabla cj Base cB b A4 1 2 A6 1 1 A7 0 3 z zj j 3 zj-cj 0 A1 1 -1 0 0 0 0 A2 1 1 1 2 2 0 A3 -1 0 0 -1 -1 1 A4 1 0 0 1 0 0 A5 0 -1 0 -1 -1 1 A6 0 1 0 1 0 0 A7 0 0 1 0 0  2 1 3 1 Segunda tabla cj b 1 1 2 1 j zj-cj j(zj-cj) Base A4 A2 A7 cB 1 0 0 z zj 0 A1 2 -1 1 2 2 1 0 A2 0 1 0 0 0 - 0 A3 -1 0 0 -1 -1 - 1 A4 1 0 0 1 0 - 0 A5 1 -1 1 1 1 1 1 A6 -2 0 A7 A A5 0 1 /2 1 0 1 2 2 0 1/2 1 0 Solución de la tabla. a1=1. z=1. al ser la función objetivo de minimizar y tener zj-cj positivos la solución no es óptima. El problema con las variables de exceso . x2=1.x1+x2 -h2+ a2 =1 x2+ h3 =3 pasamos a la tabla los datos y operamos según el algoritmo del simplex. x2  0 Investigación Operativa Vamos a resolverlo por el método de las dos fases.h1+ a1 =2 .

será la nueva variable básica. la solución no es óptima.1 0 1 3 3 0 3 1 0 - Cuarta tabla cj b 1 2 1 -4 j zj-cj Base A5 A2 A7 cB 0 -2 0 z zj 1 A1 2 1 -1 -2 -1 -2 A2 0 1 0 -2 0 0 A3 -1 -1 1 2 2 0 A5 1 0 0 0 0 0 A7  A3 0 0 1 1 0 0 Solución de la tabla. 0. 0)T. la cual no volverá a entrar en la base y por lo tanto se puede eliminar de la tabla. siendo a1 la fila donde se alcanza el valor mínimo de j y por lo tanto la variable que deja de ser variable básica.Programación Lineal 59 calculamos j. cj 1 -2 0 0 0 Base cB b A1 A2 A3 A5 A7 A5 0 2 1 0 0 1 1 A2 -2 3 0 1 0 0 1 A3 0 1 -1 0 1 0 1 z zj j -6 0 -2 0 0 -2 zj-cj -1 0 0 0 -2 El punto extremo es X1=(0. h2=1. h1 será la nueva variable básica. z=-4. Para los zj-cj >0 calculamos j. con lo cual terminamos la primera fase al obtener en la próxima tabla z=0 con a1=0. 3. . siendo h3 la fila donde se alcanza el valor mínimo de j y por lo tanto la variable que deja de ser variable básica. y el valor máximo de j(zj-cj ) se alcanza en x1 y en h2. a2=0. 0. 0. tomamos x1 por tener mayor zj-cj . x2=2 h3=1. Introducimos entonces la función objetivo original min z=x1-2x2 y continuamos con el algoritmo del simplex: Tercera tabla cj b 1 /2 3/2 3/2 j -5/2 zj-cj j(zj-cj) Base A1 A2 A7 cB 1 -2 0 z zj 1 A1 1 0 0 1 0 - -2 A2 0 1 0 -2 0 - 0 A3 -1/2 -1/2 1/2 1/2 1/2 3/2 0 A5 1 /2 -1/2 1/2 3/2 3/2 3/2 0 A7 A3 A5 0 . z=-6.

Compruebe. pero que cumple (zj .. obtendríamos todos los vértices que son soluciones óptimas. 2.cj)= 0. . Soluciones múltiples Cualquier problema de Programación Lineal con soluciones óptimas múltiples (y una región factible acotada) tiene al menos dos soluciones factibles en los vértices que son óptimas.9.x3  1 x2+ 2x4  8 xi  0 (i=1. tal que no pertenece a la base.. 0)T así como toda combinación convexa de dichos puntos. La función objetivo es: z’ = z . Repitiendo este proceso para cada una de las “j” que no pertenecen a la base y verifican (zj . X2=(4.cj ) = z no hemos mejorado la solución anterior.j (zj . mediante el método simplex. 7/2.cj )  0. 6) Los puntos extremos son: X1=(2. se encuentra observando si tengo algún vector j. 2.. 0. Min z = x1-2x2+3x3 st x1. también sería solución óptima.10. 1. Toda solución óptima es una combinación lineal convexa de las soluciones factibles básicas óptimas. si es así. 0)T. . 4. que el problema siguiente presenta dos puntos extremos. Soluciones degeneradas Al desarrollar el algoritmo del simplex supusimos que las soluciones eran siempre no degeneradas. 0. Tomando una combinación lineal convexa de ellas.60 Investigación Operativa 2. de manera que. El método simplex se detiene automáticamente al encontrar una solución factible básica óptima. j.x2+x3 + 2x4 =10 x2. en un número finito de iteraciones llegábamos a la solución óptima. Supongamos que ya hemos encontrado una solución óptima (mínima) de un problema y que se verifica (zj . 0. Una vez que el método simplex encuentra una solución factible básica óptima. se puede detectar si existen otras y. 1. 0. esto nos indicará que existe multiplicidad de óptimos.cj)= 0. por lo cual el problema tiene infinitas soluciones.

.…. b) = rang (A) = m. A2. . Descomponiendo la matriz A de forma que A=(B. esto es. estaríamos en un punto extremo que tiene menos de “m” coordenadas positivas. tenemos BXB = b. en el nuevo punto extremo al que se pasan todas las coordenadas de X para las cuales se alcanza ese mínimo serían nulas. un punto extremo degenerado. x2. Denotemos por Ai la columna i-ésima de la matriz A y supongamos que los m vectores linealmente independientes son los m primeros A1. Se identifica en la tabla simplex porque al menos una variable básica tiene valor cero en la columna de solución.Programación Lineal 61  ij elegir uno cualquiera y. Consideremos el siguiente problema de programación lineal: Min z = cTX st AX = b X0 donde A es una matriz de orden mxn y sea rang (A. 0. la matriz no básica (los Ai que no son de la base). 0)T. si al calcular el valor de j = min  i /  ij  0 existen varios i i    ij  xi tal que minimizan . El método del simplex revisado Un procedimiento más eficiente que el simplex en su versión matricial es el llamado simplex revisado. x    Ahora bien. Am. Este caso se presenta cuando se valora una solución básica no única. N) donde Bmxm es la matriz básica y N(mx(n-m)). la cual se tiene con al menos una variable básica de valor cero en el sistema de m restricciones. alguna de ellas debe ser restricción redundante que contiene sólo un punto vértice del conjunto factible. X  Cualquier solución básica es de la forma X=  B  X   N donde XN = 0 y BXB = b Si XB es una solución factible básica. Am) es la matriz básica.….. es decir. Se podría 2.. A2. entonces. no se podría hacer salir a la vez a todos ellos. XB = (x1. xm.. la matriz B= (A1.11. XB = B-1 b .

 m j )T. Ayuda:  b11  B   b21 b  31  1 1  0 1 0 1  Max z= st b) Formule el problema Dual y de la solución sin hacer operaciones. al vector columna mx1 se le denomina vector de multiplicadores del simplex asociado a la base B.25 -4.  2 j.5 A6 - a) Haciendo uso de la matriz básica y/o de su inversa formule el problema de programación lineal que corresponde a la tabla anterior.5 A5 -0. Dada la tabla óptima del Simplex: cj b 0.5 -0.62 y puesto que Investigación Operativa Aj =  1 j A1+  2 j A2+ … +  m jAm =   i j A i i1 m esto es Aj = BXj.5 1. Escriba la solución en el recuadro adjunto. ….5 -0.5 0. Xj = B-1 Aj El valor de la función objetivo en ese punto es z = cBTXB= cBT B-1 b y los valores de zj = c1  1 j + c2  2 j + … + cm  m j = m  i1 m ci ij zj =  c i  i j = cBT Xj = cBT B-1 Aj = TAj i1 Donde T= cBT B-1. .5 -0. Veamos el ejercicio siguiente.75 zj-cj Base cB A1 A3 A2 z zj A1 1 0 0 -2 0 A2 0 0 1 -1 0 A3 0 1 0 0 0 A4 0.5 0.5 -0.5 -0. Xj= ( 1 j.75 1. si se sabe que la primera restricción es () y el resto ().75 3.

25   4       La formulación del problema sería: Max z= 2x1+ x2 st 2 x1+ x2  3 3x1+x2 5.5   1 0 1 3. 3):  2  1 1 1   2       Aj=B Xj=  3 0 1 0    3  para j=1  1 0 1 0   1        2  1 1 0  1      A2=B X2=  3 0 1 0   1  1 0 1 1  1       2  1 1 0.5  0.75   3       B X=b=  3 0 1 1.5 1. x2  0 b) Operando con el vector de multiplicadores del simplex asociado a la base B.5 0. 2.5  0   0.5    -1  2  1 1   (B ) =B=  3 0 1  1 0 1   -1 -1 A continuación se calculan los vectores Aj (j=1.  2  1 1   T T tenemos: c =  B=(0 0.5)  3 0 1  (2 0 1)  1 0 1   .Programación Lineal Solución: a) La matriz inversa se obtiene directamente de la tabla: 63 0.75    5.5  0  0. B =   1 0.5 x1+x2  4 x1.5  .

..1.. B-1 B1= R donde R es la matriz identidad reemplazando la r-ésima columna por el vector columna Xj....  . en general la inversa de la base de la k-ésima iteración se obtiene Bk-1 = Ek-1 Ek-2 …. En efecto. Forma producto de la inversa Sea B una base y B-1 su inversa..  E=R =  0 0 ..... es decir. 0  R=    .........   mj /  rj .. podemos conocer B1-1 en términos de B-1. Siguiendo un proceso iterativo... Xj = B-1 Aj. si realizamos un cambio de base a la base B1.......  1 j /  rj ... 0    -1  .64 Investigación Operativa 2.. Ar-1..... tenemos: B2-1= E1 B1-1 = E1 I= E1 B3-1= E2 B2-1 = E2 E1 y...... 0     0 1 .. A2.. tomábamos la base canónica. Ar-1... Am) y supongamos que al realizar el cambio de base introducimos el vector Aj y sale Ar B1= (A1....... Ar+1..... Ar+1. esto es: 1 0 .. B1-1 = I y XB = b. 0     0 1 .…. Am).... E2 E1 ..... Determinación de la inversa...... A2..  2 j . 1 /  rj .. 1 j .   2 j /  rj .. 0     . Aj.......   0 0 . Cuando comenzábamos el método del simplex.......11. .. a la matriz E se la denomina matriz elemental.. Ar. 1 mj   La inversa de R la denotamos por E y viene dada por 1 0 .….... B1=I..........     0 0 ... sea B= (A1.. 1 Entonces B1-1= R-1 B-1= E B-1..

Hay que hacer notar que la presentación de la salida depende del programa utilizado. 2. 2. Utilizando el programa LINDO para resolver el ejercicio 1. En cada iteración hay que controlar si todos los (zj . Las modificaciones deben ser hechas antes de introducir los datos en el programa. utilizaremos el programa LINDO (L = Linear IN = Interactive D = Discrete O = Optimizer). 3.2. E2E1Aj La última columna representa la situación en la k-ésima iteración. El número de variables positivas (decisión + holgura) al finalizar el Simplex debe ser igual al número de restricciones. tenemos: Min z = –5x1+2x2-3x3 st 2x1+2x2-x34 3x1.12. 2. Resolución mediante programa de ordenador 1. 3) . A dicha expresión se la conoce como forma producto de la inversa. la función objetivo no tendría solución finita. en tanto que todos los términos constantes (recursos) aparecerán a la derecha. Si el programa requiere que todas las variables sean no negativas. Nosotros. de lo contrario el problema es degenerado. Xj = Ek-1Ek-2 ….cj …. zj -cj =cB Ek-1Ek-2 …. en cuyo caso ya tendríamos la solución óptima. En la columna de variables de holgura (SLACK OR SURPLUS) vienen los resultados de esas variables (por restricción). se pondrán de manera que cumplan esta condición. 2.cj) > 0 y Xj  0.11. las de valor cero indicarán que el recurso se ha consumido en su totalidad.Programación Lineal 65 que expresa la inversa como producto de matrices elementales.x2+x33 2x1+x2+3x35 xi  0 (i=1. Etapas del método del simplex revisado Toda la información necesaria para aplicar el método del simplex se puede escribir en una tabla: T -1 T T= cBTB-1 z = cB B b zj . mientras no se diga lo contrario.cj = TAj . Si para algún (zj .cj)  0 j. Todas las variables de las restricciones deben aparecer en el primer miembro. E2E1Aj-cj B-1 XB = B-1 b Xj = B-1 Aj ….

285714 0.714 4.571 0.571429 NO.5714.142857 0.286 -1.000000 1.000 0.000000 2 DUAL PRICES 0.000 X2 1.143 0.66 LP OPTIMUM FOUND AT STEP 2 Investigación Operativa OBJECTIVE FUNCTION VALUE 1) VARIABLE X1 X2 X3 -6.286 ROW 1 2 3 4 SLK 4 0. ITERATIONS= THE TABLEAU ROW (BASIS) 1 ART 2 SLK 2 3 X1 4 X3 X1 0.285714 REDUCED COST 0.000 1.571429 0. x2=0 (no aparece). x1= 4/7=0.000000 0.143 0.000 0. el resultado es: z = -6.000 SLK 3 1.857 -0.000 0.286 3.000 1.285714 0. .2857 Que coincide con el obtenido mediante el algoritmo del simplex.429 6.000 1.000 SLK 2 0.000000 ROW 2) 3) 4) SLACK OR SURPLUS 4.714 X3 0.714286.286 Observando la salida del programa.143 0.000 0.429 -0.000 0.571 0. x3=9/7=1.000000 1.571 1.000 0.000000 1.714286 VALUE 0.714 -0.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->