Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introducción.
Muchas personas clasifican el desarrollo de la Programación Lineal (PL) entre los avances
científicos más importantes de mediados del siglo XX. En la actualidad es una herramienta
común que ha ahorrado miles o millones de dólares a muchas compañías y negocios,
incluyendo industrias medianas en distintos países del mundo. ¿Cuál es la naturaleza de
esta notable herramienta y qué tipo de problemas puede manejar? Expresado brevemente,
el tipo más común de aplicación abarca el problema general de asignar recursos limitados
entre actividades competitivas de la mejor manera posible (es decir, en forma óptima). Este
problema de asignación puede surgir cuando deba elegirse el nivel de ciertas actividades
que compiten por recursos escasos para realizarlas. La variedad de situaciones a las que
se puede aplicar esta descripción es sin duda muy grande, y va desde la asignación de
instalaciones productivas a los productos, hasta la asignación de los recursos nacionales a
las necesidades de un país; desde la planeación agrícola, hasta el diseño de una terapia
de radiación; etc. No obstante, el ingrediente común de todas estas situaciones es la
necesidad de asignar recursos a las actividades.
Con frecuencia, seleccionar una alternativa incluye satisfacer varios criterios al mismo
tiempo. Por ejemplo, cuando se compra una pieza de pan se tiene el criterio de frescura,
tamaño, tipo (blanco, integral u otro), costo y rebanado o sin rebanar. Se puede ir un paso
más adelante y dividir estos criterios en dos categorías: restricciones y el objetivo. Las
restricciones son las condiciones que debe satisfacer una solución que está bajo
consideración. Si más de una alternativa satisface todas las restricciones, el objetivo se usa
para seleccionar entre todas las alternativas factibles. Cuando se elige una pieza de pan,
pueden quererse 100 gr. de pan blanco rebanado y hecho no antes de ayer. Si varias
marcas satisfacen estas restricciones, puede aplicarse el objetivo de un costo mínimo y
escoger las más barata.
Existen muchos problemas administrativos que se ajustan a este molde de tratar de
minimizar o maximizar un objetivo que está sujeto a una lista de restricciones. Un corredor
de inversiones, por ejemplo, trata de maximizar el rendimiento sobre los fondos invertidos
pero las posibles inversiones están restringidas por las leyes y las políticas bancarias. Un
hospital debe planear que las comidas para los pacientes satisfagan ciertas restricciones
sobre sabor, propiedades nutritivas, tipo y variedad, al mismo tiempo que se trata de
minimizar el costo. Un fabricante, al planear la producción futura, busca un costo mínimo al
mismo tiempo cómo cumplir restricciones sobre la demanda del producto, la capacidad de
producción, los inventarios, el nivel de empleados y la tecnología. La PL se ha aplicado con
éxito a estos y otros problemas.
La PL es una técnica determinista, no incluye probabilidades y utiliza un modelo matemático
para describir el problema. El adjetivo lineal significa que todas las funciones matemáticas
del modelo deben ser funciones lineales. En este caso, la palabra programación no se
refiere a programación en computadoras; en esencia es un sinónimo de planeación. Así, la
PL trata la planeación de las actividades para obtener un resultado óptimo, esto es, el
resultado que mejor alcance la meta especificada (según el modelo) entre todas las
opciones de solución. Aunque la asignación de recursos a las actividades es la aplicación
más frecuente, la PL tiene muchas otras posibilidades. De hecho, cualquier problema cuyo
modelo matemático se ajuste al formato general del modelo de PL es un problema de PL.
En definitiva, se llama programación lineal al conjunto de técnicas matemáticas que
pretenden resolver la situación siguiente: Optimizar (maximizar o minimizar) una función
objetivo, función lineal de varias variables, sujeta a: una serie de restricciones, expresadas
por inecuaciones lineales.
Ejemplo Modelo
Solución:
a) Incógnitas.
x = número de pantalones
y = número de chamarras
b) Función objetivo
Max f(x,y)= 120x + 140y
c) Restricciones
Pantalones Chamarra
Disponible
x y
Poliéster 2 1 ≤ 1000
x+1.5y≤750
2x+y≤1000
d) Grafica del área factible
x+1.5y≤750 despejando “y”, y= (750-x)/1.5
2x+y≤1000 despejando “y”, y= 1000-2x
http://fooplot.com/?lang=es#W3sidHlwZSI6MCwiZXEiOiJ4XjIiLCJjb2xvciI6IiMwMDAwMDA
ifSx7InR5cGUiOjEwMDB9XQ--
http://www.phpsimplex.com/simplex/simplex.htm?l=es
POM QM
MÉTODO SIMPLEX
Tabla
C1 C2 ... Cn
Base Cb P0 P1 P2 ... Pn
Los valores de la fila Z se obtienen de la siguiente forma: El valor Z0 será el de sustituir Cim
en la función objetivo (y cero si no aparece en la base). El resto de columnas se obtiene
restando a este valor el del coeficiente que aparece en la primera fila de la tabla.
Se observará al realizar el método Simplex, que en esta primera tabla, en la base estarán
las variables de holgura.
- Condición de parada: Comprobaremos si debemos de dar una nueva iteración o no, que
lo sabremos si en la fila Z aparece algún valor negativo. Si no aparece ninguno, es que
hemos llegado a la solución óptima del problema.
- Elección de la variable que entra: Si no se ha dado la condición de parada, debemos
seleccionar una variable para que entre en la base en la siguiente tabla. Para ello nos
fijamos en los valores estrictamente negativos de la fila Z, y el menor de ellos será el que
nos de la variable entrante.
- Elección de la variable que sale: Una vez obtenida la variable entrante, obtendremos la
variable que sale, sin más que seleccionar aquella fila cuyo cociente P0/Pj sea el menor de
los estrictamente positivos (teniendo en cuenta que sólo se hará cuando Pj sea mayor de
0). La intersección entre la columna entrante y la fila saliente nos determinará el elemento
pivote.
- Actualización de la tabla: Las filas correspondientes a la función objetivo y a los títulos
permanecerán inalterados en la nueva tabla. El resto deberá calcularse de dos formas
diferentes:
Nuevo Elemento Fila = Elemento Fila Pivote actual - (Elemento Columna Pivote en
la fila actual * Nuevo Elemento Fila).
Ejemplo Modelo
Maximizar Z = f(x,y) = 3x + 2y
sujeto a: 2x + y ≤ 18
2x + 3y ≤ 42
3x + y ≤ 24
x≥0,y≥0
http://www.phpsimplex.com/ejemplo_metodo_simplex.htm
Se introduce una variable de holgura por cada una de las restricciones del tipo ≤, para
convertirlas en igualdades, resultando el sistema de ecuaciones lineales:
2x + y + r = 18
2x + 3y + s = 42
3x +y + t = 24
- 3x - 2y + Z = 0
En las columnas aparecerán todas las variables básicas del problema y las variables de
holgura/exceso. En las filas se observan, para cada restricción las variables de holgura con
sus coeficientes de las igualdades obtenidas, y la última fila con los valores resultantes de
sustituir el valor de cada variable en la función objetivo, y de operar tal como se explicó en
la teoría para obtener el resto de valores de la fila:
Tabla I . Iteración nº 1
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 18 2 1 1 0 0
P4 0 42 2 3 0 1 0
P5 0 24 3 1 0 0 1
Z 0 -3 -2 0 0 0
4. Condición de parada
Cuando en la fila Z no existe ningún valor negativo, se ha alcanzado la solución óptima del
problema. En tal caso, se ha llegado al final del algoritmo. De no ser así, se ejecutan los
siguientes pasos.
A. Primero debemos saber la variable que entra en la base. Para ello escogemos la
columna de aquel valor que en la fila Z sea el menor de los negativos. En este caso
sería la variable x (P1) de coeficiente - 3.
Si existiesen dos o más coeficientes iguales que cumplan la condición anterior (caso
de empate), entonces se optará por aquella variable que sea básica.
La columna de la variable que entra en la base se llama columna pivote (En color
verde).
Si hubiera algún elemento menor o igual a cero no se realiza dicho cociente, y caso
de que todos los elementos de la columna pivote fueran de ésta condición
tendríamos una solución no acotada y terminaríamos el problema
Si al calcular los cocientes, dos o más son iguales (caso de empate), se escoge
aquella que no sea variable básica (si es posible).
C. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote, 3.
Los nuevos coeficientes de la fila pivote, t (P5), se obtienen dividiendo todos los coeficientes
de dicha fila entre el elemento pivote, 3, que es el que hay que convertir en 1.
Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x (P1) en la Tabla II):
Vieja fila de P4 42 2 3 0 1 0
- - - - - -
Coeficiente 2 2 2 2 2 2
x x x x x x
Nueva fila pivote 8 1 1/3 0 0 1/3
= = = = = =
Nueva fila de P4 26 0 7/3 0 1 -2/3
Tabla II . Iteración nº 2
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 2 0 1/3 1 0 -2/3
P4 0 26 0 7/3 0 1 -2/3
P1 3 8 1 1/3 0 0 1/3
Z 24 0 -1 0 0 1
B. Para calcular la variable que sale, dividimos los términos de la última columna entre
los términos correspondientes de la nueva columna pivote:
Como en los elementos de la fila Z hay uno negativo, -1, significa que no hemos llegado
todavía a la solución óptima. Hay que repetir el proceso:
A. La variable que entra en la base es t (P5), por ser la variable que corresponde al
coeficiente -1.
B. Para calcular la variable que sale, dividimos los términos de la última columna entre
los términos correspondientes de la nueva columna pivote:
Obtenemos la tabla:
Tabla IV . Iteración nº 4
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P2 2 12 0 1 -1/2 1/2 0
P5 0 3 0 0 -7/4 1/4 1
P1 3 3 1 0 3/4 -1/4 0
Z 33 0 0 5/4 1/4 0
Se observa que en la última fila todos los coeficientes son positivos, por lo tanto se cumple
la condición de parada, obteniendo la solución óptima.
La solución óptima viene dada por el valor de Z en la columna de los valores solución, en
nuestro caso: 33. En la misma columna se puede observar el punto donde se alcanza,
observando las filas correspondientes a las variables de decisión que han entrado en la
base: (x,y) = (3,12)
http://www.phpsimplex.com/ejemplo_metodo_grafico.htm
Las sucesivas tablas que hemos construido durante el método simplex van proporcionando
el valor de la función objetivo en los distintos vértices, ajustándose, a la vez, los coeficientes
de las variables iniciales y de holgura.
Tabla I . Iteración nº 1
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 18 2 1 1 0 0
P4 0 42 2 3 0 1 0
P5 0 24 3 1 0 0 1
Z 0 -3 -2 0 0 0
A continuación se desplaza por la arista (0,0) F, calculando el valor de la función Z,
hasta llegar a F. éste paso se traduce como la segunda iteración en el Método Simplex,
aportando la Tabla II, en la que se ha calculado el valor que corresponde al vértice F(8,0):
Z = f(8,0) = 24.
Tabla II . Iteración nº 2
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 2 0 1/3 1 0 -2/3
P4 0 26 0 7/3 0 1 -2/3
P1 3 8 1 1/3 0 0 1/3
Z 24 0 -1 0 0 1
Sigue por la arista FH, hasta llegar a H, donde se para y despliega los datos de la Tabla
III. En ésta tercera iteración se ha calculado el valor que corresponde al vértice H(6,6): Z =
f(6,6) = 30.
Tabla IV . Iteración nº 4
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P2 2 12 0 1 -1/2 0 0
P5 0 3 0 0 -7/4 0 1
P1 3 3 1 0 -3/4 0 0
Z 33 0 0 5/4 0 0
El valor máximo de la función objetivo es 33, y corresponde a x = 3 e y = 12 (vértice G).
Además, se puede comprobar que el valor de la función en el vértice C (0,14), no supera el
valor 33.
http://www.phpsimplex.com/simplex/simplex.htm?l=es
POM QM
Ejercicios:
1) 2) 3)
Maximizar Z = x+1.2y Maximizar Z =5x+6y Minimizar Z = 6x+8y
Sujeto a: Sujeto a: Sujeto a:
2x+y <= 180 3x+2y <= 120 40x+10y >=2400
x+3y <= 300 4x+6y <= 260 10x+15y>= 2100
5x+15y>= 1500
4) Un herrero dispone de 80 kg. de acero y 120 kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a $1920 y $1440 para sacar el
máximo beneficio. Para la de paseo empleará 1 kg. De acero y 3 de aluminio, y para la de
montaña 2 kg. De los dos metales. ¿Cuántas bicicletas de paseo y de montaña venderá?