Post on 08-Jul-2015
transcript
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 =