1. OPTIMIZACIÓN DE LA PRODUCCIÓN
INDUSTRIAL POR PROGRAMACIÓN
LINEAL MEDIANTE EL MÉTODO
SIMPLEX.
JOSÉ MANUEL GÓMEZ VEGA, 17 de julio de 2023.
2. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 2
Índice.
Resumen.......................................................................................................4
1. INTRODUCCIÓN.....................................................................................................4
2. RESUMEN DEL MÉTODO SIMPLEX......................................................................8
2.1. PASO INICIAL. .................................................................................................8
2.2. PASO ITERATIVO. ...........................................................................................8
2.3. PRUEBA DE OPTIMALIDAD............................................................................9
3. PROBLEMA DE PLANIFICIÓN DE LA PRODUCCIÓN CON EL MÉTODO
SIMPLEX.....................................................................................................................9
3.1. ENUNCIADO. ...................................................................................................9
3.2. SOLUCIÓN. ....................................................................................................10
3.2.1. CONSTRUCCIÓN DE LA FUNCIÓN OBJETIVO.....................................10
3.2.1.1. VARIABLES INTERVINIENTES EN DICHA FUNCIÓN. ....................10
3.2.1.2. COSTOS POR UNIDAD DE CADA PRODUCTO..............................10
3.2.1.3. FUNCIÓN OBJETIVO (O DE UTILIDAD)...........................................11
3.2.2. CÁLCULO DE LAS RESTRICCIONES. ...................................................12
3.2.2.1. MÉTODO SIMPLEX CON LAS ECUACIONES DE RESTRICCIONES.
........................................................................................................................12
3.2.3. TRANSFORMACIÓN DE LAS ECUACIONES DE RESTRICCIONES
(INECUACIONES) EN IGUALDADES CON INTRODUCCIÓN DE VARIABLES
DE HOLGURA....................................................................................................12
3.2.4. FORMA MATRICIAL ASOCIADA AL SISTEMA DE ECUACIONES. .......13
3.2.5. VARIABLES BÁSICAS Y NO BÁSICAS...................................................14
3.2.5.1. VARIABLE BÁSICA ENTRANTE.......................................................14
3.2.5.2. VARIABLE BÁSICA QUE SALE. .......................................................14
3.2.5.3. VARIABLES BÁSICAS Y NO BÁSICAS ACTUALES DEL PROBLEMA.
........................................................................................................................15
3.2.6. CONSTRUCCIÓN DEL SISTEMA DE ECUACIONES.............................15
3. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 3
3.2.7. SOLUCIÓN BÁSICA FACTIBLE...............................................................15
3.2.8. CONDICIÓN DE SOLUCIÓN BÁSICA FACTIBLE ÓPTIMA. ...................17
3.2.8.1. COMPROBACIÓN DE QUE LA SOLUCIÓN BÁSICA NO ES
FACTIBLE.......................................................................................................17
3.2.8.2. LA FUNCIÓN OBJETIVO DEBE CONTENER SOLO VARIABLES NO
BÁSICAS. .......................................................................................................18
3.2.9. SEGUNDA ITERACIÓN. ..........................................................................18
3.2.10. TERCERA ITERACIÓN..........................................................................20
3.3. CONCLUSIONES. ..........................................................................................22
Referencias. ................................................................................................23
4. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 4
Resumen.
Ésta es una explicación del método simplex de programación lineal aplicado a la
producción industrial. Se trata de desarrollar sucintamente el método simplex de
programación lineal a través de un ejemplo práctico desarrollándolo paso a paso para
llegar a la solución. Este ejemplo muestra el desarrollo de la programación lineal con
el método simplex. La programación lineal es una herramienta muy avanzada para
resolver numerosos problemas de optimización de ingeniería, física, química,
matemática, economía, biología, … en numerosos problemas. La optimización
matemática puede realizarse también mediante otras técnicas, una de las cuales es
la resolución de sistemas de ecuaciones no lineales mediante optimización
lagrangiana. Sin embargo, el método simplex de programación lineal es muy acertado
para determinar problemas típicos de optimización en muchos campos tanto
científicos como tecnológicos. El método simplex tiene algoritmos de cálculo que en
el texto presente se realizan de forma manual de acuerdo a un proceso sistemático
que debe resolverse conforme a los resultados que se vayan obteniendo en cada
paso. Existen paquetes informáticos de matemáticas que resuelven los problemas con
tan solo incluir los sistemas de ecuaciones y sus restricciones iniciales.
Abstract.
This is an explanation of the simplex method of linear programming applied to industrial
production. It is about developing the simplex method of linear programming succinctly
through a practical example, developing it step by step to reach the solution. This
example shows the development of linear programming with the simplex method.
Linear programming is a very advanced tool to solve numerous optimization problems
in engineering, physics, chemistry, mathematics, economics, biology, ... in numerous
problems. Mathematical optimization can also be performed by other techniques, one
of which is the resolution of systems of nonlinear equations by Lagrangian optimization.
However, the simplex method of linear programming is very successful in determining
typical optimization problems in many scientific and technological fields. The simplex
method has calculation algorithms that in the present text are carried out manually
according to a systematic process that must be solved according to the results that are
obtained in each step. There are math software packages that solve problems just by
including the systems of equations and their initial constraints.
5. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 5
1. INTRODUCCIÓN.
Se va a estudiar el método simplex para programación lineal orientado a la producción
industrial. En matemáticas existen métodos lagrangianos para realizar problemas de
optimización. Sin embargo, las funciones no suelen ser, por regla general, lineales en
los diferentes campos de estudios. Se opta por el método de programación lineal por
su mayor sencillez para programar en computadoras. Una función no lineal se puede
linealizar mediante un cálculo matemático, proceso que no se va a ver en este estudio.
Una función es lineal si verifica, para todo 𝑥𝑥𝑖𝑖 ∈ ℝ𝑛𝑛
, que es el caso más general,
𝑓𝑓 �� 𝑥𝑥𝑖𝑖
𝑛𝑛
𝑖𝑖=1
� = � 𝑎𝑎𝑖𝑖
𝑛𝑛
𝑖𝑖=1
𝑥𝑥𝑖𝑖 (1)
o bien,
𝑓𝑓(𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑛𝑛) = 𝑎𝑎1𝑥𝑥1 + 𝑎𝑎2𝑥𝑥2 + ⋯ + 𝑎𝑎𝑛𝑛𝑥𝑥𝑛𝑛
Además, deben cumplirse las siguientes condiciones de linealidad:
𝑓𝑓 �� 𝑥𝑥𝑖𝑖
𝑛𝑛
𝑖𝑖=1
� = � 𝑓𝑓
𝑛𝑛
𝑖𝑖=1
(𝑥𝑥𝑖𝑖) (2)
es decir,
𝑓𝑓(𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑛𝑛) = 𝑓𝑓(𝑥𝑥1) + 𝑓𝑓(𝑥𝑥2) + ⋯ 𝑓𝑓(𝑥𝑥𝑛𝑛)
𝑓𝑓 �� 𝜆𝜆𝑖𝑖𝑥𝑥𝑖𝑖
𝑛𝑛
𝑖𝑖=1
� = 𝝀𝝀𝒕𝒕
𝑓𝑓(𝒙𝒙) (3)
esto es,
𝑓𝑓(𝜆𝜆1𝑥𝑥1 + 𝜆𝜆2𝑥𝑥2 + ⋯ + 𝜆𝜆𝑛𝑛𝑥𝑥𝑛𝑛) = �
𝜆𝜆1
𝜆𝜆2
⋮
𝜆𝜆𝑛𝑛
� (𝑓𝑓(𝑥𝑥1) 𝑓𝑓(𝑥𝑥2) ⋯ 𝑓𝑓(𝑥𝑥𝑛𝑛))
= 𝜆𝜆1𝑓𝑓(𝑥𝑥1) + 𝜆𝜆2𝑓𝑓(𝑥𝑥2) + ⋯ + 𝜆𝜆𝑛𝑛𝑓𝑓(𝑥𝑥𝑛𝑛)
La gráfica en el plano (espacio euclídeo ℝ2
) de una función lineal siempre es una
recta. Podemos pasar de una función a una ecuación siempre que asignemos una
variable dependiente a la función. De esta forma, la ecuación de 1er. grado genérica,
±𝑎𝑎𝑎𝑎 ± 𝑏𝑏𝑏𝑏 = ±𝑐𝑐 (4)
6. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 6
puede expresarse también como función, así,
±𝑦𝑦 = ±
𝑐𝑐
𝑏𝑏
∓
𝑎𝑎
𝑏𝑏
𝑥𝑥 → ±𝑓𝑓(𝑥𝑥) = ±𝑛𝑛 ∓ 𝑚𝑚𝑚𝑚 (5)
Una función es no lineal si existen varias variables independientes multiplicándose o
dividiendo entre ellas o bien, cualquier variable que tiene un exponente diferente a 1.
Una variable con exponente 1, es, por ejemplo 𝑥𝑥 = 𝑥𝑥1
, como se sabe.
Ejemplos de funciones no lineales son:
𝑓𝑓(𝑥𝑥, 𝑦𝑦) = 3𝒙𝒙𝒙𝒙 + 3𝑥𝑥 + 5𝑦𝑦, en ℝ2
𝑓𝑓(𝑥𝑥) = 𝒙𝒙𝟑𝟑
+ 3𝑥𝑥 + 5, en ℝ
(6)
En negrita aparecen las variables que no cumplen la linealidad.
La programación lineal pertenece al campo de la matemática dedicada a resolver
problemas de optimización (maximizar o minimizar funciones objetivo lineales), de
manera que las variables de las funciones estén sujetas a una serie de restricciones
expresadas mediante un sistema de ecuaciones o inecuaciones también lineales. El
medio adoptado mayoritariamente para resolver problemas de programación lineal es
el método simplex por ser fácilmente programado mediante computación a través de
algoritmos.
La resolución de un problema paso a paso mediante el método simplex manual hoy
en día solo tiene fines de aprendizaje académico, para que los estudiantes conozcan
el algoritmo. En la práctica, se usan ordenadores con programas matemáticos que
resuelven los problemas de este método tras incluir las funciones objetivo, las
restricciones y algunas constantes que acompañan a las funciones objetivo que son
conocidas en el problema a resolver.
El método simplex fue desarrollado en 1947 cuando empezaron a desarrollarse las
primeras computadoras electrónicas de válvulas de vacío como la ENIAC (1945).
Existen variantes respecto a la resolución del método simplex. Aquí determinaremos
la forma de encontrar el algoritmo en sucesivas iteraciones para hallar la solución
optimizada. El conjunto de posibles soluciones vendría a determinar geométricamente
7. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 7
un poliedro, donde vamos encontrando vértices que pueden o no ser máximo (o
mínimo). Tras analizar cada paso vemos si se ha acabado el algoritmo al llegar a la
solución óptima. En caso contrario se procede a buscarla en otro paso adicional.
El proceso simplificado del método es el siguiente, se trata de optimizar (minimizar
o maximizar) la función,
𝑓𝑓(𝒙𝒙) = 𝒄𝒄𝑡𝑡
𝒙𝒙 (7)
de acuerdo a,
𝑨𝑨𝑨𝑨 = 𝒃𝒃 , con 𝒃𝒃 > 0 (8)
(se maximiza si se tiene 𝑨𝑨𝑨𝑨 ≤ 𝒃𝒃 y se minimiza si 𝑨𝑨𝑨𝑨 ≥ 𝒃𝒃)
con,
𝒙𝒙 > 0 (9)
La función objetivo es 𝑓𝑓(𝒙𝒙) que se denomina como 𝑍𝑍.
𝒄𝒄 es el vector fila 𝒄𝒄 = (𝑐𝑐1, 𝑐𝑐2, … , 𝑐𝑐𝑛𝑛), de los coeficientes que acompañan a las variables
del vector fila 𝒙𝒙 = (𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑛𝑛) de 𝑍𝑍, siendo 𝒄𝒄𝒕𝒕
el vector transpuesto (vector columna)
de los coeficientes que acompañan a las variables del vector fila. De esta forma, el
resultado de la operación de un vector columna multiplicado por un vector fila es un
vector fila, 𝑓𝑓(𝒙𝒙) = 𝑍𝑍, donde quitaremos la notación de vector al operar, pues en
realidad, se trata de una función.
𝑨𝑨 es una matriz 𝑚𝑚 𝑥𝑥 𝑛𝑛, donde se recogen los coeficientes de las restricciones (𝑚𝑚)
frente a las variables de la función (𝑛𝑛).
𝒃𝒃 es un vector columna que refleja el valor de las restricciones, donde todos deben
ser números naturales, es decir, si 𝑏𝑏𝑖𝑖 es cualquier número contenido en b, debe
cumplirse que 𝑏𝑏𝑖𝑖 > 0, para todo 𝑏𝑏𝑖𝑖 ∈ 𝒃𝒃 pudiéndose adoptar igualmente 𝒃𝒃 > 0, como se
escribió en la ecuación 8.
8. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 8
2. RESUMEN DEL MÉTODO SIMPLEX.
2.1. PASO INICIAL.
Una vez determinada la función objetivo 𝑍𝑍 y definidas bien las ecuaciones de las
restricciones, se tiene generalmente que dichas ecuaciones (𝑚𝑚) son diferentes a las
variables (𝑛𝑛) y además se cumple 𝑚𝑚 < 𝑛𝑛. Es decir, se trata de resolver un sistema
compatible indeterminado, pero transformándolo en determinado con una serie de
pasos o iteraciones. Para resolver la solución única es preciso introducir las variables
de holgura, tantas como el resultado de hacer 𝑛𝑛 − 𝑚𝑚. Si el modelo no se ajusta a la
forma estándar del problema general de programación lineal, se deben hacer los
ajustes necesarios. Para obtener la solución básica factible inicial, se seleccionan las
variables originales como las variables no básicas (es decir, iguales a cero) y las
variables de holgura como las variables básicas (y, por tanto, iguales al lado derecho
de las ecuaciones). Se realiza la prueba de optimalidad.
2.2. PASO ITERATIVO.
Parte 1: se determina la variable básica entrante; para esto se selecciona la variable
no básica que, al aumentar su valor, aumente el valor de 𝑍𝑍 más rápidamente. Esta
elección se puede hacer usando la ecuación 12 para expresar 𝑍𝑍 sólo en términos de
las variables no básicas y eligiendo aquella cuyo coeficiente positivo sea el mayor.
Parte 2: se determina la variable básica que sale: se elige la variable básica que
primero alcanza el valor cero cuando se incrementa la variable básica entrante. Cada
variable básica aparece sólo en su ecuación, de manera que esta ecuación se usa
para determinar cuándo llega a cero esta variable básica si se aumenta el valor de la
que entra. Un procedimiento algebraico formal para realizarlo es el siguiente: sea 𝑗𝑗 el
subíndice de la variable básica entrante. Sea 𝑎𝑎𝑖𝑖𝑖𝑖
′
su coeficiente actual en la ecuación
(𝑖𝑖) y sea 𝑏𝑏𝑖𝑖
′
el lado derecho actual de esta ecuación 𝑖𝑖 = 1, 2, ⋯ , 𝑚𝑚. Entonces la cota
superior para 𝑥𝑥𝑗𝑗 en la ecuación (𝑖𝑖) es,
𝑥𝑥𝑗𝑗 ≤ �
+∞ 𝑠𝑠𝑠𝑠 𝑎𝑎𝑖𝑖𝑖𝑖
′
≤ 0
𝑏𝑏𝑖𝑖
′
𝑎𝑎𝑖𝑖𝑖𝑖
′ 𝑠𝑠𝑠𝑠 𝑎𝑎𝑖𝑖𝑖𝑖
′
> 0
en donde la variable básica de esta ecuación se hace cero en esta cota superior.
9. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 9
Entonces se determina la ecuación con la cota superior más pequeña y se elige la
variable básica actual en esta ecuación como la variable básica que sale.
Parte 3: se determina la nueva solución básica factible: comenzando con el conjunto
actual de ecuaciones, se despejan las variables básicas y 𝑍𝑍 en términos de las
soluciones no básicas por el método de eliminación de Gauss-Jordan. Las variables
no básicas se igualan a cero y cada variable básica (y 𝑍𝑍) es igual al nuevo lado
derecho de la ecuación en que aparece (con coeficiente +1).
2.3. PRUEBA DE OPTIMALIDAD.
Se determina si la solución es óptima: se verifica si el valor de 𝑍𝑍 puede aumentar al
hacer que una de las variables no básicas crezca. Esto se puede realizar al reescribir
la función objetivo en términos de las variables no básicas y pasar estas variables al
lado derecho de la ecuación 12 (es decir, despejando 𝑍𝑍 en esta ecuación) y al observar
el signo de los coeficientes de cada una. Si todos los coeficientes son negativos o
cero, entonces la solución es óptima, y el proceso termina. De otra manera, se regresa
al paso iterativo.
3. PROBLEMA DE PLANIFICIÓN DE LA PRODUCCIÓN CON EL MÉTODO
SIMPLEX.
3.1. ENUNCIADO.
Una fábrica puede manufacturar 5 productos (A, B, C, D, E) produciendo según las
capacidades de las máquinas sin conocerse la cantidad óptima de cada una para
asegurar la máxima rentabilidad.
Cada producto requiere el tiempo necesario de elaboración en 3 máquinas como se
muestra en la tabla 1. Cada máquina está disponible 128 horas a la semana durante
un año completo. Los productos son netamente competitivos y cualquier cantidad
fabricada puede venderse a 5 $, 4 $, 5 $, 4 $, 4 $ la unidad respectivamente. Los
costes variables por horas de trabajo son 4 $ para las máquinas 1 y 2 y 3 $ para la
máquina 3. Los costos de material para cada línea de producto son 2 $ para A y C y
1 $ para B, D, E por unidad. Constrúyase un modelo de programación lineal que
determine el nivel óptimo de producción, es decir, el de mayor rentabilidad a la fábrica).
10. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 10
Tabla 1.
Información del sistema de producción (productos, costes, precios venta y tiempos).
Máquinas – tiempo
(minutos/ud)
Productos 1 2 3
Precio venta
($/ud)
Coste materia
prima ($/ud)
A 12 8 5 5 2
B 7 9 10 4 1
C 8 4 7 5 2
D 10 0 3 4 1
E 7 11 2 4 1
Costes variables
($/h)
4 4 3
3.2. SOLUCIÓN.
3.2.1. CONSTRUCCIÓN DE LA FUNCIÓN OBJETIVO.
3.2.1.1. VARIABLES INTERVINIENTES EN DICHA FUNCIÓN.
• 𝑍𝑍 es la función de optimización, expresada en $.
• 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5 son las unidades de mercancías a producir en las máquinas A,
B, C, D, E, respectivamente.
Se requiere para 𝑍𝑍 conocer la utilidad por una unidad de cada producto.
3.2.1.2. COSTOS POR UNIDAD DE CADA PRODUCTO.
Una unidad de producto A requiere:
• materia prima para producir cada producto.
• costes variables de fabricación por máquina de acuerdo a los tiempos de
fabricación de cada una de ellas.
Usaremos para cada máquina en que se fabrique el producto A factores de conversión
para llegar al precio $/h.
𝑀𝑀á𝑞𝑞. 1: 4
$
ℎ
·
1 ℎ
60 𝑚𝑚𝑚𝑚𝑚𝑚
· 12
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
= 0,8
$
ℎ
𝑀𝑀á𝑞𝑞. 2: 4
$
ℎ
·
1 ℎ
60 𝑚𝑚𝑚𝑚𝑚𝑚
· 8
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
= 0,533
$
ℎ
𝑀𝑀á𝑞𝑞. 3: 3
$
ℎ
·
1 ℎ
60 𝑚𝑚𝑚𝑚𝑚𝑚
· 5
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
= 0,25
$
ℎ
11. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 11
El total del coste del producto A será la suma del coste de la materia prima más los
costes de las 3 máquinas en que se fabrica.
𝐶𝐶𝐴𝐴 = 2 + 0,8 + 0,533 + 0,25 = 3,583
$
𝑢𝑢𝑢𝑢
De forma análoga calcularíamos los costes por unidad para el resto de productos B,
C, D y E, generándose la tabla 2.
Tabla 2.
Precio de venta, coste unitario, ganancia neta y ganancia porcentual de los 5
productos manufacturados.
PRODUCTO
Variable
asociada
Precio p
($/ud)
Coste c
($/ud)
Margen m = p - c
($/ud)
Margen m
(%)
A 𝑥𝑥1 5 3,583 1,417 28,34
B 𝑥𝑥2 4 2,567 1,433 35,82
C 𝑥𝑥3 5 3,150 1,850 37,00
D 𝑥𝑥4 4 1,817 2,183 54,57
E 𝑥𝑥5 4 2,300 1,700 42,50
3.2.1.3. FUNCIÓN OBJETIVO (O DE UTILIDAD).
Por lo tanto, la función de utilidad o margen de ganancia a optimizar 𝑍𝑍 es:
𝑍𝑍 = 1,417𝑥𝑥1 + 1,433𝑥𝑥2 + 1,85𝑥𝑥3 + 2,183𝑥𝑥4 + 1,7𝑥𝑥5 ($)
cuya variable es la unidad monetaria del problema, el dólar.
Como se observa en la tabla 2, 𝑍𝑍 se ha construido multiplicando el margen 𝑚𝑚 por cada
producto en su variable asociada.
Normalmente se expresan las variables de optimización por programación lineal con
variables 𝑥𝑥𝑖𝑖, pero para poder manejarnos mejor siguiendo la nomenclatura del
enunciado, podríamos emplear las variables de cada producto en su propia
denominación, pues no existe ninguna norma que lo impida. Entonces tendríamos:
𝑍𝑍 = 1,417𝐴𝐴 + 1,433𝐵𝐵 + 1,85𝐶𝐶 + 2,183𝐷𝐷 + 1,7𝐸𝐸 ($)
pues así coincidiría la expresión con las variables a optimizar que son los productos a
fabricar para lograr el máximo beneficio para la empresa. No obstante, usaremos las
variables 𝑥𝑥𝑖𝑖 porque mejora la comprensibilidad del método.
12. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 12
3.2.2. CÁLCULO DE LAS RESTRICCIONES.
La disponibilidad de las máquinas es:
𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷 = 128
ℎ
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠
·
60 𝑚𝑚𝑚𝑚𝑚𝑚
1 ℎ
= 7680
𝑚𝑚𝑚𝑚𝑚𝑚
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠
Esto quiere decir que el tiempo disponible para el conjunto de máquinas deberá ser
menor o igual a la cifra anteriormente reflejada.
Para la máquina 1 sería:
𝑀𝑀á𝑞𝑞. 1: 12
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
𝑥𝑥1 + 7
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
𝑥𝑥2 + 8
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
𝑥𝑥3 + 10
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
𝑥𝑥4 + 7
𝑚𝑚𝑚𝑚𝑚𝑚
𝑢𝑢𝑢𝑢
𝑥𝑥5 ≤ 7680
Vamos a prescindir de las unidades y dejamos solo el coeficiente que acompaña a las
variables para tenerlo más claro, pues no resta operatividad al método y se gana en
claridad:
𝑀𝑀á𝑞𝑞. 1: 12𝑥𝑥1 + 7𝑥𝑥2 + 8𝑥𝑥3 + 10𝑥𝑥4 + 7𝑥𝑥5 ≤ 7680
𝑀𝑀á𝑞𝑞. 2: 8𝑥𝑥1 + 9𝑥𝑥2 + 4𝑥𝑥3 + 11𝑥𝑥5 ≤ 7680
𝑀𝑀á𝑞𝑞. 3: 5𝑥𝑥1 + 10𝑥𝑥2 + 7𝑥𝑥3 + 3𝑥𝑥4 + 2𝑥𝑥5 ≤ 7680
3.2.2.1. MÉTODO SIMPLEX CON LAS ECUACIONES DE RESTRICCIONES.
Las variables de producción no pueden ser negativas, entonces el modelo de
programación lineal queda:
𝑚𝑚á𝑥𝑥 [𝑍𝑍 = 1,417𝑥𝑥1 + 1,433𝑥𝑥2 + 1,853𝑥𝑥3 + 2,1834𝑥𝑥4 + 1,7𝑥𝑥5]
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑎𝑎 𝑙𝑙𝑙𝑙𝑙𝑙 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟: �
12𝑥𝑥1 + 7𝑥𝑥2 + 8𝑥𝑥3 + 10𝑥𝑥4 + 7𝑥𝑥5 ≤ 7680
8𝑥𝑥1 + 9𝑥𝑥2 + 4𝑥𝑥3 + 11𝑥𝑥5 ≤ 7680
5𝑥𝑥1 + 10𝑥𝑥2 + 7𝑥𝑥3 + 3𝑥𝑥4 + 2𝑥𝑥5 ≤ 7680
𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5 ≥ 0
Obsérvese que las ecuaciones de restricciones contienen desigualdades.
3.2.3. TRANSFORMACIÓN DE LAS ECUACIONES DE RESTRICCIONES
(INECUACIONES) EN IGUALDADES CON INTRODUCCIÓN DE VARIABLES DE
HOLGURA.
Se trata de un sistema con 𝑚𝑚 = 3 ecuaciones con 𝑛𝑛 = 5 incógnitas, aparte de las
ecuaciones de no negatividad de las variables, que no computan en el sistema de
13. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 13
ecuaciones y son meras condiciones impuestas al problema. Ahora se trata de
introducir las variables de holgura, siendo 𝑚𝑚 = 5 = 𝑛𝑛º 𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣𝑣 𝑒𝑒𝑒𝑒 {𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5} ,
y necesitamos aumentar la variable 𝑥𝑥𝑚𝑚 en 3 índices consecutivos de números
naturales, por haber 3 ecuaciones. Entonces,
𝑥𝑥𝑚𝑚+1 = 𝑥𝑥6; 𝑥𝑥𝑚𝑚+2 = 𝑥𝑥7; 𝑥𝑥𝑚𝑚+3 = 𝑥𝑥8
para establecer ecuaciones lineales, transformándolo en un sistema de 3 ecuaciones
lineales de igualdad con 𝑛𝑛 = 8 incógnitas:
𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟: �
12𝑥𝑥1 + 7𝑥𝑥2 + 8𝑥𝑥3 + 10𝑥𝑥4 + 7𝑥𝑥5 + 𝑥𝑥6 = 7680
8𝑥𝑥1 + 9𝑥𝑥2 + 4𝑥𝑥3 + 11𝑥𝑥5 + 𝑥𝑥7 = 7680
5𝑥𝑥1 + 10𝑥𝑥2 + 7𝑥𝑥3 + 3𝑥𝑥4 + 2𝑥𝑥5 + 𝑥𝑥8 = 7680
𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5, 𝑥𝑥6, 𝑥𝑥7, 𝑥𝑥8 ≥ 0
(10)
3.2.4. FORMA MATRICIAL ASOCIADA AL SISTEMA DE ECUACIONES.
La forma matricial del anterior sistema (ecuación 10) es: (𝐴𝐴){𝑥𝑥𝑡𝑡} = {𝑏𝑏} , siendo:
𝐴𝐴 = �
12 7 8 10 7 1 0 0
8 9 4 0 11 0 1 0
5 10 7 3 2 0 0 1
�
𝑥𝑥 = (𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 𝑥𝑥4 𝑥𝑥5 𝑥𝑥6 𝑥𝑥7 𝑥𝑥8)
𝑏𝑏 = �
7680
7680
7680
�
es decir,
(𝐴𝐴){𝑥𝑥𝑡𝑡} = {𝑏𝑏𝑡𝑡} ⟺ �
12 7 8 10 7 1 0 0
8 9 4 0 11 0 1 0
5 10 7 3 2 0 0 1
�
⎝
⎜
⎜
⎜
⎜
⎛
𝑥𝑥1
𝑥𝑥2
𝑥𝑥3
𝑥𝑥4
𝑥𝑥5
𝑥𝑥6
𝑥𝑥7
𝑥𝑥8⎠
⎟
⎟
⎟
⎟
⎞
= �
7680
7680
7680
�
con 𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5, 𝑥𝑥6, 𝑥𝑥7, 𝑥𝑥8 ≥ 0
14. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 14
3.2.5. VARIABLES BÁSICAS Y NO BÁSICAS.
Variables básicas 𝑿𝑿𝒊𝒊. Se tendrán 𝑚𝑚 variables básicas y son las que se utilizan para
resolver el sistema de ecuaciones. Cada variable básica cumple 𝑿𝑿𝒊𝒊 ≥ 0. Se conocen
como variables básicas aquéllas que proceden de la introducción de las variables de
holgura. Sobre las variables básicas, hallamos la variable básica entrante y la variable
básica que sale, a continuación.
Variables no básicas 𝒙𝒙𝒋𝒋. Se tendrán 𝑛𝑛 – 𝑚𝑚 variables no básicas. Son variables que
cumplen estrictamente 𝑥𝑥𝑗𝑗 ≥ 0 en una solución del problema.
3.2.5.1. VARIABLE BÁSICA ENTRANTE.
En la ecuación objetivo 𝑍𝑍 se elige la variable que tenga el mayor valor positivo.
Llamemos 𝑎𝑎, 𝑏𝑏, 𝑐𝑐, 𝑑𝑑, 𝑒𝑒 a los coeficientes que acompañan a cada una de las incógnitas
en orden creciente.
Entonces, 𝑚𝑚á𝑥𝑥 {𝑎𝑎, 𝑏𝑏, 𝑐𝑐, 𝑑𝑑, 𝑒𝑒} = 𝑚𝑚á𝑥𝑥 {1,417, 1,433, 1,85, 𝟐𝟐, 𝟏𝟏𝟏𝟏𝟏𝟏, 1,7} = 2,183, que
corresponde a la variable 𝑥𝑥4, que es la variable básica entrante.
3.2.5.2. VARIABLE BÁSICA QUE SALE.
Sobre la matriz 𝐴𝐴, hallamos la submatriz correspondiente a la variable básica entrante,
que por ser 𝑥𝑥4 será la columna 4.
𝐴𝐴4 = �
𝑎𝑎14
𝑎𝑎24
𝑎𝑎34
� = �
10
0
3
� , 𝑏𝑏 = �
𝑏𝑏1
𝑏𝑏2
𝑏𝑏3
� = �
7680
7680
7680
�
Se calculan los coeficientes
𝑏𝑏𝑖𝑖
𝑎𝑎𝑖𝑖4
para 𝑖𝑖 = 1, 2, 3, resultando:
𝒃𝒃𝟏𝟏
𝒂𝒂𝟏𝟏𝟏𝟏
=
𝟕𝟕𝟕𝟕𝟕𝟕𝟕𝟕
𝟏𝟏𝟏𝟏
= 𝟕𝟕𝟕𝟕𝟕𝟕 ;
𝑏𝑏2
𝑎𝑎24
=
7680
0
= ∞ ;
𝑏𝑏3
𝑎𝑎34
=
7680
3
= 2560 (11)
Elegimos el menor cociente resultante que corresponde a 𝑖𝑖 = 1, para las 3
operaciones de la ecuación 11. Esto quiere decir que la variable básica que sale está
en la fila 1 de la matriz 𝐴𝐴 y es 𝒙𝒙𝟒𝟒. Las demás variables añadidas anteriormente, como
tienen valor cero en la matriz en la fila 1, serán también variables básicas entrantes.
15. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 15
Por tanto, 𝒙𝒙𝟒𝟒 (variable básica entrante) se denomina desde ahora 𝑿𝑿𝟒𝟒 (variable básica
que sale).
3.2.5.3. VARIABLES BÁSICAS Y NO BÁSICAS ACTUALES DEL PROBLEMA.
Estas variables {𝑿𝑿𝟒𝟒, 𝑿𝑿𝟕𝟕, 𝑿𝑿𝟖𝟖} serán las básicas e irán en mayúsculas y en negrita.
Las variables no básicas serán las restantes, {𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥5, 𝑥𝑥6}.
Se denominan actuales pues vamos a resolverlo siguiendo el algoritmo, pero puede
que lleguemos a una solución no óptima y tengamos que redefinirlas nuevamente en
otro proceso iterativo con este método.
3.2.6. CONSTRUCCIÓN DEL SISTEMA DE ECUACIONES.
Entonces llegamos al siguiente sistema de ecuaciones, donde pondremos las
variables como se ha descrito en el apartado 3.2.5., obteniendo:
𝑍𝑍 – 1,417𝑥𝑥1– 1,433𝑥𝑥2 – 1,85𝑥𝑥3 – 2,183𝑿𝑿𝟒𝟒 – 1,7𝑥𝑥5 = 0 (12)
12𝑥𝑥1 + 7𝑥𝑥2 + 8𝑥𝑥3 + 10𝑿𝑿𝟒𝟒 + 7𝑥𝑥5 + 𝑥𝑥6 = 7680 (13)
8𝑥𝑥1 + 9𝑥𝑥2 + 4𝑥𝑥3 + 11𝑥𝑥5 + 𝑿𝑿𝟕𝟕 = 7680 (14)
5𝑥𝑥1 + 10𝑥𝑥2 + 7𝑥𝑥3 + 3𝑿𝑿𝟒𝟒 + 2𝑥𝑥5 + 𝑿𝑿𝟖𝟖 = 7680 (15)
3.2.7. SOLUCIÓN BÁSICA FACTIBLE.
Del conjunto de ecuaciones, procedemos a resolver sobre las variables básicas
actuales (𝑋𝑋4, 𝑋𝑋7, 𝑋𝑋8). Para ello transformamos las ecuaciones para eliminar las
variables restantes, las no básicas, con transformaciones elementales de las
ecuaciones con operaciones asociadas a un sistema matricial equivalente.
Dividimos los términos de la ecuación 13 entre 10 para que la variable 𝑋𝑋4 tenga
coeficiente 1:
12
10
𝑥𝑥1 +
7
10
𝑥𝑥2 +
8
10
𝑥𝑥3 + 𝑿𝑿𝟒𝟒 +
7
10
𝑥𝑥5 +
1
10
𝑥𝑥6 = 768 ⟹
1,2𝑥𝑥1 + 0,7𝑥𝑥2 + 0,8𝑥𝑥3 + 𝑿𝑿𝟒𝟒 + 0,7𝑥𝑥5 + 0,1𝑥𝑥6 = 768 (16)
16. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 16
Multiplicamos la ecuación 16 por 2,183 (coeficiente opuesto de 𝑋𝑋4 en la ecuación 12)
y le sumamos la ecuación 12. De esta forma desaparece la variable 𝑿𝑿𝟒𝟒 en la
ecuación 16:
𝑍𝑍 – 1,417𝑥𝑥1– 1,433𝑥𝑥2 – 1,85𝑥𝑥3 – 2,183𝑿𝑿𝟒𝟒 – 1,7𝑥𝑥5 +
12
10
· 2,183𝑥𝑥1 +
7
10
· 2,183𝑥𝑥2
+
8
10
· 2,183𝑥𝑥3 + 2,183𝑿𝑿𝟒𝟒 +
7
10
· 2,183𝑥𝑥5 +
1
10
· 2,183𝑥𝑥6
= 768 · 2,183 ⟹
𝑍𝑍 + 1,2026𝑥𝑥1 + 0,0951𝑥𝑥2 – 0,1036𝑥𝑥3 – 0,1719𝑥𝑥5 + 0,2183𝑥𝑥6 = 1676,544 (17)
Multiplicamos la ecuación 16 por −3 (término opuesto al coeficiente de dicha ecuación
para 𝑿𝑿𝟒𝟒) y le sumamos la ecuación 15, para hacer desaparecer la variable 𝑿𝑿𝟒𝟒:
−3
12
10
𝑥𝑥1 − 3
7
10
𝑥𝑥2 − 3
8
10
𝑥𝑥3 − 𝟑𝟑𝟑𝟑𝟒𝟒 − 3
7
10
𝑥𝑥5 − 3
1
10
𝑥𝑥6 + 5𝑥𝑥1 + 10𝑥𝑥2 + 7𝑥𝑥3 + 3𝑿𝑿𝟒𝟒
+ 2𝑥𝑥5 + 𝑿𝑿𝟖𝟖 = −3 · 768 + 7680 ⟹
1,4𝑥𝑥1 + 7,9𝑥𝑥2 – 4,6𝑥𝑥3 – 0,1𝑥𝑥5 − 0,3𝑥𝑥6 + 𝑿𝑿𝟖𝟖 = 5376 (18)
Entonces el sistema de ecuaciones queda, reescribiendo la ecuación 17 como 17’
despejada para 𝑍𝑍:
Z = − 1,2026𝑥𝑥1 − 0,0951𝑥𝑥2 + 0,1036𝑥𝑥3 + 0,1719𝑥𝑥5 − 0,2183𝑥𝑥6 + 1676,544 (19’)
1,2𝑥𝑥1 + 0,7𝑥𝑥2 + 0,8𝑥𝑥3 + 𝑿𝑿𝟒𝟒 + 0,7𝑥𝑥5 + 0,1𝑥𝑥6 = 768 (20)
8𝑥𝑥1 + 9𝑥𝑥2 + 4𝑥𝑥3 + 11𝑥𝑥5 + 𝑿𝑿𝟕𝟕 = 7680 (21)
1,4𝑥𝑥1 + 7,9𝑥𝑥2 – 4,6𝑥𝑥3 – 0,1𝑥𝑥5 − 0,3𝑥𝑥6 + 𝑿𝑿𝟖𝟖 = 5376 (22)
Como las variables no básicas (𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥5, 𝑥𝑥6) son nulas (su valor es cero en dichas
ecuaciones), entonces, resulta, al despejar en las anteriores ecuaciones 17’, 16,
14 y 18:
𝑍𝑍 = 1676,54
𝑿𝑿𝟒𝟒 = 768
𝑿𝑿𝟕𝟕 = 7680
𝑿𝑿𝟖𝟖 = 5376
17. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 17
Luego la solución factible es, poniendo las variables básicas y no básicas en
minúsculas y sin negritas:
𝒙𝒙 = (𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5, 𝑥𝑥6, 𝑥𝑥7, 𝑥𝑥8) = (0, 0, 0, 768, 0, 0, 7680, 5376) con 𝑍𝑍 = 1676,544
¿Es la solución básica factible óptima?
3.2.8. CONDICIÓN DE SOLUCIÓN BÁSICA FACTIBLE ÓPTIMA.
La solución básica factible actual es óptima ⟺ (𝑠𝑠𝑠𝑠 𝑦𝑦 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑠𝑠𝑠𝑠) todas las variables no
básicas tienen coeficientes no positivos (≤ 0) en la forma actual de la función objetivo,
𝑍𝑍 = � 𝜆𝜆𝑖𝑖𝑥𝑥𝑖𝑖
𝑛𝑛
𝑖𝑖=1
+ 𝑐𝑐
3.2.8.1. COMPROBACIÓN DE QUE LA SOLUCIÓN BÁSICA NO ES FACTIBLE.
Volvemos a escribir la ecuación 17 despejada para 𝑍𝑍:
Z = − 1,2026𝑥𝑥1 − 0,0951𝑥𝑥2 + 0,1036𝑥𝑥3 + 0,1719𝑥𝑥5 − 0,2183𝑥𝑥6 + 1676,544 (23’)
Como hay coeficientes positivos en las variables (𝑥𝑥3, 𝑥𝑥5) la SOLUCIÓN NO ES
ÓPTIMA y se debe seguir iterando.
Debe quedar claro que al llegar a escribir la ecuación 17 por primera vez, y teniendo
la función objetivo 𝑍𝑍 solo el término independiente en el 2º miembro, podríamos
comprobar que todas las variables deberían tener los coeficientes positivos, que es
otra forma de comprobar la condición, pues al cambiar los términos de miembro,
varían de signo, no siendo necesario escribir el nuevo sistema de ecuaciones como
se ha hecho dentro del apartado 3.2.7. y calcular los valores tanto de 𝑍𝑍 como de las
variables básicas pues por simple inspección de dicha ecuación conocemos que no
va a existir solución básica factible. Si se ha escrito esa parte ha sido por métodos
pedagógicos para aprender el método pues, a pesar de conocer que esa función
objetivo no es factible, se necesita realizar el algoritmo para llegar a otra iteración
hasta llegar a la solución óptima factible.
18. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 18
3.2.8.2. LA FUNCIÓN OBJETIVO DEBE CONTENER SOLO VARIABLES NO
BÁSICAS.
La razón para usar la forma actual de la función objetivo (ecuación 17) en lugar de la
original (ecuación 12) es que la forma actual contiene todas las variables no básicas
y ninguna variable básica. Se necesitan todas las variables no básicas para poder
comparar todas las soluciones básicas factibles adyacentes con la solución actual.
Las variables básicas no deben aparecer, pues sus valores pueden cambiar cuando
se incrementa alguna variable no básica, en cuyo caso el coeficiente de la variable no
básica ya no indica la tasa de cambio de 𝑍𝑍. A causa de que las ecuaciones de las
restricciones están en forma de igualdad, las dos expresiones de la función objetivo
son equivalentes, por lo que se usa la que contiene toda la información necesaria.
Al no haber encontrado una solución básica factible óptima deberemos iterar
siguiendo el proceso hasta obtenerla.
3.2.9. SEGUNDA ITERACIÓN.
En esta iteración condensaremos aún más el proceso.
Parte 1. Reescribimos la ecuación 17’:
Z = − 1,2026𝑥𝑥1 − 0,0951𝑥𝑥2 + 0,1036𝑥𝑥3 + 0,1719𝑥𝑥5 − 0,2183𝑥𝑥6 + 1676,544 (24’)
Y consideramos el sistema formado por las ecuaciones 17’, 16, 14 y 18 (véanse el
resto de ecuaciones en el apartado 3.2.7.) eligiendo a 𝑥𝑥5 como la variable básica
entrante, pues ésta posee el mayor coeficiente positivo de todas las variables en la
ecuación 17.
Parte 2. Los límites superiores (cotas superiores) sobre 𝑥𝑥5 se muestran en la tabla 3:
19. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 19
Tabla 3.
Variables básicas con sus números de ecuación, sus coeficientes y su cota superior
para 𝑥𝑥5.
Variable
básica
Número de
ecuación
𝑖𝑖 = 1, 2, 3
Coeficiente
𝑎𝑎𝑖𝑖5
′
de 𝑥𝑥5
2º miembro de la
ecuación 𝑏𝑏𝑖𝑖
′
Cota superior
para 𝑥𝑥5
𝑥𝑥4 16 (1) 0,7 768
768
0,7
= 1097,14
𝒙𝒙𝟕𝟕 14 (2) 11 7680
𝟕𝟕𝟕𝟕𝟕𝟕𝟕𝟕
𝟏𝟏𝟏𝟏
= 𝟔𝟔𝟔𝟔𝟔𝟔, 𝟏𝟏𝟏𝟏
𝑥𝑥8 18 (3) -0,1 5376 ∞, 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑎𝑎35
′
< 0
El proceso de obtención de estos datos está ya estudiado en apartados precedentes.
A partir de esta tabla se concluye que la menor cota superior para 𝑥𝑥5 es igual a 698,18,
la cual corresponde a la variable básica 𝑥𝑥7, es decir, 𝑥𝑥7 tiene la menor cota superior
sobre 𝑥𝑥5. Por lo tanto, la variable 𝑥𝑥7 se convierte en variable básica que sale para dar
lugar a la variable entrante 𝑥𝑥5.
Parte 3: Debemos eliminar la variable 𝑥𝑥5 de todas las ecuaciones, excepto de la
ecuación (2)’ en la cual 𝑥𝑥5 sustituye a 𝑥𝑥7. El sistema correspondiente, junto con las
nuevas variables básicas, las cuales aparecen en mayúscula, antes de dicha
eliminación es:
Z = − 1,2026𝑥𝑥1 − 0,0951𝑥𝑥2 + 0,1036𝑥𝑥3 + 0,1719𝑥𝑥5 − 0,2183𝑥𝑥6 + 1676,544 (25)
1,2𝑥𝑥1 + 0,7𝑥𝑥2 + 0,8𝑥𝑥3 + 𝑿𝑿𝟒𝟒 + 0,7𝑥𝑥5 + 0,1𝑥𝑥6 = 768 (26)
8𝑥𝑥1 + 9𝑥𝑥2 + 4𝑥𝑥3 + 11𝑥𝑥5 + 𝑿𝑿𝟕𝟕 = 7680 (27)
1,4𝑥𝑥1 + 7,9𝑥𝑥2 – 4,6𝑥𝑥3 – 0,1𝑥𝑥5 − 0,3𝑥𝑥6 + 𝑿𝑿𝟖𝟖 = 5376 (28)
Se procede a eliminar 𝑥𝑥5 de las ecuaciones 17, 16 y 18. Se dividen ambos miembros
de la ecuación 14 por el coeficiente de 𝑥𝑥5 en dicha ecuación, es decir, por 11 para
obtener la ecuación 19:
20. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 20
8
11
𝑥𝑥1 +
9
11
𝑥𝑥2 +
4
11
𝑥𝑥3 + 𝑥𝑥5 +
1
11
𝑿𝑿𝟕𝟕 =
7680
11
⟹
0,727𝑥𝑥1 + 0,818𝑥𝑥2 + 0,364𝑥𝑥3 + 𝑥𝑥5 + 0,091𝑿𝑿𝟕𝟕 = 698,181 (29)
Se multiplica la ecuación 19 por 0,1719 y se suma a la ecuación 17.
Se multiplica la ecuación 19 por −0,7 se suma a la ecuación 16.
Se multiplica la ecuación 19 por 0,1 y se suma a la ecuación 18.
Una vez realizadas estas operaciones se obtiene el sistema:
Z + 1,328𝑥𝑥1 + 0,236𝑥𝑥2 − 0,041𝑥𝑥3 + 0,2183𝑥𝑥6 + 0,016𝑿𝑿𝟕𝟕 = 1796,561 (30)
0,691𝑥𝑥1 + 0,127𝑥𝑥2 + 0,545𝑥𝑥3 + 𝑿𝑿𝟒𝟒 + 0,1𝑥𝑥6 − 𝟎𝟎, 𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟕𝟕 = 279,273 (21)
0,727𝑥𝑥1 + 0,818𝑥𝑥2 + 0,364𝑥𝑥3 + 𝑥𝑥5 + 𝟎𝟎, 𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟕𝟕 = 698,181 (22)
1,473𝑥𝑥1 + 7,982𝑥𝑥2 + 4,636𝑥𝑥3 − 0,3𝑥𝑥6 + 𝟎𝟎, 𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟎𝟕𝟕 + 𝑿𝑿𝟖𝟖 = 5445,818 (23)
Así, la nueva solución factible básica es:
𝒙𝒙 = (𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5, 𝑥𝑥6, 𝑥𝑥7, 𝑥𝑥8) = (0, 0, 0, 279,273, 698,181, 0, 0, 5445,818)
con 𝑍𝑍 = 1796,561
Esta solución no es óptima, dado que en la ecuación 20 el coeficiente de 𝑥𝑥3 es
negativo, y si observamos la ecuación 20’ más adelante, con solo Z en el primer
miembro (que es el formato de definición de la condición de optimización de la función
objetivo), sería la única variable con coeficiente positivo. Por consiguiente, debemos
seguir iterando hasta conseguir una solución óptima.
3.2.10. TERCERA ITERACIÓN.
Parte 1: La ecuación 20 es equivalente a:
Z = − 1,328𝑥𝑥1 − 0,236𝑥𝑥2 + 0,041𝑥𝑥3 − 0,2183𝑥𝑥6 − 0,016𝑥𝑥7 + 1796,561 (31’)
La variable con mayor coeficiente positivo (¡y único!) es 𝑥𝑥3, así que la escogemos
como variable básica entrante.
21. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 21
Parte 2: Los límites superiores sobre 𝑥𝑥3 se muestran en la tabla 4:
Tabla 4.
Variables básicas con sus números de ecuación, sus coeficientes y su cota superior
para 𝑥𝑥3.
Variable
básica
Número de
ecuación
𝑖𝑖 = 1, 2, 3
Coeficiente
𝑎𝑎𝑖𝑖3
′′
de 𝑥𝑥3
2º miembro de la
ecuación 𝑏𝑏𝑖𝑖
′′
Cota superior
para 𝑥𝑥3
𝒙𝒙𝟒𝟒 21 (1) 0,545 279,273
𝟐𝟐𝟐𝟐𝟐𝟐, 𝟐𝟐𝟐𝟐𝟐𝟐
𝟎𝟎, 𝟓𝟓𝟓𝟓𝟓𝟓
= 𝟓𝟓𝟓𝟓𝟓𝟓, 𝟒𝟒𝟒𝟒𝟒𝟒
𝑥𝑥5 22 (2) 0,364 698,181
698,181
0,364
= 1918,080
𝑥𝑥8 23 (3) 4,636 5445,818
5445,818
4,636
= 1174,680
A partir de esta tabla se deduce que la variable que impone la menor cota superior
sobre 𝑥𝑥3 es 𝑥𝑥4, así que esta variable se convierte en variable que sale y en su lugar
entra 𝑥𝑥3.
Parte 3: Debemos eliminar la variable 𝑥𝑥3 de todas las ecuaciones, excepto de la
ecuación 21 en la cual 𝑥𝑥3 sustituye a 𝑥𝑥4. Procediendo de manera semejante a como
se hizo en la segunda iteración, se obtiene el sistema:
Z + 1,380𝑥𝑥1 + 0,246𝑥𝑥2 + 0,075𝑿𝑿𝟒𝟒 + 0,226𝑥𝑥6 + 0,011𝑥𝑥7 = 1817,571 (32)
1,268𝑥𝑥1 + 0,233𝑥𝑥2 + 𝑥𝑥3 + 𝟏𝟏, 𝟖𝟖𝟖𝟖𝟖𝟖𝟖𝟖𝟒𝟒 + 0,183𝑥𝑥6 − 0,117𝑥𝑥7 = 512,427 (25)
0,265𝑥𝑥1 + 0,733𝑥𝑥2 − 0,668𝑥𝑥3 + 𝑿𝑿𝟓𝟓 − 0,067𝑥𝑥6 + 𝟎𝟎, 𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟏𝟕𝟕 = 511,658 (26)
−4,405𝑥𝑥1 + 6,902𝑥𝑥2 − 8,507𝑥𝑥3 − 1,148𝑥𝑥6 + 𝟎𝟎, 𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟕𝟕 + 𝑿𝑿𝟖𝟖 = 3070,206 (27)
De esta manera, la nueva solución factible básica es:
𝒙𝒙 = (𝑥𝑥1, 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5, 𝑥𝑥6, 𝑥𝑥7, 𝑥𝑥8) = (0, 0, 512,427, 0, 511,658, 0, 0, 3070,206)
con 𝑍𝑍 = 1817,571
22. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 22
Afortunadamente, esta solución es óptima, pues todos los coeficientes de las variables
no básicas en la ecuación 24 son positivos. En forma equivalente, al escribir dicha
ecuación despejada para la función objetivo 𝑍𝑍, resulta:
Z = 1817,571 − 1,380𝑥𝑥1 − 0,246𝑥𝑥2 − 0,075𝑥𝑥4 − 0,226𝑥𝑥6 − 0,011𝑥𝑥7 (33’)
Observamos que todos los coeficientes de las variables no básicas son negativos, lo
cual prueba que la solución obtenida es óptima de acuerdo al formato definido para la
condición de 𝑍𝑍 optimizada. Aquí termina la aplicación del método simplex.
3.3. CONCLUSIONES.
La solución deseada para la forma original del problema es:
𝑥𝑥1 = 0, 𝑥𝑥2 = 0, 𝑥𝑥3 = 512,427 ≃ 512, 𝑥𝑥4 = 0, 𝑥𝑥5 = 511,658 ≃ 512
dado que las variables (𝑥𝑥6, 𝑥𝑥7, 𝑥𝑥8) se usaron para realizar el proceso de cálculo, pero
son variables ficticias. Retomando a las variables originales de los productos serían:
𝐴𝐴 = 0, 𝐵𝐵 = 0, 𝐶𝐶 = 512, 𝐷𝐷 = 0, 𝐸𝐸 = 512
lo cual nos proporciona para la función objetivo un máximo de,
𝑍𝑍 = 1817,571 ≃ 1818
Las soluciones halladas a los sistemas de ecuaciones no se han realizado con todos
los decimales. Es por ello que existen ligeras discrepancias en los decimales al
desarrollar el resultado final. Los valores enteros expuestos son los resultados exactos
y se ha cotejado con un programa informático. Además, por el propio problema, no
pueden existir variables con decimales pues no podemos fabricar parte de los
elementos como un todo, es decir, deben ser números naturales, {𝐴𝐴, 𝐵𝐵, 𝐶𝐶, 𝐷𝐷, 𝐸𝐸} ∈ ℕ.
Esto nos indica que el mayor beneficio para la empresa se consigue fabricando
únicamente los productos C y E, o, dicho de otra forma, lo mejor es no fabricar los
restantes. Eso a veces sucede en empresas que tienen varios productos en
producción y desean averiguar cuál es la proporción de los mismos que debe
programarse para su fabricación. Hemos descubierto que varios productos alejan el
beneficio máximo de la empresa y la decisión acertada sería dejar de fabricarlos.
23. PROGRAMACIÓNLINEALMEDIANTEELMÉTODOSIMPLEX. 23
Referencias.
González López, J., Salas Salas, A. (2000), Introducción a la programación lineal.
Universidad de Manizales, Colombia.
Castillo E., Conejo, Antonio J., Pedregal P., García R., y Alguacil N. (2002).
Formulación y Resolución de Modelos de Programación Matemática en
Ingeniería y Ciencia. Universidad de Castilla La Mancha. Escuela Técnica
Superior de Ingenieros Industriales. Escuela Técnica Superior de Ingenieros de
Caminos, Canales y Puertos.
https://es.wikipedia.org/wiki/Algoritmo_símplex
https://es.wikipedia.org/wiki/ENIAC
https://es.wikipedia.org/wiki/Linealidad