Anda di halaman 1dari 26

tema

17 MATEMÁTICAS

Programación lineal.
Aplicaciones.
24-13809-13

Temario 1993
tema 17

matemáticas

1. Programación lineal
1.1. Conceptos básicos

1.2. Teoremas básicos

1.3. Métodos para resolver problemas de programación lineal


1.3.1. Método gráfico (caso de dos variables)
1.3.2. Método simplex (caso general)

1.4. Las soluciones degeneradas de los programas lineales

1.5. Dualidad

2. Aplicaciones

3
tema 17

matemáticas

INTRODUCCIÓN

En los siglos xvii y xviii, matemáticos como Newton, Leibniz, Bernouilli y sobre todo, La-
grange, que tanto habían contribuido al desarrollo deI cálculo infinitesimal, se ocuparon de
obtener máximos y mínimos condicionados de determinadas funciones.
Posteriormente, el matemático francés Jean Batiste-Joseph Fourier fue el primero en intuir,
aunque de forma imprecisa, los métodos de lo que actualmente llamamos programación
lineal.
Si exceptuamos al matemático Gaspar Monge, quien en 1776 se interesó por problemas
de este género, debemos remontarnos al año 1939 para encontrar nuevos estudios relacio-
nados con los métodos de la actual programación lineal. En este año, el matemático ruso
Leonidas Vitalyevich Kantorovitch publica una extensa monografía titulada «Métodos ma-
temá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 se formula por primera vez el problema deI transporte, estudia-do independiente-
mente por Koopmans y por Kantorovitch, razón por la cual se suele conocer con el nombre
de Koopmans-Kantorovitch.
Tres años más tarde, G. Stigler plantea otro problema particular conocido con el nombre de
«régimen alimenticio opcional».
En estos años posteriores a la II 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 pasaban necesariamente por los modelos
de optimización que resuelve la programación lineal.
En 1947, G. B. Danzing formula, en términos matemáticos muy precisos, el enunciado
standard al que cabe reducir todo problema de programación lineal. Danzing, junto con
una serie de investigadores deI United States Departament of Air Force, formarían el grupo
que dio en denominarse Scoop, siendo una de las primeras aplicaciones de los estudios deI
grupo el puente aéreo de Berlín. Posteriormente se constituyen, en Estados Unidos, distin-
tos grupos de estudio para ir desarrollando las diferentes ramificaciones de la programación
lineal.
Respecto al Método Simplex señalaremos que su estudio comenzó en 1951 y fue desarro-
llado por Danzing.
La programación lineal consiste en un conjunto de técnicas matemáticas que intentan ob-
tener el mayor provecho posible de sistemas económicos, sociales, tecnológicos, ... cuyo
funcionamiento se puede describir matemáticamente de modo adecuado.

5
tema 17

matemáticas

1 Programación lineal

1.1. Conceptos básicos

Un problema de programación lineal o programa lineal es un problema de opti-


mización en el que la función que se pretende optimizar (llamada función obje-
tivo) es una función lineal de varias variables (llamadas variables de decisión)
relacionadas entre sí por un conjunto de restricciones que forman un sistema de
inecuaciones lineales.
Para desarrollar en términos matemáticos muy precisos los principales resultados
de este tema, conviene trabajar con el denominado enunciado estándar de un
programa lineal cuya formulación es la siguiente:
minimizar z = c1x1 + c2x2 + ... + cnxn


sujeta a: a11x1 + a12x2 + …+ a1nxn = b1


a21x1 + a22x2 + …+ a2nxn = b2

…………………………………………………….


am1x1 + am2x2 + …+ amnxn = bm


xk ≥ 0, k = 1, 2, …, n
Se supone además que el número de variables, n, es mayor que el número de res-
tricciones de igualdad, m. Sin ninguna pérdida de generalidad puede suponerse
también que bk ≥ 0 para todo k = 1, 2, …, m.
Las principales características de esta formulación de problemas lineales son:
„„ Se trata de minimizar una forma lineal.
„„ Todas las restricciones son de igualdad, siendo el término independiente no
negativo.
„„ Las variables de decisión solo pueden tomar valores no negativos.
En notación matricial el problema se plantea de la siguiente forma:
minimizar z=C·X


sujeta a: A·X=B
X≥0
siendo:

 x1   a11 .........a1n   b1 
  ................... 
C = (c1 , ..., cn ), X =   , A =   , B =   con m < n
  ................... 
x   a .........a  b 
 n m1 mn  m

6
tema 17

matemáticas

A partir de ahora entenderemos que X ≥ 0 significa que la matriz columna X tiene


todos sus elementos mayores o iguales que 0.
Todo problema de programación lineal, independientemente de la forma en la que
esté dado, puede transformarse a su forma estándar efectuando una serie de mani-
pulaciones que comentamos a continuación:
„„ La primera manipulación es convertir el problema a uno de minimización te-
niendo en cuenta el hecho de que maximizar una función es equivalente a mi-
nimizar su opuesta.
„„ Si la función objetivo fuese afín y no lineal, puede prescindirse de la parte no
lineal pues el mínimo en ambas se alcanzará en el mismo punto.
Afin: f(X) = c1x1 + c2x2 + …+ cnxn + d


Lineal: g(X) = c1x1 + c2x2 + …+ cnxn
„„ Las restricciones de desigualdad pueden transformarse en igualdades introdu-
ciendo unas nuevas variables que se conocen como variables de holgura
ak1x1 + ak2x2 + …+ aknxn ≤ bk
entonces existe y ≥ 0 tal que:
ak1x1 + ak2x2 + …+ aknxn + y = bk
De igual forma, si ak1x1 + ak2x2 + …+ aknxn ≥ bk, existe y ≥ 0 tal que:
ak1x1 + ak2x2 + …+ aknxn − y = bk

Nota: Las desigualdades estrictas son excluidas de la formulación de estos problemas


ya que pueden conducir a problemas sin solución. Esta exclusión que, en principio,
parece una limitación importante, no lo es tanto desde un punto de vista práctico ya que
difícilmente se encuentran desigualdades estrictas en casos reales.

„„ Si alguna de las variables xk del problema no estuviera sujeta a la condición


de no negatividad, bastaría sustituirla por una diferencia de dos variables no
negativas; es decir:
xk = yk – zk con yk, zk ≥ 0.
„„ Por último, para conseguir que bk ≥ 0 para todo k, se multiplicaría por -1 la co-
rrespondiente ecuación fuese necesario.
Con todas estas manipulaciones, cualquier problema de programación lineal pue-
de expresarse en la forma estándar.
Definición
Dado el problema de programación lineal:
minimizar z=C·X


sujeta a: A·X=B
X≥0

7
tema 17

matemáticas

se llama región factible al conjunto S = {X ∈ n: A · X = B, X ≥ 0} y solución


posible a cualquier elemento de dicho conjunto.
Nota: A partir de ahora supondremos que rg(A) = m (de lo contrario podríamos eliminar
las ecuaciones redundantes) y que m < n, ya que si fuese m = n la región factible tendría
a lo sumo un punto, A-1B, que sería, obviamente, la solución.

Nuestro inmediato objetivo será estudiar características de dicho conjunto.


Para ello vamos a definir una serie de conceptos necesarios.
Definiciones
Sean X1, X2 ∈ n. Llamaremos segmento que une X1 y X2 al conjunto
[X1, X2] = {(1 − α)X1 + X2 : α [0, 1]}
Un conjunto S ⊆ n diremos que es convexo si para cualquier par de puntos de S
el segmento que los une está complemente incluido en S, es decir, si
∀X1, X2 ∈ S [X1, X2] ⊆ S
Llamaremos combinación lineal convexa de los puntos X1, …, Xn a todo punto
de la forma
k k

∑ α i X i donde
i =1
∑α
i =1
i = 1, α i ≥ 0 ∀i = 1,..., k
Un punto X de un conjunto convexo S ⊆ n se dice vértice o extremo de S si no
se puede poner como combinación lineal convexa de otros dos vectores de S, es
decir, si X1, X2 ∈ S y X = (1 − α)X1 + αX2 con α∈[0, 1] entonces X1 = X2. Un vér-
tice nunca puede ser un punto intermedio de un segmento que esté completamente
contenido en el conjunto.
Un conjunto convexo de n se dice conjunto poliédrico o poliedro si posee un
número finito de vértices.
Pasamos ya a estudiar las propiedades de la región factible de un programa lineal.

1.2. Teoremas básicos

XX Teorema

El conjunto de soluciones posibles en un problema de programación lineal, caso


de no ser vacío, es convexo.
Demostración:
Supongamos S ≠ ∅.
Sean X1, X2, soluciones posibles (y sean α, β cualesquiera con α ≥ 0, β ≥ 0 y
α + β = 1); entonces:

X 1 ≥ 0, AX 1 = B ⎫
⎬ αX 1 + βX 2 ≥ 0 y A( αX 1 + βX 2 ) = αAX 1 + βAX 2 = αB + βB =
X 2 ≥ 0, AX 2 = B ⎭
= B pues α + β = 1

Luego toda combinación lineal convexa de X1 y X2 es solución posible.

8
tema 17

matemáticas

XX Teorema fundamental de la programación lineal

a) La función objetivo es mínima en un punto extremo (vértice) del conjunto


convexo S de las soluciones posibles.
b) Si dos vértices son mínimos de la función objetivo, entonces lo es toda combi-
nación lineal convexa de estos.
Demostración:
Supongamos que S es un poliedro convexo.
a) Sean X1, X2, ....., Xn los vértices. Sea X0 un punto no extremo y solución posible.
Por no ser X0 extremo, se ha de poner como combinación lineal convexa de
extremos:
n n
X0 = ∑ αi Xi; ∑ αi = 1, αi ≥ 0, ∀i = 1, ... , n.
i =1 i =1

La función objetivo en X0 es:


n n n
f(X0) = C · X0 ⇒ f(X0) = C · ∑ α X = ∑ α · C · X = = ∑ α · f(X )
i =1
i i
i =1
i i
i =1
i i

n n
Sea λ = mín{f(Xi), i = 1, ..., n} ⇒ f(X0) ≥ ∑α · λ = λ · ∑α = λ
i =1
i
i =1
i

Por tanto, X0 no es un punto mínimo de la función objetivo y el mínimo se ha


de alcanzar en los extremos.
b) Sean X1, X2 dos extremos donde se alcanza el mínimo de la función objetivo,
es decir, f(X1) = f(X2) = λ y sean α ≥ 0, β ≥ 0 con α + β = 1. Por ser f lineal, se
tiene:
f(αX1 + βX2) = αf(X1) + βf(X2) = αλ + βλ = (α + β)λ = λ
Por tanto el mínimo se alcanza también en toda combinación lineal convexa
de X1 y X2.
La importancia de los extremos es clara, pues en ellos se alcanza el mínimo de la
función objetivo.
Por ello llamaremos solución básica a todo vértice del conjunto S; solución de-
generada a toda solución básica en la que al menos una de las variables es nula y
solución óptima a toda solución básica que sea máximo (o mínimo) de z = C · X.

XX Teorema

Si existen k vectores Pi linealmente independientes y existen x1, ..., xk reales tales


k
que ∑ x · P = B con todos los x ≥ 0 y k < n, entonces el punto X = (x , ..., x , 0, ..., 0)
i =1
i i i 1 k

es un vértice del conjunto S de soluciones posibles.

9
tema 17

matemáticas

Demostración:
Supongamos que X no es vértice de S.
Si X no es vértice de S, existirán X1 = (x11, x12, ..., x1n), X2 = (x21, x22, ..., x2n) vértices
distintos de S y α, β ∈  (α ≥ 0, β ≥ 0, α + β = 1) tales que: X = αX1 + βX2, o sea:
(x1, ..., xk, 0, ..., 0) = α(x11, ..., x1n ) + β(x21, ..., x2n)
Podemos considerar que α ≠ 0, β ≠ 0 ya que:
Si α = 0 ⇒ β =1 ⇒ X = X2
Si β = 0 ⇒ α =1 ⇒ X = X1
Por tanto,
x1k +1 = x2k+1 = ... = x1n = x2n = 0, y entonces como X1, X2 ∈ S

A ⋅ X 1 = B ⇒ P1 x11 + ... + Pk x1k = B 



A ⋅ X 2 = B ⇒ P1 x12 + ... + Pk xk2 = B 

de donde, por ser los Pi linealmente independientes resulta que x1i = x2j ,
para i = 1, ..., k, y por tanto sería X1 = X2, que es una contradicción.

XX Teorema (recíproco del anterior)

Si el punto X = (x1, ..., xk, 0, ..., 0) es un vértice del conjunto de restricciones,


entonces los vectores Pi asociados mediante
n

∑ x · P = B a los x son linealmente independientes


i =1
i i i

Demostración:
Sea X un vértice de S de la forma (x1, ..., xk, 0, ..., 0) con xi > 0, 1 ≤ i ≤ k, entonces
sus vectores asociados mediante:
n

∑ x · P = B son P , ..., P .
i =1
i i 1 k

Veamos que son linealmente independientes:


Supongamos que P1, ..., Pk son linealmente dependientes ⇒ ∃ β1, ..., βk tales que
β1 · P1 + ... + βk · Pk = 0 con algún βi ≠ 0, 1 ≤ i ≤ k.
n
Sea un α > 0, entonces α · ∑ β · P = 0, luego:
i =1
i i

k k k

∑ x ⋅ P + α ⋅ ∑ β ⋅ P = ∑ ( x + α ⋅ β ) ⋅ P = B 
i =1
i i
i =1
i i
i =1
i i i

k k ⇒ k

∑ xi ⋅ Pi − α ⋅ ∑ βi ⋅ Pi = ∑ ( xi − α ⋅ βi ) ⋅ Pi = B 
i =1 i =1 i =1


 X 1 = ( x1 + α ⋅ βi , ..., xk + α⋅⋅ β k , 0, ..., 0)


⇒
 X 2 = ( x1 − α ⋅ βi , ..., xk − α ⋅ β k , 0, ..., 0)

10
tema 17

matemáticas

Como todas las xi > 0 siempre podemos elegir un α > 0 tal que todas las
xi + α · βi > 0 y xi – α · βi > 0, según esto, X1, X2 ∈ S, por el teorema anterior.
Pero,

X1 X 2 X1 + X 2
+ = =X
2 2 2
lo que entra en contradicción con que X es un vértice de S, porque si X es el
punto medio deI segmento definido por X1 y X2 en el convexo S ⇒ X no es
vértice de S en contradicción con la hipótesis, luego P1, ..., Pk son linealmente
independientes.

1.3. Métodos para resolver problemas de programación


lineal

1.3.1. Método gráfico (caso de dos variables)

En un problema de programación lineal con dos variables, x, y, se trata de opti-


mizar (hacer máxima o mínima, según los casos) una función llamada función
objetivo, de la forma f(x, y) = px + qy sujeta a una serie de restricciones dadas
mediante un sistema de desigualdades lineales del siguiente tipo:
a1x + b1 y ≥ c1
a2x + b2 y ≥ c2
......................
amx + bm y ≥ cm
Los puntos del plano que cumplen cada desigualdad están en un semi-plano. Los
que cumplen todas ellas están en un recinto convexo finito (poligonal) o infinito,
llamado región factible (conjunto de soluciones posibles).
La solución posible que haga óptima (máxima o mínima, según se desee) la fun-
ción objetivo se llama solución óptima.

   

11
tema 17

matemáticas

Si hay una única solución óptima, ésta estará en un vértice deI recinto. Puede que
haya infinitas y se encontrarán en un lado. También es posible que no haya solu-
ción óptima, pues cuando el recinto es infinito, la función objetivo puede crecer o
decrecer indefinidamente.
Una vez representado el recinto de validez, la solución óptima se encuentra con
la ayuda de una recta variable que representa la función objetivo y que se mueve
paralelamente a sí misma.
Si se quiere localizar la solución óptima sin valerse de la representación gráfi-
ca, puede hacerse obteniendo los vértices del recinto y calculando el valor de la
función objetivo en cada uno de ellos. Este método es arriesgado, pues es difícil
estar seguro, sin representarlo, de si un punto de corte entre dos rectas bordes de
semiplano es o no vértice deI recinto de validez.
Método gráfico para el cálculo de soluciones
Para hallar, gráficamente, la solución de un problema de programación lineal de
dos variables es conveniente seguir el proceso que indicamos a continuación:
1. Se dibuja el recinto limitado por las restricciones del problema.
2. Se representa el vector director de la recta que viene dada por la función que
hay que maximizar o minimizar (función objetivo).
3. Se trazan rectas paralelas a este vector que pasen por cada uno de los vértices
deI recinto, y se observa en qué vértice la función z se hace máxima, (o mí-
nima), sin más que tener en cuenta cuál de las citadas rectas tiene mayor (o
menor) ordenada en el origen.

   

Obsérvese que este proceso es innecesario hacerlo en el origen de coordenadas,


ya que en este caso la ordenada es nula.
Veamos algún caso concreto:

12
tema 17

matemáticas

XX El problema de la dieta

Supongamos que se quiere elaborar una dieta alimenticia para ganado que satis-
faga unas condiciones mínimas de contenidos vitamínicos diarios, por ejemplo,
2 mg de vitamina A, 60 mg de vitamina B y 40 mg de vitamina C. Para ello se van
a mezclar dos clases de pienso, P y Q, cuyo precio por kg es, respectivamente, de
40 y 60 euros, cuyo contenido en las vitaminas citadas es el siguiente:

A B C
1 kg de P   1 mg 20 mg 10 mg
1 kg de Q 0,5 mg 20 mg 20 mg
¿Cómo deben mezclarse los piensos para que se satisfagan esas necesidades vita-
mínicas con el menor gasto posible?
Para resolver el problema designemos por x la cantidad de pienso P que debe con-
sumir diariamente cada animal, y por y la cantidad de pienso Q en kg.
Los valores x e y están sometidos a las siguientes restricciones:
1. x ≥ 0
2. y ≥ 0
3. x + 0,5y ≥ 2
4. 20x + 20y ≥ 60
5. 10x+20y ≥ 40
Estas inecuaciones forman un sistema que llamaremos S.
La función objetivo que ahora es una función de gasto o de costo es:
f(x, y) = 40x + 60y
Se trata ahora de encontrar entre todas las soluciones del sistema S aquellas para
las que la función de costo tenga un valor mínimo.
Siguiendo los pasos indicados en la resolución gráfica, obtenemos:

13
tema 17

matemáticas

XX Resolución gráfica deI problema de la dieta

Para obtener la solución óptima representamos la recta de ecuación 40x + 60y = 0 y


la desplazamos paralelamente a sí misma hasta que encuentre algún punto de solu-
ciones posibles. En este problema existe un punto único, el C, de coordenadas (2, 1),
lo que quiere decir que el coste mínimo se consigue mezclando 2 kg de pienso P con
1 kg de pienso Q. De esta forma se cubren los mínimos vitamínicos establecidos con
el menor gasto posible. El costo diario por animal será entonces de:
40 · 2 + 60 · 1 = 140 euros

1.3.2. Método simplex (caso general)

Si la función objetivo tiene dos (o incluso tres) variables, y las restricciones no son
demasiadas, el problema se puede resolver gráficamente como hemos visto en el
apartado anterior. En la práctica, las variables y restricciones pueden llegar a ser
de miles, y entonces es cuando se hace uso del método simplex y, con la impres-
cindible ayuda del ordenador, se soluciona el problema.
El método simplex nos facilitará la obtención de la solución óptima mediante la
elaboración de un criterio que nos permitirá saber si una solución básica es o no
es la solución óptima y, en caso negativo, nos dará un procedimiento de aproxi-
mación a dicha solución óptima.
Para ello partimos deI conocimiento de una solución básica inicial (vértice), de
la que pasamos a otra solución básica (vértice contiguo) en la que el valor de la
función objetivo z = C · X es menor que en la anterior, y así sucesivamente hasta
llegar a una solución básica (vértice) en la que el valor de la función objetivo sea
el mínimo (solución óptima).
En lo sucesivo supondremos:
a) Que el problema tiene solución óptima.
b) Que conocemos una solución básica inicial. (Esto siempre es posible, pues
como m < n bastará con anular n – m de las variables xi y si en el sistema
A – X = B sus ecuaciones son entre sí independientes, nos darán m soluciones
no nulas que junto con las n – m nulas constituyen la solución básica inicial).
c) Que cada solución básica es no degenerada, es decir, tiene exactamente n – m
coordenadas nulas.
Antes de pasar al siguiente teorema, vamos a definir unos ciertos zj:
 x10 
 x20 
  
Sea X 0 =  xm 0  con todas las xi0 > 0 y (i = 1, ..., m)
 0 
 
  
 0 

14
tema 17

matemáticas

La solución básica inicial conocida, sean P1, ..., Pk los m vectores linealmente
independientes asociados a X0 mediante la expresión:
x10 · P1 + x20 · P2 + ... + xm0 · Pm = B (1)
y sea
zo = C · X0 = c1 · x10 + c2 · x20 + ... + cm · xm0 (1 bis)
el valor de la función objetivo en el punto X0.
Como P1, ..., Pm son linealmente independientes, constituyen una base del espacio
vectorial <P1, Pm, ..., Pn>, cualquier Pj de este conjunto podrá expresarse en fun-
ción de dicha base, así:
m
Pj = λ1j · P1 + ... + λmj · Pm = ∑ λ P,1 ≤ j ≤ n
i =1
ij i

(2)
Definimos:
zj = c1 · λ1j + c2 · λ2j + ... + cm · λmj (2 bis)

XX Teorema

Si para un j cualquiera zj – cj > 0 (obsérvese que j debe ser distinto de 1, ..., m),
entonces podemos construir un conjunto de soluciones posibles tales que zj < z0,
pudiendo ser el extremo inferior de dichos valores zj finito o infinito.
Si el extremo inferior es finito podemos elaborar una nueva solución posible con
m variables no nulas, y si es infinito con m + 1 variables no nulas, siendo arbitra-
riamente pequeño el valor de la función objetivo.
Demostración:
Si θ > 0 es un parámetro, multiplicamos (2) por θ y restamos de (1):
m m
B – θ · Pj = ∑(x
i =1
i0
– θ · λij)Pi ⇒ B = ∑(x i =1
i0
– θ · λij)Pi + θ · Pj (3)

Multiplicamos (2 bis) por θ y restamos de (1 bis):


m
z 0 – θ · zj = ∑(x
i =1
i0
– θ · λij) · ci

sumando en ambos miembros θ · cij


m
z0 – θ (zj – cj) = ∑(x
i =1
i0
– θ · λij) · ci + θ · cj (3 bis)

Si los coeficientes de P1, ..., Pm, Pi en (3) fuesen no negativos, tendríamos una nue-
va solución posible ((x10 – θλ1j), ..., (xm0 – θλmj), 0, 0, ..., 0) para la cual el valor de
la función objetivo según (3 bis) sería z0 – θ · (zj – cj) y además como por hipótesis,
zj – cj > 0 para algún j, tenemos que:
z0 – θ · (zj – cj) < z0
Veamos que si el extremo inferior de los valores zj es finito, podemos elaborar una
nueva solución posible con m variables no nulas.

15
tema 17

matemáticas

Supongamos que para el j tal que zj – cj < 0 hay al menos un λij en (3) tal que λij
> 0, entonces el mayor valor de θ para el que todos los coeficientes del segundo
miembro de (3) son no negativos es:

 x 
θ 0 = min  i 0 , 1 ≤ i ≤ m 
 λij 

Si sustituimos θ por θ0 en (3), el coeficiente correspondiente al j anterior es:

xi 0
xi 0 − θ 0 ⋅ λij = xi 0 − ⋅λ =0
λij ij

con lo que obtenemos una nueva base constituida por m – 1 vectores de la base
inicial P1, ..., Pm más el Pj. Esta nueva solución mejora la solución básica inicial,
ya que z0 – θ0 · (zj – cj) < z0.
El proceso se continúa hasta que todas las zj – cj ≤ 0, o hasta que para una zj – cj > 0
sean todos los λij ≤ 0.
Veamos por último que si el extremo inferior de los valores de zj es infinito, la
nueva solución posible posee m + 1 variables no nulas y el valor de la función
objetivo es arbitrariamente pequeño.
Si para un j es zj – cj > 0 y todas las λij ≤ 0, entonces para todo θ > 0 los coeficientes
deI segundo miembro de (3) son no negativos, con lo que obtenemos una nueva
base constituida por los m vectores de la base inicial P1, ..., Pm más el Pj. Además,
si hacemos θ suficientemente grande el valor z0 – θ · (zj – cj) será tan pequeño como
queramos.
Para terminar el método simplex, veamos el siguiente teorema.

XX Teorema

Si una solución básica verifica que zj – cj ≤ 0, ∀j, entonces dicha solución es


­óptima.
Demostración:
 x10 
  
x 
Sea X 0 =  m 0  una solución básica, entonces
0
  
 0 

x10 · P1 + ... + xm0 · Pm = B (4)


z0 = c1 · x10 + ... + cm · xm0
y si además zj – cj ≤ 0, ∀j, probemos que z0 es el valor mínimo.

16
tema 17

matemáticas

 y10 
  
y 
Sea Y0 =  m 0  otra solución básica cualquiera, entonces
0
  
 0 

y10 · P1 + ... + ym0 · Pm = B (4 bis)


z0 = c1 · y10 + ... + cm · ym0
Si ahora sustituimos los Pj según (2) en (4 bis) tenemos:

 m   m   m 
y10 ⋅  ∑ λi1 ⋅ Pi  + y20 ⋅  ∑ λi 2 ⋅ Pi  + ... + ym 0 ⋅  ∑ λin ⋅ Pi  = B
 i =1   i =1   i =1 

y si efectuamos los productos indicados en el primer miembro, sacando los facto-


res comunes P1, ..., Pm obtenemos:
 m   m   m 
 ∑
 j =1
y j 0 ⋅ λ1 j 

⋅ P1 +  ∑
 j =1
y j 0 ⋅ λ 2 j 

⋅ P2 + ... +  ∑
 j =1
y j 0 ⋅ λ mj  ⋅ Pm = B

(5)

Por verificarse (4) y (5) y teniendo en cuenta que P1, ..., Pm son linealmente inde-
pendientes, entonces sus coeficientes deben ser iguales.
m m m

∑ y j 0 ⋅ λ1 j = x10 , ∑ y j 0 ⋅ λ2 j = x20 , ∑ y j 0 ⋅ λmj = xm0


j =1 j =1 j =1

Por hipótesis, zj – cj ≤ 0, ∀j, esto es, cj ≥ zj, ∀j, luego:


z* = c1 · y10 + ... + cm · ym0 ≥ z1 · y10 + ... + zm · ym0
es decir:
z1 · y10 + ... + zm · ym0 ≤ z* (6)
Si sustituimos los valores de zj según (2 bis) en (6) tenemos:

 m   m 
z1 ⋅ y10 + ... + zm ⋅ ym 0 =  ∑ ci ⋅ λi1  ⋅ y10 +  ∑ ci ⋅ λi 2  ⋅ y20 + ... +
 i=1   i=1 
 m   m   m 
+  ∑ ci ⋅ λin  ⋅ ym 0 =  ∑ y j 0 ⋅ λ1 j  ⋅ c1 +  ∑ y j 0 ⋅ λ2 j  ⋅ c2 + ... +
 i=1   j =1   j =1 
 m 
+  ∑ y j 0 ⋅ λmj  ⋅ cm = x10 ⋅ c1 + x20 ⋅ c2 + ... + xm 0 ⋅ cm = z0 ≤ z*
 j =1 

17
tema 17

matemáticas

Regla práctica del método simplex


Para hallar la solución óptima de la función z = C · X con las restricciones
A – X = B y X ≥ 0, procederemos así:
a) Se anularán n – m variables en A · X = B, obteniendo m variables xi0 > 0. Si
llamamos P a la matriz correspondiente a los m vectores linealmente inde-
pendientes Pi asociados a las variables xi0, P = (P1, P2, ..., Pm), tendremos que
P · X0 = B ⇒ X0 = = P–1 · B (solución básica inicial).
b) Mediante (2) sabemos que:
m
Pj = λ1j · P1 + ... + λmj · Pm = ∑λ
i =1
ij
· Pi
y de aquí obtendremos los λij de la forma siguiente:
Llamando:
 λ1 j 
λ 
Lj =   tendremos que Pj = P · Lj ⇒ Lj = P–1 · Pj, 1 ≤ j ≤ n
2j

  
 
 λmj 
c) Mediante (2 bis) calcularemos los zj = c1 · λ1j + ... + cm · λmj
d) A continuación formaremos las diferencias zj – cj
Si zj – cj ≤ 0 ∀j, entonces X0 es la solución óptima.
Si zj – cj > 0 para algunos j, entonces tomaremos el Pj correspondiente a la di-
ferencia mayor de aquéllas que son zj – cj > 0 y lo incorporaremos a la base.
e) Para excluir uno de los Pi de la base inicial, incorporando el Pj deI apartado
anterior a dicha base, elaboramos los cocientes:
xi 0
con xi0 > 0 (apartado a) y λij > 0 (apartado b y teorema 3)
λij
El Pi excluido corresponderá al mín

 xi 0 
 > 0, 1 ≤ i ≤ m 
 λij 
.
Si la base inicial era {P1, ..., Pi –1, Pi+1 ..., Pm} la nueva base obtenida será
{P1, ..., Pi –1, ..., Pm, Pj}.
Para saber si esta nueva base corresponde o no a la solución óptima, será preciso
repetir el proceso hasta que todas las diferencias zj – cj ≤ 0 o todas las λij ≤ 0.

18
tema 17

matemáticas

1.4. Las soluciones degeneradas de los programas lineales

Una solución básica es degenerada cuando al menos una de sus variables es nula.
Es decir, si tenemos la base {P1, ..., Pm} tal que:
m

∑x
i =1
i0
· Pi = B

decimos que la solución básica (x10, x20, ..., xm0) es degenerada si al menos
un xi0 = 0 con 1 ≤ i ≤ m.
En este caso no podemos utilizar el método simplex, ya que:

 x 
θ 0 = min.  i 0 , 1 ≤ i ≤ m  = 0
 λij 

y la nueva solución que obtendríamos no mejoraría la solución degenerada ini-


cial. En efecto, si la solución degenerada inicial es X0 = (x10, x20, ..., xm0) con
xi0 = 0, con algún i con 1 ≤ i ≤ m, y si Pi es el vector que eliminamos de la base para
introducir el Pj y tener así la nueva base, entonces en la nueva solución tenemos:
x’10 = x10 – θ0 · λ1j, ..., x’i –1,0 = xi –1 – θ0 – λi –1, j’
x’i+1, 0 = xi+1, 0 – θ0 · λi +1, j’, ..., x’m0 = xm0 – θ0 · λmj , x’j = θ0
Pero si θ0 = 0, entonces, x’10 = x10, ..., x’i –1, 0 = xi -1, 0, x’i +1, 0 = xi +1, 0, x’m0 = xm0, x’j = 0;
con lo que el valor de la función objetivo es el mismo para las dos soluciones, sin ser
mejorado por la nueva solución. Así, no podemos alcanzar la solución óptima.
Para resolver este problema, recordemos que la solución degenerada X0 lleva
asociada una base P = {P1, ..., Pm} tal que X0 = P–1 · B, y recordemos además que
estamos en el espacio determinado por {P1, ..., Pn}.
Tomamos un ε > 0 suficientemente pequeño y hacemos que las restricciones sean
función de ε así:
x1 · P1 + ... + xn · Pn = B + ε · P1 + ε2 · P2 + ... + εn · Pn = B(ε) (1)
Entonces una solución básica vendrá dada por:
X0(ε) =
 P–1 · B(ε) = P–1 · [B + ε · P1 + ... + εn · Pn]=
    = P–1 · B + ε · P–1 · P1 + ... + εn · P–1 · Pn =
    = X0 + ε · P–1 · P1 + ... + εn · P–1 · Pn.
 λ1 j 
λ 
Como L j = P ⋅ Pj =   tenemos:
−1 2j

  
 
 λmj 

X0(ε) = X0 + ε · L1 + ... + εn · Ln

19
tema 17

matemáticas

Por el procedimiento seguido tendremos que:


a) Cada vector P1, ..., Pn puede expresarse como combinación lineal de la base
P = {P1, ..., Pm}, luego:

P1 = λ11 ⋅ P1 + λ21 ⋅ P2 +  + λm1 ⋅ Pm  λ11 = 1, λ21 =  = λm1 = 0



  ⇒ 
Pm = λ1m ⋅ P1 + λ2 m ⋅ P2 +  + λmm ⋅ Pm  λ1m =  = λm−1,m = 0, λmm = 1
Pm+1 = λ1,m+1 ⋅ P1 +  + λm ,m+1 ⋅ Pm 
  ⇒ no pertenecen a la base

Pn = λ1n ⋅ P1 +  + λmn ⋅ Pm 

b) Por esto los Lj de los vectores de la base se compondrán de ceros, excepto el


elemento j-ésimo, que será la unidad (1 ≤ j ≤ m), mientras que los Lj de los
vectores que no pertenecen a la base tendrán la forma general (m + 1 ≤ j ≤ n).
Para saber el vector Pj que eliminamos de la base, bastará con tomar el

 x ( ε) 
min .  i 0 > 0, 1 ≤ i ≤ m 
 λij 
Mediante este procedimiento, podemos aplicar el método simplex para solu-
ciones degeneradas.

1.5. Dualidad

El problema que acabamos de resolver mediante el método simplex consiste en


minimizar la función z = C · X con las restricciones A · X ≥ B y X ≥ 0. A este pro-
grama le denominamos primal, y decimos que su programa dual es el siguiente:
Maximizar la función t = W · B con las restricciones W · A ≤ C y W ≥ 0, donde
W = (w1, w2, ..., wm).

XX Teorema de dualidad

Si el primal posee solución óptima finita, entonces el dual también posee solu-
ción óptima finita y además mín. z = máx. t.
Demostración:
Supongamos que la base correspondiente a la solución óptima del primal es
P = {P1, ..., Pm}, entonces la solución óptima será X0 = P–1 · B.
Además, A = P · X luego P–1 · A = X.
Llamando C0 = (c1, ..., cm), Z = (z1 – c1, ..., zn – cn) y teniendo en cuenta que X0 es
la solución óptima, tenemos, Z = C0 – X – C ≤ 0.

20
tema 17

matemáticas

Tomemos un vector W 0 = (w10, ..., wm0) tal que W0 = C0 · P–1 y probemos que es
una solución del dual:
W 0 · A = C0 · P–1 · A = C0 – X, restando C en ambos miembros:
W 0 · A – C = C0 · X – C = Z ≤ 0, luego W 0 · A ≤ C, y por verificar
W 0 las restricciones del dual es la solución del dual.
El valor de la función objetivo t en W 0 es:
t = W 0 · B = C0 · P–1 · B = C0 · X0 = mín. z
es decir, la solución del dual es la solución óptima del primal.
Veamos a continuación que esta solución W 0 es la solución óptima del dual.
Para cualquier X ≥ 0 que verifique A · X = B y para cualquier W ≥ 0 que verifique
W · A ≤ C, tenemos:

W ⋅ A⋅ X = W ⋅ B = t 
 ⇒ t ≤ z , ∀(W , X ) ⇒ max. t ≤ min. z
W ⋅ A⋅ X ≤ C ⋅ X = z 

Pero, W = W 0 es tal que t(W 0) = W 0 · B = C0 · X0 = min. z, entonces


max. t(W) = = t(W 0) y max. t = min. z.
Este teorema nos permite resolver un programa a través de su dual y recíproca-
mente. (La dualidad es involutiva, es decir, el dual del dual es el primal).

21
tema 17

matemáticas

2 Aplicaciones
Como se ha estudiado en este tema, la programación lineal se plantea de un modo
geométrico: encontrar un vector (solución) de Rn que pertenezca a una cierta re-
gión convexa R (restricciones), y que haga máxima o mínima una función lineal
f (función objetivo).
Actualmente, la programación lineal aborda cuestiones que nada tienen que ver
con la geometría. En efecto, numerosos problemas de Economía, Industria o Ad-
ministración tratan básicamente de la asignación de recursos limitados (personal,
dinero, tiempo, materiales, espacio, etc.) encaminada a maximizar beneficios o
a minimizar costes. Si las restricciones de los recursos se pueden expresar como
ecuaciones o desigualdades lineales, y la función de beneficios o costes es lineal,
entonces nos encontramos ante un problema de programación lineal.
Un ejemplo característico es el problema del transporte que surge al tener varios
puntos de producción y varios de distribución, y se plantea el modo de distribuir
los productos para que el coste deI transporte sea mínimo. Un ejemplo muy co-
nocido de este problema se dio en Gran Bretaña al estudiar cuál sería la mejor
distribución del carbón de 800 minas a 200 centrales eléctricas.
Otro caso muy común es el problema de la dieta: determinar las cantidades diferen-
tes de alimentos (frutas, vitaminas, piensos, forraje, etc.) que hay que proporcionar
a una persona o animal, para asegurarle la nutrición necesaria con un coste mínimo.
En algunos países en vías de desarrollo se utilizaron técnicas de programación lineal
para planificar la producción de alimentos, con vistas a satisfacer las necesidades
(minera-les, proteínas, vitaminas, etc.) mínimas de la población, teniendo en cuenta
los condicionantes deI clima, tipo de suelo, recursos técnicos, etc.
También podemos abordar el problema de producción que se plantea al contar
con varios centros de producción con sus características particulares (horas de
trabajo disponibles, número de empleados, beneficios por unidad de producción,
etc.), y hay que estudiar la manera de planificar la producción de los distintos
centros para obtener el beneficio máximo.
Un ejemplo más de aplicación de la programación lineal es el problema de asig-
nación de recursos limitados (personal, dinero, tiempo, materiales, espacio,…)
en el que las restricciones de los recursos se pueden expresar mediante desigual-
dades lineales y la función de costes o beneficios es lineal.

22
tema 17

matemáticas

BIBLIOGRAFÍA
ABELLANAS, P.: Elementos de Matemática. Ed. El Autor, 1975. Madrid.
JIMÉNEZ GUERRA, P.: Álgebra I. UNED, 2001, Madrid.
RÍOS, S.: Matemática aplicada. Ed. Paraninfo, 1975.
MARTÍNEZ, I. y PEÑA, F. J.: Aplicaciones económicas de la programación lineal. Ulzama Edicio-
nes, 2003.
WEBER, J.: Matemáticas para Administración y Economía. Ed. Harla, 1984. México, D.F.

23
tema 17

matemáticas

RESUMEN

PROGRAMACIÓN LINEAL.
APLICACIONES.

1.
1 Programación lineal

1.1. Conceptos básicos


Se definen en este apartado conceptos básicos y necesarios para el resto del tema, como
son: programa lineal, función objetivo, variables de decisión. Se da la formulación es-
tándar de un programa lineal, haciendo uso de la notación matricial, y se detallan las
transformaciones necesarias para convertir a esta forma cualquier programa lineal. Otras
definiciones básicas son: región factible, solución posible, conjunto convexo, vértice y
poliedro.

1.2. Teoremas básicos


En este apartado se estudian las características del conjunto de soluciones posibles (la
región factible) y se demuestra el teorema fundamental de la programación lineal que
determina que la solución (o las soluciones) óptima(s) se encuentra en un vértice de la
región factible (si esta es no vacía). La importancia de los extremos (o vértices) hace que
se definan los conceptos de solución básica, solución degenerada y solución óptima.

1.3. Métodos para resolver problemas de programación lineal

1.3.1. Método gráfico (caso de dos variables)


Se explica en este apartado el método gráfico para el cálculo de soluciones de un programa
lineal con dos incógnitas (o incluso tres, usando dualidad) y no demasiadas restricciones
trabajando con semiplanos. Como aplicación se expone el problema de la dieta.

1.3.2. Método simplex (caso general)


En la práctica, las variables y restricciones pueden llegar a ser de miles, y entonces es
cuando se hace uso del método simplex y, con la imprescindible ayuda del ordenador, se
soluciona el problema. El método simplex nos facilitará la obtención de la solución óptima
mediante la elaboración de un criterio que nos permitirá saber si una solución básica es o
no es la solución óptima y, en caso negativo, nos dará un procedimiento de aproximación a
dicha solución óptima. Termina este punto dando una regla de uso de este método.

1.4. Las soluciones degeneradas de los programas lineales


Una solución básica es degenerada cuando al menos una de sus variables es nula. En este
caso no podemos utilizar el método simplex, pues este método no consigue mejorar el
valor en la función objetivo. Se explica cómo salvar este caso.

25
tema 17

matemáticas

1.5. Dualidad
Asociado a todo programa lineal, llamado primal, puede definirse otro llamado el dual.
El Teorema de Dualidad establece que si el primal posee solución óptima finita, entonces
el dual también posee solución óptima finita y además relaciona ambas. Esto nos permite
resolver un programa a través de su dual y recíprocamente ya que la dualidad es involutiva,
es decir, el dual del dual es el primal.

2.
2 Aplicaciones
Actualmente, la programación lineal aborda cuestiones que nada tienen que ver con la geo-
metría. En efecto, numerosos problemas de Economía, Industria o Administración tratan
básicamente de la asignación de recursos limitados (personal, dinero, tiempo, materiales,
espacio, etc.) encaminada a maximizar beneficios o a minimizar costes. Si las restricciones
de los recursos se pueden expresar como ecuaciones o desigualdades lineales, y la función
de beneficios o costes es lineal, entonces nos encontramos ante un problema de programa-
ción lineal. Como ejemplos citamos: el problema del transporte; el problema de la dieta;
el problema de producción y el problema de asignación de recursos limitados (personal,
dinero, tiempo, materiales, espacio…).

26

Anda mungkin juga menyukai