You are on page 1of 35

PROBLEMAS DE PROGRAMACIN

LINEAL (LP)

Planteamiento del problema de


programacin Lineal
Un problema de programacin lineal es cuando la funcin objetivo
es una funcin lineal y las restricciones son ecuaciones lineales;
la forma estndar de un problema con m restricciones y n
variables se representa.
min z = c 1 x 1 + c 2 x 2 + ... + c n x n

matricial

s .a .
a 11 x 1 + a 12 x 2 + ... + a 1 n x n = b 1
a 21 x 1 + a 22 x 2 + ... + a 2 n x n = b 2

a m 1 x 1 + a m 2 x 2 + ... + a mn x n = b m
x 1 0 , x 2 0 ,..., x n 0
b 1 0 , b 2 0 ,..., b m 0

z = cx
Ax= b
x 0, b 0

Ejemplo
max x1 + 3x 2
s.a.

2 x1 + x 2 5
x 1 + 3x 2 9
x1 0
x2 0

En forma matricial sera:

x1
max (1 3)
x2
2 1 x1 5
s.a.

1 3 x 2 9
x1 0

x 2 0

Formulacin de problemas 1
Problema de la dieta
Una persona para su alimentacin normal debe tomar diariamente 75 mg
de protenas, 1.2 mg de calcio, 1.2 mg de hierro y 3600 caloras.
Qu cantidad mnima de leche, huevos y pan debe tomar diariamente
una persona para cubrir las necesidades de calcio y hierro si consume
al da por lo menos 2 rebanadas de pan?

Protenas
Calcio
H ierro
Caloras

Leche
(por taza)
8 gm
0.3 gm
0.1 m g
175

H uevos
(por unidad)
7 gm
0.03 gm
1.5 m g
75

Carne
(por onza)
20 gm
0.01 gm
3.0 m g
150

Pan
(por rebanada)
2 gm
0.01 gm
0.6 m g
75

Queso
(por onza)
7 gm
0.25 gm
0.1 m g
100

Formulacin de Problemas 2
Un estudiante debe realizar un examen de problemas y se le da la
posibilidad de escogerlos entre los que figuran en tres listas. Los
problemas de la lista 1 se puntan con 5 puntos cada uno, los de la 2
con 4 puntos y los de la tres con 6. El alumno sabe que necesita 3
minutos para resolver cada problema de la lista 1, 2 minutos para los
de la 2 y 4 minutos para los de la 3. Dispone de 3 horas y media para
realizar el examen. Los problemas de las listas 1 y 2 emplean bastante
clculo y el alumno no desea dedicarles ms de 2 horas y media.
Cmo puede alcanzar la puntuacin mxima?

Formulacin de Problemas 3
Se desea encontrar la mezcla ms barata de las tres harinas tal que la
fraccin de los nutrientes uno, dos y tres en la mezcla sea mayor o
igual a 0.04, 0.02 y 0.07, respectivamente.

Harina

Coste por Unidad

0.06

0.02

0.09

15

0.03

0.04

0.05

12

0.04

0.01

0.03

Formulacin de Problemas 4
Una compaa tiene dos grados de inspectores 1 y 2, que son
asignados al control de calidad. Se requiere inspeccionar al
menos 1800 piezas por da (8 horas). El inspector de grado 1
chequea piezas a velocidad de 25 piezas por hora con una
exactitud del 98%. Los de grado 2 chequean a velocidad de 15
piezas por hora con una exactitud del 95%. El salario del
inspector de grado 1 es de 4 /hora, y el de grado 2 de 3/hora.
Cada vez que se produce un error, el coste a la compaa es de
2 . La compaa tiene 8 inspectores de grado 1 y 10 de grado
2. Determinar la asignacin ptima de inspectores que
minimicen el coste total de inspeccin.

Solucin Grfica de un problema de PL con dos


variables
min z = 40 x1 + 36 x 2
s.a.

x1 8 x 2 10
5x1 + 3x 2 45

x2

x1 0 x 2 0
15

B(8,10)

x2=10

10
5
A(8,5/3)

10

x1

Solucin Grfica

max

z = x1 + 2 x2

s.a.

x1 + 2 x2 10
x1 + x2 1
x2 4

x2

x1 0 x2 0
D

x2=4

C(2,4)

4
E

1
B(10,0)
x1

1
x1+x2=1

10

Algunas definiciones
Solucin factible: La solucin que satisface todas las restricciones
Regin factible: Conjunto de todas las soluciones factibles
Solucin ptima: Es una solucin factible y su valor de la funcin objetivo
es mayor que el del resto de las soluciones factibles
Valor ptimo: El valor de la funcin que corresponde a la solucin ptima
Solucin alternativa: Cuando existe ms de una solucin ptima
ptimo nico: Cuando no existe otro ptimo
ptimo sin lmite: Cuando el problema no tiene un ptimo finito.

Principios del Mtodo Simplex 1

max z = c1x1 + c 2 x 2 + ... + c n x n


s.a.
a 11x1 + a 12 x 2 + ... + a 1n x n = b1

Si m<n, el problema
tiene infinitas
soluciones

a 21x1 + a 22 x 2 + ... + a 2 n x n = b 2

a m1x1 + a m 2 x 2 + ... + a mn x n = b m
x1 0, x 2 0,..., x n 0
b1 0, b 2 0,..., b m 0

El problema no tiene
solucin trivial

Problema LP
x2

x*
Optimo

Si la solucin se encuentra en
un vrtice, podra pensarse en
un mtodo de solucin que
evaluase J = cx en cada
vrtice y escogiera el mejor, si
existe.

x1
El nmero mximo de vrtices corresponde a los distintos grupos de
m columnas que podemos formar con las n existentes en A, o sea:

n
n!
=
m m!(n m)!

Para n grande puede ser un nmero excesivo.


p.e. n=100, m=50 resultan 1029 combinaciones

Algoritmo Simplex (Dantzig 1947)


El algoritmo Simplex es una forma inteligente de recorrer los vrtices que
9Encuentra un vrtice
9Determina si es ptimo
9En caso contrario, encuentra otro vrtice vecino con un valor mejor de J
9Tambin indica si no hay solucin debido a no factibilidad o a soluciones
no acotadas
Por tanto, en un nmero finito de pasos puede encontrar el
ptimo
Suele dividirse en dos fases:
I encontrar el vrtice inicial, o detectar que no existe solucin
II encontrar el ptimo, o detectar que no hay mximo

Manipulacin de desigualdades
Convertir las desigualdades en igualdades a travs de las variables
de holgura
1. Desigualdad menor o igual
x1 + 2x 2 + 3x 3 + 4x 4 + x 5 = 25

x1 + 2 x 2 + 3x 3 + 4 x 4 25
2. Desigualdad mayor o igual

2x1 + x 2 3x 3 x 6 = 12

2 x1 + x 2 3x 3 12
3. Variables sin restricciones
x1 = x 2 x 3
x2 0

x3 0

Principios del Mtodo Simplex 2


Se convierte en una forma cannica:

+ a1,m+1x m+1 + ... + a1n x n = b1

x1
xr

+ a r ,m+1x m+1 + ... + a rn x n = b r

(S1)

x m + a m ,m+1x m+1 + ... + a mn x n = b m


Las variables con coeficiente 1 que aparecen en una sola ecuacin y con
coeficiente cero en el resto de las ecuaciones (x1, x2,...,xm) se les llaman
variables bsicas o dependientes
En la forma cannica hay una variable bsica en cada ecuacin
Una forma cannica permite obtener mltiples soluciones eligiendo valores
diferentes de las variables independientes y resolviendo el sistema para las
variables dependientes

Principios del Mtodo Simplex 3


Una forma de transformar un sistema a cannico, es:
1.- Multiplicar cualquier ecuacin del sistema por un nmero
2.- Sumar a cualquier ecuacin una constante multiplicada por cualquier otra ecuacin
del sistema

Una solucin que se obtiene a partir de un sistema cannico igualando las


variables independientes o no bsicas a cero, es una solucin bsica
Una solucin bsica factible es una solucin bsica en la cual los valores de
las variables dependientes son no negativas

Cmo resolver el programa lineal?


Generando todas las posibles soluciones bsicas factibles a travs
de la reduccin cannica y determinar cul da el mejor valor de la
funcin objetivo

Principios del Mtodo Simplex 4


Los pasos generales del Simplex son los siguientes
Comenzar con una solucin bsica factible inicial en la forma cannica
Mejorar la solucin inicial encontrando otras soluciones bsicas
factibles con un mejor valor de la funcin objetivo.
Continuar buscando mejores soluciones bsicas factibles que mejoren
el valor de la funcin objetivo. Cuando nos encontremos con una
solucin que no puede mejorar dicho valor, entonces estamos en el
ptimo y el algoritmo termina

Principios del Mtodo Simplex 5


Tenemos una solucin bsica factible de la forma:
bsica

x i = bi 0 para i = 1,2,...,m

no bsica x j = 0

para j = m+1,...,n

Al conjunto de las variables bsicas se le llama base y se denota: xB


Sea los coeficientes de la funcin objetivo de las variables bsicas cB
Para las bases iniciales: xB = (x1,...,xm) y cB=(c1,c2,...,cm), entonces:

Z = c B x B = c1b1 + L + c m bm
De aqu se deduce que el algoritmo, verifica si es posible encontrar
mejores soluciones bsicas factibles que proporcionen un mayor valor de
Z y si la solucin actual es ptima. En caso contrario, el mtodo obtiene
una solucin bsica factible adyacente con un valor mayor de Z.

Principios del Mtodo Simplex 6


Cmo se obtiene una solucin bsica factible adyacente?

Una de las variables bsicas pasa a ser una variable no bsica y


hace una variable no bsica cmo bsica en su lugar.
Cmo se seleccionan estas dos variables?

En una solucin bsica factible, las variables bsicas tienen valores


positivos y las no bsicas siempre son cero. Por tanto pasar de una
no bsica a bsica, basta con incrementar su valor de cero a una
cantidad positiva.
La eleccin se hace basndonos en cul de las variables no bsicas
puede mejorar el valor de la funcin objetivo. Por ejemplo
incrementando en 1 y examinar el cambio resultante en la funcin
objetivo.

Principios del Mtodo Simplex 7


Consideremos a xs como una variable no bsica e incrementamos su valor
de 0 a 1, y estudiamos su efecto en la funcin objetivo. El sistema S1
queda de la siguiente forma:
+ a1s x s = b1

x1

M
+ a rs x s = br

xr

La solucin:

(S2)

xj = 0

+ a ms x s = bm

Z = ci (bi ais ) + c s
m

Valor de la Funcin Objetivo:

i = 1,K, m

xs = 1

M
xm

x i = bi a is

i =1

j = m + 1,K, n , j s

Principios del Mtodo Simplex 8


El incremento en el valor de la funcin objetivo ser

cs = ci (bi a is ) + cs ci bi = cs ci a is
m

i =1

i =1

i =1

cs se llama ganancia relativa de la variable no bsica xs.


cs > 0

La funcin objetivo puede ser incrementada haciendo xs


una variable bsica

c j = c j c B Pj

Es el cociente de ganancia relativa de una variable no bsica xj

cB corresponde a los coeficientes de ganancia de las variables bsicas

Pj corresponde a la columna j del sistema cannico

Criterio de Optimalidad 1
En un problema de maximizacin, una solucin bsica
factible es ptima, si las ganancias relativas de sus
variables no bsicas son todas negativas o cero

Si c j 0 para las variables no bsicas, entonces todas las soluciones bsicas


factibles adyacentes tienen un valor de la funcin objetivo menor que la
solucin presente, por lo tanto tenemos un mximo local en ese punto.

Criterio de Optimalidad 2
Cuando xs se incrementa, los valores de las variables bsicas cambian, ya que:
x i = bi a is x s

i = 1,K, m

Si:

a is < 0

xi se incrementa si xs se incrementa

a is = 0

xi no vara

a is > 0

xi disminuye cuando xs incrementa. Y si xs crece


indefinidamente xi puede hacerse negativa haciendo la
solucin no factible

bi
=
max
x
min
Por tanto el incremento de xs tiene que ser:
s
a is > 0 a
is

Regla del
radio
mnimo

Soluciones degeneradas
Si al calcular una solucin bsica alguna de las variables bsicas resulta
ser cero, se dice que el vrtice es degenerado, o que se trata de una
solucin bsica factible degenerada.
Puede aparecer en el vrtice inicial cuando una bi es cero, o al calcular
un nuevo vrtice. En este caso, puede ocurrir que

bi br
min =
=0
ais > 0 a
a
is
rs

Con lo que el
incremento en J:

b
c s r = 0
a rs

Con lo cual no habr mejora en esta o en algunas otras iteraciones,


reduciendo la eficiencia del mtodo. En teora es posible que se vaya a
vrtices sin mejora y se vuelva a uno de partida apareciendo ciclos que
impidan la convergencia del algoritmo simplex. No obstante en la
prctica no suelen aparecer si est adecuadamente programado.

Resumen
1 Poner el problema en forma
cannica, escribiendo en
problema en forma de tabla y
escoger la base
2 Para cada variable no bsica
calcular las ganancias relativas,
escoger la mayor. Si es 0, es
el ptimo, sino, seleccionar esa
variable xs para entrar en la
base. Si todos los ais son <0, no
hay solucin.
3 Calcular el menor de los
cocientes bi/ais (ais>0) que
determina la variable que sale
de la base.

c1

c2

c3

c4

c5

0
(ais>0)
bi/ais

cB

Base

x1

x2

x3

x4

x5

x3

-1

x4

14

4,3

x5

-1

cssum(ci
ais)

ganancia
relativa

4 Pivotar sobre el elemento


de esa fila y columna para pasar
a forma cannica y repetir el
proceso

Variables artificiales 1

El principal requerimiento del mtodo del Simplex es la


disponibilidad de una solucin bsica factible inicial:
Poner el problema de forma estndar
Se examina cada restriccin, para ver la existencia de una
variable bsica, si no existe se aade una variable nueva
para actuar como bsica => variable artificial.
Cualquier solucin bsica factible con las variables
artificiales = 0 es una solucin bsica factible del sistema
original. Se resuelve el problema artificial:

min

i = 1

s.a

Ax+y = b;

x 0;

y 0;

Variables artificiales 2

Si el valor mnimo del problema artificial es cero, todas las


variables artificiales se hacen cero, tenemos una solucin
bsica factible inicial del problema PL original

Si el valor mnimo es positivo => el problema original no es


factible.
Problema de minimizacin:

Convertir el problema en uno de maximizacin, multiplicando a


la funcin por (-1).

Se utiliza el algoritmo del simplex con la siguiente modificacin


Calcular las ganancias relativas: cs. Si cs 0 para todas las
variables no bsicas, x* es ptimo, sino seleccionar la
variable con menor cs para entrar en la base.

Teora de la dualidad 1

Asociado a cada problema de PL hay un problema de PL


correspondiente llamado dual
Dual

Primario
min
s.a.

z = cx
Ax b
x 0, b 0

max

z = b

s.a.

A c
0, c 0

Dual

Primario
min

z = cx

max

s.a.

Ax = b

s.a.

x 0,

b0

z = b
A c
libres

Forma
simtrica

Forma
asimtrica

Ejemplo
Primario
max 6 x1 + 4 x2
x

sujeto a :
2 x1 + 4 x2 48
4 x1 + 2 x2 60
3 x1 42

x1 0
x2 0

Dual
min 48 z1 + 60 z 2 + 42 z 3
z

sujeto a :
2 z1 + 4 z 2 + 3 z 3 6
4 z1 + 2 z 2 + 0 z 3 4

z3

z1 0, z 2 0, z 3 0

z1

Teora de la Dualidad 2

f (x)

L (x * , )

* , *

x1

x2

x*

Teoremas de Dualidad
Teorema 1: El dual del dual es el primario
Teorema 2: Cualquier solucin factible del primario da un valor de mayor
que o al menos igual al valor de obtenido para cualquier solucin factible
del dual

= cx = b

Teorema 3: Si los problemas del dual y primario tienen soluciones factibles,


entonces ambos tienen soluciones ptimas y min = max
Teorema 4: Si el primario o el dual tienen una solucin sin lmites, entonces
el otro problema no es factible
Teorema 5: Si el PL tiene solucin bsica factible ptima correspondiente a
la base B, entonces el vector = CB B-1 es una solucin ptima del dual

Anlisis de la sensibilidad 1
1.- Cambio en los parmetros bj
Si los coeficientes del lado derecho de las restricciones
cambian de b => b+b la solucin ptima es:
xB = B-1 b

xB = B-1 (b+ b) =xB+ xB

El correspondiente incremento en la funcin de coste es:


z = CB xB = CB B-1 b = b
=> precio sombra
Siempre que xB = B-1 (b+ b) 0

Anlisis de la sensibilidad 2
2.- Cambio en los coeficientes de coste: cj => cj + cj
Hay que volver a calcular la ganancia relativa de las
variables no bsicas:

c j = c j c B Pj
Sustituyendo cj por su nuevo valor.
Si se cumple que las nuevas c j 0 los cambios no afectan
a la solucin ptima inicial, sino slo al valor ptimo de la
funcin:
z = (cj + cj)xj
Si no se cumple => habra que introducir esa variable como
una nueva variable bsica y seguir con el algoritmo del
simplex

Anlisis de la sensibilidad 3
3.- Aadir variables nuevas xn+j j=1,2,...
Las nuevas variables se toman como no bsicas y se
calculan las ganancias relativas:
c n + j = c n + j c B Pj = c n + j CBB 1A n + j

El ptimo original permanece ptimo si todos los c n + j 0


Si alguno de ellos c n + j > 0 , entonces hay que meter esa
variable en la base y sacar una variable de la base
aplicando las reglas del simplex
Para pasar de los coeficientes de An+j a la forma cannica
ptima: A
= B 1A
n+ j

n+ j

Anlisis de la sensibilidad 4
4.- Cambio en los coeficientes de la matriz A: aij => aij + aij
Si los coeficientes que cambian slo son los de las variables
no-bsicas, hay que calcular nuevamente las ganancias
relativas:
c j = c j C B B 1 A j

El ptimo original permanece ptimo si todos los c j 0


Si alguno de ellos c j > 0 , entonces hay que meter esa
variable en la base y sacar una variable de la base
aplicando las reglas del simplex
Si los coeficientes que cambian son debidos a variables
bsicas, empezar de nuevo

You might also like