Tema01_IntroPrograLineal

33
1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL 1 CAPITULO 1 Introducción a la Programación Lineal Sistemas de Producción Integrados

Transcript of Tema01_IntroPrograLineal

Page 1: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

1

CAPITULO 1

Introducción a la Programación Lineal

Sistemas de Producción Integrados

Page 2: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

2

ÍNDICEÍNDICE

1. Definición

2. Un primer ejemplo

2.1. Construcción del modelo

2.2. La geometría del modelo

2.3. El álgebra del modelo

3. Ejercicios

Page 3: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

3

- Un problema de Programación Lineal se presenta en entornos económicos en el que hay que gestionar una serie de recursos para realizar una determinada actividad, utilizando para ello un criterio de tipo económico.

1. Definición

- En un problema de Programación Lineal existen diferentes soluciones y un criterio para discriminar entre ellas con el objetivo de encontrar la mejor. A este proceso de búsqueda se le denomina Optimización.

- Optimizar significa poco más que mejorar; en el contexto científico la optimización es el proceso de tratar de encontrar la mejor solución posible para un determinado problema. Los problemas de Programación Lineal pueden considerarse o denominarse como problemas de optimización, si bien, esta denominación recoge un rango más amplio de problemas.

Page 4: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

4

1. Definición

- De forma más precisa, estos problemas se trata de calcular el valor de unas variables que están sujetas a una serie de restricciones y para las que una determinada función objetivo alcanza su valor máximo o mínimo.

- El criterio o función objetivo en un problema PL va referido a la minimización de los costes de la actividad, o a la maximización de beneficios.

- Los problemas de Programación Lineal se expresan mediante un conjunto de relaciones matemáticas que se conoce como modelo.

- El esfuerzo se centra tanto en la construcción del modelo como en la resolución del mismo.

Page 5: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

5

Un problema de Programación Lineal está formado por tres componentes principales:

Un conjunto de variables: Referidas a la actividad que se desarrolla en el sistema que se quiere optimizar.

Notación: x1, x2, x3, ….

Un conjunto de restricciones: Expresan la relación entre el consumo de recursos y las limitaciones de los mismos, así como toda clase de características que hay que imponer en el problema y que están asociadas a la actividad que se realiza en el sistema.

Ejemplo: x1+ x2 3

Una función objetivo: Criterio que se desea optimizar

Ejemplo: Maximizar x1 + 3x2

1. Definición

Page 6: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

6

Los problemas de optimización dependen fundamentalmente para su resolución del tipo de variables que forman parte del mismo y del carácter lineal o no lineal de las restricciones.

Problemas

• Lineales

(Función Objetivo y Restricciones lineales)

• No Lineales

(Función Objetivo y/o restricciones no lineales)

• Continuos (Vbles. continuas)

• Enteros (vbles. enteras)

[Entera mixta (vbles. enteras y continuas)]

PROGRAMACIÓN LINEAL

[CONTINUA]

PROGRAMACIÓN ENTERA

1. Definición

Page 7: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

7

Resolución

Programación Lineal Continua

(Métodos exactos)

• SIMPLEX

• Primal-Dual

• Método de Puntos Interiores

Programación Entera Método Exactos

Método aproximados

1. Definición

Page 8: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

8

ÍNDICEÍNDICE

1. Definición

2. Un primer ejemplo

2.1. Construcción del modelo

2.2. La geometría del modelo

2.3. El álgebra del modelo

3. Ejercicios

Page 9: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

9

2. Un primer ejemplo

Un fabricante de mantequilla desea optimizar la producción diaria de su factoría. Fabrica dos tipos de mantequilla (Estándar y Media Sal). Un Kilo de mantequilla Estándar proporciona un beneficio de 10 € y uno de MediaSal de 15 €. Para la producción de mantequillas se usan tres procesos, pasterización, centrifugado, y batido. La capacidad de pasterización es de 6horas/día, de centrifugado es de 3horas/día y de batido es de 3.5horas/día.

Los tiempos(en minutos) de proceso por cada kilo de mantequilla se recogen en la siguiente tabla:

Estándar Media Sal

Pasterización 3 8

Centrifugado 3 2

Batido 3 4

Page 10: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

10

ÍNDICEÍNDICE

1. Definición

2. Un primer ejemplo

2.1. Construcción del modelo

2.2. La geometría del modelo

2.3. El álgebra del modelo

3. Ejercicios

Page 11: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

11

Identificación de componentes

Variables asociadas a la actividad:

- Cantidad de mantequilla Estándar a producir por día: x1

- Cantidad de mantequilla Media Sal a producir por día: x2

Objetivo: Maximizar el beneficio

2. Un primer ejemplo 2. Un primer ejemplo2.1. Construcción del modelo

Restricciones:

- Limitación de las horas de pasterización

- Limitación de las horas de centrifugado

- Limitación de las horas de batido

Recursos:

- Tiempo de pasterización

- Tiempo de centrifugado

- Tiempo de batido

Page 12: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

12

Semántica de la restricción: Consumo Capacidad

1 Kg Estándar consume 3 minutos de pasterización

2 Kg Estándar consumen 6 minutos(32) de pasterización

.....

x1 Kgs Estándar consumen 3x1minutos de pasterización

Idéntico análisis para Kgs de Media Sal: 8x2

Consumo Total = 3x1 + 8x2 minutos

Capacidad = 6 horas = 360 minutos

Restricción completa: 3x1 + 8x2 360

2. Un primer ejemplo 2. Un primer ejemplo2.1. Construcción del modelo

Restricciones: Expresión matemática

- Limitación de las horas de pasterización

Misma Unidad

- Análisis equivalente para el resto de restricciones

Page 13: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

13

Objetivo: Maximizar los beneficios:

1 Kg Estándar Beneficio = 10

2 Kg Estándar Beneficio = 102 = 20

.............

x1 Kg Estándar Beneficio = 10x1

Idéntico análisis para Media Sal: 15x2

Beneficio Total = 10 * x1 + 15 * x2

Función Objetivo: Expresión matemática

2. Un primer ejemplo 2. Un primer ejemplo2.1. Construcción del modelo

Expresión: Max 10x1 + 15x2

Page 14: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

14

Modelo:

x1 : Kilos de mantequilla Estándar

x2 : Kilos de mantequilla Media Sal

Función Objetivo:

Rest. Recurso pasterización:

Rest. Recurso centrifugado:

Rest. Recurso batido:

Signo de las variables:

1 2

1 2

1 2

1 2

1 2

10 15

3 8 360 (R1)

3 2 180 (R2)

3 4 210 (R3)

, 0

Max x x

sujeto a

x x

x x

x x

x x

2. Un primer ejemplo 2. Un primer ejemplo2.1. Construcción del modelo

Variables:

Expresiones Lineales

Variables continuas

- Modelo lineal

- Programación lineal continua

Page 15: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

15

ÍNDICEÍNDICE

1. Definición

2. Un primer ejemplo

2.1. Construcción del modelo

2.2. La geometría del modelo

2.3. El álgebra del modelo

3. Ejercicios

Page 16: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

16

20 30 40 50 60 70 80 90 100 110 120 130 140 15010

10

20

30

40

50

60

70

80

90

100 1 23 8 360x x

x1

x2

1 23 8 360x x

2. Un primer ejemplo 2. Un primer ejemplo2.2. La geometría del modelo

Representación de una restricción:

- Es un semiespacio del espacio de 2

- El semiespacio se define por la recta que expresa la restricción con signo de igualdad

1 23 8 360x x

1 23 8 360x x

SEMIESPACIO NO ADMISIBLE

SEMIESPACIO ADMISIBLE

Page 17: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

17

20 30 40 50 60 70 80 90 100 110 120 130 140 15010

10

20

30

40

50

60

70

80

90

100

1 2

1 2

1 2

1 2

1 2

10 15

. .

3 8 360 (R1)

3 2 180 (R2)

3 4 210 (R3)

, 0

Max x x

s a

x x

x x

x x

x x

x1

x2

R2R1R3

Región de admisibilidad

convexa

2 23 8 360x x 1 23 2 180x x 1 23 4 210x x

2. Un primer ejemplo 2. Un primer ejemplo2.2. La geometría del modelo

Page 18: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

18

1 2

1 2

1 2

1 2

1 2

10 15

. .

3 8 360 (R1)

3 2 180 (R2)

3 4 210 (R3)

, 0

Max x x

s a

x x

x x

x x

x x

(R1)

(R3)

20 30 40 50 60 7010

10

20

30

40

50

x1

x2

(R2)

1 210 15z x x z=0

z=100

Dirección de máxima mejora

2. Un primer ejemplo 2. Un primer ejemplo2.2. La geometría del modelo

Page 19: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

19

20 30 40 50 60 7010

10

20

30

40

50

x1

x2Óptimo Punto interior

2. Un primer ejemplo 2. Un primer ejemplo2.2. La geometría del modelo

Siguiendo la dirección de máxima mejora desde cualquier punto interior podré ir a otro punto con mejor valor de la F.O.

Por tanto, el Óptimo debe estar en la frontera de la región.

Page 20: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

20

X1

V1 V2

V3V4

: Ángulo agudo = Mejora

: Ángulo obtuso = Empeoramiento

Óptimo Vértice

2. Un primer ejemplo 2. Un primer ejemplo2.2. La geometría del modelo

Óptimo Punto interior de una arista*

Page 21: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

21

X1

V1

V2

V3V4

agudo

agudo

agudo

agudoobtuso obtuso

obtuso

obtuso

Vértice óptimo

2. Un primer ejemplo 2. Un primer ejemplo2.2. La geometría del modelo

Page 22: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

22

ÍNDICEÍNDICE

1. Definición

2. Un primer ejemplo

2.1. Construcción del modelo

2.2. La geometría del modelo

2.3. El álgebra del modelo

3. Ejercicios

Page 23: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

23

20 30 40 50 60 7010

10

20

30

40

50

x1

x2

Variables de holgura

1 2

1 2

1 2

1 2

1 2

10 15

. .

3 8 360 ( )

3 2 180 ( )

3 4

R2

R1

210 ( )

0

R3

,

Max x x

s a

x x

x x

x x

x x

1 2

1 2 1

1 2 2

1 2 3

1 2 1 2 3

10 15

. .

3 8 360

3 2 180

3 4 210

, , , , 0

Max x x

s a

x x h

x x h

x x h

x x h h h

V1

V2

V3

V4

V5

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

m = Número de restricciones

n = Número de variables

Page 24: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

24

Características generales de un vértice

20 30 40 50 60 7010

10

20

30

40

50

x1

x2

V1

V2

V3

V4

V5

x1; x2=0

x2 x1=0

- El número de variables (0) es igual a m Vbles BÁSICAS

- El número de variables = 0 es igual a (n-m) Vbles NO BÁSICAS

- Se intercambian una a una desde un vértice a otro adyacente

V1 (x1=0; x2=0; h1>0;h2>0;h3>0)

V2 (x1=0; x2>0; h1=0;h2>0;h3>0)

V3 (x1>0; x2>0; h1=0;h2>0;h3=0)

V4 (x1>0; x2>0; h1>0;h2=0;h3=0)

V5 (x1>0; x2=0; h1>0;h2=0;h3>0)

1 2

1 2

1 2

1 2

1 2

10 15

. .

3 8 360 ( )

3 2 180 ( )

3 4

R2

R1

210 ( )

0

R3

,

Max x x

s a

x x

x x

x x

x x

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

Variables: n=5

Restricciones: m=3

Page 25: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

25

Vértice V1:

x1=x2=0 (n-m)

h1>0; h2>0;h3>0 (m)

Restricciones:

h1=360

h2=180

h3=210

(x1 x2 h1 h2 h3)

(0 0 360 180 210)

Valor de la F.O. en V1 = 0 + 0 = 0

Dos cuestiones:

• Cómo me desplazo hacia un vértice adyacente?

• Cómo averiguo si un vértice es el óptimo?

1 2

1 2 1

1 2 2

1 2 3

1 2 1 2 3

10 15

. .

3 8 360

3 2 180

3 4 210

, , , , 0

Max x x

s a

x x h

x x h

x x h

x x h h h

Variables: n=5

Restricciones: m=3

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

Page 26: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

26

Cómo me desplazo hacia un vértice adyacente?

EJEMPLO: V1 V2

Me desplazo por la arista hasta topar con el siguiente vértice

x2 hasta que alguna de las variables que son >0 en V1 se haga = 0

Durante el desplazamiento la otra variable que es = 0 en V1 permanece a 0 en toda la arista

2 1

2 2

2 3

1 2 1 2 3

8 360

2 180

4 210

0, , , , 0

x h

x h

x h

x x h h h

Paso 1. Calcular el vértice destino

Paso 2. Preparar las restricciones para un desplazamiento posterior

• Paso 1: Calcular el vértice destino

1 2

2 2

3 2

1 2 1 2 3

360 8

180 2

210 4

0, , , , 0

h x

h x

h x

x x h h h

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

Page 27: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

27

1

2

3

0

0

0

h

h

h

2

2

2

360 8 0

180 2 0

210 4 0

x

x

x

2

2

2

36045

8180

902

21052.5

4

x

x

x

2 45x 2 45x

2

1 2

2 2

3 2

1

45

360 8 0

180 2 90

210 4 30

0

x

h x

h x

h x

x

(x1 x2 h1 h2 h3) = (0 45 0 90 30)

Vértice V2

Valor de la F.O. En V2 = 10x1 + 15x2 = = 0 + 675 = 675

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

Page 28: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

28

• Paso 2. Preparar las restricciones para un nuevo desplazamiento:

Hay que realizar transformaciones lineales en las restricciones hasta conseguir la matriz identidad en las columnas de las variables básicas del vértice en el que me encuentro.

Parto de las expresiones de las restricciones del vértice anterior

1 2 1

1 2 2

1 2 3

1 2 1 2 3

3 8 360

3 2 180

3 4 210

, , , , 0

x x h

x x h

x x h

x x h h h

V1

V1 V21 2 1

1 1 2

1 1 3

1 2 1 2 3

3 145

8 818 2

908 83 1

302 2

, , , , 0

x x h

x h h

x h h

x x h h h

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

Page 29: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

29

Para responder a esta pregunta tengo que expresar la F.O.en función de las variables que valen 0 en el vértice.

1 2 2 1 1 1 1 1 1 1

3 1 3 1 35 15. . 10 15 [ 45 ] . ( 2) 10 15(45 ) 675

8 8 8 8 8 8F O x x x x h F O V x x h x h

Coste relativo = Índice que me indica si el incremento de esa variable produce mejora en la F.O.

Si Índice > 0 Mejoro si me desplazo por esa arista

Si Índice < 0 Empeoro

x1 Mejoro con tasa 35/8

h1 Empeoro con tasa 15/8

Si en el vértice al que llego los índices de la expresión de la F.O. en ese vértice son todos negativos (en un problema de maximizar), dicho vértice es el óptimo del problema

El vértice al que he llegado es óptimo?

2. Un primer ejemplo 2. Un primer ejemplo2.3. El álgebra del modelo

Page 30: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

30

ÍNDICEÍNDICE

1. Definición

2. Un primer ejemplo

2.1. Construcción del modelo

2.2. La geometría del modelo

2.3. El álgebra del modelo

3. Ejercicios

Page 31: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

31

3. Ejercicios

Para los sistemas productivos que aparecen a continuación:

- Obtenga el modelo matemático del problema

- Represente gráficamente las restricciones

- Identifique geométricamente el vértice óptimo

- Realice el recorrido algebraico por los vértices hasta

alcanzar el vértice óptimo

Page 32: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

32

3. Ejercicios

Un artesano alfarero desea optimizar la producción diaria de su taller de alfarería. Fabrica dos tipos de ánforas (Anforas1 y Anforas2). Para ello utiliza un proceso de producción simple. Emplea dos tipos de arcilla (arcilla A y arcilla B) que mezcla en las proporciones adecuadas, les da forma durante un cierto tiempo y las pone a secar en el horno que posee hasta el día siguiente. El alfarero vende posteriormente las ánforas1 a 100u.m. Y las ánforas2 a 250u.m.

El horno posee una capacidad para 144 ánforas. Diariamente, dispone de 300 Kg de arcilla A y 16 Kg de arcilla B, y 15 horas de trabajo (él y su hijo).

Las proporciones de arcilla A y B y el tiempo que necesita cada ánfora se recogen en la siguiente tabla:

Ánforas 1 Ánforas 2

Arcilla A 1.5 3

Arcilla B 0 0.2

Tiempo 0.1 0.12

Ejercicio 1

Page 33: Tema01_IntroPrograLineal

1. INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

33

3. Ejercicios

Un fabricante de baldosas desea optimizar la producción semanal de su factoría. Fabrica dos tipos de baldosas (Estándar y Lujo). Una baldosa Estándar proporciona un beneficio de 10 € y una Lujo de 15 €. Para la producción de baldosas se usan tres procesos, apomozado, pulido y abrillantado. La capacidad de apomazado es de 200horas/semana, de pulido es de 80horas/semana y la de abrillantado de 60horas/semana. Además, cada baldosa Estándar emplea 25mg de una sustancia para su limpieza por 10 de la baldosa Lujo. Se disponen de 1,2Kg por semana de esa sustancia.

Los tiempos de pulido y abrillantado(en horas) por cada unidad se recogen en la siguiente tabla:

Estándar Lujo

Apomazado 0.5 0.45

Pulido 0.3 0.2

Abrillantado 0.15 0.3

Ejercicio 2