Tema 2
Tema 2
Índice
1. Construcción de modelos. . . . . . . . . . . . . . . . . . . . 1
1.1. Modelos de Programación lineal . . . . . . . . . . . . . . . . 1
1.2. Modelo de Programación Entera . . . . . . . . . . . . . . . . 5
1.3. Modelo no lineal. . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Solución gráfica de modelos de Programación Lineal . . . 6
3. Forma general de un modelo de programación lineal. . . . 10
4. Forma canónica y forma estándar de un modelo de pro-
gramación lineal. . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Soluciones básicas . . . . . . . . . . . . . . . . . . . . . . . . 14
6. Variables artificiales . . . . . . . . . . . . . . . . . . . . . . . 18
0
En este tema vamos a ver una introducción a la Programación Lineal. En primer
lugar veremos qué es la Programación Lineal y cómo son los problemas que aborda;
a continuación veremos cómo construir modelos de Programación Lineal y cómo, para
casos sencillos, resolver el problema gráficamente. Luego, de modo parecido veremos
ejemplos de otro tipo de modelos, siendo más concretos, de programación lineal entera y
de programación no lineal. No obstante, durante este curso no estudiaremos cómo resol-
ver este otro tipo de modelos. Ası́ que volveremos a centrarnos en los modelos lineales,
veremos cuál es la forma general de estos problemas ası́ como sus formas equivalentes,
y por último definiremos la terminologı́a que vamos a utilizar en lo sucesivo.
1. Construcción de modelos.
1.1. Modelos de Programación lineal
La Programación Lineal es uno de los avances cientı́ficos más importantes de la
segunda mitad del siglo XX, y es fundamental en economı́a y planificación. Se utiliza
para asignar, de la mejor manera posible, una serie de recursos a unas actividades que
queremos realizar.
En los problemas de Programación Lineal nos encontraremos con:
- Función Objetivo: es la meta que se quiere alcanzar, y que será la función a
optimizar
- Minimizar: costos, tiempo...
- Maximizar: beneficios, rendimientos...
- Restricciones: éstas vendrán determinadas por las condiciones en las que nos
encontramos a la hora de optimizar la función objetivo y son del tipo:
- escasez de recursos
- exigencias de producción
- exigencias de entrega
- exigencias de tipo social...
- Linealidad: tanto la función objetivo como las restricciones, son funciones linea-
les de las variables consideradas.
La Programación Lineal, en términos generales, va a consistir en:
Optimizar una función objetivo z = c · x
sujeto a unas restricciones Ax ≤ (ó ≥, =)b
x ≥ 0.
Vamos a ver este apartado sobre varios ejemplos:
1
Como se ha producido una alta demanda de ambos modelos, el gerente general cree
que puede vender todos los comedores que se produzcan.
Los comedores requieren tiempo de proceso de construcción y de pintura.
Si los requerimientos y capacidades de producción diarios son los que se muestran
a continuación, determinar cuántos comedores se deben fabricar para vender.
Recursos requeridos PRODUCTO Recursos disponibles
para producir 1 unidad América Europa (capacidad)
tiempo de construcción (en horas) 6 12 120
tiempo de pintura (en horas) 8 4 64
utilidad unitaria 400 480
Solución:
Vamos a buscar un modelo matemático que describa esta situación. Los pasos a
seguir son los siguientes:
1. En primer lugar hay que identificar las variables de decisión del problema. En
este caso llamaremos:
x1 = no de comedores del modelo América
x2 = no de comedores del modelo Europa
2. Buscar la función objetivo. En este caso lo que queremos es maximizar la utilidad.
Dicha utilidad depende del no de comedores de cada tipo que se fabriquen, por
lo tanto, el objetivo será:
Maximizar z = 400x1 + 480x2
3. Encontrar las restricciones. Como los recursos de que disponemos (horas disponi-
bles en cada una de las secciones) no son ilimitados, la producción estará también
limitada por esta escasez de recursos. Tendremos que: El tiempo de proceso diario
de ambos comedores en las secciones de construcción y pintura, no puede exceder
el tiempo total disponible en cada una de ellas. Es decir:
- En la sección de construcción: el no total de horas requerido en esta sección, que
es, el no de horas requerido para la construcción de cada comedor América (6) por
el no de comedores América que se construyan, más el no de horas requerido para
la construcción de cada comedor Europa (12) por el no de comedores Europa que
se construyan, debe ser menor o igual que el no de horas disponibles (capacidad)
en esta sección.
E. d: 6x1 + 12x2 ≤ 120
Análogamente para la sección de pintura:
8x1 + 4x2 ≤ 64
4. Condición de no negatividad: Esta es otra restricción, ya que el no de comedores
de cada tipo que se fabriquen, será como mı́nimo cero. Por lo tanto: x1 , x2 ≥ 0.
Entonces, el modelo será:
Maximizar z = 400x1 + 480x2
sujeto a 6x1 + 12x2 ≤ 120
8x1 + 4x2 ≤ 64
x1 , x2 ≥ 0
2
Ejemplo 2.- Problema de la dieta.
Una empresa de dietética desea crear unas raciones de frutas mediante mezcla de
fruta de dos tipos: tipo A y tipo B.
Cada unidad de fruta de tipo A contiene 3 mg. de vitamina 1 y 6 mg. de vitamina
2.
Cada unidad de fruta de tipo B contiene 2 mg. de vitamina 1 y 3 mg. de vitamina
2.
La unidad de fruta de tipo A tiene un costo de 5 euros y la de tipo B cuesta a 20 euros
la unidad.
La meta es diseñar una ración que tenga al menos 36mg. de vitamina 1 y 60mg. de
vitamina 2, minimizando los costos de su fabricación. Construye un modelo de progra-
mación lineal para la empresa dietética.
Solución:
- Variables de decisión: x1 = no unidades de fruta A que incluimos en cada ración
x2 =no unidades de fruta B que incluimos en cada ración
- Función objetivo: Minimizar los costos de la ración.
- Restricciones: Vienen dadas por la cantidad mı́nima de vitaminas que tiene que
tener cada ración.
mg. de vitamina 1: 3x1 + 2x2 ≥ 36
mg. de vitamina 2: 6x1 + 3x2 ≥ 60
- Condición de no negatividad: El no unidades de fruta de cada tipo que se incluyan
en la ración debe ser mayor o igual que cero. Por lo tanto: x1 , x2 ≥ 0.
Entonces, el modelo es:
Minimizar z = 5x1 + 20x2
s. a: 3x1 + 2x2 ≥ 36
6x1 + 3x2 ≥ 60
x1 , x2 ≥ 0.
3
C. Dist. 1 C. Dist. 2 C. Dist. 3
Planta 1 21 25 15
Planta 2 28 13 19
1. No Negatividad: xij ≥ 0
2. Demanda:
3. Oferta:
Las variables de decisión deben aceptar soluciones como números reales para tener un
modelo de P.L. Está demostrado que si la demanda y la oferta son enteros, la solución
óptima tiene todas las variables enteras, aunque en el modelo no hayamos forzado a
que las variables sean enteras.
4
1.2. Modelo de Programación Entera
Son aquellos modelos de programación lineal en los que exigimos que sus varia-
bles tomen valores enteros. En este curso veremos simplemente su formulación. No
explicaremos los métodos para resolverlos.
El problema de la mochila
Es un problema clásico en programación lineal entera. Considérese un excursionista
que debe preparar su mochila. Considérese asimismo que hay una serie de objetos de
utilidad para el excursionista, pero que el excursionista sólo puede llevar un número
limitado de objetos, debido a la capacidad de la mochila. El problema consiste en elegir
un subconjunto de objetos de tal forma que se maximice la utilidad que el excursionista
obtiene, pero sin rebasar su capacidad de acarrear objetos.
Veamos un ejemplo. Un armador tiene un carguero con capacidad de hasta 700
toneladas. El carguero transporta contenedores de diferentes pesos para una determi-
nada ruta. En la ruta actual el carguero puede transportar algunos de los siguientes
contenedores:
Contenedor c1 c2 c3 c4 c5 c6 c7 c8 c9 c10
Peso que puede transportar 100 155 50 112 70 80 60 118 110 55
z = 100x1 + 155x2 + 50x3 + 112x4 + 70x5 + 80x6 + 60x7 + 118x8 + 110x9 + 55x10
100x1 + 155x2 + 50x3 + 112x4 + 70x5 + 80x6 + 60x7 + 118x8 + 110x9 + 55x10 ≤ 700
5
Localización de instalaciones
Una compañı́a petrolera desea construir una refinerı́a que recibirá suministros desde
tres instalaciones portuarias, cuyas coordenadas se muestran en la siguiente figura:
No hay restricciones sobre las variables. Se puede calcular el mı́nimo con técnicas de
cálculo diferencial. Al ser una función convexa, se puede ver que el mı́nimo relativo es
mı́nimo absoluto.
6
16
2ª restricción
10
1ª restricción
8 20
Este conjunto es un conjunto convexo, por ser intersección de convexos, y como una
función lineal es una función convexa, sabemos que el óptimo de la función se obtiene en
un punto extremo del convexo. Entonces, basta calcular el valor de la función objetivo
en estos puntos para saber en cuál de ellos se alcanza el óptimo. En este caso:
(0, 0) ........ z = 0
(8, 0) ........ z = 3 200
(0, 10) ....... z = 4 800
(4, 8) ........ z = 5 440
Por lo tanto el óptimo se alcanza en el punto (4, 8).
Este método de obtener la solución no es práctico cuando tenemos muchos puntos
extremos. Es más sencillo dibujar la recta de utilidad (curva de nivel de la función z)
y ver para qué punto(s) de la región que hemos determinado se alcanza el óptimo.
7200
Z
4800
2400
20
15
10
5
X2
00
5
10
15
X1 20
7
Curva de nivel z = 4 800: 400x1 + 480x2 = 4 800, pasa por los ptos. (12, 0) y
(0, 10).
16
10 sentido de aumento
de la utilidad
z=
z=2400
8 48 20
00
Una vez obtenida una solución, (en este caso, el punto (4, 8)), hay que interpretarla.
Es decir, para nuestro ejemplo, la solución es:
- Fabricar 4 comedores del modelo América y 8 comedores modelo Europa cada dı́a.
- De este modo la utilidad diaria es de 5440 euros.
- Además, el no de horas consumidas en la sección de construcción es de: 6 ∗ 4 + 12 ∗ 8 =
24 + 72 = 120 y en la sección de pintura es de: 8 ∗ 4 + 4 ∗ 8 = 32 + 32 = 64 luego hemos
agotado todos los recursos.
20
18
H4,12L
1012
Como la solución está en un punto extremo del convexo, estudiamos en cuál de esos
puntos se alcanza el mı́nimo.
(12,0) ........ z= 60
(0,20) ........ z= 400
(4,12) ........ z= 260
Por lo tanto, el mı́nimo se alcanza en el punto (12,0).
Si dibujamos la lı́neas de utilidad, en este caso costos, vemos que la solución coincide.
5x1 + 20x2 = 100, pasa por los puntos (0,5) y (20,0)
5x1 + 20x2 = 200, pasa por los puntos (0,10) y (40,0)
8
20
18
H4,12L
1012z=100 z=200
sentido de
reducción de costo
9
3. Forma general de un modelo de programación
lineal.
A partir de la formulación algebraica de los ejemplos anteriores, podemos establecer
en forma general el problema de programación lineal como sigue:
Determinar ~x = (x1 , . . . , xn )T ∈ Rn tal que:
Optimice una función objetivo z = ~c · ~x
Sujeto a unas restricciones: A~x ≤ (≥ ó =)~b
en el que los coeficientes son de la forma:
x1 a11 · · · a1n b1
~c = (c1 , . . . , cn ), ~x = · · · , A = · · · · · · · · · = A1 · · · An , ~b = · · · .
xn am1 · · · amn bm
Donde:
Teorema 2. Un problema de programación lineal puede ser una de estas tres opciones:
10
2. Factible no acotado ( es decir: “máx z = ∞” ó “mı́n z = −∞”). En este caso, la
región de factibilidad es no acotada.
3. Factible acotado (con uno o más puntos donde se alcanza el óptimo). En este
caso, la región de factibilidad puede ser acotada o no y existe al menos un vértice
donde se alcanza el óptimo.
- El objetivo es de maximización.
max z = ~c · ~x
En forma matricial: s.a. A~x ≤ ~b
~x ≥ 0.
Notemos que los elementos de ~b, a la derecha de las restricciones pueden ser nega-
tivos, lo que hace muy poco exigente el que cualquier problema de programación lineal
se pueda expresar en forma canónica.
Dado un problema, siempre podemos escribirlo de forma equivalente teniendo en
cuenta que:
Para la función objetivo: Max z = ~c · ~x / Min −z = −~c · ~x
Min z = ~c · ~x / Max −z = −~c · ~x
Para las restricciones: A~x ≤ ~b / −A~x ≥ −~b
A~x ≥ ~b / −A~x ≤ −~b
Cualquier igualdadPlineal se puede sustituir por dos desigualdades lineales. En efec-
to, dada la igualdad: nj=1 aij xj = bi
(P
n
aij xj ≤ bi
Es equivalente las desigualdades: Pj=1 n
a x ≥ bi
(Pj=1 ij j
n
j=1 aij xj ≤ bi
y multiplicando la segunda por (-1): . Sin embargo, si en un
− nj=1 aij xj ≤ −bi
P
11
Ejemplo: consideremos las restricciones de igualdad: x1 = 1 y x2 = 3, que de acuerdo
con lo anterior podemos escribir como:
x1 ≤ 1; x2 ≤ 3; −x1 − x2 ≤ −4
yi = −xi ≥ 0
- si una variable no está restringida en signo, (puede ser mayor, menor o igual
a cero), la expresaremos como diferencia de dos variables no negativas: x = no
restringida, entonces: x = xi − xk , con xi , xk ≥ 0.
Veamos un ejemplo:
Min z = 2x1 − x2 + 3x3
s. a: x1 − x2 ≥ 4
2x1 + x3 ≥ 2
x1 ≥ 0, x2 ≤ 0, x3 no restringida.
Para expresar esto, con todas las variables no negativas, llamamos: x1 = y1 , con y1 ≥ 0;
x2 = −y2 , con y2 ≥ 0 ; x3 = y3 −y4 , con y3 , y4 ≥ 0. Entonces el problema se transforma
en:
Min z = 2y1 + y2 + 3y3 − 3y4
s.a.: y1 + y2 ≥ 4
2y1 + y3 − y4 ≥ 2
y1 , y2 , y3 , y4 ≥ 0
o lo que es equivalente:
12
s.a.: −y1 − y2 ≤ −4
−2y1 − y3 + y4 ≤ −2
y1 , y2 , y3 , y4 ≥ 0.
Si en el modelo de programación lineal todos los signos son igualdades, y los ele-
mentos de ~b son todos no negativos, y se pide que las variables sean no negativas,
se dice que el problema de programación lineal está en forma estándar. Es decir:
max (ó min) z = ~c · ~x
s.a. A~x = ~b
~x ≥ 0.
Vemos por tanto que para que un problema se encuentre en forma estándar, se debe
cumplir que:
s.a.: x1 + x2 + 4x3 ≤ 10
x1 − x3 ≥ 3
x1 − x2 ≥ −1
x1 , x2 , x3 ≥ 0.
Lo transformamos en otro problema de programación lineal en forma estándar que sea
equivalente al primero:
s.a.: x1 + x2 + 4x3 + h1 = 10
x1 − x3 − h2 = 3
−x1 + x2 + h3 = 1
x1 , x2 , x3 , h1 , h2 , h3 ≥ 0.
La ventaja de la forma estándar es que se pueden calcular los vértices de modo más
sencillo. El método del Simplex, que es el método que utilizaremos para resolver los
problemas de programación lineal, se aplica a problemas lineales en forma estándar.
13
5. Soluciones básicas
La ventaja de la forma estándar es que la región de factibilidad es la solución de
A~x = ~b, ~x ≥ 0, y será razonable calcular sus vértices. Si A es una matriz de m filas
y n columnas con n > m y Rang(A) = m (veremos posteriormente que esto siempre
se puede conseguir), sabemos (por álgebra lineal) que el sistema A~x = ~b tiene infinitas
soluciones dependiendo de n − m parámetros. Las soluciones son rectas (n − m = 1),
planos (n − m = 2), o en general variedades afines de dimensión n − m que viven en
Rn .
Las variedades lineales no tienen vértices. Los vértices pueden aparecer al intersecar
con el primer octante: ~x ≥ 0.
Por ejemplo, 6x + 3y + 4z = 2
Z Z Z
H0,0,12L
H13,0,0L H0,23,0L
Y Y Y
X X X
Otros ejemplos:
( ( (
x1 − 2x2 + 3x3 = 4 x1 − 2x2 + 3x3 = 2 x1 + 2x2 + x3 = 8
2x1 + x2 + 6x3 = 8 2x1 + x2 + 6x3 = 9 x1 + 3x2 − x3 = 12
Z
Z
Z
H0,4,0L
H0,0,43L
H0,1,43L Y
H4,0,0L
H4,1,0L
Y Y
X
X
Vamos a ver ahora algunos conceptos como los de base y solución básica, que están
relacionados con los vértices.
Sea el sistema de ecuaciones lineales, de m ecuaciones y n variables (n > m):
a11 x1 + . . . + a1n xn = b1
a21 x1 + . . . + a2n xn = b2
... ... ... ...
am1 x1 + . . . + amn xn = bm
14
que podemos escribir en forma matricial A~x = ~b, donde
a11 · · · a1n x1 b1
y ~b = · · · .
A = · · · · · · · · · = A1 · · · An , ~x = · · ·
am1 · · · amn xn bm
A1 x1 + . . . + An xn = ~b.
Si suponemos que rango de A, r(A) = m, sabemos (por álgebra lineal) que el sistema
tiene infinitas soluciones. Consideraremos sólo algunas de ellas:
Definición 2. Dada una base B = (Ai1 |Ai2 | . . . |Aim ), se denominan variables básicas
a las m variables asociadas con las columnas elegidas en la base. El vector de variables
básicas se denota por ~xB = (xi1 , xi2 , . . . , xim )T . Al resto de variables se les denomina
no básicas.
Dada una base B, buscamos las soluciones del sistema A~x = ~b que cumplan que las
que las n − m variables no básicas (asociadas a las columnas que no están en la base)
son iguales a cero. Notar que esto es equivalente a resolver el sistema B.~xB = ~b de m
ecuaciones con m incógnitas. Como B es no singular, tiene solución única.
Definición 3. Dada una base B, llamamos solución básica a aquella en la que sus
variables básicas cumplen B.~xB = ~b y las no básicas son iguales a cero.
En una solución básica, las variables básicas pueden tomar valores positivos, ne-
gativos o cero, y si en particular una o más variables básicas toman el valor cero, la
solución básica se denomina degenerada.
Ejemplo. Vamos a estudiar las soluciones básicas del sistema de ecuaciones lineales:
(
x1 + 2x2 + x3 = 8
x1 + 3x2 − x3 = 12.
Esta asignación es correcta, ya que como la primera columna de B está asociada con la
variable x1 , el primer valor de ~xB , corresponde a x1 . Análogamente, la segunda columna
de B está asociada con la variable x3 , y el segundo valor de ~xB , corresponde a x3 .
En este caso, x1 y x3 son las variables básicas, y x2 es no básica. Si hacemos ahora
x3 = 0; la submatriz de orden m = 2 resultante, es no singular por lo que también es
una base:
1 2 x1 −1 ~ 3 −2 8 0
(A1 , A2 ) = B = luego: = ~xB = B · b = = .
1 3 x2 −1 1 12 4
15
Por lo tanto ~xB = (x1 , x2 )T = (0, 4).
Esta solución básica es degenerada, ya que la variable x1 toma el valor cero. Final-
mente si hacemos x1 = 0; la submatriz de orden m = 2 resultante, es no singular por
lo que también es una base:
2 1 x2 −1 ~ 1/5 1/5 8 4
(A2 , A3 ) = B = luego: = ~xB = B ·b = = .
3 −1 x3 3/5 −2/5 12 0
Resumen
variables básicas v. no básicas
x1 = 10 x3 = −2 x2 = 0
x1 = 0 x2 = 4 x3 = 0
x2 = 4 x3 = 0 x1 = 0
Nótese en la tabla anterior, que si una solución básica es degenerada, puede que sea
solución básica de varias bases diferentes.
n
Notar que hay a lo sumo m posibles soluciones básicas para el sistema de ecua-
ciones A~x = ~b, (que corresponden al número de formas que hay de seleccionar m de
las n columnas). Por lo tanto, el número de soluciones básicas está limitado al número
de combinaciones de las variables (n), tomadas de m en m, y además ese número es
máximo ya que algunas pueden no existir, como veremos en el siguiente ejemplo.
Ejemplo. Determinamos las soluciones básicas para el sistema de ecuaciones:
(
x1 − 2x2 + 3x3 = 4
2x1 + x2 + 6x3 = 8.
que al ser singular, (los vectores columna no son linealmente independientes) no forman
una base.
Veamos que hay una correspondencia uno a uno, entre las soluciones básicas facti-
bles y los puntos extremos.
Teorema 3. Sea A una matriz m × n, con r(A) = m, y sea ~b(un vector m × 1. Sea
A~x = ~b
K el poliedro convexo formado por los vectores ~x que verifican: . Un vector
~x ≥ 0
~x es una solución básica factible del sistema anterior, si y solo si ~x es un punto
extremo de K.
16
Demostración. Ver, por ejemplo, Salazar, Programación Matemática, Dı́az de San-
tos, 2001. O también: Bazaraa, Jarvis, Linear programming and network flows, Wiley
(1977), pag. 90-92.
Conclusiones de los teoremas:
M ax z = 2x1 + 4x2 + x3
17
La solución básica asociada es:
2/3 −1/3 6 0
~xB = B .~b =
−1
=
−1/6 1/3 12 3
Por lo tanto ~xB = (xB1 , xB2 ) = (x1 , x2 ) = (0, 3), que es una solución factible básica
degenerada ya que: xB1 = 0.
Si ahora tomamos como base la matriz no singular:
2 0
B= = (A1 , A3 )
1 −1
−1~ 1/2 0 6 3
xB = B b = =
1/2 −1 12 −9
Por lo tanto ~xB = (xB1 , xB2 ) = (x1 , x3 ) = (3, −9), que es una solución básica infactible,
ya que xB2 = −9 < 0.
Si denotamos por cBi el coeficiente de la variable básica xBi en la función objetivo, el
vector ~cB = (cB1 , cB2 , . . . , cBm ), está formado por los coeficientes en la función objetivo,
de las variables básicas. Dada una solución factible básica ~xB , el valor de z es: z =
~cB · ~xB .
2 2
Ejemplo. Considerando el ejemplo anterior, si la base es: B = = (A1 , A2 ),
1 4
entonces: ~cB = (2, 4) y el valor de la función objetivo para la solución ~xB = (0, 3)
correspondiente a esa base es:
0
z = ~cB · ~xB = (2, 4) = 12.
3
1 0
Por otra parte, si la base es B = , es fácil ver que ~xB = (x4 , x5 ) = (6, 12) y
0 1
6
z = (0, 0) · = 0.
12
Lo que era de esperar, si observamos que en este caso las solución básica consiste
únicamente en variables de holgura.
6. Variables artificiales
Como veremos posteriormente, el método del simplex consistirá en, partiendo de
una solución básica factible inicial, moverse a una base factible adyacente (dos bases
son adyacentes si coinciden en m − 1 variables básicas, es decir, si el segmento que une
los vértices que representan es una arista de K). De esta nueva base, nos moveremos
a otra adyacente, y ası́ sucesivamente, hasta alcanzar el óptimo. Por tanto, en la fase
inicial del método del Simplex, necesitaremos disponer de una solución básica factible,
siendo además conveniente que ésta se pueda encontrar de forma rápida. Hemos visto,
con algunos ejemplos, que mediante la introducción de las variables de holgura, esto es
sencillo; pero hay situaciones en las que esto no es ası́, como veremos en el siguiente
ejemplo:
18
(
2x1 + x2 ≤ 8
sea el conjunto de restricciones: , al añadir las variables de hol-
4x1 + 3x2 ≥ 14
gura s1 y s2 , tenemos: (
2x1 + x2 + s1 = 8
,
4x1 + 3x2 − s2 = 14
con lo que, si hacemos x1 = x2 = 0, se tiene que: s1 = 8 y s2 = −14, que NO constituye
una solución factible básica inicial, ya que todas las variables del problema lineal en
forma estándar, deben ser no negativas.
Está claro que, incluso para problemas pequeños, la búsqueda de esa solución no es
fácil. Para resolver este problema, hay varios métodos, el más conocido de todos es el
de las variables artificiales.
El método comienza poniendo el problema de forma estándar, añadiendo las varia-
bles de holgura necesarias.
A continuación, se suman variables artificiales wi , a las restricciones que original-
mente fueran igualdades, y a aquellas en las que se introdujo la variable de holgura con
signo negativo (las de ≥). Es decir:
Si la restricción era: nj=1 apj xj ≥ bp , pasará a ser:
P
n
X
apj xj − sp + wp = bp .
j=1
Pn
Si la restricción era: j=1 apj xj = bp , pasará a ser:
n
X
apj xj + wp = bp .
j=1
19
Notemos que ası́ como las variables de holgura tienen una interpretación económica,
las variables artificiales, se han añadido únicamente para poder iniciar de una manera
sencilla el método del Simplex, por lo que se introducen por conveniencia matemática.
Además, está claro que la solución inicial obtenida no es una solución factible para
el sistema original, debido a la presencia de variables artificiales no nulas en la solución
básica.
Sin embargo, se puede ver que cualquier solución básica factible del sistema trans-
formado, en el que las variables artificiales tomen el valor cero, es una solución básica
factible del sistema original (y viceversa).
Por lo tanto, lo que intentaremos será llevar a cero las variables artificiales lo antes
posible, para que no aparezcan en la solución final.
Una forma de llevar a cero las variables artificiales, consiste en asignarles como
coeficiente en la función objetivo, del problema transformado un valor muy grande
negativo, que representaremos por -M, de modo que sea demasiado costoso mantener
esas variables en la base. (Método de penalización)
Ejemplo. Dado el problema:
s. a: 3x1 + x2 − x3 ≤ 8
2x1 − x2 + 4x3 ≥ 16
x1 + x3 ≥ 7
xi ≥ 0
lo transformamos, añadiendo variables de holgura y artificiales, (y poniéndolo en la
forma de maximización):
s. a: 3x1 + x2 − x3 + x4 = 8
2x1 − x2 + 4x3 − x5 + w1 = 16
x1 + x3 − x6 + w2 = 7
xi , wi ≥ 0.
Las variables básicas iniciales son: x4 = 8; w1 = 16; w2 = 7 y z = −z 0 .
Por último, nótese que mediante el proceso de añadir variables de holgura y/o
artificiales cuando sea conveniente, podemos añadir tantas variables como restricciones.
Ası́, la matriz de coeficientes tecnológicos resultantes tiene más columnas que filas y
además tiene una submatriz identidad de orden m. En consecuencia r(A) = m.
20