Bloque1

Anuncio
Programación Lineal para la Ingeniería Técnica
En los siglos XVII y XVIII matemáticos como Newton, Leibniz, Bernouilli 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 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 relacionados 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 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, se formula por primera vez el problema del transporte, estudiado
independientemente por Kopmans y por Kantorovitch, razón por la cual se le suele
conocer con el nombre de Kopmans-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 E.E.U.U. 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.
1
Programación Lineal para la Ingeniería Técnica
En 1947, G. B. Dantzig formula, en términos matemáticos, el enunciado estándar al
que cabe reducir todo problema de Programación Lineal. Dantzig, junto con una
serie de investigadores del United States Departament of Air Force, formarían el
grupo que dio en denominarse Scoop, siendo una de las primeras aplicaciones de
los estudios del grupo el puente aéreo de Berlín. Posteriormente, se constituyen en
E.E.U.U. distintos grupos de estudio para ir desarrollando las diferentes
ramificaciones de la Programación Lineal.
Respecto al método del Simplex, señalar que su estudio comenzó en 1951 y fue
desarrollado por Dantzig. Este algoritmo es básico en la resolución de los
problemas de Programación Lineal, fundamentales en economía general, economía
de empresas y planificación, aunque en principio sus aplicaciones fueron militares.
http://www.stanford.edu/group/SOL/dantzig.html
De forma general, los problemas de optimización lineal tienen la siguiente
estructura:
•
Existe un cierto objetivo a alcanzar, un beneficio máximo, un coste
mínimo o mínimo período de tiempo del sistema que se estudia.
•
Generalmente, hay un gran número de variables que deben manejarse
simultáneamente y de diferentes tipos.
•
Existen muchas interacciones entre las variables.
•
A veces, existen objetivos contradictorios con el objetivo principal del
problema.
Dicho de otro modo, un problema de Programación Lineal se caracteriza, como su
propio nombre indica, por funciones lineales de las variables que involucra; el
objetivo es lineal en las variables, y las restricciones son también ecuaciones o
inecuaciones lineales en las variables de decisión.
Los campos de aplicación de la Programación Lineal son muy numerosos. Entre
otros, se pueden citar:
2
Programación Lineal para la Ingeniería Técnica
•
El campo de las aplicaciones militares.
•
El campo de las Matemáticas Puras y Aplicadas.
•
El campo de la Economía y, especialmente, de la Economía de la
Empresa. Aquí, las aplicaciones se tienen en numerosos sectores: la
industria química y del petróleo, las industrias alimenticias, la
metalurgia, la producción y distribución de energía eléctrica, la minería,
los transportes, la agricultura y ganadería, etc.
También los tipos de problemas son muy variados, entre ellos están:
•
Las mezclas (industria del petróleo, nutrición de animales, etc.).
•
La afectación del personal (problemas de asignación de tareas).
•
La distribución y el transporte.
•
El almacenaje.
•
Los planes de producción.
•
Los problemas compuestos de inversión, producción, almacenaje y
distribución.
•
Los estudios de circulación.
•
El problema del viajante de comercio.
Para la Teoría Económica, en general, la aportación que ha hecho la Programación
Lineal es muy valiosa, ya que muchas interrelaciones que en principio podían estar
explicadas de forma vaga, están en la actualidad cuantificadas y perfectamente
definidas. El atractivo que la Programación Lineal ofrece en cualquier otro tipo de
disciplinas, hay que buscarlo en la sencillez de las técnicas matemáticas que utiliza,
3
Programación Lineal para la Ingeniería Técnica
la riqueza o posibilidades que ofrece su teoría, y la facilidad computacional que se
tiene para los problemas lineales en contraposición con los no lineales. Al mismo
tiempo, nos permite organizar la información cuantitativa en un modelo de
expresión matemática accesible para expertos en otras profesiones.
Otra razón de la popularidad de la formulación lineal, tanto para el objetivo como
para las restricciones, es que es a menudo la menos difícil de definir, lo cual lleva
en múltiples ocasiones a linealizar objetivos no lineales, con la consiguiente
aproximación de su óptimo.
Por simplicidad en los cálculos y claridad en la exposición, el estudio no se
concretará en una aplicación particular. Los ejemplos que utilizaremos para
describir la técnica puramente formal son de pequeñas dimensiones y
económicamente irreales.
4
Programación Lineal para la Ingeniería Técnica
volver a
objetivo,
variables,
interacciones
El problema general de Programación Lineal consiste en la búsqueda del óptimo
(máximo o mínimo) de una función lineal de n variables x j , j = 1, ..., n, ligadas por
relaciones lineales (ecuaciones o inecuaciones) llamadas restricciones.
Entre las restricciones se distinguen:
1. Las del tipo x j ≥ 0 , imponiendo a una parte o al conjunto de las
variables ser no negativas. Usualmente, son llamadas restricciones de
no negatividad.
2. El resto de las restricciones, del tipo que sean, a las que a veces de les
denomina restricciones verdaderas.
Exceptuando el caso de los problemas lineales en números enteros, las variables
pueden tomar cualquier conjunto de valores reales que satisfagan las restricciones.
Precisamente, se tratará de encontrar, de entre estos posibles valores, aquel que de
un mejor valor a la función lineal antes mencionada.
Las restricciones son normalmente inecuaciones o ecuaciones. Se puede suponer,
siempre que sea necesario, que algunas inecuaciones se han multiplicado por – 1,
para que todas las desigualdades tengan el mismo sentido, y que algunas variables
se han sustituido por sus opuestas para que las únicas condiciones suplementarias
impuestas a estas variables sean restricciones de no negatividad.
2.1. EJEMPLO
Enunciado
Supongamos que un ganadero está especializado en la explotación de ganado
vacuno y que en el mercado puede comprar cuatro tipos de pienso, A, B, C y D. La
composición de los piensos por tonelada es la siguiente:
5
Programación Lineal para la Ingeniería Técnica
Datos
del
problema
•
El pienso A contiene 200 unidades de un pienso nutritivo M y 300 unidades de
otro N.
• El pienso B contiene 150 unidades de M y 270 unidades de N.
• El pienso C contiene 100 unidades de M y 140 unidades de N.
• El pienso D contiene 45 unidades de M y 90 unidades de N.
Por otro lado, teniendo en cuenta el número de cabezas existente en la explotación,
para la alimentación diaria se necesitan 5500 unidades del elemento M y 8700 de N.
El coste por tonelada de cada uno de los piensos es de 90, 81, 40 y 24 unidades
monetarias respectivamente para A, B, C y D. Se tratará de determinar el tipo y
cantidad de piensos que se deben comprar de forma que, garantizando la
alimentación del ganado, el coste sea mínimo.
Solución:
La formulación matemática del problema sería:
min
Introducción
de las
variables
y formulación
del problema
s.a.:
donde
90 x1 + 81x2 + 40 x3 + 24 x4
200 x1 + 150 x2 + 100 x3 + 45 x4 ≥ 5500
300 x1 + 270 x2 + 140 x3 + 90 x4 ≥ 8700
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0
[1]
[2]
[3]
[4]
x1 : toneladas que se deberán comprar de A.
x 2 : toneladas que se deberán comprar de B.
x3 : toneladas que se deberán comprar de C.
x 4 : toneladas que se deberán comprar de D.
La función lineal que se optimiza es [1], las restricciones lineales o
verdaderas son [2] y [3], y las restricciones de no negatividad son [4].
Obviamente, en este caso, el problema de optimización se concreta en uno
de minimización, puesto que la función que se optimiza [1] representa el
coste total de adquirir x1 toneladas de A, x 2 de B, x3 de C y x 4 de D al
precio de 90, 81, 40 y 24 unidades monetarias por tonelada respectivamente.
6
Programación Lineal para la Ingeniería Técnica
Cada una de las restricciones lineales [2] y [3] se formula como una
inecuación del tipo “mayor o igual”, ya que representa la cantidad total de
elemento nutritivo M y N, respectivamente, que contiene la ración formada
por x1 toneladas de pienso A, x 2 de B, x3 de C y x 4 de D, y que debe ser al
menos 5500 unidades para M y al menos 8700 unidades para N, es decir,
mayor o igual que 5500 y 8700 unidades respectivamente.
Por último, es obvio que la cantidad (toneladas) que incluye la ración de los
piensos A, B, C y D debe ser no negativa, es decir, mayor o igual que cero,
con lo que quedan justificadas las restricciones de no negatividad [4].
2.1. MODELIZACIÓN DEL PROBLEMA
volver a
problema
general
La traducción algebraica que podemos hacer para la formulación del objetivo,
tratará de optimizar (minimizar o maximizar) la función lineal:
f (x1 ,… , xn ) =
n
∑c x
j
j
j =1
siendo constantes los coeficientes c j .
Del mismo modo, para la formulación del sistema de restricciones:
n
∑a
ij
x j ≥ bi ,
i = 1, ..., p
ij
x j = bi ,
i = p + 1, ..., m
j =1
n
∑a
j =1
xj ≥ 0,
j = 1, ..., q
x j cualquiera
j = q + 1, ..., n
Un significado apropiado para cada una de las cantidades que intervienen sería el
siguiente:
7
Programación Lineal para la Ingeniería Técnica
x j : nivel de actividad j-ésima.
cj :
Por tanto, n denotará el número de
actividades.
margen de beneficio o coste que supone producir una unidad de la
actividad j-ésima.
aij : cantidad del i-ésimo recurso requerido para producir una unidad de la
bi :
j-ésima avtividad. Por tanto, m denotará el número de recursos.
cantidad disponible del i-ésimo recurso o su requerimiento.
Toda la teoría que vamos a desarrollar se establece bajo la condición fundamental
de no negatividad de las variables, condición que se impone a priori en casi todos
los problemas económicos, y que puede adoptarse siempre en cualquier problema.
Consideremos tres formulaciones equivalentes del problema, todas ellas
equivalentes a su vez a la forma general, y todas con variables no negativas:
1. Forma canónica: útil para el desarrollo de la teoría de la dualidad.
max
s.a.:
z = cc xc
Ac xc ≥ bc
xc ≥ 0
2. Forma estándar: para desarrollar los métodos de cálculo.
max
s.a.:
z = cd xd
Ad xd = bd
xd ≥ 0
3. Forma mixta: comprende a las dos anteriores.
max
s.a.:
8
z = ct xt
ati xt ≥ bi ,
ati xt = bi ,
xt ≥ 0
i = 1, ..., p
i = p + 1, ..., m
Programación Lineal para la Ingeniería Técnica
Todo problema de Programación Lineal puede reducirse a la forma estándar, con
el siguiente enunciado:
Hallar X = (x1 , … , xn ) ∈ ℜ n que maximice la forma lineal:
Z = f (X ) = c1 x1 + … + cn xn
sujeto a las siguientes restricciones:
a11 x1 + … + a1n xn = b1
volver a
forma éstandar
am1 x1 + … + amn xn = bm
x j ≥ 0 , j = 1, ..., n,
bi ≥ 0 , i = 1, ..., m
(m < n)
En notación matricial:
max
s.a.:
Z = CX
AX = B
X ≥0
donde:
 x1 
 a11 … a1n 
 b1 
 


 
C = (c1 , … , cn ), X =   , A = 
, B =  , m < n
x 
a

b 
 n
 m1 … amn 
 m
X ≥ 0 , denota que sus componentes son todas mayor o igual que cero.
 a1i 
 
Llamaremos Pi =   ⇒ A = (P1 , … , Pn ) .
a 
 mi 
Para llegar a la forma estándar realizaremos, en caso de ser necesario, alguna de las
siguientes operaciones:
9
Programación Lineal para la Ingeniería Técnica
Operación I: maximizar f (X) equivale a minimizar – f (X). De este modo,
siempre el problema se puede transformar en uno de maximización.
Operación II: una variable de cualquier signo x j , siempre se puede sustituir
por dos no negativas de la forma que sigue:
x j = x +j − x −j , con x +j = max(0, x j ) ≥ 0 , x −j = max(0,− x j ) ≥ 0 .
Obsérvese que así, el número de variables aumenta en una por cada una a la
que le apliquemos esta transformación. Si no se desea aumentar el número
de variables podemos utilizar otro método: supongamos que x1 no está
restringida en signo, entonces podemos eliminarla utilizando alguna de las
restricciones en la que el coeficiente de x1 sea distinto de cero. Por ejemplo,
si ai1 x1 + … + ain xn = bi es tal que ai1 ≠ 0 , entonces:
x1 =
1
(bi − ai 2 xi 2 − … − ain xn )
ai1
y sustituimos esta expresión en todas las restricciones restantes, así como en
la función objetivo. El problema quedará expresado en términos de una
variable y una restricción menos que el problema original. Obviamente, una
vez obtenido el óptimo para este nuevo problema con n – 1 variables y m – 1
restricciones, se encuentra el óptimo para el problema original fácilmente.
Operación III: si para algún i se tiene bi ≤ 0 , entonces se multiplica esa
restricción por – 1, obteniendo:
n
∑a x
ij
j =1
n
j
= bi ⇔ −∑ aij x j = −bi
j =1
donde ahora − bi ≥ 0 .
Operación IV: toda ecuación puede sustituirse por dos inecuaciones:
10
Programación Lineal para la Ingeniería Técnica
 n
 ∑ aij x j ≥ bi
n
aij x j = bi ⇔  j =n1
∑
j =1
− ∑ aij x j ≥ −bi
 j =1
Operación V: toda inecuación puede sustituirse por una ecuación,
agregando al primer término una variable, llamada de compensación o de
holgura, yi ≥ 0 .
n
∑a
ij x j ≥ bi ⇔
j =1
n
∑a
ij
n
∑a
ij
x j − yi = bi
j =1
x j ≤ bi ⇔
j =1
n
∑a
ij
x j + yi = bi
j =1
Esta variable está afectada de un coeficiente nulo en la función objetivo a
optimizar. El problema quedaría:
min
s.a.:
Z = CX + 0Y
AX − IY = B
X ≥ 0, Y ≥ 0
 1 0 … 0


 y1 
 
 0 1 … 0
donde: 0 = (0, … ,0 ), Y =   , I = 

y 


 m
 0 … 0 1


Si hacemos el cambio de notación: y s = xn + s , 1 ≤ s ≤ m , entonces:
X
C * = (C ,0) , X * =   , A* = (A,− I ) ⇒
Y 
max
Z * = C* X *
A* X * = B
X* ≥ 0
11
Programación Lineal para la Ingeniería Técnica
A partir del planteamiento del problema de Programación Lineal expresado en su
formulación estándar, vamos a estudiar las principales definiciones y resultados
que soportan el aspecto teórico del procedimiento de solución que veremos
posteriormente.
max
s.a.:
volver a
significado
apropiado
Z = CX
AX = B
A: matriz de coeficientes tecnológicos.
B: vector de disponibilidad de recursos.
X ≥0
C: vector de precios o costes unitarios.
3.1. DEFINICIONES
Algunos conceptos que utilizaremos en lo sucesivo son:
Función objetivo: la función a optimizar f(X).
Sistema de restricciones lineales: conjunto de todas las restricciones.
Solución factible: X = (x1 , … , xn ) que satisfaga el conjunto de restricciones
lineales.
Solución factible básica: la que tiene a lo sumo m variables no nulas.
Solución factible básica no degenerada: la que tiene exactamente m variables no
nulas.
Solución óptima: la mejor entre las factibles.
Región de factibilidad (F): conjunto de todas las soluciones posibles o factibles.
12
Programación Lineal para la Ingeniería Técnica
Punto n-dimensional en el espacio IRn: es la n-tupla X = (x1 , … , xn ) , y está
caracterizado por ser un conjunto ordenado de n valores o coordenadas
llamadas también componentes de X.
A continuación, procedemos a formular otras definiciones de interés.
Definición:
n
concepto
relacionado
con convexo
Un conjunto C de IR es convexo si para dos puntos cualesquiera del conjunto, el
segmento que los une también está contenido en el conjunto.
Esto es,
∀v1 , v2 ∈ C ⇒ αv1 + β v2 ∈ C , con α, β ≥ 0 y α + β = 1 .
En dos dimensiones podemos ver algunos ejemplos:
CONVEXOS
NO CONVEXOS
Definición:
papel de la
combinación
lineal convexa
Una combinación lineal convexa es una combinación de la forma
n
∑α x
i i
, con
i =1
n
∑α
i =1
i
= 1 , α i ≥ 0, ∀i = 1, … , n .
En particular, si n = 2, queda λx1 + (1 − λ )x2 ,
0 ≤ λ ≤ 1 . También se le llama segmento lineal n-dimensional.
13
Programación Lineal para la Ingeniería Técnica
Definición:
En un espacio n-dimensional, el subconjunto de puntos cuyas coordenadas
satisfacen a1 x1 + … + an xn = b se llama hiperplano. Un hiperplano tiene dimensión
n – 1 en un espacio n-dimensional. Al conjunto de puntos cuyas coordenadas
satisfacen a1 x1 + … + an xn ≤ b se le llama semiespacio cerrado.
Definición:
Un conjunto convexo se llama poliedro si es la intersección de un número finito de
semiespacios cerrados.
Definición:
Un punto extremo de la región de factibilidad F es un punto que no puede ser
expresado como combinación lineal convexa de otros puntos del conjunto, pero
cualquier otro punto del conjunto puede expresarse como combinación lineal
convexa de puntos extremos. Si el número de extremos es finito, a C se le llama
poliedro convexo.
3.2. PROPOSICIONES BÁSICAS
Dado el problema de Programación Lineal expresado en forma estándar, se tienen
los siguientes resultados.
max
s.a.:
Z = CX
AX = B
X ≥0
Teorema:
El conjunto de soluciones factibles en un problema de Programación Lineal, F, caso
de no ser vacío, es un poliedro convexo que no contiene rectas.
14
Programación Lineal para la Ingeniería Técnica
Demostración:
Supongamos que F ≠ ∅ .
Sean X 1 , X 2 ∈ F , y sean α, β cualquiera números reales tales que α ≥ 0 ,
β ≥ 0 , α + β = 1 . Entonces, por hipótesis, se tiene que X 1 ≥ 0 , AX 1 = B ,
X 2 ≥ 0 , AX 2 = B .
Se tiene que αX 1 + β X 2 ≥ 0 y A αX 1 + β X 2 = αAX 1 + β AX 2 = αB + βB = B ;
(
)
luego toda combinación lineal convexa de X 1 y X 2 pertenece a F.
La imposibilidad de contener rectas es consecuencia directa de las
restricciones de no negatividad de las variables en el problema.
Teorema Fundamental de la Programación Lineal:
a) La función objetivo es máxima en un punto extremo (vértice) del conjunto
convexo F de las soluciones factibles.
b) Si dos vértices son máximos para la función objetivo, entonces lo es toda
combinación lineal convexa de éstos.
Demostración:
Supongamos que F es un poliedro convexo.
a) Sean X 1 , … , X k los vértices de F y sea X 0 un punto no extremo y
solución posible; por no ser extremo se tiene que X 0 =
k
∑α X
i
i
, con
i =1
k
∑α
i
( )
= 1 , α i ≥ 0 , i = 1, ..., k. La función objetivo en X 0 es f X 0 = CX 0 ,
i =1
entonces:
( )
k
f X 0 = C ∑ αi X i =
i =1
k
∑ α CX
i
i =1
i
=
k
∑ α f (X )
i
i
i =1
15
Programación Lineal para la Ingeniería Técnica
{( )
}
k
( ) ∑α λ = λ.
Sea λ = max f X i , i = 1, … , n ⇒ f X 0 ≤
i
Por tanto, X 0 no es
i =1
un punto máximo de la función objetivo y el máximo se ha de alcanzar en
los extremos.
b) Sean X 1 , X 2 dos extremos donde se alcanza el máximo de la función
objetivo, es decir, f X 1 = f X 2 = λ , y sean α ≥ 0 , β ≥ 0 con α + β = 1 .
( )
( )
Por ser f lineal, se tiene:
(
)
( )
( )
f αX 1 + β X 2 = αf X 1 + β f X 2 = αλ + βλ = (α + β )λ = λ
lo cual demuestra la segunda parte.
Teorema:
Si existen k vectores Pi linealmente independientes y existen x1 , … , xk reales tales
que
k
∑xP
i i
i =1
= B con todos los xi ≥ 0 y k < n, entonces X = (x1 , … , xk ,0, … ,0 ) es un
vértice de F.
Demostración:
Supongamos, por reducción al absurdo, que X no es vértice de F. Entonces,
existen X 1 = x11 , … , x1n , X 2 = x12 , … , xn2 vértices distintos de F, y α, β
(
)
(
)
números reales ( α ≥ 0 , β ≥ 0 con α + β = 1 ) tales que X = αX 1 + β X 2 , esto
es:
(x1 , … , xk ,0, … ,0) = α(x11 , … , x1n ) + β(x12 , … , xn2 )
Podemos considerar que α ≠ 0 y β ≠ 0 , ya que:
Si α = 0, entonces β = 1, y se tendría que X = X 2 , llegando a contradicción.
Si β = 0, entonces α = 1, y se tendría que X = X 1 , llegando a contradicción.
Por tanto: x1k +1 = … = x1n = xk2+1 = … = xn2 = 0 , y como X 1 , X 2 ∈ F , se tiene:
16
Programación Lineal para la Ingeniería Técnica
AX 1 = B ⇒ P1 x11 + … + Pk x1k = B 
1
2
1
2
 ⇒ x1 − x1 P1 + … + xk − xk Pk = 0
2
2
2
AX = B ⇒ P1 x1 + … + Pk xk = B 
(
)
(
)
y como Pi son linealmente independientes, se deduce que:
xi1 = xi2 , i = 1, … , k ⇒ X 1 = X 2 , lo que de nuevo es una contradicción.
Así, por cualquiera de los caminos llegamos a contradicción con la hipótesis
de partida, por lo tanto se concluye que X es un vértice de F.
Teorema. (recíproco del anterior)
Si el punto X = (x1 , … , xk ,0, … ,0 ) es un vértice del conjunto de restricciones,
n
∑xP
entonces los vectores Pi asociados mediante
i i
= B a los xi son linealmente
i =1
independientes.
Demostración:
Sea X = (x1 , … , xk ,0, … ,0 ) vértice de F con xi > 0 para 1 ≤ i ≤ k , entonces
sus vectores asociados mediante
n
∑xP
i i
= B son P1 , … , Pk , y supongamos
i =1
que son linealmente dependientes. Entonces, existen escalares β1 , … , β k
tales que β1 P1 + … + β k Pk = 0 con alguno de esos escalares distinto de cero.
k
Sea α > 0 ⇒ α∑ β i Pi = 0 , luego se tiene:
i =1

+ αβi )Pi = B 

i =1
i =1
i =1

k
k
k
xi Pi − α∑ βi Pi = ∑ (xi − αβi )Pi = B 
∑

i =1
i =1
i =1
k
k
∑ xi Pi + α∑ βi Pi =
k
∑ (x
i
Construimos dos vectores de la forma:
17
Programación Lineal para la Ingeniería Técnica
X 1 = (x1 + αβ1 , … , xk + αβ k ,0, … ,0 )
X 2 = (x1 − αβ1 , … , xk − αβ k ,0, … ,0)
Como todas las xi > 0 siempre podemos elegir un α > 0 tal que todas las
componentes xi + αβi y xi − αβ i sean estrictamente positivas. Según esto,
X 1 , X 2 ∈ F por el teorema anterior.
X1 + X 2
X1 X 2
Pero
=
+
= X , lo que entra en contradicción con el hecho
2
2
2
de ser X vértice de F, porque si X es punto medio del segmento definido por
X 1 y X 2 en el convexo F, X no puede ser vértice de F.
Concluimos por tanto que P1 , … , Pk son linealmente independientes.
Propiedades:
Dado el problema de Programación Lineal en forma estándar, se tienen las
siguientes propiedades:
1. Si tiene solución factible, entonces tiene solución factible básica.
2. Si existe una solución factible óptima, entonces existe una solución factible
básica óptima.
3. Cualquier punto extremo de F también es solución factible básica.
4. Si F es distinto del vacío, al menos posee un punto extremo.
5. Si F es igual al vacío, no existe solución óptima.
6. F posee un número finito de puntos extremos.
7. Si la función objetivo está acotada superiormente en F distinto del vacío,
entonces existen soluciones óptimas, al menos una de las cuales es un punto
extremo de F.
18
Programación Lineal para la Ingeniería Técnica
8. Si F es no acotado, puede existir solución óptima no acotada.
Consecuencia:
Para encontrar las soluciones factibles básicas óptimas, bastará con investigar el
valor que toma la función objetivo en los puntos extremos del poliedro convexo
que constituye la región de factibilidad, representada por la intersección de las
restricciones.
Además, si dos de estos extremos son óptimos, también lo será cualquier punto del
segmento o combinación lineal convexa que los une, con lo que tendríamos un
número infinito de soluciones óptimas. Se estaría en esta situación cuando la
función objetivo fuera paralela a una restricción.
19
Programación Lineal para la Ingeniería Técnica
Siempre que el problema incluya únicamente dos o tres variables de decisión,
podemos representar gráficamente las restricciones para dibujar en su intersección
el poliedro convexo que conforma la región de factibilidad F.
Si el número de variables es dos, las restricciones, semiespacios cerrados, son
semiplanos delimitados por la recta que corresponde a cada restricción. Si el
número de variables es tres, los semiespacios en este caso están delimitados por
planos.
4.1. REGLA DE LOS CINCO PASOS
Para hallar, gráficamente, la solución de un problema de Programación Lineal con
dos variables, procederemos del siguiente modo:
Paso 1: representaremos todas las restricciones del problema para determinar la
región de factibilidad F. Si ésta es vacía, el problema no tiene solución óptima, se
dice que es inconsistente. En otro caso, ir al paso 2.
Paso 2: identificar los extremos o vértices de F.
Paso 3: dibujar una de las rectas que pertenece a la familia de rectas paralelas que
representa la función objetivo, f(X) = k. Habitualmente, suele dibujarse f(X) = 0 por
comodidad.
Paso 4: desplazamos paralelamente a sí misma la recta que representa la función
objetivo para determinar la dirección de mejora, que será aumento o disminución
según si el objetivo del problema es la maximización o minimización de dicha
función.
20
Programación Lineal para la Ingeniería Técnica
Paso 5: el punto extremo de F al que corresponde el valor óptimo para la recta que
representa la función objetivo es la solución óptima finita del problema.
Nota: hay que tener en cuenta que pueden presentarse las situaciones estudiadas
en el apartado anterior, cuando existe más de un punto extremo o la región de
factibilidad es no acotada.
4.2. EJEMPLO
Enunciado
(El problema de la ración)
Supongamos que se quiere elaborar una ración que satisfaga unas condiciones
mínimas de contenidos vitamínicos diarios, por ejemplo 2 mg de vitamina A, 60
mg de B y 40 mg de C. Para ello se van a mezclar dos clases de piensos, P y Q,
cuyo precio por kilogramo es, respectivamente, de 40 y 60 pesetas, y cuyo
contenido en las vitaminas citadas es:
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 satisfagan esas necesidades
vitamínicas con el menor gasto posible?.
Solución:
Definición
de
variables
Denotamos: x = cantidad de P que se debe consumir diariamente.
y = cantidad de Q que se debe consumir diariamente.
La función objetivo a minimizar en este caso consiste en el coste producido
por la compra de los piensos P y Q, esto es:
f (x, y) = 40x + 60y
21
Programación Lineal para la Ingeniería Técnica
Las restricciones lineales que aseguran que se satisfacen las necesidades
mínimas en contenido de vitaminas quedan expresadas como:
x + 0.5y ≥ 2
20x + 20 y ≥ 60
10x + 20 y ≥ 40
(vitamina A)
(vitamina B)
(vitamina C)
Con todo ello, y las restricciones de no negatividad debido a la definición de
las variables, el problema queda planteado como sigue:
Formulación
del
problema
min
s.a.:
f(x, y) = 40x + 60y
x + 0.5 y ≥ 2
20 x + 20 y ≥ 60
10 x + 20 y ≥ 40
x ≥ 0, y ≥ 0
Dibujamos la región de factibilidad:
Resolución
gráfica.
Método
de los 5
pasos
4
A
3
B
2
C
1
D
0
1
40x + 60y = 0
2
x + 0.5y = 2
3
4
20x + 20y = 60
10x + 20y = 40
El mínimo se alcanza en C(2,1), esto es, se necesitan 2 kilogramos de P y 1
kilogramo de Q, con un coste diario por animal de 140 pesetas.
22
Programación Lineal para la Ingeniería Técnica
Alternativa
de solución
gráfica
Otra opción de resolver este tipo de problemas en dos dimensiones consiste en,
una vez localizados los puntos extremos en el paso 2, sustituir los pasos 3, 4 y 5 del
método de resolución gráfica por una simple sustitución de los vértices en la
función objetivo para localizar visualmente en cuál se alcanza el óptimo buscado.
En esta segunda opción, hay que tener en cuenta que si la región de factibilidad no
está acotada como en el ejemplo, es necesario seleccionar, junto con los vértices, un
punto en cada una de las restricciones por las que no se cierra la región factible, y
una vez sustituidos en la función objetivo, realizar el límite a lo largo de la
restricción correspondiente. Ilustramos esta operación con el ejemplo que estamos
considerando.
En este caso, los vértices son: A(0,4), B(1,2), C(2,1), D(4,0), y consideramos dos
puntos de la forma E(x,0), F(0,y) que corresponden a las rectas que abren la región
factible. Sustituimos estos seis puntos en la función objetivo a minimizar:
f(A) = f(0,4) = 240
f(B) = f(1,2) = 160
f(C) = f(2,1) = 140
f(D) = f(4,0) = 160
f(E) = f(x,0) = 40x
f(F) = f(0,y) = 60y
lim 40 x = +∞
x → +∞
lim 60 y = +∞
y → +∞
Como es obvio, el resultado es el mismo. Es de destacar en este ejemplo que la misma
función con las mismas restricciones no posee máximo acotado.
4.3. OBSERVACIONES
Observación 1:
Si f(x, y) = ax + by, la dirección de “mejora” se obtiene geométricamente de la
siguiente manera:
23
Programación Lineal para la Ingeniería Técnica
• Si b > 0, el máximo se calculará trasladando paralelamente f(x, y) = k
hasta que toque al último vértice, donde se encontrará el máximo. Para
el caso de mínimo, se realizará lo mismo para el primer vértice.
• Si b < 0, se procede de manera contraria, esto es, para el máximo nos
fijaremos en el primer vértice, y para el mínimo en el último.
Observación 2:
En caso de duda, calcular el valor de f en los vértices, si la región de factibilidad
está acotada. Si no lo está, mirar también en puntos “alejados” a ver que pasa
(como ya hemos mencionado antes).
Observación 3:
Observemos, por último, que este mismo procedimiento puede seguirse en el caso
de que el problema incluya tres variables, efectuando una representación espacial
3
en IR . Lógicamente, si la dimensión del problema es mayor, la representación
gráfica es imposible.
24
Programación Lineal para la Ingeniería Técnica
Supongamos que queremos resolver el problema lineal sin desarrollar una técnica
específica. Un método de resolución que se podría pensar de forma casi intuitiva
es el siguiente.
El problema puede expresarse introduciendo, si hace falta, variables de holgura
como:
max
Z = c1 x1 + … + cn xn
s.a.:
a11 x1 + … + a1n xn + xnH+1 = b1
a21 x1 + … + a2 n xn + xnH+ 2 = b2
am1 x1 + … + amn xn + xnH+ m = bm
xi ≥ 0 , i = 1, … , n
xnH+ j ≥ 0 , j = 1, … , m
Este problema tiene m ecuaciones y n + m incógnitas. Para resolverlo podemos
elegir m columnas linealmente independientes cualesquiera y resolver los
subproblemas de esta forma obtenidos, analizando de entre las soluciones que se
tengan, cuál es óptima para la función objetivo. Nótese que la submatriz formada
por los m vectores columna correspondientes a las m variables de holgura es
justamente la matriz identidad, y por tanto, no singular.
Veámoslo con un ejemplo. Supongamos el siguiente problema a resolver:
max
s.a.:
25
f (x1 , x2 ) = −3x1 + 2 x2
− 2 x1 + x2 ≤ 2
x1 − 2 x2 ≤ 3
x1 + 2 x2 ≤ 11
x1 , x2 ≥ 0
Programación Lineal para la Ingeniería Técnica
Introduciendo las correspondientes variables de holgura, con coste cero en la
función objetivo, el problema expresado en su formulación estándar queda como:
Forma
estándar
max
f (x1 , x2 ) = −3x1 + 2 x2 + 0 x3H + 0 x4H + 0 x5H
s.a.:
− 2 x1 + x2 + x3H = 2
x1 − 2 x2 + x4H = 3
x1 + 2 x2 + x5H = 11
x1 , x2 , x3H , x4H , x5H ≥ 0
La matriz de coeficientes tecnológicos del problema es:
1 1 0 0
− 2


A =  1 − 2 0 1 0
 1
2 0 0 1 

Como cualesquiera tres vectores columna son linealmente independientes,
tenemos C53 = 10 formas distintas de elegir tres columnas de la matriz de
coeficientes tecnológicos, es decir, tenemos 10 sistemas lineales a resolver como
éste:
1 1  x1   2 
− 2
 x1   7 

   
   
 1 − 2 0  x2  =  3  ⇒  x2  =  2 
 1
 x  14 
2 0  x3  11

 3  
La siguiente tabla resume el resultado de plantear estos 10 sistemas. En ella se
especifica, además del número asignado a cada sistena, los vectores columna
elegidos para cada uno de ellos y la solución que proporcionan. Así mismo, si
añadimos la condición de no negatividad de las variables, obtenemos cuales de las
soluciones anteriores son factibles para el problema lineal. Finalmente, señalamos
el valor que toma la función objetivo únicamente para las soluciones
proporcionadas por los 10 sistemas que han sido factibles, eligiendo el máximo así
obtenido para la función objetivo. Este resultado óptimo se señala en negrita
dentro de esta tabla.
26
Programación Lineal para la Ingeniería Técnica
Sistema
nº
Vectores
columna
elegidos
Solución
Solución factible con la
condición de no
negatividad
Valor
de la
f.o.
1
1, 2, 3
(7, 2, 14, 0, 0)
(7, 2, 14, 0, 0)
-17
2
1, 2, 4
(7/5, 24/5, 0, 56/5, 0)
(7/5, 24/5, 0, 56/5, 0)
27/5
3
1, 2, 5
(-7/3, -8/3, 0, 0, 56/3)
4
1, 3, 4
(11, 0, 24, -8, 0)
5
1, 3, 5
(3, 0, 8, 0, 8)
(3, 0, 8, 0, 8)
-9
6
1, 4, 5
(-1, 0, 0, 4, 12)
7
2, 3, 4
(0, 11/2, -7/2, 14, 0)
8
2, 3, 5
(0, -3/2, -7/2, 0, 14)
9
2, 4, 5
(0, 2, 0, 7, 7)
(0, 2, 0, 7, 7)
4
10
3, 4, 5
(0, 0, 2, 3, 11)
(0, 0, 2, 3, 11)
0
Posibles
soluciones
(
)
El valor óptimo para la función objetivo es Z * = f * x1* , x2* =
valores de las variables x1* =
27
, obtenido con los
5
7 * 24
, x2 =
.
5
5
Este procedimiento da idea de cómo resolver en general problemas de
Programación Lineal pero, como es obvio, presenta grandes inconvenientes para
su uso práctico cuando las dimensiones del sistema son mayores, lo cual suele ser
habitual en problemas reales. Nótese, que el número de sistemas lineales a
m + n
 , por ello el método más utilizado es el del
resolver será en general 
 m 
Simplex de Dantzig que utiliza un número razonable de etapas.
Ir al bloque 2
27
Descargar