Investigación Operativa Tema 1: Programación Lineal.

30
Investigación Operativa Tema 1: Programación Lineal

Transcript of Investigación Operativa Tema 1: Programación Lineal.

Page 1: Investigación Operativa Tema 1: Programación Lineal.

Investigación Operativa

Tema 1: Programación Lineal

Page 2: Investigación Operativa Tema 1: Programación Lineal.

Resolución gráfica

x1

x2

z

z* Región factible

Solución óptima

Solución básica

Page 3: Investigación Operativa Tema 1: Programación Lineal.

Casos especiales

• Óptimos alternativos• Solución infactible• Restricciones redundantes• No acotado

Page 4: Investigación Operativa Tema 1: Programación Lineal.

Forma estándar

nn xcxcxcz Min 2211

021

2211

11212111

n

mnmnmm

nn

x,,x,x

bxaxaxa

bxaxaxa

.a.s

Matricialmente,

Min CTXs.a.AX=bx 0

Page 5: Investigación Operativa Tema 1: Programación Lineal.

Adaptación de formulaciones

•Maximización a minimización

Max z es igual a Min -z

•Variables de holgura o superávit

Para convertir las desigualdades en igualdades

•Variables no restringidas (pueden ser negativas)

xnr = xnr+ - xnr

- ; xnr+, xnr

- 0

Page 6: Investigación Operativa Tema 1: Programación Lineal.

Ejemplo nº2

Encontrar la dieta más barata que asegure las necesidadesdiarias de una persona, en función de las característicassiguientes:

Proteínas Grasas Hidratos C. CostePan 2,4 0,3 15,8 5Queso 7,1 9,9 - 17Pollo 8,4 2,1 - 37Nec. totales 75 90 300

Page 7: Investigación Operativa Tema 1: Programación Lineal.

Geometría de la P.L.

• Región– Intersección de un número finito de semiespacios cerrados.

También se llama poliedro• Si está acotado: Politopo

– Siempre es convexo: si cualquier c.l. de sus puntos también pertenece al conjunto

• Punto extremo– No se puede expresar como c.l. de cualesquiera otros puntos– Existe un número finito de ellos en un conjunto convexo

• Dirección• Dirección extrema

– No puede expresarse como c.l. de dos direcciones distintas

Page 8: Investigación Operativa Tema 1: Programación Lineal.

Teorema de representación

Cualquier punto X perteneciente a la región S={X / AX=b, X 0} se puede expresar como:

k

jj

l

jjj

k

jjj ,dXX

111

1

Entonces, S es convexo: tiene un número finito de puntos extremos

Page 9: Investigación Operativa Tema 1: Programación Lineal.

Aplicación al problema de P.L.

Min CTXs.a.AX=bx 0

X1, ... , Xk : puntos extremos

d1, ... , dk: direcciones extremas

Existe solución óptima finita si y sólo si CTdj>=0, para todo j

Entonces, existe un punto extremo que resuelve el problema

Page 10: Investigación Operativa Tema 1: Programación Lineal.

Álgebra de la P.L.

Base: Conjunto de m vectores de A linealmente independientes, dondem es el rango de A. Se representa por B.

Variable básica: Variables de decisión asociadas a los m vectores de la base. Se representan por XB. El resto se llaman variables no básicaso secundarias, XN.

Solución básica: La que corresponde a XB=B-1b, con XN=0. Existe un número finito de ellas.

Para cada solución básica factible, existe un punto extremo

Solución básica degenerada: Si alguno de los componentes de XB tienevalor nulo.

Page 11: Investigación Operativa Tema 1: Programación Lineal.

Teorema fundamental de la P.L.

Dado el problema:

•Si admite una solución factible, admite al menos una solución básica factible

•Si admite una solución óptima finita, admite al menos una solución básica óptima

Min CTXs.a.AX=bx 0

Page 12: Investigación Operativa Tema 1: Programación Lineal.

El Simplex

• Procedimiento iterativo• Calcula en cada paso una solución básica

mejor que la anterior, hasta llegar a la óptima• Número de iteraciones:

– máximo: (nm)

– generalmente, entre 1,5 y 3m

Page 13: Investigación Operativa Tema 1: Programación Lineal.

Notación del Simplex

0

X

bAX

.a.s

XCz Min T

XCZ

)X,X(XT

NB

jj aBY,NBY

YBN11

Njjjj

Njjsjss

x)cz(zz

xyxx

Page 14: Investigación Operativa Tema 1: Programación Lineal.

Interpretación de los criterios

• zj-cj (vector de criterios del Simplex, coste reducido, coste marginal): es lo que se reduce la función objetivo cuando se empieza a desarrollar la actividad xj a nivel unitario

• yij (tasa de sustitución): disminución que es necesario consentir en el nivel de realización de la actividad i para desarrollar la j a nivel unitario

Page 15: Investigación Operativa Tema 1: Programación Lineal.

Teoremas del Simplex (I)

• No acotamiento– Dada una solución básica factible asociada a B, si para un

kN se tiene que zj-cj>0 y yk0, entonces no existe solución óptima finita

• Mejora de la solución– Dada una solución básica factible asociada a B, si para un

kN se tiene que zj-cj0 y si para algún sB, ysk>0, entonces la solución básica asociada a B’, donde B’ es igual a B pero entrando el vector ak a sustituir a al de modo que

es una nueva solución básica factible que da a z un valor

La mejora será efectiva si es no degenerado (xl>0) y si zk-ck>0

sk

s

y/slk

l

y

xmin

y

x

sk 0

z'z

Page 16: Investigación Operativa Tema 1: Programación Lineal.

Teoremas del Simplex (II)

• Optimalidad– Dada una solución básica factible asociada a B, una condición

necesaria y suficiente para que sea óptima es que

para todo jN, zj-cj 0

– Una condición suficiente para que una solución básica sea la única óptima es que

para todo jN, zj-cj < 0

Page 17: Investigación Operativa Tema 1: Programación Lineal.

Casos particulares

• Solución infactible• Solución no acotada• Solución con óptimos alternativos

Page 18: Investigación Operativa Tema 1: Programación Lineal.

Algoritmo del Simplex

1- Determinar una solución básica factible inicial B

2- Calcular la matriz Y y el vector de criterios zj-cj

3- Si zj-cj0 para todo j : SOLUCIÓN ÓPTIMA

4- Si no, comprobar yj para los j t.q. zj-cj>0

Si yj 0 para algún j: SOLUCIÓN NO ACOTADA

5- REGLA DE ENTRADA: Escoger k=Max (zj-cj)

6- REGLA DE SALIDA: Escoger l t.q.

7- Pasar de B a B’=B-{al}U{ak}

8- Repetir el algoritmo

sk

s

y/slk

l

y

xmin

y

x

sk 0

Page 19: Investigación Operativa Tema 1: Programación Lineal.

Cambio de base

kNj),cz(y

yczc'z

lj,y

y'y

kNj,yy

yy'y

lj,y

'y

kNj,y

y'y

kklk

ljjjjj

lk

sksj

sjlk

ljsjsj

lkkj

lk

ljkj

1

sklk

lss

lk

lk

yyx

x'x

yx

'x

Page 20: Investigación Operativa Tema 1: Programación Lineal.

Ejemplo nº3

Min z = x1-3x2-x3

s.a.x1+4x2+3x3 = 12x1+2x2 - x3 = 4x1, x2, x3 0

Page 21: Investigación Operativa Tema 1: Programación Lineal.

Tabla del Simplex

x1 xl xk xn

z1-c1 0 zk-ck zn-cn zx1 y11 0 y1k y1n x1

xl (x'k) yl1 1 ylk yln xl

xs ys1 0 ysk ysn xs

xm ym1 0 ymk ymn xm

Page 22: Investigación Operativa Tema 1: Programación Lineal.

Variables artificiales

• Sirven para encontrar una base factible inicial• Pero deben desaparecer de la solución final, si

no el problema es infactible• La manera de eliminarlas es penalizándolas en

la función objetivo, para que sea el propio algoritmo el que las saque de la base

Page 23: Investigación Operativa Tema 1: Programación Lineal.

Método de las penalizaciones• Consiste en penalizar las variables artificiales en

la función objetivo con un término M lo suficientemente grande, de tal forma que sea el propio algoritmo quien las elimine

• Posibles resultados:– No hay variables artificiales en la base– Hay variables artificiales en la base

• a nivel nulo– si se pueden cambiar por otras reales: BASE DEGENERADA

– si no se pueden cambiar: RESTRICCIONES REDUNDANTES

• a nivel no nulo: PROBLEMA INFACTIBLE

• El problema es determinar el valor de M

Page 24: Investigación Operativa Tema 1: Programación Lineal.

Método de las dos fases

• Fase 1: Minimizar la suma de las variables artificiales

• Fase 2: Eliminar las variables artificiales y resolver el problema original (con la solución anterior como solución factible inicial)

• Posibles situaciones:– Min z = 0:

• V. artif. nulas: se eliminan las v.a., y se sigue resolviendo el problema (hay que recalcular zj-cj y z)

• V. artif. no nulas: se cambian las v.a. por variables originales (pivotando, siempre que yij 0)

– Min z 0: PROBLEMA INFACTIBLE

Page 25: Investigación Operativa Tema 1: Programación Lineal.

Simplex revisado

• Tiene los mismos pasos que el Simplex “básico”

• Pero requiere un menor número de operaciones

• Ocupa menos memoria de ordenador• Es más fácil controlar los posibles errores de

redondeo• Puede inducir a más errores que el “básico”

cuando se hace de forma manual

Page 26: Investigación Operativa Tema 1: Programación Lineal.

Algoritmo revisado

w’

(B’)-1 x’B

z’

w

B-1 xB

z

w

B-1 xB

z

w = CBB-1

xB = B-1b

zj - cj = waj - cj

yk = B-1ak

zk-ck

yk

(zj - cj)’ = w’aj - cj

y’k = (B’)-1ak

Page 27: Investigación Operativa Tema 1: Programación Lineal.

Ejemplo nº 4

Min -x1-2x2+x3-x4-4x5+2x6

s.a. x1+x2+x3+x4+x5+x6+x7 =6

2x1-x2-2x3+x4 +x8 = 4

x3+x4+2x5+x6 +x9 = 4

x1,x2,x3,x4,x5,x6 ,x7,x8,x9 0

Page 28: Investigación Operativa Tema 1: Programación Lineal.

Degeneración y ciclado

• Una solución es degenerada si alguna de las variables básicas es nula

• Indica la existencia de restricciones redundantes

• Posibles razones:– Existe un componente de b nulo– Empate en el criterio de salida

• Posibilidad de caer en un ciclo• Puede haber degeneraciones temporales

Page 29: Investigación Operativa Tema 1: Programación Lineal.

Óptimos alternativos

• Coste reducido de variables no básicas:– Negativo (<0): SOLUCIÓN ÓPTIMA ÚNICA

– Nulo (=0) para xk: Entra xk, sale xl

• xl=0: Cambio de base, pero solución óptima única

• xl>0: Soluciones múltiples

• Entonces, son soluciones óptimas todas las combinaciones lineales convexas de las soluciones múltiples obtenidas

Page 30: Investigación Operativa Tema 1: Programación Lineal.

Ejemplo nº5

Max 3x1 + 2x2

s.a. 6x1 + 4x2 2410x1 + 3x2 30x1, x2 0