programacion lineal

17

Click here to load reader

Upload: enrique-garcia

Post on 24-Jun-2015

346 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programacion Lineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

La Programación Lineal es una de las principales ramas de la Investigación Operativa. En esta categoría se consideran todos aquellos modelos de optimización donde las funciones que lo componen, es decir, función objetivo y restricciones, son funciones lineales en las variables de decisión. Dicho en otras palabras, la programación lineal es una técnica de la Investigación de Operaciones que se encarga de buscar la mejor forma de utilizar los recursos limitados, mediante modelos de simulación conocidos como modelos de programación lineal. Se llega a una solución óptima después de la experimentación con dichos modelos. Una de las principales características de los problemas en donde se va a utilizar la programación lineal, es que los recursos deben ser limitados. El siguiente diagrama ilustra lo anterior.

3

RECURSOS

Cómo Optimizarlos

Encontrar la Solución Óptima

Se disponen de forma limitada

Técnicas para decidir cómo usarlos en forma óptima

Limitación en la disponibilidad de Recursos

Disponer de una cantidad Máxima de Recursos (< o =).

Disponer de una cantidad Mínima de Recursos (> o =).

Disponer de una cantidad Exacta de Recursos. (=)

INVESTIGACION DE OPERACIONES(TÉCNICAS)

Programación Lineal. Inventarios. Evaluación de Proyectos. Transporte y Asignación. Teoría de Redes. Etc.

EMPRESA

Page 2: Programacion Lineal

Los elementos que debe contener un modelo de programación lineal, son los siguientes:

Expresiones matemáticas

En tales expresiones encontramos a las Ecuaciones

Ejemplo: A+B=C

Las InecuacionesEjemplo: 2A+3B ≥ C

Las Variables de decisión, las cuales deben existir por lo menos dos variables y la mejor forma de representarlas es con Xn, donde n puede tomar infinitos valores.

Las relaciones permitidas con las variables son las siguientes: =, +, -, ≤, ≥, exponente 1 en las variables, producto entre el coeficiente y la variable.Por otro lado, las relaciones no permitidas son las siguientes: ≠, <, >, división y producto entre variables, exponente distinto (mayor) de uno, raíz cuadrada.

RestriccionesDe estas, debe haber dos o más.

Restricciones de No negatividad, significa que los valores de variables no deben ser negativos. Esto es: Xn ≥ 0

ObjetivoEs la meta o logro que la empresa quiere alcanzar cuando determine cómo utilizará sus recursos limitados. El objetivo será básicamente de dos tipos:

Maximizar.- Incrementar utilidades, rendimientos, contribuciones, etc. (MAX).Minimizar.- Reducir Costo, tiempo (MIN).

De lo anterior se desprende lo que conocemos como FUNCIÓN OBJETIVO, que no es otra cosa más que una expresión matemática que nos debe decir qué objetivo se persigue. Se representa con:-ZMAX ó MaxZ-ZMIN ó MinZ

MODELO DE PROGRAMACIÓN LINEAL

La estructura que debe presentar un modelo de programación lineal, es más o menos como sigue: Primero, que existan recursos limitados. Determinar variables de decisión (X1=, X2=,)

4

Page 3: Programacion Lineal

El siguiente paso es escribir SÓLO UNA Función ObjetivoEjemplo:ZMAX = 3X1+2X2

Al escribir la función objetivo, se deben tomar en cuenta las siguientes consideraciones:

Una función objetivo siempre es una ecuación (igualdad) La relación entre las variables siempre es de suma. La función objetivo está sujeta a las restricciones (s.a. “sujeto a”)

Estructura de las restricciones de recursos.Las restricciones de recursos deben ser dos o más y tendrán la siguiente estructura.

Las restricciones generalmente son desigualdades y en muy raras ocasiones son una igualdad. Debe existir una restricción por tipo de recurso. Las variables no deben ser negativas (restricción de no negatividad: X1, X2 ≥ 0).

Tipos de modelos de programación lineal.

Existen por lo menos cuatro tipos distintos de programación lineal:

1) Modelo de Maximizar Homogéneo: En este tipo de modelo, las restricciones son del mismo tipo.Ejemplo:

5

X1 + 3X2 ≤ 50

2X1 – X2 ≤ 20

RESTRICCIÓN 1

RESTRICCIÓN 2

Relaciones entre variables

Recursos limitados

ZMAX= 3X1 + 2X2

s.a. X1 + 3X2 ≤ 50

2X1 – X2 ≤ 20

X1, X2 ≥ 0

Page 4: Programacion Lineal

ZMIN= 4X1 + 2X2

s.a. 2X1 + X2 ≥ 10

X1 + 3X2 ≥ 15

3 X1 - X2 ≥ 8

X1, X2 ≥ 0

ZMIN= X1 + X2

s.a. 3X1 + 4X2 ≥ 10

X1 + X2 ≤ 5

X1, X2 ≥ 0

2) Modelo de Maximizar Heterogéneo: Restricciones de recursos son distintas.

Ejemplo:

3) Modelo de Minimizar HomogéneoEjemplo:

4) Modelo de Minimizar Heterogéneo.Ejemplo:

Cuándo usar reglas generales para determinar el tipo de restricción.

Las reglas generales se aplican cuando el problema no especifique las restricciones de recursos y sólo se aplica a los modelos heterogéneos.

Las reglas generales son las siguientes:

En un modelo de maximizar heterogéneo tiene las restricciones del tipo ≤

En un modelo de minimizar heterogéneo tiene las restricciones del tipo ≥

6

ZMAX= 4X1 + X2

s.a. 3X1 + X2 ≤ 25

X1 – X2 ≤ 8

X2 ≥ 4

X1, X2 ≥ 0

Page 5: Programacion Lineal

Coeficientes

2. FORMULACIÓN DE MODELOS DE PROGRAMACIÓN LINEAL.

El paso inicial es que exista un problema, luego contar con la información necesaria (recursos limitados, variables de decisión, objetivo, recursos para cada variable) y si el problema no nos aporta más información, recurrimos a las reglas generales.

El siguiente paso es construir una tabla como la siguiente.

RecursosVariables de Decisión

DisponibilidadX1 X2

Recurso1

Recurso2

Utilidad o Costos

Ejemplo con datos de un problema real.

Mesa SillaMadera

0.75 0.5≤ 100 M3

Clavos 1/4 1/8≤ 10 Kg

Mano de obra 5 4≤ 80 Hrs

Utilidad 50 45

Construcción del Modelo de Programación Lineal

7

X1 X2

Recu

rsos

Función Objetivo

ZMAX= 50X1 + 45X2

s.a. 0.75X1 + 0.5X2 ≤ 100

1/4X1 + 1/8X2 ≤ 10

5X1 + 4X2 ≤ 80

X1, X2 ≥ 0

* El resultado es un Modelo de Maximizar Homogéneo o Estándar de Maximizar

Page 6: Programacion Lineal

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN LINEAL

Para la resolución de los modelos de programación lineal, se consideran dos métodos.

3. MÉTODO GRÁFICO

Es considerado como el método más sencillo, pero tiene que satisfacer los siguientes criterios:

Solo es aplicable para modelos de 2 variables de decisión. Para 2 o más restricciones de recursos. Sólo proporciona información de las variables de decisión y Z. No proporciona información directa de la utilización de los recursos (solo indirectamente). Requiere el uso de escalas lineales.

Otras consideraciones:

El número de líneas rectas estará dado por el número de restricciones de recursos. Para los modelos homogéneos se espera que las áreas de análisis aparezcan del mismo

lado. La orientación de la línea, dependerá del número de variables.

Ejemplo:Para 2 variables se espera,

Para 1 Variable se espera

Pasos a seguir para resolución mediante el método gráfico.

Considere el siguiente ejemplo para ayudarnos a comprender mejor los pasos a seguir.

1. Identificar el modelo a resolver. Esto significa que vamos a determinar si buscamos el valor máximo de Z (ZMAX) o el valor mínimo de Z (ZMIN). Cuando existen áreas del mismo lado (modelos homogéneos) significa que por lo menos hay una solución óptima. En el ejemplo nos interesa obtener el valor máximo de Z.

8

ó

ó

ZMAX= 16XA + 12XB

s.a. 8XA + 15XB ≤ 112

20XA + 10XB ≤ 170

XA, XB ≥ 0

Page 7: Programacion Lineal

2. Establecer las fronteras de cada restricción. Las fronteras son las igualdades de las restricciones. Para hallarlas, solamente convertimos las desigualdades (inecuaciones) en igualdades (ecuaciones).

Esto es:

Una vez hecho lo anterior, podremos graficar las líneas rectas.

3. Graficar las líneas rectas.

Obtención de los puntos.

Le asignamos el valor 0 a una de las variables, para hallar el punto donde la línea hace intersección con el eje de las Y (XB). Empezamos con XA

1.- 8XA + 15XB = 112

Si XA = 0Entonces diremos que:0+15XB = 112XB = 112/15Por lo tanto, el punto 1 sería:P1 (0 , 112/15)

2.- 20XA + 10XB = 170

El siguiente paso sería graficar los puntos en el plano.

La gráfica de la solución del modelo anterior la incluimos en la página siguiente.

9

8XA + 15XB ≤ 112

20XA + 10XB ≤ 170

8XA + 15XB = 112

20XA + 10XB = 170

Si XB = 0Entonces diremos que:8XA + 0 = 112XA = 112/8XA = 14Por lo tanto, el punto 2 sería:P1 (14 , 0)

Si XA = 0Entonces diremos que:0 + 10XB = 170XB = 170/10XB = 17Por lo tanto, el punto 1 sería:P1 (0 , 17)

Si XB = 0Entonces diremos que:20XA + 0 = 170XA = 170/20XA = 17/2Por lo tanto, el punto 2 sería:P2 (17/2 , 0)

Page 8: Programacion Lineal

Gráfica del ejemplo anterior.

4. Identificación del área de solución factible para cada restricción.

Esta área contiene los valores de las variables que satisfacen la restricción (recurso limitado) que se analiza. En la gráfica anterior se puede identificar claramente el área de solución factible para cada una de las líneas rectas.

5. Identificar el área de Optimalidad

Esta área es la que contiene los valores de las variables que satisfacen a todas las restricciones del modelo y que además en uno o más vértices que la delimitan, llamados “vértices de optimalidad”, se encontrará la solución óptima del modelo. En la gráfica anterior identificamos al área de optimalidad por ser la región marcada con líneas color rojo en forma de rejilla delimitada por cuatro vértices de optimalidad señalados por flechas punteadas color amarillo.

10

Área de solución factible

Área de solución factible

Área de optimalidad

Vértices de Optimalidad

20XA + 10XB = 170

V

V

V

V

Page 9: Programacion Lineal

6. Construir una tabla donde se ubiquen los vértices de optimalidad, los valores de las variables en esos vértices y el valor de la función objetivo para cada vértice.

La tabla quedaría más o menos como sigue.

Vértice XA XB ZMAX= 16 XA + 12XB1 0 0 0

2 0 112/15

448/5 (89.6 aprox)

3 6.5 4 1524 8.5 0 136

7. Encontrar la solución óptima.

Esto lo haremos al seleccionar el vértice que satisfaga de mejor manera el objetivo que se persigue. Para el ejemplo que estamos analizando, el objetivo que perseguimos es de maximizar utilidades, por lo tanto nos interesa el valor más alto que es 152 y se encuentra en el vértice 3.

8. A partir de la solución óptima, interpretar dicha solución para encontrar la solución al problema que se está resolviendo.

POR LO TANTO,

La solución óptima es:

4. EL MÉTODO SIMPLEX

Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Fue creado en 1947 por el matemático George Dantzig .

El método del simplex se utiliza, sobre todo, para resolver problemas de programación lineal en los que intervienen tres o más variables.

Para construirlo se siguen los siguientes pasos.

1 Modelo original o modelo de desigualdades.

El objetivo que se persigue es lo que nos marcará las reglas a seguir.

11

Hallar el valor de XA, XB en los vértices 1, 2, y 4 no supone ningún problema, puesto que sabemos que en cualquiera de esos tres casos los vértices hacen contacto con los ejes XA y XB. Para encontrar los valores de XA y XB en el vértice 3, recurrimos a un sistema de ecuaciones simultáneo. Al resolverlo obtenemos los valores para XA= 6.5 y XB= 4

XA= 6.5

XB= 4

Con ZMAX = 152

Page 10: Programacion Lineal

Supongamos que tenemos el siguiente modelo original.

2. Relaciones aumentadas.

Se construye un modelo equivalente de programación lineal y se incorporan variables adicionales para encontrar la frontera. Al modelo equivalente también se le conoce como modelo de igualdad.

Si un momento dado se quiere volver de un modelo equivalente al modelo original, lo único que se tiene que hacer es eliminar las variables de holgura.

3. Construir Solución Inicial.

Las variables de decisión siempre serán 0. (XA = 0, XB = 0. En este punto se conocen como variables no básicas) ZMAX = 0

Las variables de holgura serán igual a los valores de los recursos.

S1=112, S2= 170 (Variables básicas)

4. Tabla Simplex Inicial.

Cj 16 12 0 0VB XA XB S1 S2 VS

0 S1 8 15 1 0 112

0 S2 20 10 0 1 170

Zj 0 0 0 0 016 12 0 0

12

ZMAX= 16XA + 12XB

s.a. 8XA + 15XB ≤ 112

20XA + 10XB ≤ 170

XA, XB ≥ 0

A las restricciones de recursos, dependiendo de qué tipo sean, se incorporará una variable adicional (+S en este caso)

El número de restricciones nos determinará el total de variables adicionales.

ZMAX= 16XA + 12XB + 0S1 + 0S2

s.a. 8XA + 15XB + S1 + 0S2 = 112

20XA + 10XB + 0S1 + S2 = 170

XA, XB, S1, S2 ≥ 0

Donde:

XA, XB son Variables de Decisión

S1, S2 son variables de Holgura

Cj- Zj

Columna Pivote

Renglón Pivote

ZMAX= 0 XA= 0 XB= 0

Zj = ∑ Cij aij

Page 11: Programacion Lineal

5. Cambio de Bases.

Consiste en cambiar una variable no básica a una básica y viceversa. La terminología para este tipo de variables es Variable Básica Entrante (VBE) y Variable Básica Saliente (VBS).

VBE= XA Columna Pivote

VBS= S2 Renglón Pivote

Para S1 = 1128

=14 Para S2= 17020

=172

=8.5

A la intersección entre la columna pivote y el renglón pivote se le llama número pivote. En este caso es 20.

Construcción de la primera tabla simplex revisada.

Cj 16 12 0 0VB XA XB S1 S2 VS

0 S1

16 XA 112

0120

172

Zj

13

Cj- Zj

Nueva Solución:S1= 44

XA= 17/2ZMAX= 135S2=0, XB=0

Primero se divide todo el renglón (ahora saliente entre el número pivote (20) y escribimos el resultado.

Luego, calculamos el valor de S2 con la siguiente operación:8 (1 ½ 0 1/20 = 17/2) Se efectúa el producto. 8 15 1 0 = 112 (Renglón pivote anterior) -8 -4 0 -2/5 = -68 (Producto resultante)

0 11 1 -2/5= 44 El resultado se escribe en S1Luego calculamos el valor de Zj

Cj 16 12 0 0VB XA XB S1 S2 VS

0 S1 0 11 1 −25

44

16 XA 112

0120

172

Zj 16 8 0 45

136

0 4 0 −45

Cj- Zj

Page 12: Programacion Lineal

Podemos ver que aún quedan valores positivos en Cj - Zj, por lo tanto aunque la solución parezca más optima que la anterior, todavía podemos hacer otra iteración. Entonces procedemos.

En este punto tendremos que repetir la operación anterior, es decir dividir todo el renglón pivote anterior entre el número pivote. Posteriormente buscar nuevos valores para el renglón XA, calcular los valores de Zj, y finalmente Cj-Zj. El resultado final queda como sigue.

Nos damos cuenta de que hemos llegado a la solución óptima porque en el renglón del criterio simplex (Cj – Zj) solo encontramos valores 0 y negativos.

Pudimos darnos cuenta que llegamos al mismo resultado que con el método gráfico, pero de distinta manera.

14

Columna Pivote

Determinamos un nuevo renglón y columna pivotes.

Nueva Solución:XA= 6.5 XB= 4

ZMAX= 152S2=0, S2=0

Cj 16 12 0 0VB XA XB S1 S2 VS

0 S1 0 11 1 −25

44

16 XA 112

0120

172

Zj 16 8 0 45

136

0 4 0 −45

Cj- Zj

Renglón Pivote

Cj 16 12 0 0VB XA XB S1 S2 VS

12 XB 0 1 1/11 -2/55 4

16 XA 1 0 -1/22 3/44 13/2

Zj 16 12 4/11 36/55 1520 0 -4/11 -36/55

Cj- Zj