• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Unmsm   fisi - programación lineal 2 - io1 cl04
 

Unmsm fisi - programación lineal 2 - io1 cl04

on

  • 734 views

 

Statistics

Views

Total Views
734
Views on SlideShare
734
Embed Views
0

Actions

Likes
0
Downloads
15
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 1 Programación Lineal (2) Docente : Gabriel Solari Carbajal Universidad Nacional Mayor de San Marcos Facultad de Ingeniería de Sistemas e Informática Investigación Operativa I 2 SOLUCION DE PROBLEMAS DE PROGRAMACION LINEAL Programación Lineal
    • 2 3 METODO GRAFICO PARA LA RESOLUCION DE UN PPL.- Programación Lineal Introducción.- El método gráfico se utiliza para resolver Problemas de Programación Lineal (PPL) de dos variables, y con cierta dificultad, de tres variables. Para mayor número de variables no es posible la representación gráfica. Su estudio es importante porque permite la definición de nuevos conceptos. 4 GRÁFICA DE UNA RECTA.- Para graficar una recta se procede 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 5 Los puntos son: Programación Lineal Graficando x1 x2 0.0 2.5 5.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. Se procede 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 la desigualdad. Comprobar con un valor determinado como el punto (0, 0).
    • 4 7 Los puntos son: Programación Lineal x1 x2 0.0 2.5 5.0 0.0 Comprobando con el punto (0, 0): Se verifica que el punto (0, 0) pertenece a la región formada 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 determinando la región factible. La región factible es aquella que contiene a todas las soluciones que satisfacen al conjunto de restricciones. Se obtiene de la intercepción de 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 <= 10 4
    • 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 4 4x1 + 3x2 <= 10 Región factible 14 GRÁFICA DE LA FUNCION OBJETIVO.- Se asigna un valor, seleccionado convenientemente, a la función objetivo y se grafica como una recta. Se asigna un segundo valora la función objetivo y se grafica 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 seleccionados arbitrariamente. 16 Programación Lineal 1 2 3 4 5 1 2 3 x1 x2 4 Z=10 Z=20 hacia este sentido se maximiza Z rectas de nivel valor de la función objetivo
    • 9 17 SOLUCION OPTIMA DE UN PPL.- Corresponde al valor óptimo de la función objetivo al recorrer la región factible. Se seleccionará aquella recta paralela que determine el valor óptimo de Z sobre la regió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 de contacto (la solución óptima) de la función objetivo sobre 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 Jeffrey Moore, Ph.D., de la Universidad de Stanford. e-mail: fmoore@gsb.stanford.edu. GLP se utiliza para graficar la región factible de un conjunto 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, el máximo y mínimo valor de la aplicación de la función objetivo 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 que corresponden con los ejes X e Y, en las cajas de dialogo 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 >) no son validas. Es posible colocar una etiqueta para identificar una restricción. Ejemplo: Horas hombre: 5.0X + 1.0Y <= 3.0 Se pueden realizar cambios discretos de los recursos de cada restricción presionando +/- 26 Programación Lineal 3) Ingreso de la función objetivo (PAYOFF) .- En el casillero etiquetado PAYOFF ingresar la función objetivo. Evaluar la ecuación de la función objetivo a algún valor. No se permiten desigualdades.
    • 14 27 Programación Lineal 4) Mover las restricciones y función objetivo con el mouse.- Para mover una restricción o función objetivo, paralelamente, colocar el puntero del mouse sobre la restricción o función objetivo a mover, y manteniendo presionado el botón izquierdo del mouse colocarla en su nueva posición. Puede cambiar la orientación (pendiente) de la función objetivo colocando el puntero del mouse sobre la función objetivo, y manteniendo presionado el botón derecho del mouse rotarla a su nueva posición. 28 Programación Lineal 5) Visualización de la región factible.- Se puede aumentar o disminuir el tamaño de la gráfica utilizando los controles Zoom. Por defecto se encuentra en valor 6. Puede utilizar el icono AutoZomm para obtener el tamaño mas grande de la región factible que permite 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 decimales utilizando 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 X e Y, utilizando los casilleros respectivos:
    • 16 31 Programación Lineal 8) Solución optima.- El icono AutoMax/AutoMin permite encontrar automáticamente el valor optimo máximo y mínimo de aplicar la función objetivo a la región factible formada. El valor optimo es presentado en el casillero de la función objetivo (PAYOFF) 32 Programación Lineal 9) Otras opciones .- El primer icono recorta/repone el exceso de las líneas que sobrepasan la región factible. El segundo icono muestra/oculta la descripción de las restricciones. El tercer icono pinta la región factible de un color seleccionado por el analista. Otro clic sobre este icono 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 enteros de la región factible. La optimización también es entera si este comando se encuentra activado. 34 EL METODO SIMPLEX Este método elaborado por George Dantzig, se utiliza para hallar la solución óptima de un PPL, asumiendo que su dominio admisible es un conjunto convexo y compacto. Desarrollaremos el método para modelos de maximización y minimización. En la actualidad todos los software comerciales utilizan éste método. Programación Lineal
    • 18 35 Programación Lineal Caso: Maximización 1) Dado un PPL de maximización transformarlo, mediante las reglas de equivalencia a su forma canónica: cXZMax = bAX≤ 0X ≥ sujeto a 36 2) Expresar el PPL del paso 1 a la forma estándar de maximización mediante la aplicación de la regla 4 de las reglas de equivalencia: Programación Lineal sujeto a nn2211 xcxcxcZMax +++= L 11nn1n212111 bxxaxaxa =++++ +L 22nn2n222121 bxxaxaxa =++++ +L M mmnnmn2m21m1 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 del problema estándar obtenido en los pasos 2 y3, esta tabla 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 coeficiente zj-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 es x4. Si hay empate entre 2 o más variables no básicas para ingresar a la base, elija arbitrariamente cualquiera de ellas. Si todos los coeficientes zj-cj son no negativos, la solució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 el cociente más pequeño de los que resultan de dividir los valores actuales de las variables básicas, con los coeficientes estrictamente positivos de la matriz de coeficientes tecnológicos correspondientes a la variable 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,min 2 8 , 5 15 minθ == ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ =
    • 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 mas variables 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 la variable que debe ingresar con la fila que corresponde a la variable que debe salir determina un elemento que se conoce como pivot. Mediante operaciones elementales construir la nueva tabla Simplex, donde se verifique que la variable que ingresa a la base le corresponde un vector unitario y un valor zj-cj igual a cero. El valor 1 de este vector unitario se encuentra en la ubicación del pivot. Programación Lineal
    • 24 47 Las operaciones que se utilizan son: La nueva fila pivot se obtiene dividiendo cada valor de 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 producto de su correspondiente valor en la columna pivot por su correspondiente valor columna en la nueva fila pivot. 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 base es x3 y la variable que debe salir de la base es x5. El valor 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 base es x2 y la variable que debe salir de la base es x4. El valor pivot es 2. La solución actual es Z = 1150. realizando las correspondientes operaciones matriciales, 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 para ingresar, por lo tanto se ha llegado a la solución óptima. Realizando, nuevamente, las correspondientes operaciones 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ón 1) Dado un PPL de minimización transformarlo, mediante las reglas de equivalencia a su forma canónica: cXZMin = bAX≤ 0X ≥ sujeto a 60 2) Expresar el PPL del paso 1 a la forma estándar de minimización mediante la aplicación de la regla 4 de las reglas de equivalencia: Programación Lineal sujeto a nn2211 xcxcxcZMin +++= L 11nn1n212111 bxxaxaxa =++++ +L 22nn2n222121 bxxaxaxa =++++ +L M mmnnmn2m21m1 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 del problema estándar obtenido en los pasos 2 y3, esta tabla 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 coeficiente zj-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 es x2. Si hay empate entre 2 o más variables no básicas para ingresar a la base, elija arbitrariamente cualquiera de ellas. Si todos los coeficientes zj-cj son no positivos, la solució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 el cociente más pequeño de los que resultan de dividir los valores actuales de las variables básicas, con los coeficientes estrictamente positivos de la matriz de coeficientes tecnológicos correspondientes a la variable 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,min 1 8 , 5 15 , 4 16 minθ == ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ = 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 mas variables 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 la variable que debe ingresar con la fila que corresponde a la variable que debe salir determina un elemento que se conoce como pívot. Mediante operaciones elementales construir la nueva tabla Simplex, donde se verifique que la variable que ingresa a la base le corresponde un vector unitario y un valor zj-cj igual a cero. El valor 1 de este vector unitario se encuentra en la ubicación del pívot. Programación Lineal 70 Las operaciones que se utilizan son: La nueva fila pívot se obtiene dividiendo cada valor de 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 producto de su correspondiente valor en la columna pívot por su correspondiente valor columna en la nueva fila pí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 base es x2 y la variable que debe salir de la base es x3. El valor 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 base es x1 y la variable que debe salir de la base es x4. El valor pivot es 2. La solución actual es Z = -4. realizando las correspondientes operaciones matriciales, 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 para ingresar, por lo tanto se ha llegado a la solución óptima. Realizando, nuevamente, las correspondientes operaciones 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 =