Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del...

28
Formulaci´ on y Ejemplos Resoluci´ on gr´ afica Resoluci´ on del problema: algoritmo del Simplex Programaci´ on Lineal Continua Elisenda Molina Universidad Carlos III de Madrid [email protected] 8 de octubre de 2008 Investigaci´ on Operativa Programaci´ on Lineal Continua

Transcript of Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del...

Page 1: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Programacion Lineal Continua

Elisenda MolinaUniversidad Carlos III de [email protected]

8 de octubre de 2008

Investigacion Operativa Programacion Lineal Continua

Page 2: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Esquema

1 Formulacion y Ejemplos

2 Resolucion grafica

3 Resolucion del problema: algoritmo del Simplex

Investigacion Operativa Programacion Lineal Continua

Page 3: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Ejemplo: Produccion de carbon

Una empresa minera produce lignito y antracita.

El proceso de produccion esta dividido en tres fases:1 Corte del mineral,2 Tamizado y a la seleccion,3 Lavado.

Datos:Corte Tamizado Lavado Beneficio

Lignito 3 3 4 24Antracita 4 3 2 18

Disponibilidad maxima 12 10 8

¿cuantas toneladas de cada clase de carbon debe producir aldıa para maximizar sus beneficios?

Investigacion Operativa Programacion Lineal Continua

Page 4: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Asignacion y distribucion de recursos/Producion

Problemas en los que se trata de asignar o localizar un numerode recursos, siempre limitados, entre diversas actividades.

Se plantea un conflicto entre la funcion objetivo, que cuantificael beneficio derivado de cada asignacion, y las restricciones, queestablecen los lımites a las asignaciones posibles.

Investigacion Operativa Programacion Lineal Continua

Page 5: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Problema de Programacion Lineal Continua

Clase mas importante de problemas de optimizacion

Base para la resolucion de otros problema de optimizacion

Uno de los modelos matematicos mas aplicados (ver top10.pdf)

Elementos y caracterısticas:1 Variables de decision continuas: xt = (x1, . . . , xn)2 Funcion objetivo lineal: f (x1, . . . , xn)3 Restricciones lineales: para j = 1, . . . ,m,

aj1x1 + aj2x2 + · · ·+ ajnxn ≤ bj , o

aj1x1 + aj2x2 + · · ·+ ajnxn ≥ bj , o

aj1x1 + aj2x2 + · · ·+ ajnxn = bj

Investigacion Operativa Programacion Lineal Continua

Page 6: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Programacion Matematica: alternativas

1 Programacion Entera (Mixta): cantidades no divisibles yenteras y/o decisiones logicas.

2 Programacion no Lineal: relaciones no proporcionales y noaditivas.

3 Programacion Multiobjetivo: varios objetivos.

4 Programacion Estocastica, que permite incorporar laincertidumbre inherente en muchas situaciones reales al modelo.

5 Programacion Difusa, que permite trabajar con problemas enlos que las restricciones no son rıgidas (modelizan relacionesvagamente definidas).

Investigacion Operativa Programacion Lineal Continua

Page 7: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

El problema de la dieta

Aplicacion clasica de la Programacion Lineal y un ejemplo tıpico deesta familia de problemas. Se trata de alimentar a un colectivo de laforma menos costosa, satisfaciendo las necesidades nutricionales.

Un veterinario aconseja a un granjero dedicado a la crıa depollos una dieta mınima para la alimentacion de las avesconsistente en 3 unidades de hierro y 4 unidades de vitaminas.

Dieta: mezcla de maız, harina de pescado y pienso sintetico.

Datos:Hierro (u/kg) Vitaminas (u/kg) Coste (euro/kg)

Maız 2,5 1 0,3Harina 3 3 0,5Pienso 1 2 0,2

El granjero se pregunta por la composicion de la dieta que,satisfaciendo las necesidades alimenticias, minimice el costetotal.

Investigacion Operativa Programacion Lineal Continua

Page 8: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Ejemplo

Una refinerıa de petroleo puede destilar 2 tipos de crudo: uncrudo medio de Arabia Saudı y uno pesado de Venezuela, paraproducir gasolina, fuel de avion y lubricantes.

Dependiendo de las caracterısticas del crudo el proceso derefino da lugar a distintos derivados en diferentes proporciones.Datos:

Medio Pesado RequerimientosGasolina 0.3 0.4 2000Fuel avion 0.4 0.2 1500Lubricantes 0.2 0.3 500Disponible/dıa 9000 6000Coste 20 15

¿Como satisfacer la demanda comprometida a coste mınimo?

Investigacion Operativa Programacion Lineal Continua

Page 9: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Problemas de Mezclas

Planificacion optima de la mezcla de productos a fabricar:determinar la cantidad de materia prima a comprar/producir,ası como la proporcion de cada materia prima en cada productofinal. Todo ello, teniendo en cuenta las caracterısticas tecnicasdel producto final, las materias primas disponibles y suscomponentes tecnicos.

Las limitaciones que suelen aparecer vienen dadas por: garantıamınima relativa, costos fijos de produccion, numero maximo deingredientes, ingredientes sustitutivos, procesos sustitutivos,proporciones de mercado, proporciones en caracterısticastecnicas, tarifas de precios,

Aplicaciones: industrias de la alimentacion, ganadera,farmaceutica, quımica, siderurgica o petrolıfera.

Investigacion Operativa Programacion Lineal Continua

Page 10: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Region Factible

Region factible: conjunto de puntos que verifican todas lasrestricciones del modelo

Min. 2x1 − x2

s.a −x1 + x2 ≤ 2,x1 + x2 ≤ 4,

5x1 + 3x2 ≤ 15,x1, x2 ≥ 0.

Poliedro: interseccion finita de semiespacios, conjunto convexo

Investigacion Operativa Programacion Lineal Continua

Page 11: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Region FactibleEjemplo

mın 2x1− x2 ,

s.a −x1+ x2≤ 2,

x1+ x2≤ 4,

5x1+3x2≤15,

x1 , x2≥ 0.

−x1 + x2 = 2

x1 + x2 = 4

5x1 + 3x2 = 15

La

zona sombreada representa el conjunto de puntos que verifican todas las

restricciones del modelo, la region factible

Investigacion Operativa Programacion Lineal Continua

Page 12: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Rectas de nivel y gradiente

Ejemplo (cont.)

mın 2x1− x2 ,

s.a −x1+ x2≤ 2,

x1+ x2≤ 4,

5x1+3x2≤15,

x1 , x2≥ 0.

2x1 − x2 = 02x1 − x2 = 1

(0,2)

2x1 − x2 = −2

El punto optimo es (0,2), en el

que la funcion objetivo vale -2.El punto optimo es (0, 2), en el que la funcion objetivo vale -2.

Investigacion Operativa Programacion Lineal Continua

Page 13: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Ejemplos: resolucion en clase

Investigacion Operativa Programacion Lineal Continua

Page 14: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Vertices: teorema fundamental de la PLC

Soluciones de un problema de Programacion Lineal:

Si tiene solucion finita:

La solucion se encuentra en un punto extremo.Estos existen en un numero finito.

Solucion no acotada

Direccion extrema de decrecimiento (mın.), crecimiento (max.),partiendo de un punto extremo.

El problema no tiene solucion: la region es vacıa y, por tanto,no existen puntos extremos.

Investigacion Operativa Programacion Lineal Continua

Page 15: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Metodos de resolucion

Las dos alternativas mas importantes son:

1 Algoritmo del simplex.

2 Metodos de punto interior.

El primer metodo se mueve por la frontera de la region factible,hasta llegar a un punto optimo. Se basa en un resultado basico:

Si el problema de programacion lineal tiene solucion,entonces se alcanza en al menos un vertice.

Los metodos de punto interior se mueven por el interior de la regionfactible. Utiliza tecnicas de programacion no lineal.

Investigacion Operativa Programacion Lineal Continua

Page 16: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Vertices: Puntos Extremos y Soluciones Basicas Factibles

X Punto extremo o vertice: punto interseccion de al menos n caraso hiperplanos (definicion geometrica).

X Solucion Basica Factible: Se trabaja con PLs en Forma Estandar

Formulacion estandar

Funcion objetivo de “minimizar”, restricciones de “igualdad”,constantes del lado derecho no negativas y variables no negativas.

mın z = ct xs.a. A x = b,

x ≥ 0,

con b ≥ 0

Investigacion Operativa Programacion Lineal Continua

Page 17: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Transformaciones

Cualquier problema de programacion lineal se puede formular enformato estandar.

Si el objetivo es maximizar, multiplicando la funcion objetivopor -1, se convierte en un problema de minimizacion:

max 2x1 + 3x2 ⇔ mın − 2x1 − 3x2

Investigacion Operativa Programacion Lineal Continua

Page 18: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Transformaciones. Restriccion de desigualdad a igualdad

x1 + 2x2 ≤ 3,

Se introduce una nueva variable, denominada variable de holgura(slack):

x1 + 2x2+s1 = 3 con s1 ≥ 0.

Si la desigualdad es de tipo “mayor o igual que”,

x1 + x2 ≥ 10,

la variable de holgura se introduce con signo negativo en larestriccion. Se denomina variable de exceso (surplus)

x1 + x2−s2 = 10 con s2 ≥ 0.

Investigacion Operativa Programacion Lineal Continua

Page 19: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Transformaciones. Signo de las variables

X Si una variable x no esta restringida en signo, se hace el cambiode variable

x = x+ − x−,

x+ = max{x , 0}x− = max{−x , 0}

y se introducen estas variables en el modelo, en lugar de x .

X Si una variable debe tomar un valor negativo, se hace el cambiox ′ = −x .

X Si la cota inferior de una variable no es 0:

x ≥ 3,

se puede hacer el cambio x ′ = x − 3.

Investigacion Operativa Programacion Lineal Continua

Page 20: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Transformaciones. Valor absoluto

Es habitual que en muchos problemas aparezca el valor absoluto deuna expresion.Por ejemplo, si aparece |x |, para eliminarlo de la formulacion se haceel cambio:

x = x+ − x−,

donde x+ y x− estan definidas como en el apartado anterior.El valor absoluto es, entonces:

|x | = x+ + x−.

Si lo que aprarece es:

|2x1 + x2| ≤ 3 ⇒{

2x1 + x2 ≤ 3−3 ≤ 2x1 + x2

Investigacion Operativa Programacion Lineal Continua

Page 21: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Transformaciones. Objetivo maximin/minimax

Un ordenador con 2 procesadores funciona durante al menos 10horas diarias en aplicaciones administrativas y academicas.

Cada tarea administrativa requiere 2 segundos de CPU si seejecuta en el procesador 1 y 6 segundos de CPU si se ejecutaen el procesador 2.

Cada tarea academica requiere 5 segundos de CPU si se ejecutaen el procesador 1 y 3 segundos de CPU si se ejecuta en elprocesador 2.

Se requiere programar la cantidad de tareas diarias a asignar acada procesador de manera que se minimice el tiempo que elordenador esta ocupado en estos trabajos.

Investigacion Operativa Programacion Lineal Continua

Page 22: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Vertices: Puntos Extremos y Soluciones Basicas Factibles

Sea el sistema de ecuaciones lineales Ax = b, donde

A ∈Mm×n (m ≤ n), es la matriz del sistema:

A = (a1, . . . , an)

aj = (a1j , . . . , aij , . . . , amj)t ∈ IRm, j–esima columna de A

rg(A) = m < n

b ∈ IRm y x ∈ IRn.

Soluciones Basicas del sistema

X Seleccionar m variables con columnas asociadas linealmenteindependientes ⇒ B=matriz basicaEl resto de columnas de A se denotan por N.Despues de un posible reordenamiento de las columnas de A:

A = (B,N) con B ∈Mm×m

Investigacion Operativa Programacion Lineal Continua

Page 23: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Soluciones Basicas del sistema (cont.)

X Se separa el vector x en dos subvectores: variables basicas yvariables no basicas.

x =

(xB

xN

)X Asignar el valor 0 a las variables no basicas: xN = 0

Y resolver las m ecuaciones con m incognitas que queda:

BxB = b ⇒ xB = B−1b

Soluciones Basicas Factibles:Si ademas xB = B−1b ≥ 0 ⇒ x = Solucion Basica Factible≡ puntoextremo (vertice)¿Cuantos puntos extremos tenemos? como mucho

(nm

)Investigacion Operativa Programacion Lineal Continua

Page 24: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Soluciones Basicas del sistema: terminologıa

Solucion basica factible: si xB ≥ 0.

B: matriz basica (o base)

N: matriz no basica

Componentes de xB : variables basicas

Componentes de xN : variables no basicas

Solucion basica factible no degenerada: si xB > 0.

Solucion basica factible degenerada: si alguna de lascomponentes de xB es 0.

Investigacion Operativa Programacion Lineal Continua

Page 25: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Algoritmo del simplex (Dantzig, 1949)

George Dantzig es el padre de la PL. Desarrollo el algoritmo delSimplex en 1947.

El primer problema de PL fue el problema de la dieta (9restricciones y 77 variables). Se necesitaron 9 trabajadoresdurante aproximadamente 15 dıas para realizar los calculoselectronicos que resolvieron el problema.

La primera implementacion del Simplex en ordenador es de1952. Se resolvio un PL con 48 restricciones y 71 variables en18 horas.

Actualmente se pueden resolver PL’s con millones de variablesy restricciones en horas o minutos.

Investigacion Operativa Programacion Lineal Continua

Page 26: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Algoritmo del simplex (Dantzig, 1949)

Procedimiento que permite moverse de un punto extremo a otro,mejorando cada vez (o, por lo menos, no empeorando) el objetivo.Detecta si la region factible es vacıa o si la solucion optima es noacotada.A pesar de que han aparecido otros algoritmos, sigue siendo el masutilizado:

Hay implementaciones muy eficientes del algoritmo.Proporciona mucha informacion sobre la estructura de la regionfactible.Si el numero de variables (n) es muy superior al de restricciones(m), el numero de iteraciones oscila entre 3

2m y 3m (n = 60 ym = 20, 30-60 iteraciones).

Investigacion Operativa Programacion Lineal Continua

Page 27: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Algoritmo del simplex (Dantzig, 1949)

Clave del algoritmo

Reconoce la optimalidad de un punto extremo sin tener queenumerar todos los puntos extremos. Utiliza CONDICIONES DEOPTIMALIDAD LOCALES

Investigacion Operativa Programacion Lineal Continua

Page 28: Programación Lineal Continua - Departamento de Estadí · PDF fileResolucion del problema: algoritmo del Simplex Programacion Matem´atica: alternativas 1 Programaci´on Entera (Mixta):

Formulacion y EjemplosResolucion grafica

Resolucion del problema: algoritmo del Simplex

Algoritmo del simplex (Dantzig, 1949)Algoritmo del simplex

Punto extremo

Sol. Basica factible

Contraste de

Optimalidad

Contraste de

no acotacion

Nuevo punto extremo

(cambio de base)

Solucion Optima

Solucion no acotada

FIN

FIN

¿Es factible?¿Hay redundancia algebraica?

7

Investigacion Operativa Programacion Lineal Continua