2 PROGRAMACIÓN LINEAL

42
2 PROGRAMACIÓN LINEAL 2.1 Metodología El modelo de programación lineal se incorpora a las técnicas de la Ingeniería de Sistemas, a raíz de que el Dr. George B. Dantzig crea el algoritmo Simplex para buscar soluciones al modelo con instrucciones de operación del algoritmo que cumplen con la condición de generalidad y de eficiencia en su planteamiento. Entre las herramientas más útiles para estudiar los sistemas que se presentan en ingeniería, se encuentran los métodos de optimización. Dentro de estos está la programación matemática, que pretende encontrar el valor óptimo del objetivo del sistema sujetándose a una serie de restricciones que surgen de las relaciones que existen entre sus entidades. Una de las técnicas más utilizadas es la programación lineal, que recibe este nombre porque todas sus relaciones funcionales se pueden expresar como ecuaciones lineales. La programación lineal trata con sistemas cuyo problema es asignar recursos limitados, de la mejor forma posible, entre actividades que compiten, es decir, optimizar. Como ejemplo de las áreas en que tiene aplicación la programación lineal, se pueden citar: Un agricultor debe decidir que cultivos plantar durante la siguiente temporada, tomando en cuenta la cantidad de agua de que dispone, la tierra cultivable, y alguna otra restricción en cuanto a cantidades que debe proporcionar de alguno de los cultivos obligado por un plan de desarrollo, con objeto de obtener el máximo beneficio monetario. La CFE debe distribuir el carbón de que dispone, entre las termoeléctricas que generan la energía y que la distribuyen a la población del valle de México. Dichas termoeléctricas están sujetas a las restricciones de la cantidad de carbón y a la demanda y eficiencia de ellas, de manera que se incurra en el mínimo costo de producción de carbón y transporte. PEMEX debe decidir como encausar el petróleo crudo que llega a una de sus refinerías tomando en cuenta la capacidad y la eficiencia de los procesos, y de la demanda de los productos terminados, de manera que se minimice el costo de operación. Para plantear este tipo de problemas se puede utilizar el modelo de programación lineal que tiene la siguiente estructura, denominada forma estándar: Maximizar z = c1x1 + c2x2 + . . . . . . . + cnxn Función objetivo a11x1 + a12x2 + . . . . + a1nxn b1 a21x1 + a22x2 + . . . . + a2nxn b2 . . . . Restricciones explícitas . . . . am1x1 + am2x2 + . . . . + amnxn bm x1, x2, . . . . xn 0 Restricciones implícitas

Transcript of 2 PROGRAMACIÓN LINEAL

Page 1: 2     PROGRAMACIÓN LINEAL

2 PROGRAMACIÓN LINEAL

2.1 Metodología

El modelo de programación lineal se incorpora a las técnicas de la Ingeniería de Sistemas, a raíz

de que el Dr. George B. Dantzig crea el algoritmo Simplex para buscar soluciones al modelo con

instrucciones de operación del algoritmo que cumplen con la condición de generalidad y de

eficiencia en su planteamiento.

Entre las herramientas más útiles para estudiar los sistemas que se presentan en ingeniería, se

encuentran los métodos de optimización. Dentro de estos está la programación matemática,

que pretende encontrar el valor óptimo del objetivo del sistema sujetándose a una serie de

restricciones que surgen de las relaciones que existen entre sus entidades.

Una de las técnicas más utilizadas es la programación lineal, que recibe este nombre porque

todas sus relaciones funcionales se pueden expresar como ecuaciones lineales. La

programación lineal trata con sistemas cuyo problema es asignar recursos limitados, de la mejor

forma posible, entre actividades que compiten, es decir, optimizar. Como ejemplo de las áreas

en que tiene aplicación la programación lineal, se pueden citar:

Un agricultor debe decidir que cultivos plantar durante la siguiente temporada, tomando en

cuenta la cantidad de agua de que dispone, la tierra cultivable, y alguna otra restricción en

cuanto a cantidades que debe proporcionar de alguno de los cultivos obligado por un plan

de desarrollo, con objeto de obtener el máximo beneficio monetario.

La CFE debe distribuir el carbón de que dispone, entre las termoeléctricas que generan la

energía y que la distribuyen a la población del valle de México. Dichas termoeléctricas

están sujetas a las restricciones de la cantidad de carbón y a la demanda y eficiencia de

ellas, de manera que se incurra en el mínimo costo de producción de carbón y transporte.

PEMEX debe decidir como encausar el petróleo crudo que llega a una de sus refinerías

tomando en cuenta la capacidad y la eficiencia de los procesos, y de la demanda de los

productos terminados, de manera que se minimice el costo de operación.

Para plantear este tipo de problemas se puede utilizar el modelo de programación lineal que

tiene la siguiente estructura, denominada forma estándar:

Maximizar z = c1x1 + c2x2 + . . . . . . . + cnxn Función objetivo

a11x1 + a12x2 + . . . . + a1nxn b1

a21x1 + a22x2 + . . . . + a2nxn b2

. . . . Restricciones explícitas

. . . .

am1x1 + am2x2 + . . . . + amnxn bm

x1, x2, . . . . xn 0 Restricciones implícitas

Page 2: 2     PROGRAMACIÓN LINEAL

En el modelo de Programación Lineal, se pueden distinguir los siguientes elementos:

Objetivo del modelo

Es una ecuación lineal que pretende encontrar el valor óptimo del problema, en este caso el

máximo; pero también puede ser el valor mínimo. Se compone de parámetros cuyo valor es

conocido amn, bm, cn, y de las variables de decisión x1, x2, . . . . , xn.

Parámetros

Existen tres tipos de parámetros:

Parámetros de la función objetivo: estos son c1, c2, . . . . , cn . representan beneficios o costos

por unidad de actividad o variable.

Parámetros libres de las restricciones: estos son b1, b2, . . . . , bm. Son las cantidades límites de

los recursos para cada unidad de actividad o variable.

Parámetros o coeficientes de las restricciones: estos son a11, a12, . . . , a1n; a21, a22, . , , a2n; am1,

am2, . . . ,amn. Representan la cantidad de recurso i consumido por cada unidad de

actividad j.

Variables

Son las actividades que compiten y cambian continuamente en el modelo hasta determinar el

nivel adecuado que satisfaga el objetivo del problema y las restricciones.

Relaciones funcionales

Son las relaciones matemáticas lineales y se clasifican en tres tipos:

Función objetivo. Cada uno de sus términos indica el beneficio que se obtiene por cada

actividad y al sumarse dan el beneficio total del sistema. Se busca encontrar el máximo (o el

mínimo, en el caso de un problema de costos).

Restricciones explícitas. Reciben este nombre porque se especifican textualmente. Cada

uno de sus términos indica cuánto recurso esta consumiendo la actividad, y su suma, cuánto

recurso consume el sistema. Son desigualdades del tipo ( , ) o igualdades estrictas.

Restricciones implícitas: indican únicamente que las variables (o nivel de las actividades)

deben ser cero o cualquier valor positivo.

Page 3: 2     PROGRAMACIÓN LINEAL

Planteamiento del modelo de programación lineal

Una tarea difícil cuando se analiza una situación real, es la de reunir la información en el nivel

adecuado que permita establecer en forma efectiva los parámetros y las relaciones funcionales

del modelo. Para esto se sugiere identificar los siguientes requerimientos básicos:

a) Definir claramente la función objetivo.

b) Deben existir otros cursos alternativos de acción. Debe ser posible escoger una solución que

satisfaga a la función objetivo.

c) Las relaciones funcionales deben describir el sistema en forma lineal.

d) Debe existir un suministro limitado de recursos.

Ejemplo 2.1 Planteamiento del modelo de programación lineal

Una planta mezcladora de concreto que provee en grandes cantidades a un proyecto

hidroeléctrico, usa una mezcla de arena y grava, con un 30% de arena y 70% de grava por

peso. Existen 5 depósitos naturales cercanos a la presa que tienen diferente composición y su

costo, incluyendo su transporte al sitio, también varía como se muestra en la tabla. ¿Por cada

tonelada de mezcla, cuántas toneladas deben ser extraídas de cada uno de los depósitos para

minimizar el costo total?

D e p ó s i t o Mezcla

deseada 1 2 3 4 5

Arena

Grava

Costo/kg

40%

60%

$3.00

20%

80%

$2.00

50%

50%

$1.00

80%

20%

$1.50

70%

30%

$2.50

30%

70%

Variables de decisión

Tratándose de un problema de mezclas, se deberá diseñar una mezcla que cumpla con los

requerimientos de los contenidos de agregados, los cuales están presentes en todos los

materiales de los bancos en diferentes cantidades y cada banco tiene diferentes costos; por lo

que las variables de decisión serán x1, x2, x3, x4 y x5, respectivamente para cada banco.

Función objetivo

El objetivo es minimizar el costo total; las unidades de medición de la función objetivo se

expresan en pesos. De la forma de la función objetivo se tienen los coeficientes c1, c2, c3, c4,

c5 que corresponden a los costos de: $3.00, $2.00, $1.00, $1.50, $2.50 respectivamente, para

cada uno de los bancos.

Page 4: 2     PROGRAMACIÓN LINEAL

La función objetivo puede expresarse de la siguiente manera:

Min z =3 x1 + 2 x2 + x3 + 1.5 x4 + 2.5 x5

Restricciones

Para desarrollar las restricciones del modelo, es necesario identificar los coeficientes a ij y

determinar la relación que existe entre las variables de decisión y los recursos disponibles. Al

plantear las restricciones es necesario tomar en cuenta dos reglas generales:

Las unidades de medición del lado derecho del signo de igualdad o desigualdad deben ser

siempre igual a las unidades del lado izquierdo.

Las restricciones pueden tener diferentes unidades de medición; es decir, una restricción

puede estar expresada en unidades monetarias mientras que las demás pudieran estar

expresadas en unidades de peso o tiempo.

La primera restricción debe expresar que la suma de los contenidos de arena de todos los

bancos deben ser iguales a un 30 % del total; se puede escribir:

0.40 x1 + 0.20 x2 + 0.50 x3 + 0.80 x4 + 0.70 x5 = 0.30

La segunda restricción debe expresar que la suma de los contenidos de grava de todos los

bancos deben ser iguales a un 70 % del total; se puede escribir:

0.60 x1 + 0.80 x2 + 0.50 x3 + 0.20 x4 + 0.30 x5 = 0.70

La tercera restricción que se plantea es la establecer que la mezcla requerida puede estar

formada de partes de todos los bancos y su totalidad será una unidad del material requerido;

esto se puede expresar:

x1 + x2 + x3 + x4 + x5 = 1

Se puede prescindir de esta última restricción en el modelo ya que es redundante; es decir, se

puede expresar en función de otras restricciones; por lo que finalmente, el modelo se puede

escribir:

Page 5: 2     PROGRAMACIÓN LINEAL

Modelo de programación lineal:

Min z = 3 x1 + 2 x2 + x3 + 1.50 x4 + 2.50 x5

s. a:

0.40 x1 + 0.20 x2 + 0.50 x3 + 0.80 x4 + 0.70 x5 = 0.30

0.60 x1 + 0.80 x2 + 0.50 x3 + 0.20 x4 + 0.30 x5 = 0.70

x1, . . . , x5 0

Una aportación sobresaliente en la solución del problema de programación lineal la hizo

George B. Dantzig con el algoritmo Simplex y actualmente es el algoritmo más utilizado; sin

embargo, en el proceso de aprendizaje es importante considerar a la solución gráfica y a las

soluciones básicas, ya que en su aplicación se plantean los elementos presentes también en el

algoritmo Simplex, que está basado en una concepción gráfica, y que su comprensión es más

fácil en la exposición de estos métodos.

Finalmente, habría que considerar el método del elipsoide de L. G. Kachian, que surge en 1979

en la antigua Unión Soviética, del cual se tiene escasa información y además es muy difícil su

aplicación práctica por su complejidad y por el alto número de iteraciones necesarias para

converger a una solución óptima.

Considerando todo esto, se puede decir que existen cuatro maneras de encontrar solución al

modelo de programación lineal:

Solución gráfica

Soluciones básicas

Algoritmo Simplex de George B. Dantzig

Método del Elipsoide de L. G. Kachian

2.2 Método gráfico

Se puede resumir el método gráfico, considerando las siguientes etapas de búsqueda de una

solución:

a) Planteamiento del modelo de programación lineal

b) Dibujar una a una las restricciones del modelo, identificando las variables de decisión con

cada uno de los ejes y considerar el tipo de desigualdad o igualdad estricta que pudiera

estar presente en el modelo. Entre las posibilidades de un espacio de solución, se pueden

visualizar las siguientes (Figura 2.1):

Page 6: 2     PROGRAMACIÓN LINEAL

a) Solución única b) Infinitas soluciones acotadas

c) Infinitas soluciones d) No hay solución

no acotadas (no se define espacio de solución)

Figura 2.1 Espacios de solución

c) Identificar un posible espacio de solución generado por las restricciones. Este espacio de

solución representa a una gran cantidad de soluciones posibles que deben considerarse.

Este espacio de solución, de existir, debe ser congruente con todas las restricciones del

modelo.

d) De identificarse un espacio de solución, se procede al trazo de la función objetivo del

modelo. Para esto, basta con asignar un valor cualquiera a la variable z y determinar la

pendiente de la función. El problema se reduce ahora a encontrar un punto con las más

altas utilidades o costos mínimos. Una solución óptima de programación lineal ocurre

siempre en un punto extremo del espacio generado. Además, se dice que un espacio de

solución corresponde siempre a un conjunto convexo (conjunto de puntos en el cual es

posible conectar dos puntos cualesquiera por medio de un segmento de recta que

permanezca dentro del mismo conjunto), cuya definición puede entenderse con la figura

2.2:

Page 7: 2     PROGRAMACIÓN LINEAL

Puntos

extremos

Puntos

frontera

a) Conjuntos no convexos b) Conjunto convexo

Figura 2.2 Conjuntos no convexos y conjunto convexo

En un conjunto convexo se pueden distinguir también los siguientes puntos (figura 2.3):

Figura 2.3 Puntos de un espacio convexo

e) En esta etapa se explora el espacio generado, utilizando la función objetivo para explorar

sólo aquellos puntos extremos del espacio generado; una solución única se dará en aquel

punto extremo que maximice o minimice las utilidades o los costos.

f) Validar el modelo de programación lineal.

Ejemplo 2.2 Solución gráfica al modelo de programación lineal

Un constructor va a edificar dos tipos de viviendas A y B. Dispone de 60 millones de pesos y el

costo de una casa de tipo A es de $1,500,000 y $1,200,000 pesos una de tipo B. por disposiciones

gubernamentales deben construirse cuando más 20 casas del tipo A y cuando menos 20 casas

del tipo B. Si cada casa de tipo A se vende a $1,800,000 pesos y cada una de tipo B en

$1,300,000. ¿Cuántas casas de cada tipo se deben construir para obtener el beneficio

máximo?

Variables de decisión:

X1: Número de casas tipo A

X2. Número de casas tipo B

Page 8: 2     PROGRAMACIÓN LINEAL

Modelo de programación lineal:

Maximizar Z = 300 X1 + 100 X2

Sujeto a:

1500 X1 + 1200 X2 ≤ 60000 (1)

X1 ≤ 20 (2)

X2 ≥ 20 (3)

X1, X2 ≥ 0

Figura 2.4 Gráfica de solución, aparecen todas las

restricciones y la función objetivo

Se propone construir 20 casas tipo A y 25 casas tipo B, para generar una utilidad máxima de

$8,500,000 por la venta de las casas.

Page 9: 2     PROGRAMACIÓN LINEAL

Utilizando el software TORA1:

Figura 2.5 Graficando la restricción 1

Es importante observar como se va delimitando el espacio de solución.

Figura 2.6 Graficando la restricción 2

1 Taha, Hamdy A., Investigación de Operaciones, 2004. Pearson Educación (En el libro se incluye el software)

Page 10: 2     PROGRAMACIÓN LINEAL

Figura 2.7 Graficando la restricción 3

Figura 2.8 Graficando la función objetivo

Page 11: 2     PROGRAMACIÓN LINEAL

2.3 Soluciones básicas

De la interpretación geométrica del problema de programación lineal, se infiere que la mayor

dificultad proviene de definir dónde se encuentran las soluciones básicas factibles (puntos

extremos del espacio de solución). La dificultad proviene de tener relaciones de desigualdad,

en lugar de relaciones de igualdad, ya que, como se sabe, en este caso las soluciones básicas

son las intersecciones de las restricciones.

Este problema se puede resolver agregando las variables de holgura, que se pueden establecer

de la siguiente manera. Supóngase que se tiene la desigualdad:

x1 a

Se puede agregar una nueva variable xh, no negativa, es decir, xh 0 por lo que se puede

escribir:

x1 + xh = a

Gráficamente, se puede interpretar como:

x1 xh

0 a

En los casos en que se tengan restricciones de desigualdad mayor o igual que ( ), se restará

una variable de holgura y se sumará una variable llamada variable artificial. La variable artificial

se agrega como auxiliar en la búsqueda de soluciones. La variable artificial no tiene ninguna

relación con el problema real de programación lineal, es un simple artificio para lograr llegar a

soluciones factibles en el problema. Para el caso de restricciones que son igualdades estrictas,

bastará con agregar una variable artificial a la restricción; ya que, numéricamente, una

igualdad estricta equivale a dos restricciones: una desigualdad mayor o igual que ( ) y una

desigualdad menor o igual que ( ).

De manera que un modelo de programación lineal crecerá en número de variables; tendrá

variables de decisión más variables de holgura y/o artificiales.

En general se establece un sistema con m ecuaciones con n incógnitas (n m). La solución

obtenida para las m variables haciendo cero las (n - m) variables restantes, es una solución

básica. Se tienen m variables básicas y (n-m) variables no básicas, por lo cual la base es de

orden m.

Si las m variables básicas de una solución son todas mayores o iguales a cero, se dice entonces

que la solución es básica factible. En el caso de que los valores de todas y cada una de las

Page 12: 2     PROGRAMACIÓN LINEAL

variables de la solución básica factible sean estrictamente mayores que cero, se tiene una

solución no degenerada. En el caso de que alguna o varias de las variables correspondientes a

una solución básica factible sean cero, se habla entonces de una solución degenerada.

Si el sistema que se tiene es de m x n, se puede establecer que el número de soluciones básicas

(N) está dado por el numero de combinaciones de n variables tomadas de m en m, es decir:

)!mn(!m

!nN

Ejemplo 2.3 Aplicación del método de soluciones básicas

Considerando el ejemplo de la solución gráfica (Ejemplo 2.2) se tiene el modelo:

Maximizar Z = 300 X1 + 100 X2

Sujeto a:

1500 X1 + 1200 X2 ≤ 60000 (1)

X1 ≤ 20 (2)

X2 ≥ 20 (3)

X1, X2 ≥ 0

Al agregar variables de holgura y artificiales se tiene el modelo en su forma canónica:

Maximizar Z = 300 X1 + 100 X2

Sujeto a:

1500 X1 + 1200 X2 + X3 = 60000

X1 + X4 = 20

X2 - X5 + X6 = 20

X1, . . . , X6 ≥ 0

Donde X1 y X2 son variables de decisión, X3, X4 y X5 son variables de holgura y X6 es una

variable artificial.

Se tienen 6 variables y 3 restricciones (n=6, m=3), por lo que el número de soluciones básicas

será:

N = !m)!m- n(

!n =

3)!3!-6(

!6 = 20 soluciones básicas

Se tendrán 20 soluciones básicas; en cada una de ellas se deberá hacer cero a tres de las

variables y resolver para las tres restantes, lo cual se muestra en la tabla siguiente:

Page 13: 2     PROGRAMACIÓN LINEAL

11 12 13 14 15 16 17 18 19 20

0 40 20 0 20 0 40 0 0 0

0 0 25 50 0 0 0 0 50

0 0 0 30000 60000 0 60000 0

0 -20 0 20 0 20 -20 20 0 20

0 5 0 -20 0 -20 -20 30

20 0 -30 0 20 0 0 0 0

SBF SBF

1 2 3 4 5 6 7 8 9 10

X1 0 20 20 0 20 24 0 0

X2 0 0 25 20 0 20 0 20

X3 0 0 0 60000 0 30000 0 36

X4 0 0 0 0 0 -4 0 20

X5 0 0 0 0 0 0 0

X6 20 0 20 0 0 0

SBF SBF

X 1

X 2

X 3

X 4

X 5

X 6

De entre las 20 soluciones básicas se seleccionan aquellas en que se cumpla que todas las

variables sean mayores o iguales a cero (X1, X2, X3, X4, X5) y que la variable artificial del modelo

(X6) también valga cero, de manera que en el ejemplo se identifican cuatro soluciones básicas

factibles (SBF). Luego se necesita buscar un valor óptimo para la función objetivo, por lo que se

determina el valor de Z sustituyendo los valores de cada SBF en la función objetivo:

Maximizar Z = 300 X1 + 100 X2

Z4= $8,000,000

Z10= $2,000,000

Z13= $8,500,000

Z20= $5,000,000

De entre estos, tratándose de maximizar una utilidad, se selecciona el valor de Z13 como el

óptimo. Un resultado para este problema se puede escribir como:

Se propone construir 20 casas tipo A y 25 casas tipo B, para generar una utilidad máxima de

$8,500,000 por la venta de las casas.

Page 14: 2     PROGRAMACIÓN LINEAL

Es de notar la correspondencia que existe entre las soluciones básicas factibles y una

interpretación gráfica del problema de programación lineal en que se identifican puntos

extremos de un espacio convexo; cada solución básica factible corresponde a un punto

extremo de un espacio convexo. Esto se puede observar en la gráfica:

Figura 2.9 Solución gráfica.

Las soluciones básicas y los conceptos del conjunto convexo se pueden resumir en las siguientes

tres características:

1. Las soluciones factibles forman un conjunto convexo cuyos puntos extremos son soluciones

básicas factibles.

2. Si las restricciones definen una solución factible, existe cuando menos una solución básica

factible; en caso de haber más de una, el numero de las mismas debe ser finito.

3. Si la función objetivo tiene un máximo finito, entonces al menos una de las soluciones

óptimas es una solución básica factible.

Dentro de las características anteriores se enfatiza la existencia de una solución al problema de

programación lineal. Como se mencionó anteriormente, se destacan las siguientes posibilidades

ante un problema de programación lineal:

1. La solución existe y es única

2. Existe un número infinito de soluciones que están acotadas

Page 15: 2     PROGRAMACIÓN LINEAL

3. Existe un número infinito de soluciones que no están acotadas

4. No existe solución

A manera de conclusión se puede destacar que para determinar el valor óptimo de la función

objetivo z es necesario examinar solamente soluciones básicas factibles, las cuales a su vez

constituyen un conjunto de puntos extremos de un conjunto convexo.

2.4 Algoritmo Simplex

Resulta evidente que al buscar una solución óptima no es deseable o necesario examinar todas

las soluciones básicas para un conjunto de m restricciones con n variables, puesto que los

vértices de un espacio de solución corresponden a las soluciones básicas factibles, y entonces

solo se requiere examinar estos puntos extremos. Un proceso conveniente de solución debería

considerar: (1) explorar de un punto extremo a otro de tal manera que cada punto extremo

nuevo represente una mejor solución con respecto al punto extremo anterior y (2) detenerse

cuando se haya llegado a una solución óptima.

El algoritmo Simplex busca soluciones al modelo de programación explorando sólo algunos

puntos extremos de un posible espacio de solución. Se puede establecer que el algoritmo

Simplex consta de dos fases: En la primera fase intenta determinar una solución básica factible

inicial y en la segunda busca resolver el problema viajando a otra solución básica factible,

hasta alcanzar un valor óptimo.

Para el caso particular en que el modelo solamente contenga restricciones menor o igual que

( ), la primera fase se tiene resuelta de forma inmediata, ya que al hacer cero a las variables de

decisión del modelo, se tiene una solución básica factible en función de las variables de

holgura; gráficamente, esta solución corresponde al origen.

Habiendo obtenido una solución básica factible se presenta el problema de cómo pasar a un

punto adyacente o bien de decir que la solución es óptima. Los dos problemas que se

presentan son excluyentes; es decir, que si se puede pasar a un punto adyacente la solución no

es óptima y si la solución es óptima ya no tiene objeto pasar a ningún punto adyacente.

Examinando primero el aspecto de pasar a un punto adyacente. Esta condición equivale

analíticamente a cambiar una de las variables básicas por una de las no básicas. La variable

que pasa a substituir a la variable de la base se llama variable entrante, mientras que la que

deja la base recibe el nombre de variable saliente.

La variable entrante se determina a partir de la función objetivo; debido a que las variables sólo

pueden tener valores positivos, cualquier cambio que se origine incrementa la función objetivo

Page 16: 2     PROGRAMACIÓN LINEAL

ya que los coeficientes son positivos. Si se supone que el incremento que pueden producir estas

variables sobre la función objetivo es el mismo, entonces el mayor incremento proviene de la

variable que tenga mayor coeficiente, siendo éste el criterio que se sigue al seleccionar la

variable entrante. Para definir la variable saliente se examinan las restricciones, se puede decir

que la variable saliente será aquella que alcance primero el valor cero al ir incrementando la

variable entrante. Con el fin de sistematizar los criterios anteriores en la búsqueda de variables

entrantes y salientes, es importante notar que la facilidad para resolver el problema como se

planteó, proviene de que:

La función objetivo se encuentra exclusivamente en términos de las variables no básicas.

Las variables básicas se encuentran una sola vez en cada restricción y su coeficiente es uno.

La primera característica es fundamental para establecer inmediatamente cuál es la variable

que va a entrar y, debido precisamente a que la variable entrante debe ser no básica, si no

aparece en la función objetivo, no es posible saber qué efecto tiene sobre la misma. Por otra

parte, si en la función objetivo aparecen variables básicas, tampoco es posible ver el efecto

que tendrá un cambio de una variable no básica sobre la función objetivo, ya que la variable

básica también cambia de valor.

La segunda característica permite establecer inmediatamente cuál es la variable que va a salir,

ya que deja en forma explícita a la variable básica.

Para tener las dos características anteriores cada vez que se hace un cambio de solución

factible, conviene considerar la función objetivo como una ecuación más, donde z es una

variable básica.

Resumiendo, la variable entrante se escoge como aquella que tiene el coeficiente más

negativo. La variable saliente se identifica como aquella que se hace mas pronto igual a cero,

conforme se aumenta la variable entrante.

En forma mas explícita, la variable saliente se encuentra en el renglón donde la relación b i / aij

se hace mínima con aij > 0, si existen dos renglones con la misma relación entonces el problema

tiene solución degenerada; para los casos en que aij 0 no existe límite sobre la variable básica

que se esta analizando, por lo tanto no debe ser considerada.

Si todos los coeficientes aij son menores o iguales a cero, la solución del problema es no

acotada ya que el valor de la función objetivo crecerá sin límites.

Para lograr que la función objetivo contenga solo variables no básicas y que, simultáneamente

en cada restricción aparezca solamente una vez cada variable básica, se puede emplear la

Page 17: 2     PROGRAMACIÓN LINEAL

eliminación por Gauss-Jordan. Todo el proceso del algoritmo Simplex se puede desarrollar en un

arreglo que Dantzig llamó Tableau Simplex.

Ejemplo 2.4 Aplicación del algoritmo simplex

Un fabricante de muebles de oficina, produce dos tipos de escritorios: ejecutivos y secretariales.

La compañía tiene dos plantas en las que fabrica los escritorios. La planta 1, que es una planta

antigua, opera con doble turno 80 horas por semana. La planta 2 es una planta más nueva y no

opera a su capacidad total. Sin embargo, y dado que los administradores planean operar la

segunda planta en base en un turno doble como el de la planta 1, se han encontrado

operadores para que trabajen los dos turnos. En estos momentos, cada turno de la planta 2

trabaja 25 horas por semana. No se paga ninguna prima adicional a los trabajadores del

segundo turno. La tabla muestra el tiempo de producción (en horas por unidad) y los costos

estándar (en dólares por unidad) en cada planta.

La compañía ha competido con éxito en el pasado asignando un precio de $350.00 a los

escritorios ejecutivos. Sin embargo, parece que la compañía tendrá que reducir el precio a los

escritorios secretariales $275.00 con el objeto de estar en posición competitiva. La compañía ha

estado experimentando excesos de costos en las últimas ocho a diez semanas; por tanto, los

administradores han fijado una restricción presupuestaria semanal sobre los costos de

producción. El presupuesto semanal para la producción total de escritorios ejecutivos es de

$2000.00, en tanto que el presupuesto para los escritorios secretariales es $2200.00. A los

administradores les gustaría determinar cuál es el número de cada clase de escritorios que

deben fabricarse en cada planta con el objeto de maximizar las utilidades.

Tiempo de producción,

horas por unidad

Costos estándar,

dólares por unidad

Planta 1 Planta 2 Planta 1 Planta 2

Escritorios ejecutivos 7.0 6.0 250 260

Escritorios secretariales 4.0 5.0 200 180

Page 18: 2     PROGRAMACIÓN LINEAL

Variables de decisión:

Planta 1 Planta 2

Escritorios ejecutivos X1 X3

Escritorios secretariales X2 X4

X1: Escritorios ejecutivos que se fabrican en la planta 1

X2: Escritorios secretariales que se fabrican en la planta 1

X3: Escritorios ejecutivos que se fabrican en la planta 2

X4: Escritorios secretariales que se fabrican en la planta 2

Función objetivo:

Utilidad = precio de venta – costo de producción

Utilidad por cada escritorio ejecutivo producido en planta 1 =$350-$250 = $100.00

Utilidad por cada escritorio secretarial producido en planta 1=$275-$200 = $75.00

Utilidad por cada escritorio ejecutivo producido en planta 2 =$350-$260 = $90.00

Utilidad por cada escritorio secretarial producido en planta 2=$275-$180 = $95.00

Modelo de programación lineal:

Maximizar Z = 100 X1 + 74 X2 + 90 X3 + 95 X4

Sujeto a:

7 X1 + 4 X2 ≤ 80

6 X3 + 5 X4 ≤ 50

250 X1 + 260 X3 ≤ 2000

200 X2 + 180 X4 ≤ 2200

X1, X2, X3, X4 ≥ 0

Introduciendo variables de holgura:

Maximizar Z = 100 X1 + 75 X2 + 90 X3 + 95 X4

Sujeto a:

7 X1 + 4 X2 + X5 = 80

6 X3 + 5 X4 + X6 = 50

250 X1 260 X3 + X7 = 2000

200 X2 180 X4 + X8 = 2200

X1, . . . , X8 ≥ 0

Page 19: 2     PROGRAMACIÓN LINEAL

X1 X2 X3 X4 X5 X6 X7 X8 Z B Bi/Ci

X5 7 4 0 0 1 0 0 0 0 80 11.43

X6 0 0 6 5 0 1 0 0 0 50

X7 250 0 260 0 0 0 1 0 0 2000 8

X8 0 200 0 180 0 0 0 1 0 2200

Z -100 -75 -90 -95 0 0 0 0 1 0

X1, . . . , X4 son variables de decisión

X5, . . . , X8 son variables de holgura

Para aplicar el algoritmo Simplex es necesario tener una solución inicial; esto se cumple en el

modelo ya que al tener todas sus restricciones del tipo (≤) se considera que el origen forma

parte del espacio de solución y entonces éste puede ser la solución inicial.

Entonces el Tableau inicial para aplicar el Simplex tiene la forma siguiente y se observa que la

base está completa ya que las variables de la base están explícitas y tienen los valores: X5=80,

X6=50, X7=2000, X8=2200.

Como variable entrante se selecciona a la variable X1 ya que es la variable con el coeficiente

más grande en la función objetivo y con signo positivo (visualizar la función objetivo fuera del

tableau); habiendo seleccionado la variable entrante, se selecciona la variable saliente

haciendo el cociente de los valores de B entre los coeficientes de la columna en que se ubica

la variable entrante (X1) y de ellos al menor, que corresponde a la variable X7.

La siguiente fase corresponde a efectuar las operaciones para que al hacer el cambio de

variables se tengan explícitos los nuevos valores de las variables básicas y se tenga al mismo

tiempo el valor que adquiere la función objetivo:

Page 20: 2     PROGRAMACIÓN LINEAL

X5 0 4 -7.28 0 1 0 -0.03 0 0 24

X6 0 0 6 5 0 1 0 0 0 50 10

X1 1 0 1.04 0 0 0 0.004 0 0 8

X8 0 200 0 180 0 0 0 1 0 2200 12.22

Z 0 -75 14 -95 0 0 0.4 0 1 800

X5 0 4 -7.28 0 1 0 -0.03 0 0 24 6

X4 0 0 1.2 1 0 0.2 0 0 0 10

X1 1 0 1.04 0 0 0 0.004 0 0 8

X8 0 200 -216 0 0 -36 0 1 0 400 2

Z 0 -75 128 0 0 19 0.4 0 1 1750

X5 0 0 -2.96 0 1 0.72 -0.03 -0.02 0 16

X4 0 0 1.2 1 0 0.2 0 0 0 10

X1 1 0 1.04 0 0 0 0.004 0 0 8

X2 0 1 -1.08 0 0 -0.18 0 0.005 0 2

Z 0 0 47 0 0 5.5 0.4 0.375 1 1900

En la última iteración se alcanza una solución óptima, ya que las variables de la función Z tienen

coeficientes negativos. Se puede expresar un resultado:

Para optimizar las utilidades semanales con las condiciones establecidas por las restricciones

del modelo, es necesario fabricar:

8 escritorios ejecutivos en la planta 1

2 escritorios secretariales en la planta 1

10 escritorios secretariales en la planta 2

Toda la operación generará una utilidad semanal de $1900.00

El valor de X5=16, corresponde a la variable de holgura asociada al recurso de horas disponibles

en la planta 1 (80 horas) en la cual sólo se estarán utilizando 80-16= 64 horas, lo cual puede

considerarse en la planeación de la producción en el futuro.

Page 21: 2     PROGRAMACIÓN LINEAL

Solución empleando TORA:

Figura 2.10 Se introducen todos los coeficientes del modelo de programación lineal

Se elige del menú solución algebraic, iterations y all slack starting solution, que corresponde al

algoritmo simplex.

Page 22: 2     PROGRAMACIÓN LINEAL

Figura 2.11 Solución por iteraciones del algoritmo simplex

Page 23: 2     PROGRAMACIÓN LINEAL

2.5 Métodos alternativos

En el planteamiento de modelos de programación lineal, y para los efectos de aplicación del

algoritmo Simplex, se pueden distinguir claramente dos situaciones: 1) se tiene un modelo en

que todas las restricciones del modelo son del tipo menor o igual que ( ) y entonces ya se tiene

una solución básica factible inicial (el origen) con lo cual se simplifica de inmediato la

aplicación del algoritmo Simplex, y 2) el modelo tiene restricciones del tipo mayor o igual que

( ) o bien igualdades estrictas (=) en las que es necesario agregar variables artificiales; esto

significa que no se tendrá una solución básica factible inicial de forma inmediata y que además

para que una solución sea factible, la variable artificial deberá valer cero. Esto obliga a utilizar

algún método alternativo que contemple la utilización de variables artificiales. Entre los métodos

conocidos se encuentra el de dos fases y el método de la Gran M.

En este punto es necesario establecer algunos principios que contribuyen al desarrollo de estos

métodos:

Si la función objetivo tiene la forma minimizar z también se puede expresar como:

Minimizar Z = - maximizar ( -Z )

Una restricción del tipo:

ai1x1+…+ainxn bi

equivale a -ai1x1 -…- ainxn -bi

Una restricción del tipo:

ai1x1+…+ainxn = bi

equivale a dos desigualdades

ai1x1+…+ainxn bi

ai1x1 +…+ ainxn bi

2.5.1 Dos Fases

El método de dos fases es llamado así por plantear la solución en dos etapas:

1) se crea una función objetivo w que será la suma de las variables artificiales de que consta el

modelo y la cual, en esta primera fase se intenta minimizar hasta que alcance el valor cero. De

lograrse esto, es necesario eliminar renglón y columna de w y las columnas de las variables

artificiales. Si w no adquiere el valor de cero, no existe solución.

2) con el Tableau remanente se procede a la segunda fase, en la cual ya se optimiza a la

función objetivo z del modelo, la cual en la primera fase habrá sufrido cambios.

Page 24: 2     PROGRAMACIÓN LINEAL

Ejemplo 2.5 Aplicación de Dos Fases

Un proyecto de construcción requiere de una mezcla compuesta de 50 % de grava gruesa, 30

% de grava fina y 20 % de arena. Existen cuatro bancos disponibles cercanos al sitio de los

trabajos. El porcentaje de cada graduación en los materiales de cada banco y los costos

unitarios del material, están dados en la siguiente tabla:

Banco Mezcla

deseada (%) 1 2 3 4

Grava gruesa (%) 0 50 40 40 50

Grava fina (%) 60 40 30 20 30

Arena (%) 40 10 30 40 20

Costo unitario $8 $10 $12 $11

Si existe una cantidad de material extraído en exceso, el costo unitario de removerlo es de $2

para todas las graduaciones de agregados. Determinar la cantidad que debe comprarse de

cada banco para obtener una unidad de material requerido, al mínimo costo.

Variables de decisión:

X1 cantidad de material a extraer del banco 1

X2 cantidad de material a extraer del banco 2

X3 cantidad de material a extraer del banco 3

X4 cantidad de material a extraer del banco 4

Modelo de Programación Lineal:

Minimizar Z = 8 X1 + 10 X2 + 12 X3 + 11 X4 + 2 X5 + 2 X6 + 2 X7

Sujeto a:

0.50X2 + 0.40X3 + 0.40X4 – X5 = 0.50

0.60X1+ 0.40X2 + 0.30X3 + 0.20X4 - X6 = 0.30

0.40X1+ 0.10X2 + 0.30X3 + 0.40X4 - X7 = 0.20

X1, . . . , X7≥0

En la función objetivo se consideran los costos asociados a la extracción en exceso de cada

material (X5 exceso de grava gruesa, X6 exceso de grava fina, X7 exceso de arena).

Agregando las variables artificiales asociadas a cada restricción (X8, X9, X10):

Page 25: 2     PROGRAMACIÓN LINEAL

Minimizar Z = 8 X1 + 10 X2 + 12 X3 + 11 X4 + 2 X5 + 2 X6 + 2 X7

Sujeto a:

0.50X2 + 0.40X3 + 0.40X4 – X5 +X8 = 0.50

0.60X1+ 0.40X2 + 0.30X3 + 0.20X4 - X6 +X9 = 0.30

0.40X1+ 0.10X2 + 0.30X3 + 0.40X4 - X7 +X10= 0.20

X1, . . . , X10 ≥ 0

Para la búsqueda de soluciones a partir de un modelo de estas características, se debe utilizar

el simplex con algún método alternativo: Dos fases o Gran M, ya que aparecen desigualdades

(≥) o igualdades estrictas y que es necesario emplear variables artificiales; en esta situación

también está descartado que el origen forme parte de un espacio de solución.

Se crea una función objetivo adicional formada por la suma de las variables artificiales utilizadas

en el modelo y en una primera fase se minimiza a esta función objetivo adicional hasta que

adquiera el valor de cero que significará que todas las variables artificiales valen cero; si se

alcanza esta situación, en una segunda fase se optimiza a la función objetivo Z. Si no se logra,

significa que no existe espacio de solución.

Para el modelo, la función objetivo adicional es:

W=X8 + X9 + X10

Se observa que en el Tableau Simplex inicial, no existe una definición de las variables básicas del

modelo, por lo que es necesario efectuar las operaciones necesarias para alcanzar esto:

Page 26: 2     PROGRAMACIÓN LINEAL

X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 Z W B

0 0.5 0.4 0.4 -1 0 0 1 0 0 0 0 0.5

0.6 0.4 0.3 0.2 0 -1 0 0 1 0 0 0 0.3

0.4 0.1 0.3 0.4 0 0 -1 0 0 1 0 0 0.2

Z -8 -10 -12 -11 -2 -2 -2 0 0 0 1 0 0

W 0 0 0 0 0 0 0 -1 -1 -1 0 1 0

W 0 0.5 0.4 0.4 -1 0 0 0 -1 -1 0 1 0.5

W 0.6 0.9 0.7 0.6 -1 -1 0 0 0 -1 0 1 0.8

W 1 1 1 1 -1 -1 -1 0 0 0 0 1 1

X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 Z W B

X8 0 0.5 0.4 0.4 -1 0 0 1 0 0 0 0 0.5

X9 0.6 0.4 0.3 0.2 0 -1 0 0 1 0 0 0 0.3

X10 0.4 0.1 0.3 0.4 0 0 -1 0 0 1 0 0 0.2

Z -8 -10 -12 -11 -2 -2 -2 0 0 0 1 0 0

W 1 1 1 1 -1 -1 -1 0 0 0 0 1 1

X8 0 0.5 0.4 0.4 -1 0 0 1 0 0 0 0 0.5

X1 1 0.6667 0.5 0.3333 0 -1.667 0 0 1.6667 0 0 0 0.5

X10 0 -0.167 0.1 0.2667 0 0.6667 -1 0 -0.667 1 0 0 0

Z 0 -4.667 -8 -8.333 -2 -15.33 -2 0 13.333 0 1 0 4

W 0 0.3333 0.5 0.6667 -1 0.6667 -1 0 -1.667 0 0 1 0.5

X8 0 0.75 0.25 0 -1 -1 1.5 1 1 -1.5 0 0 0.5

X1 1 0.875 0.375 0 0 -2.5 1.25 0 2.5 -1.25 0 0 0.5

X4 0 -0.625 0.375 1 0 2.5 -3.75 0 -2.5 3.75 0 0 0

Z 0 -9.875 -4.875 0 -2 5.5 -33.25 0 -7.5 31.25 1 0 4

W 0 0.75 0.25 0 -1 -1 1.5 0 0 -2.5 0 1 0.5

X7 0 0.5 0.1667 0 -0.667 -0.667 1 0.6667 0.6667 -1 0 0 0.333333

X1 1 0.25 0.1667 0 0.8333 -1.667 0 -0.833 1.6667 1E-05 0 0 0.083333

X4 0 1.25 1 1 -2.5 0 0 2.5 0 0 0 0 1.25

Z 0 6.75 0.6667 0 -24.17 -16.67 0 22.167 14.667 -2 1 0 15.08333

W 0 0 0 0 0 0 0 -1 -1 -1 0 1 0

X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 Z W B

X7 0 0.5 0.1667 0 -0.667 -0.667 1 0 0.333333

X1 1 0.25 0.1667 0 0.8333 -1.667 0 0 0.083333

X4 0 1.25 1 1 -2.5 0 0 0 1.25

Z 0 6.75 0.6667 0 -24.17 -16.67 0 1 15.08333

X7 -2 0 -0.167 0 -2.333 2.6666 1 0 0 0.166667

X2 4 1 0.6667 0 3.3333 -6.667 0 0 0 0.333333

X4 -5 0 0.1667 1 -6.667 8.3333 0 0 0 0.833333

Z -27 0 -3.833 0 -46.67 28.333 0 1 0 12.83333

X6 -0.75 0 -0.063 0 -0.875 1 0.375 0 0 0.0625

X2 -1 1 0.25 0 -2.5 0 2.5 0 0 0.75

X4 1.25 0 0.6875 1 0.625 0 -3.125 0 0 0.3125

Z -5.75 0 -2.063 0 -21.87 0 -10.63 1 0 11.0625

Se alcanza la primera fase del algoritmo; la función objetivo adicional W=X8+X9+X10=0, por lo

que se debe continuar con la segunda fase; es decir, optimizar a la función objetivo Z:

Page 27: 2     PROGRAMACIÓN LINEAL

La solución más económica es que por cada tonelada de material, se debe adquirir 0.75

toneladas del banco 2 y 0.3125 toneladas del banco 4, con lo que se tendrá un excedente de

0.0625 toneladas de grava fina. El costo total asociado a la extracción será de $11.0625 por

tonelada.

2.5.2 Gran M

El método consiste en:

Aumentar una variable de holgura a cada restricción del tipo menor o igual ( ).

Restar una variable de holgura y sumar una variable artificial a todas las restricciones del tipo

mayor o igual ( ).

Añadir una variable artificial a cada restricción de igualdad estricta.

Las variables artificiales si aparecen en la función objetivo. El coeficiente en esta función,

para cada una de ellas es –M. Esta M es un numero muy grande comparado con los que

aparecen en el problema, por lo que la expresión de la función objetivo en el modelo

deberá expresar Maximizar.

Con la información en el Tableau Simplex, se procede a establecer la base, la cual no estará

explícita como en el caso en que ya se tiene una solución básica factible inicial; esto, debido

a la presencia de la M en las variables artificiales, por lo que una manera de proceder sería

la de eliminar del lugar de las variables artificiales en el renglón de la función objetivo, a la M

o M´s presentes en el modelo; se puede lograr con operaciones elementales de los

renglones.

Una vez establecida la base, se aplica el algoritmo Simplex, manejando a la M como una

variable algebraica o un número muy grande comparado con los coeficientes en las

restricciones, hasta llegar a la solución óptima.

Ejemplo 2.6 Aplicación de Gran M

Una planta mezcladora de concreto usada en la construcción de un proyecto hidroeléctrico

usa una mezcla de 70 % de arena y 30 % de grava por peso. Existen depósitos naturales en 5

lugares cercanos a la presa, cada uno con composiciones y costos de transportación diferentes

según se muestra en la tabla:

Page 28: 2     PROGRAMACIÓN LINEAL

Depósito

1 2 3 4 5

Arena 40 % 20 % 50 % 80 % 70 %

Grava 60 % 80 % 50 % 20 % 30 %

Costo/ton $150 $180 $100 $125 $200

Por tonelada de concreto, ¿cuántas toneladas extraídas de cada uno de los depósitos deben

usarse con objeto de minimizar el costo total?

Variables de decisión:

X1 cantidad de material a extraer del depósito 1

X2 cantidad de material a extraer del depósito 2

X3 cantidad de material a extraer del depósito 3

X4 cantidad de material a extraer del depósito 4

X5 cantidad de material a extraer del depósito 5

Modelo de programación lineal:

Minimizar Z = 150 X1 + 180 X2 + 100 X3 + 125 X4 + 200 X5

Sujeto a:

0.4 X1 + 0.2 X2 + 0.5 X3 + 0.8 X4 + 0.7 X5 = 0.70

0.6 X1 + 0.8 X2 + 0.5 X3 + 0.2 X4 + 0.3 X5 = 0.30

X1, . . . , X5 ≥ 0

Se agregan variables artificiales (X6, X7) al modelo:

Minimizar Z = 150 X1 + 180 X2 + 100 X3 + 125 X4 + 200 X5

Sujeto a:

0.4 X1 + 0.2 X2 + 0.5 X3 + 0.8 X4 + 0.7 X5 + X6 = 0.70

0.6 X1 + 0.8 X2 + 0.5 X3 + 0.2 X4 + 0.3 X5 + X7 = 0.30

X1, . . . , X7 ≥ 0

El algoritmo de Gran M exige que la función objetivo exprese maximización y en esta forma se

introducen a la función objetivo las variables artificiales acompañadas de un coeficiente muy

grande y con signo negativo, de manera que no represente ventaja alguna la elección de una

variable artificial como variable entrante; por lo que el modelo se puede escribir:

Maximizar Z = -150 X1 - 180 X2 - 100 X3 - 125 X4 - 200 X5 - 1000 X6 - 1000 X7

Sujeto a:

0.4 X1 + 0.2 X2 + 0.5 X3 + 0.8 X4 + 0.7 X5 + X6 = 0.70

0.6 X1 + 0.8 X2 + 0.5 X3 + 0.2 X4 + 0.3 X5 + X7 = 0.30

X1, . . . , X7 ≥ 0

Page 29: 2     PROGRAMACIÓN LINEAL

X1 X2 X3 X4 X5 X6 X7 Z B

0.4 0.2 0.5 0.8 0.7 1 0 0 0.7

0.6 0.8 0.5 0.2 0.3 0 1 0 0.3

Z 150 180 100 125 200 1000 1000 1 0

Z -250 -20 -400 -675 -500 0 1000 1 -700

Z -850 -820 -900 -875 -800 0 0 1 -1000

X1 X2 X3 X4 X5 X6 X7 Z B

X6 0.4 0.2 0.5 0.8 0.7 1 0 0 0.7

X7 0.6 0.8 0.5 0.2 0.3 0 1 0 0.3

Z -850 -820 -900 -875 -800 0 0 1 -1000

X6 -0.2 -0.6 0 0.6 0.4 1 -1 0 0.4

X3 1.2 1.6 1 0.4 0.6 0 2 0 0.6

Z 230 620 0 -515 -260 0 1800 1 -460

X4 -0.3333 -1 0 1 0.66667 1.66667 -1.6667 0 0.66667

X3 1.33333 2 1 0 0.33333 -0.6667 2.66667 0 0.33333

Z 58.3333 105 0 0 83.3333 858.333 941.667 1 -116.67

Para cada tonelada de material con las propiedades requeridas, se sugiere adquirir 0.3333

toneladas del depósito 3 y 0.6666 del depósito 4, lo cual generará un costo mínimo de $116.66

por tonelada.

Solución empleando Solver:

Los datos y la celda objetivo con el comando sumaproducto:

Page 30: 2     PROGRAMACIÓN LINEAL

El comando sumaproducto en las celdas de los recursos asociados con las restricciones:

Ya se han seleccionado las celdas con las variables: g5 que es la celda objetivo, g7 y g8

cantidades de recursos utilizados. En Herramientas se selecciona a Solver:

Al seleccionar Solver se mostrará un cuadro de diálogo:

Page 31: 2     PROGRAMACIÓN LINEAL

En el cuadro de diálogo se selecciona la referencia de la celda objetivo, el valor que adquirirá

la celda objetivo (máximo o mínimo), se introducen las referencias de las celdas para las

variables de decisión y las referencias de las restricciones. Se presiona Opciones para

seleccionar Lineal y luego Resolver; deberán aparecer los valores buscados de las variables de

decisión y el valor de la función objetivo; Solver permite seleccionar el tipo de informe que

puede complementar un resultado:

Page 32: 2     PROGRAMACIÓN LINEAL

El resultado se puede expresar como:

Para cada tonelada de material con las propiedades requeridas, se sugiere adquirir 0.3333

toneladas del depósito 3 y 0.6666 del depósito 4, lo cual generará un costo mínimo de $116.66

por tonelada.

2.6 Dualidad.

Uno de los más importantes logros en el desarrollo de la programación lineal es el concepto de

dualidad, que expresa que para cada problema de programación lineal existe una relación y

una asociación con otro problema de programación lineal llamado dual.

El concepto de dualidad ha contribuido a identificar algunos conceptos relacionados con la

economía, como es el precio sombra, que está más relacionado con la utilidad que tiene el

recurso formando parte de un proceso de producción, que con su precio en el mercado. Otra

Page 33: 2     PROGRAMACIÓN LINEAL

utilidad de la dualidad se relaciona con la facilidad de cómputo que puede representar

plantear el modelo dual y optimizar éste, en lugar de hacerlo con el modelo original.

En lo que sigue, se denominará como modelo primal al modelo resultante del sistema original y

como modelo dual al que resulta del planteamiento a partir del modelo primal.

Para plantear el modelo dual de un problema de programación lineal, se debe considerar:

Si el primal es un problema de maximización su dual será un problema de minimización y

viceversa

Los coeficientes de la función objetivo del modelo primal se convierten en los coeficientes

del vector de disponibilidades en el problema dual

Los coeficientes del vector de disponibilidades del modelo primal pasan ahora a ser los

coeficientes de la función objetivo del modelo dual, este nuevo vector es también llamado

de costo o precio

Los coeficientes en las restricciones en el modelo primal serán los coeficientes de las

restricciones en el modelo dual pero como una matriz transpuesta

Los signos de desigualdad del modelo dual son contrarios a los signos del modelo primal

Las variables xm se convierten en nuevas variables ym en el modelo dual

De lo anterior se puede establecer que si el modelo primal tiene m restricciones y n variables, el

modelo dual tendrá n restricciones y m variables. Esto se puede expresar:

Modelo primal

Max z = cj xj

S. a:

aij xj bi

donde: i = 1,

j = 1, 2, …n

Modelo dual:

Min z= bi yi

S. a:

aij yi cj

yi 0

donde: i = 1, 2, …n

j = 1, 2, …m

Al comparar los modelos primal y dual, se pueden obtener las siguientes conclusiones:

Page 34: 2     PROGRAMACIÓN LINEAL

1. Los dos modelos tienen, en la solución óptima, el mismo valor de la función objetivo

2. Los coeficientes de la función objetivo en el modelo primal, son los elementos del lado

derecho en las restricciones del modelo dual

3. Los elementos del lado derecho de las restricciones del modelo primal, son los coeficientes

de la función objetivo del modelo dual

4. La función objetivo en el primal es maximizar, en el modelo dual es minimizar

5. En el modelo primal, las restricciones son del tipo ( ), en el dual son del tipo ( )

6. El modelo primal tiene tantas variables como restricciones tiene el dual; el modelo dual tiene

tantas variables como restricciones tiene el primal

Cuando ya se tiene una solución óptima, se presenta el problema de cómo interpretar los

resultados y asociarlos a cada una de las variables para eso se hará uso de los siguientes

teoremas:

Teorema 1. Si el problema primal tiene solución óptima finita, también la tiene el dual, y los

valores óptimos de cada función objetivo son iguales. Si el primal no tiene solución acotada

entonces el dual no tiene solución factible.

Teorema 2. El dual del dual es el primal.

Teorema 3. Si una restricción primal se satisface completamente (su correspondiente variable de

holgura vale cero) entonces la variable dual asociada tiene valor distinto de cero. Si una

restricción primal queda con holgura entonces la variable dual asociada vale cero.

Este último teorema, conocido como teorema de la holgura complementaria, da la forma de

encontrar la solución del dual si ya se tiene la óptima del primal y viceversa.

Variables de decisión del primal Variables de holgura del dual

Variables de decisión del dual Variables de holgura del primal

Ejemplo 2.7 Dualidad

La Agro-Tech es una empresa de productos químicos que fabrica dos tipos de fertilizante que se

elaboran combinando ingredientes que se compran con proveedores externos. Cada mes se

tiene que planear la cantidad de cada fertilizante que debe producirse. El plan debe tomar en

consideración el costo de los ingredientes, el precio de venta de los fertilizantes, cualesquier

pedidos que deban sutirse y las restricciones impuestas al uso de los recursos de la compañía:

mano de obra, materia prima o tiempo de máquina. El proceso de planeación para este mes

es más difícil que lo normal. Por lo general, la Agro-Tech fabrica fertilizantes de acuerdo con los

Page 35: 2     PROGRAMACIÓN LINEAL

pedidos de los clientes, pero este mes los fertilizantes van a venderse a través de un mayorista.

Esto complica las cosas porque se tiene que programar la producción de manera que

conduzca a las mayores utilidades posibles para la agro-Tech, al mismo tiempo que se utiliza

sólo la cantidad de ingredientes que están disponibles para el mes.

Los dos fertilizantes que la Agro-Tech fabrica son las mezclas denominadas 5-5-10 y 5-10-5. En

cada caso, el primer valor se refiere al porcentaje que el producto final tiene de nitrato químico,

el segundo valor se refiere al porcentaje de fosfato que aparece en el producto final y el tercer

valor da el porcentaje de potasio. El fertilizante se estabiliza con un material de relleno como

podría ser barro. Por ejemplo, el 5-5-10 está elaborado con 5 % de nitrato, 5 % de fosfato y 10 %

de potasio y el 80 % restante es barro. El mayorista comprará cualquier cantidad de ambos

fertilizantes que la Agro-Tech pueda fabricar. Está dispuesto a pagar $71.50 por tonelada del 5-

5-10 y $69.00 por tonelada del 5-10-5. Este mes, la disponibilidad y costos de materias primas son

1100 toneladas de nitrato a $200.00 por tonelada, 1800 toneladas de fosfato a $80.00 cada una

y 2000 toneladas de potasio a $160.00 cada una. El relleno está disponible en cantidades

ilimitadas al precio de $10.00 por tonelada, pero para los otros tres ingredientes sólo se dispone

de las cantidades mencionadas antes. No hay restricciones para el uso de la mano de obra ni

tampoco para el empleo de la maquinaria durante el mes, pero se tiene un costo de $15.00 por

tonelada por concepto de mezclado de fertilizantes.

¿Cómo deben utilizarse los recursos escasos de que dispone la Agro-Tech, de manera que se

obtengan las mayores utilidades para la compañía?

Nitrato Fosfato Potasio Barro Precio de

venta/ton

5-5-10 0.05 0.05 0.10 0.80 71.50

5-10-5 0.05 0.10 0.05 0.80 69.00

Disponibilidad, ton 1100 1800 2000

Costo /ton 200.00 80.00 160.00 10.00

Variables de decisión:

X1, toneladas de fertilizante 5-5-10 que deben producirse este mes

X2, toneladas de fertilizante 5-10-5 que deben producirse este mes

Modelo de programación lineal:

Para determinar la utilidad asociada a cada fertilizante:

Utilidad = precio de venta- costo (nitrato +fosfato+potasio)-costo ingrediente inerte- costo de

mezclado

Page 36: 2     PROGRAMACIÓN LINEAL

X1 1 0 40 -20 0 0 8000

X2 0 1 -20 20 0 0 14000

X5 0 0 -3 1 1 0 500

Z 0 0 340 30 0 1 428000

Para el fertilizante 5-5-10 (por tonelada):

Utilidad = 71.50-0.05*200-0.05*80*-0.10*160-0.8*10-15.00= $18.5

Para el fertilizante 5-10-5 (por tonelada):

Utilidad = 69.00-0.05*200-0.10*80-0-05*160-0.8*10-15.00= $20.00

Modelo primal de programación lineal:

Maximizar Z = 18.5 X1 + 20 X2

Sujeto a:

0.05 X1 + 0.05 X2 + X3 = 1100

0.05 X1 + 0.10 X2 + X4 = 1800

0.10 X1 + 0.05 X2 + X5 = 2000

X1, X2 ≥ 0

Al resolver con el algoritmo Simplex, se obtiene el tableau óptimo:

El modelo dual de programación lineal es:

Minimizar Z = 1100 Y1 + 1800 Y2 + 2000 Y3

Sujeto a:

0.05 Y1 + 0.05 Y2 + 0.10 Y3 ≥ 18.5

0.05 Y1 + 0.10 Y2 + 0.05 Y3 ≥ 20

Y1, . . . , Y3 ≥ 0

Agregando variables de holgura y artificiales:

Minimizar Z = 1100 Y1 + 1800 Y2 + 2000 Y3

Sujeto a:

0.05 Y1 + 0.05 Y2 + 0.10 Y3 – Y4 + Y5 = 18.5

0.05 Y1 + 0.10 Y2 + 0.05 Y3 - Y6 + Y7 = 20

Y1, . . . , Y7 ≥ 0

Donde Y1, Y2, Y3 son variables de decisión del dual; Y4, Y6 son variables de holgura del dual.

Se pueden establecer de antemano las relaciones entre variables del primal y variables del

dual:

Page 37: 2     PROGRAMACIÓN LINEAL

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Z W B

0.05 0.05 0.1 -1 1 0 0 0 0 18.5

0.05 0.1 0.05 0 0 -1 1 0 0 20

Z -1100 -1800 -2000 0 0 0 0 1 0 0

W 0 0 0 0 -1 0 -1 0 1 0

W 0.05 0.05 0.1 -1 0 0 -1 0 1 18.5

0.1 0.15 0.15 -1 0 -1 0 0 1 38.5

Y5 0.05 0.05 0.1 -1 1 0 0 0 0 18.5

Y7 0.05 0.1 0.05 0 0 -1 1 0 0 20

Z -1100 -1800 -2000 0 0 0 0 1 0 0

W 0.1 0.15 0.15 -1 0 -1 0 0 1 38.5

Y5 0.025 0 0.075 -1 1 0.5 -0.5 0 0 8.5

Y2 0.5 1 0.5 0 0 -10 10 0 0 200

Z -200 0 -1100 0 0 -18000 18000 1 0 360000

W 0.025 0 0.075 -1 0 0.5 -1.5 0 1 8.5

Y6 0.05 0 0.15 -2 2 1 -1 0 0 17

Y2 1 1 2 -20 20 0 0 0 0 370

Z 700 0 1600 -36000 36000 0 0 1 0 666000

W 0 0 0 0 -1 0 -1 0 1 0

Y1 Y2 Y3 Y4 Y6 Z B

Y3 0.33333 0 1 -13.333 6.66667 0 113.333

Y2 0.33333 1 0 6.66667 -13.333 0 143.333

Z 166.667 0 0 -14667 -10667 1 484667

Y1 Y2 Y3 Y4 Y6 Z B

Y1 1 0 3 -40 20 0 340

Y2 0 1 -1 20 -20 0 30

Z 0 0 -500 -8000 -14000 1 428000

X1 Y4

X2 Y6

X3 Y1

X4 Y2

X5 Y3

Resolviendo con el Simplex el modelo dual:

De aquí se pueden establecer los valores de las variables de decisión del primal, considerando

la relación establecida con anterioridad:

Page 38: 2     PROGRAMACIÓN LINEAL

X1 1 0 40 -20 0 0 8000

X2 0 1 -20 20 0 0 14000

X5 0 0 -3 1 1 0 500

Z 0 0 340 30 0 1 428000

Y1 Y2 Y3 Y4 Y6 Z B

Y1 1 0 3 -40 20 0 340

Y2 0 1 -1 20 -20 0 30

Z 0 0 -500 -8000 -14000 1 428000

X1 Y4

X2 Y5

X3 Y1

X4 Y2

X5 Y3

X1 tiene que ver con Y4, pero Y4=0; luego, X1=8000

X2 tiene que ver con Y5, pero Y6=0; luego, X2=14000

X3 tiene que ver con Y1, pero Y1=340; luego X3=0

X4 tiene que ver con Y2, pero Y2= 0; luego X4=0

X5 tiene que ver con Y3, pero Y3=0; luego X5=500

La expresión correcta del resultado es:

Para optimizar las utilidades de este mes, se sugiere que la Agro-Tech fabrique 8000 toneladas

del fertilizante 5-5-10 y 14000 toneladas del fertilizante 5-10-5, con lo cual generará una utilidad

de $428,000.00. también es de notar que con este programa de producción, sobrarán 500

toneladas de potasio, que puede considerarse en el próximo plan de producción.

Comparando las iteraciones óptimas del primal y del dual, se aprecian las similitudes:

2.6.1 Interpretación económica del dual

Las variables duales también tienen importantes interpretaciones económicas. Con Y1=340

implica que cada tonelada adicional de nitrato, produce $340.00 adicionales de utilidad; Y2=30

implica que cada tonelada adicional de fosfato produce $30.00 adicionales de utilidad; y Y3=0

implica que no se obtienen utilidades adicionales al añadir toneladas extra de potasio.

Page 39: 2     PROGRAMACIÓN LINEAL

Cada uno de estos valores presupone que los demás permanecen iguales. Desde el punto de

vista de la toma de decisiones, las variables duales indican la cantidad extra que se estaría en

disponibilidad de pagar por una unidad adicional de un recurso específico. En otras palabras,

se estaría dispuesto a pagar un precio más elevado por un recurso escaso, hasta por el valor de

la variable dual. Solo interesa el excedente sobre el precio normal, puesto que el precio original

del recurso se incluye en el cálculo de las variables. Por ejemplo, cada tonelada adicional de

fosfato vale $30.00, y por ello se estaría dispuesto a pagar al proveedor hasta $110.00 por

tonelada ($80.00 del precio actual más $30.00 adicionales) por cada tonelada adicional de

fosfato. En este caso, el aumento neto en la utilidad por tonelada adicional de recurso será la

diferencia entre $30.00 y el precio más elevado que se pague. Si el proveedor cobrara $10.00

adicionales por todo el fosfato que exceda 1800 toneladas, se obtendrían $20.00 por cada

tonelada adicional de fosfato. Si el cargo extra fuera $31.00, no se estaría dispuesto a comprar

el fosfato puesto que el excedente del precio estaría por encima de las utilidades adicionales

que se obtendrían.

Se utiliza el término precio sombra para designar a las variables duales.

Solución empleando Solver:

Del modelo primal de programación lineal:

Maximizar Z = 18.5 X1 + 20 X2

Sujeto a:

0.05 X1 + 0.05 X2 + X3 = 1100

0.05 X1 + 0.10 X2 + X4 = 1800

0.10 X1 + 0.05 X2 + X5 = 2000

X1, X2 ≥ 0

Page 40: 2     PROGRAMACIÓN LINEAL
Page 41: 2     PROGRAMACIÓN LINEAL

M icrosoft Excel 11.0 Inform e de respuestas

Hoja de cálculo: [AGRO .xls]H oja1

Inform e creado: 25/07/2008 12:11:23 p.m .

Celda objetivo (Máxim o)

Celda Nom bre Valor original Valor final

$D$3 Función objetivo 0 428000

Celdas cam biantes

Celda Nom bre Valor original Valor final

$B$2 Fertilizante X1 0 8000

$C$2 Fertilizante X2 0 14000

Restricciones

Celda Nom bre Valor de la celda fórm ula Estado Divergencia

$D$5 Restricciones LI 1100 $D$5<=$E$5Obligatorio 0

$D$6 LI 1800 $D$6<=$E$6Obligatorio 0

$D$7 LI 1500 $D$7<=$E$7Opcional 500

$B$2 Fertilizante X1 8000 $B$2>=0 Opcional 8000

$C$2 Fertilizante X2 14000 $C$2>=0 Opcional 14000

Informes generados en Excel:

Page 42: 2     PROGRAMACIÓN LINEAL

M icrosoft Excel 11.0 In form e de sensib ilidad

H oja de cálcu lo: [AG R O .xls]H oja1

Inform e creado: 25/07/2008 12:22:42 p .m .

C eldas cam biantes

Valor G radiente C oeficiente Aum ento Aum ento

C elda N om bre Igual reducido objetivo perm isib le perm isib le

$B$2 Fertilizante X1 8000 0 18.5 1.5 8.5

$C $2 Fertilizante X2 14000 0 20 17 1.5

R estricc iones

Valor Som bra R estricción Aum ento Aum ento

C elda N om bre Igual precio lado derecho perm isib le perm isib le

$D $5 R estricc iones LI 1100 340 1100 166.6666667 200

$D $6 LI 1800 30 1800 400 500

$D $7 LI 1500 0 2000 1E+30 500

M icrosoft Excel 11.0 In form e de lím ites

H oja de cálcu lo: [AG R O .xls]In form e de lím ites 1

In form e creado: 25/07/2008 12:24:22 p .m .

C elda ob jetivo

C elda N om bre Igual

$D $3 Función objetivo 428000

C eldas cam biantes Lím ite C elda Lím ite C elda

C elda N om bre Igual in ferior objetivo superior objetivo

$B$2 Fertilizante X 1 8000 0 280000 7999.999998 428000

$C $2 Fertilizante X 2 14000 0 148000 14000 428000