Unmsm fisi - programación lineal 2 - io1 cl04

Post on 08-Jul-2015

738 views 6 download

Transcript of Unmsm fisi - programación lineal 2 - io1 cl04

1

Programación Lineal (2)

Docente : Gabriel Solari Carbajal

Universidad Nacional Mayor de San MarcosFacultad de Ingeniería de Sistemas e Informática

Investigación Operativa I

2

SOLUCION DEPROBLEMAS DEPROGRAMACION

LINEAL

Programación Lineal

2

3

METODO GRAFICO PARA LA RESOLUCION DE UNPPL.-

Programación Lineal

Introducción.-El método gráfico se utiliza para resolver Problemas deProgramación Lineal (PPL) de dos variables, y concierta dificultad, de tres variables.

Para mayor número de variables no es posible larepresentación gráfica.

Su estudio es importante porque permite la definiciónde nuevos conceptos.

4

GRÁFICA DE UNA RECTA.-Para graficar una recta se procede de la siguientemanera:

Programación Lineal

1) Determinar dos puntos arbitrarios de la recta.

2) Unir los puntos localizados.

Ejemplo

Graficar:5x2x 21 =+

3

5

Los puntos son:

Programación Lineal

Graficando

x1 x2

0.0 2.55.0 0.0

1 2 3 4 5

1

2

3

x1

x2

x1 + 2x2 = 5

6

GRÁFICA DE UNA DESIGUALDAD.-La gráfica de una desigualdad forma una región. Seprocede de la siguiente manera:

Programación Lineal

1) Determinar dos puntos arbitrarios de la recta.

2) Unir los puntos localizados.

Ejemplo

Graficar: 5x2x 21 ≤+

3) Se selecciona la región correspondiente a ladesigualdad. Comprobar con un valor determinadocomo el punto (0, 0).

4

7

Los puntos son:

Programación Lineal

x1 x2

0.0 2.55.0 0.0

Comprobando con el punto (0, 0):

Se verifica que el punto (0, 0) pertenece a la regiónformada por la desigualdad.

5)0(20 ≤+

8

Graficando

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

x1 + 2x2 <= 5

Región

5

9

GRÁFICA DE LAS RESTRICCIONES DE UN PPL.-Se grafica desigualdad por desigualdad determinandola región factible. La región factible es aquella quecontiene a todas las soluciones que satisfacen alconjunto de restricciones. Se obtiene de la intercepciónde las regiones formadas por cada restricción.

Programación Lineal

Ejemplo

Graficar:

5x2x 21 ≤+10x3x4 21 ≤+

0x,x 21 ≥

10

Graficando la primera restricción:

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

4x1 + 3x2 <= 104

6

11

Graficando la segunda restricción:

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

x1 + 2x2 <= 5

4

12

Graficando las restricciones de no negatividad:

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

x1, x2 >= 0

4

7

13

Graficando la región factible:

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

x1 + 2x2 <= 5

44x1 + 3x2 <= 10

Regiónfactible

14

GRÁFICA DE LA FUNCION OBJETIVO.-Se asigna un valor, seleccionado convenientemente, ala función objetivo y se grafica como una recta.

Se asigna un segundo valora la función objetivo y segrafica la recta.

La familia de paralelas se conoce como rectas de nivel.

Programación Lineal

Ejemplo

Graficar:

21 10x8xZMax +=

8

15

Se grafican las rectas:

Programación Lineal

1010x8x 21 =+2010x8x 21 =+

donde los valores 10 y 20 han sido seleccionadosarbitrariamente.

16

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

4

Z=10 Z=20

hacia este sentidose maximiza Z

rectas de nivel

valor de lafunción objetivo

9

17

SOLUCION OPTIMA DE UN PPL.-Corresponde al valor óptimo de la función objetivo alrecorrer la región factible. Se seleccionará aquella rectaparalela que determine el valor óptimo de Z sobre laregión factible.

Programación Lineal

18

Ejemplo

Determinar la solución óptima de:

Programación Lineal

21 10x8xZMax +=

5x2x 21 ≤+10x3x4 21 ≤+

0x,x 21 ≥

sujeto a

10

19

Programación Lineal

1 2 3 4 5

1

2

3

x1

x2

4

20

Según se observa en la gráfica el último punto decontacto (la solución óptima) de la función objetivosobre la región factible es x1=1 y x2=2 siendo el valoróptimo Z=28

Programación Lineal

11

21

GLP.-

Programación Lineal

GLP es un software elaborado por el Profesor JeffreyMoore, Ph.D., de la Universidad de Stanford.e-mail: fmoore@gsb.stanford.edu.

GLP se utiliza para graficar la región factible de unconjunto de restricciones de un PPL de dos variables.El programa soporta un máximo de 6 restricciones.

Dada una función objetivo determina su orientación, elmáximo y mínimo valor de la aplicación de la funciónobjetivo a la región factible en forma automática.

22

12

23

Procedimiento de su uso:

Programación Lineal

1) Definición de las variables.-Ingresar la descripción de las variables quecorresponden con los ejes X e Y, en las cajas dedialogo respectivas.

24

Programación Lineal

2) Ingreso de restricciones.-Se puede ingresar o editar hasta 6 restricciones.Una restricción con coeficientes y recursos seráignorada por el programa:

13

25

Programación Lineal

Las restricciones con desigualdad estricta(< o >) noson validas.Es posible colocar una etiqueta para identificar unarestricción. Ejemplo: Horas hombre:5.0X + 1.0Y <= 3.0

Se pueden realizar cambios discretos de losrecursos de cada restricción presionando +/-

26

Programación Lineal

3) Ingreso de la función objetivo (PAYOFF) .-En el casillero etiquetado PAYOFF ingresar lafunción objetivo.

Evaluar la ecuación de la función objetivo a algúnvalor. No se permiten desigualdades.

14

27

Programación Lineal

4) Mover las restricciones y función objetivo con elmouse.-Para mover una restricción o función objetivo,paralelamente, colocar el puntero del mouse sobrela restricción o función objetivo a mover, ymanteniendo presionado el botón izquierdo delmouse colocarla en su nueva posición.Puede cambiar la orientación (pendiente) de lafunción objetivo colocando el puntero del mousesobre la función objetivo, y manteniendo presionadoel botón derecho del mouse rotarla a su nuevaposición.

28

Programación Lineal

5) Visualización de la región factible.-Se puede aumentar o disminuir el tamaño de lagráfica utilizando los controles Zoom. Por defecto seencuentra en valor 6.

Puede utilizar el icono AutoZomm para obtenerel tamaño mas grande de la región factible quepermite el área grafica.

15

29

Programación Lineal

6) Cambiar la precisión del número de decimales.-Se puede modificar el número de decimalesutilizando la casilla respectiva.

30

Programación Lineal

7) Valores máximos y mínimos de X e Y.-Podemos ingresar valores máximos y mínimos de Xe Y, utilizando los casilleros respectivos:

16

31

Programación Lineal

8) Solución optima.-El icono AutoMax/AutoMin permiteencontrar automáticamente el valor optimo máximoy mínimo de aplicar la función objetivo a la regiónfactible formada. El valor optimo es presentado en elcasillero de la función objetivo (PAYOFF)

32

Programación Lineal

9) Otras opciones .-

El primer icono recorta/repone el exceso de laslíneas que sobrepasan la región factible.El segundo icono muestra/oculta la descripción delas restricciones.El tercer icono pinta la región factible de un colorseleccionado por el analista. Otro clic sobre esteicono desactiva el color.

17

33

Programación Lineal

El cuarto icono pinta la región factible de color gris.Otro clic sobre este icono desactiva el color.El quinto icono activa/desactiva los valores enterosde la región factible. La optimización también esentera si este comando se encuentra activado.

34

EL METODO SIMPLEXEste método elaborado por George Dantzig, se utilizapara hallar la solución óptima de un PPL, asumiendoque su dominio admisible es un conjunto convexo ycompacto. Desarrollaremos el método para modelos demaximización y minimización. En la actualidad todos lossoftware comerciales utilizan éste método.

Programación Lineal

18

35

Programación Lineal

Caso: Maximización1) Dado un PPL de maximización transformarlo,

mediante las reglas de equivalencia a su formacanónica:

cXZMax =

bAX≤

0X ≥

sujeto a

36

2) Expresar el PPL del paso 1 a la forma estándar demaximización mediante la aplicación de la regla 4 delas reglas de equivalencia:

Programación Lineal

sujeto ann2211 xcxcxcZMax +++= L

11nn1n212111 bxxaxaxa =++++ +L

22nn2n222121 bxxaxaxa =++++ +L

Mmmnnmn2m21m1 bxxaxaxa =++++ +L

i0xi ∀≥

19

37

Programación Lineal

El vector de las variables de holgura (xn+1, xn+2,...,xn+m) se convierte en la primera base del PPL,tomando como valores el vector de recursos .

38

3) Escribir la función objetivo en la forma:

Programación Lineal

o en forma similar:

0cXZ =−

0xcxcxcZ nn2211 =−−−− L

20

39

4) Construir la tabla inicial con los coeficientes delproblema estándar obtenido en los pasos 2 y3, estatabla tiene la siguiente estructura:

Programación Lineal

Z x1 x2 xn xn+1 xn+2 xn+m Sol.

Z 1 -c1 -c2 -cn 0 0 0 0

xn+1 0 a11 a12 a1n 1 0 0 b1

xn+2 0 a21 a22 a2n 0 1 0 b2

xn+m 0 am1 am2 amn 0 0 1 bm

Θ

40

Programación Lineal

21

41

5) Condición de optimalidad

Seleccione como variable de entrada a la base,aquella variable no básica que tenga el coeficientezj-cj con valor más negativo.

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 -1 -2 0 -5 0 0 0

x3 0

x5 0

x6 0

Θ

Ejemplo

42

El zj-cj con valor más negativo corresponde a x4,entonces la variable que debe ingresar a la base esx4.

Si hay empate entre 2 o más variables no básicaspara ingresar a la base, elija arbitrariamentecualquiera de ellas.

Si todos los coeficientes zj-cj son no negativos, lasolución óptima ha sido hallada.

Programación Lineal

22

43

6) Condición de factibilidad

Seleccione como variable de salida de la base,aquella variable básica que le corresponde elcociente más pequeño de los que resultan de dividirlos valores actuales de las variables básicas, con loscoeficientes estrictamente positivos de la matriz decoeficientes tecnológicos correspondientes a lavariable que ingresa.

Programación Lineal

44

Ejemplo

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 -1 -2 0 -5 0 0 0

x3 0 5 15 3

x5 0 0 14

x6 0 2 8 4

Θ

{ } 343,min28,

515minθ ==

⎭⎬⎫

⎩⎨⎧=

23

45

El menor cociente corresponde a la variable x3,entonces la variable que debe salir de la base es x3.

Si hay empate en los cocientes entre 2 o masvariables básicas aplique las reglas lexicográficas.

Programación Lineal

46

7) Construcción de la nueva tabla Simplex

La intersección de la columna que corresponde a lavariable que debe ingresar con la fila quecorresponde a la variable que debe salir determinaun elemento que se conoce como pivot.Mediante operaciones elementales construir la nuevatabla Simplex, donde se verifique que la variable queingresa a la base le corresponde un vector unitario yun valor zj-cj igual a cero.

El valor 1 de este vector unitario se encuentra en laubicación del pivot.

Programación Lineal

24

47

Las operaciones que se utilizan son:

La nueva fila pivot se obtiene dividiendo cada valorde la fila pivot entre el valor pivot.

Programación Lineal

48

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 -3 -2 -5 0 0 0 0

x4 0 1 430 430

x5 0 3 0 2 0 1 0 460 230

x6 0 0 420

Z 1 0 0 0

x4 0 0

x3 5 1.5 0 1 0 0.5 0 230

x6 0 0

Θ

25

49

Las restantes filas se obtienen de la siguiente forma:

Restar a cada valor de una fila no pivot el productode su correspondiente valor en la columna pivot porsu correspondiente valor columna en la nueva filapivot.

Programación Lineal

50

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 -3 -2 -5 0 0 0 0

x4 0 1 1 430 430

x5 0 3 0 2 0 1 0 460 230

x6 0 0 420

1 - 1 x 1.5 = -0.5

Z 1 0 0 0

x4 0 -0.5 0

x3 5 1.5 0 1 0 0.5 0 230

x6 0 0

Θ

26

51

Una vez completa la nueva tabla regresar al paso 5.

Programación Lineal

52

Programación Lineal

321 5x2x3xZMax ++=

430x2xx 321 ≤++

4602x3x 31 ≤++

4204xx 21 ≤+

0x0,x0,x 321 ≥≥≥

Ejemplo.-Utilizando el método Simplex resolver:

sujeto a

27

53

Programación Lineal

321 5x2x3xZMax ++=

430xx2xx 4321 =+++

460x2x3x 531 =+++

420x4xx 621 =++

0x0,x0,x0,x0,x0,x 654321 ≥≥≥≥≥≥

determinando la forma estándar del PPL

sujeto a

54

Programación Lineal

05x2x3xZ 321 =−−−

cambiando la función objetivo a la forma

28

55

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 -3 -2 -5 0 0 0 0

x4 0 1 2 1 1 0 0 430 430

x5 0 3 0 2 0 1 0 460 230

x6 0 1 4 0 0 0 1 420

Θ

Construyendo el tablero inicial se tiene:

Se observa que la variable que debe ingresar a la basees x3 y la variable que debe salir de la base es x5. Elvalor pivot es 2. La solución actual es Z = 0.

56

Programación Lineal

Z 1 4.5 -2 0 0 2.5 0 1150

x4 0 -0.5 2 0 1 -0.5 0 200 100

x3 5 1.5 0 1 0 0.5 0 230

x6 0 1 4 0 0 0 1 420 105

Se observa que la variable que debe ingresar a la basees x2 y la variable que debe salir de la base es x4. Elvalor pivot es 2. La solución actual es Z = 1150.

realizando las correspondientes operacionesmatriciales, se obtiene:

29

57

Programación Lineal

Z 1 4 0 0 1 2 0 1350

x2 2 -0.25 1 0 0.5 -0.25 0 100

x3 5 1.5 0 1 0 0.5 0 230

x6 0 2 0 0 -2 1 1 20

Se observa que no hay variable candidata paraingresar, por lo tanto se ha llegado a la solución óptima.

Realizando, nuevamente, las correspondientesoperaciones matriciales, se obtiene:

58

Programación Lineal

La solución óptima resulta:

0x1 = 100x2 =

230x3 = 0x4 =

0x5 = 20x6 =

1350Z =

30

59

Programación Lineal

Caso: Minimización1) Dado un PPL de minimización transformarlo,

mediante las reglas de equivalencia a su formacanónica:

cXZMin =

bAX≤

0X ≥

sujeto a

60

2) Expresar el PPL del paso 1 a la forma estándar deminimización mediante la aplicación de la regla 4 delas reglas de equivalencia:

Programación Lineal

sujeto ann2211 xcxcxcZMin +++= L

11nn1n212111 bxxaxaxa =++++ +L

22nn2n222121 bxxaxaxa =++++ +L

Mmmnnmn2m21m1 bxxaxaxa =++++ +L

i0xi ∀≥

31

61

Programación Lineal

El vector de las variables de holgura (xn+1, xn+2,...,xn+m) se convierte en la primera base del PPL,tomando como valores el vector de recursos .

62

3) Escribir la función objetivo en la forma:

Programación Lineal

o en forma similar:

0cXZ =−

0xcxcxcZ nn2211 =−−−− L

32

63

4) Construir la tabla inicial con los coeficientes delproblema estándar obtenido en los pasos 2 y3, estatabla tiene la siguiente estructura:

Programación Lineal

Z x1 x2 xn xn+1 xn+2 xn+m Sol.

Z 1 -c1 -c2 -cn 0 0 0 0

xn+1 0 a11 a12 a1n 1 0 0 b1

xn+2 0 a21 a22 a2n 0 1 0 b2

xn+m 0 am1 am2 amn 0 0 1 bm

Θ

64

5) Condición de optimalidad

Seleccione como variable de entrada a la base,aquella variable no básica que tenga el coeficientezj-cj con valor más positivo.

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 2 6 0 3 0 0 0

x3 0

x5 0

x6 0

Θ

Ejemplo

33

65

El zj-cj con valor más positivo corresponde a x2,entonces la variable que debe ingresar a la base esx2.

Si hay empate entre 2 o más variables no básicaspara ingresar a la base, elija arbitrariamentecualquiera de ellas.

Si todos los coeficientes zj-cj son no positivos, lasolución óptima ha sido hallada.

Programación Lineal

66

6) Condición de factibilidad

Seleccione como variable de salida de la base,aquella variable básica que le corresponde elcociente más pequeño de los que resultan de dividirlos valores actuales de las variables básicas, con loscoeficientes estrictamente positivos de la matriz decoeficientes tecnológicos correspondientes a lavariable que ingresa.

Programación Lineal

34

67

Ejemplo

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 2 6 0 3 0 0 0

x3 0 4 16 4

x5 0 5 15 3

x6 0 1 8 8

Θ

{ } 383,4,min18,

515,

416minθ ==

⎭⎬⎫

⎩⎨⎧=

68

El menor cociente corresponde a la variable x5,entonces la variable que debe salir de la base es x5.

Si hay empate en los cocientes entre 2 o masvariables básicas aplique las reglas lexicográficas.

Programación Lineal

35

69

7) Construcción de la nueva tabla Simplex

La intersección de la columna que corresponde a lavariable que debe ingresar con la fila quecorresponde a la variable que debe salir determinaun elemento que se conoce como pívot.Mediante operaciones elementales construir la nuevatabla Simplex, donde se verifique que la variable queingresa a la base le corresponde un vector unitario yun valor zj-cj igual a cero.

El valor 1 de este vector unitario se encuentra en laubicación del pívot.

Programación Lineal

70

Las operaciones que se utilizan son:

La nueva fila pívot se obtiene dividiendo cada valorde la fila pívot entre el valor pívot.

Programación Lineal

36

71

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 3 2 5 0 0 0 0

x4 0 1 430 430

x5 0 3 0 2 0 1 0 460 230

x6 0 0 420

Z 1 0 0 0

x4 0 0

x3 5 1.5 0 1 0 0.5 0 230

x6 0 0

Θ

72

Las restantes filas se obtienen de la siguiente forma:

Restar a cada valor de una fila no pívot el productode su correspondiente valor en la columna pívot porsu correspondiente valor columna en la nueva filapívot.

Programación Lineal

37

73

Programación Lineal

Z x1 x2 x3 x4 x5 x6 Sol.

Z 1 3 2 5 0 0 0 0

x4 0 1 1 430 430

x5 0 3 0 2 0 1 0 460 230

x6 0 0 420

1 - 1 x 1.5 = -0.5

Z 1 0 0 0

x4 0 -0.5 0

x3 5 1.5 0 1 0 0.5 0 230

x6 0 0

Θ

74

Una vez completa la nueva tabla regresar al paso 5.

Programación Lineal

38

75

Programación Lineal

21 2xxZMin −=

2xx- 21 ≤+

5xx 21 ≤+

0x0,x 21 ≥≥

Ejemplo.-Utilizando el método Simplex resolver:

sujeto a

76

Programación Lineal

21 2xxZMin −=

2xxx- 321 =++

5xxx 421 =++

0x0,x0,x0,x 4321 ≥≥≥≥

determinando la forma estándar del PPL

sujeto a

39

77

Programación Lineal

02xxZ 21 =+−

cambiando la función objetivo a la forma

78

Programación Lineal

Construyendo el tablero inicial se tiene:

Se observa que la variable que debe ingresar a la basees x2 y la variable que debe salir de la base es x3. Elvalor pivot es 1. La solución actual es Z = 0.

Z x1 x2 x3 x4 Sol.

Z 1 -1 2 0 0 0

x3 0 -1 1 1 0 2 2

x4 0 1 1 0 1 5 5

Θ

40

79

Programación Lineal

Se observa que la variable que debe ingresar a la basees x1 y la variable que debe salir de la base es x4. Elvalor pivot es 2. La solución actual es Z = -4.

realizando las correspondientes operacionesmatriciales, se obtiene:

Z 1 1 0 -2 0 -4

x2 -2 -1 1 1 0 2

x4 0 2 0 -1 1 4

80

Programación Lineal

Se observa que no hay variable candidata paraingresar, por lo tanto se ha llegado a la solución óptima.

Realizando, nuevamente, las correspondientesoperaciones matriciales, se obtiene:

Z 1 0 0 -1.5 -0.5 -5.5

x2 -2 0 1 0.5 0.5 3.5

x1 1 1 0 -0.5 0.5 1.5

41

81

Programación Lineal

La solución óptima resulta:

.51x1 = 3.5x2 =

0x3 = 0x4 =

-5.5Z =