La programación lineal es un conjunto de técnicas racionales de análisis y de resolución de problemas que tiene por objeto ayudar a los responsables en las decisiones sobre asuntos en los que interviene un gran número de variables.

El nombre de programación lineal no procede de la creación de programas de ordenador, sino de un término militar, programar, que significa 'realizar planes o propuestas de tiempo para el entrenamiento, la logística o el despliegue de las unidades de combate'.

El procedimiento es iterativo, pues mejora los resultados de la función objetivo en cada etapa hasta alcanzar la solución buscada. Ésta se encuentra en un vértice del que no parta ninguna arista a lo largo de la cual la función objetivo aumente.

viernes, 13 de agosto de 2010

EJERCICIOS DE PROGRAMACIÓN LINEAL

3.1-10 Weenies and Buns es una planta procesadora de alimentos que fabrica hotdogs y pan para hotdogs. Muelen su propia harina para el pan a una tasa máxima de 200 libras por semana. Cada pan requiere 0.1 libras. Tiene un contrato con Pigland Inc, que especifica la entrega de 800 libras de producto de puerco cada lunes. Cada hotdog requiere 0.25 libras de producto de puerco. Se cuenta con suficiente cantidad del resto de los ingredientes de ambos productos. Por último, la mano de obra consiste en 5 empleados de tiempo completo (40 horas por semana). Cada hotdog requiere 3 minutos de mano de obra y cada pan requiere 2 minutos de mano de obra. Cada hotdog proporciona una ganancia de $0.20 y cada pan de $0.10. Weenies and Buns desea saber cuántos hotdogs y cuantos panes deben producir cada semana para lograr la ganancia más alta posible.


a) Formule un modelo de programación lineal.
Analizando cada uno de los datos podemos construir la siguiente tabla:

Costos
Hotdogs
Pan
Unidades disponibles
Harina
0
0.1
200
Puerco
0.25
0
800
Mano de obra
3
2
200h = 12000min
Ganancia
0.2
0.1
















Ahora podemos construir el modelo de programación lineal, así:
Hotdogs: X1                       Pan: X2
Función objetivo:            Z = 0.2X1 + 0.1X2
Sujeto a:                             0.1X2 ≤ 200
                                         0.25X1 ≤ 800
                                    3 X1 + 2X2 ≤ 12000
                                         X1 ≥ 0  y  X2 ≥ 0

b)Use el método grafico para resolver el modelo.

Entonces hallamos los puntos de cruce en las X:
 0.1X2 ≤ 200 → X2 ≤ 2000
0.25X1 ≤ 800 → X1 ≤ 3200
3 X1 + 2X2 ≤ 12000 → X1 = 0 → X2 ≤ 12000/2 = 6000
                                → X2 = 0 → X1 ≤ 12000/3 = 4000

Luego por reducción:
(¼ X1 = 800)*-12 = -3 X1 = -9600
(3 X1 + 2X2 = 12000) –(3 X1 = -9600)  → X2 = 1200
Hallamos X1 reemplazando X2 en la tercera ecuación:
3 X1 + 2*1200 = 12000  → X2 = (12000 – 2400)/2 = 3200

Ahora tenemos reemplazamos en la función objetivo:
0.2*(3200) + 0.1*(1200) = 760

La línea que representa la función objetivo es:
X1 = 0 → X2 = 7600
X2 = 0 → X1 = 3800



Finalmente podemos decir que se requieren 3200 hotdogs y 1200 panes para ganar un máximo de $760, que sería la ganancia más alta posible.



3.6-4 Fred Jonasson administra la granja de su familia. Para complementar varios alimentos que se cultivan en la granja, Fred también cría cerdos para venta y desea determinar las cantidades de los diferentes tipos de alimentos disponibles (maíz, grasas y alfalfa) que debe dar a cada cerdo. Como los cerdos se comerán cualquier mezcal de estos tipos de alimento, el objetivo es determinar que mezcla cumple ciertos requisitos nutritivos a un costo mínimo. En la siguiente tabla se dan las unidades de cada tipo de ingrediente nutritivo básico contenido en 1 kilogramo de cada tipo de alimento, junto con los requisitos de nutrición diarios y los costos de los alimentos:









Ingrediente nutritivo
Kilogramo de maíz
Kilogramo de grasas
Kilogramo de alfalfa
Requisito mínimo diario
Carbohidratos
90
20
40
200
Proteínas
30
80
60
180
Vitaminas
10
20
60
150
Costo ($)
84
72
60


a) Formule el modelo de programación lineal.
Ahora podemos construir el modelo de programación lineal, así:
Función objetivo: Minimizar Z = 84X1 + 72X2 + 60X3
Sujeto a:           90X1 + 20X2 + 40X3 ≥ 200
                        30X1 + 80X2 +60X3 ≥ 180
                        10X1 + 20X2 + 60X3 ≥ 150





 X1 ᶺ X2 ᶺ X3 ≥ 0

Para ser resuelto por el método simplex, se debe pasar a un caso de maximización, así:
Maximizar  -Z = - 84X1 - 72X2 - 60X3 - MX5 - MX7 - MX9
Sujeto a:              90X1 + 20X2 + 40X3 - X4 + X5 = 200
                       30X1 + 80X2 +60X3 - X6 + X7 = 180
                       10X1 + 20X2 + 60X3 - X8 + X9 = 150
X1 ᶺ X2 ᶺ X3 ≥ 0

Los grados de libertad = # de variables - # de ecuaciones
                                               = 9 -3 = 6

Ahora hacemos la tabla con los coeficientes de las variables:

V.b
Z
X1
X2
X3
X4
X5
X6
X7
X8
X9
L.D
Z
-1
84
72
60
0
M
0
M
0
M
0
X5
0
90
20
40
-1
1
0
0
0
0
200
X7
0
30
80
60
0
0
-1
1
0
0
180
X9
0
10
20
60
0
0
0
0
-1
1
150
Resolviendo con excel solver:


Kilogramo de
requerimiento mín diario
Total
Ingrediente Nutritivo
Maíz
Grasas
Alfalfa
Carbohidratos
90
20
40
200
200
Proteínas
30
80
60
180
180
Vitaminas
10
20
60
150
157,14
costo unidad
84
72
60


solución
1,14285714
0
2,42857143


241,7142857

4 comentarios: