30 de Octubre de 2017 RESOLUCIÓN DE MODELOS DE … 09 (30-10... · 2017. 11. 2. · Programación...

53
Programación Lineal José Luis Quintero 1 30 de Octubre de 2017 Ingeniería Industrial – Ingeniería Informática Facultad de Ingeniería Universidad Católica Andrés Bello RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN LINEAL (Parte 2)

Transcript of 30 de Octubre de 2017 RESOLUCIÓN DE MODELOS DE … 09 (30-10... · 2017. 11. 2. · Programación...

  • Programación Lineal José Luis Quintero 1

    30 de Octubre de 2017

    Ingeniería Industrial – Ingeniería InformáticaFacultad de Ingeniería

    Universidad Católica Andrés Bello

    RESOLUCIÓN DE MODELOS DE

    PROGRAMACIÓN LINEAL(Parte 2)

  • Programación Lineal José Luis Quintero 2

    30 de Octubre de 2017

    Postgrado de Investigación de OperacionesFacultad de Ingeniería

    Universidad Central de Venezuela

    MECÁNICA DEL MÉTODO SIMPLEX

    Caso Sencillo

  • Programación Lineal José Luis Quintero 3

    Puntos a tratar

    1. Introducción

    2. Caso sencillo

    3. Ejemplo ilustrativo 1

    4. Ejemplo ilustrativo 2

  • Programación Lineal José Luis Quintero

    • En esta sesión se resolverá un problema de PLaplicando el Método Simplex (MS). No sejustificará la validez matemática de lasoperaciones a realizar: se explorará y semanejará la mecánica del método apelando a lalógica y al sentido común.

    • Primero se revisará el caso sencillo (cuando sedispone de una solución inicial de arranque),luego se introduce la técnica de las variablesartificiales para resolver el problema con el MS(cuando no se dispone de una solución dearranque).

    Introducción

  • Programación Lineal José Luis Quintero

    • Se trabajará los dos métodos más conocidos paraeliminar las variables artificiales: el método de lasdos fases y el de penalización.

    Introducción

  • Programación Lineal José Luis Quintero 6

    Puntos a tratar

    1. Introducción

    2. Caso sencillo

    3. Ejemplo ilustrativo 1

    4. Ejemplo ilustrativo 2

  • Programación Lineal José Luis Quintero

    • Sea un problema de PL

    min z = cT°°°°x s.a.: Ax ≤≤≤≤ b, x ≥≥≥≥ 0donde:

    – x es el vector de variables tal que xT =(x1,x2,...,xn)

    – cT es el vector de costos (c1,c2,...,cn)

    – A es la matriz tecnológica

    – b es el vector de recursos tal que bT = (b1,b2,...,bm)

    n,m2,m1,m

    n,22,21,2

    n,12,11,1

    a...aa

    ......

    a...aa

    a...aa

    Caso sencillo

  • Programación Lineal José Luis Quintero

    • El cual se expresa en forma equivalente por:

    s.a.

    • A continuación se tratará la resolución de esteproblema mediante un ejemplo del caso sencillo:cuando el vector de recursos posee componentesno negativas y todas las restricciones son de ≤≤≤≤. Si elproblema puede ser expresado así, se dispone deuna solución inicial de arranque para comenzar aiterar.

    ∑∑∑∑n

    1=jjjxc=z min m1,2,...,i para bxa

    n

    1jijj,i ====≤≤≤≤∑∑∑∑

    ====

    n1,2,...,j para 0x j ====≥≥≥≥

    Caso sencillo

  • Programación Lineal José Luis Quintero 9

    Puntos a tratar

    1. Introducción

    2. Caso sencillo

    3. Ejemplo ilustrativo 1

    4. Ejemplo ilustrativo 2

  • Programación Lineal José Luis Quintero

    s.a.:21 xx2z max ++++====

    80x38

    x2 21 ≤≤≤≤++++

    60xx3 21 ≤≤≤≤++++

    55x35

    x2 21 ≤≤≤≤++++

    0x,x 21 ≥≥≥≥

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    • Se tratará el caso de minimización sabiendo que:

    y el modelo en forma equivalente es:

    s.a.:

    ==== ∑∑∑∑∑∑∑∑

    n

    1=jjj

    n

    1=jjj xc- min xc max

    21 xx2z min −−−−−−−−====

    80x38

    x2 21 ≤≤≤≤++++

    60xx3 21 ≤≤≤≤++++

    55x35

    x2 21 ≤≤≤≤++++

    0x,x 21 ≥≥≥≥

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    • La primera etapa consiste en construir un tablero querepresente el problema, para ello:

    – Las inecuaciones del modelo deben ser todas deltipo ≤≤≤≤ y tener lado derecho no negativo. Esa es lasituación del ejemplo. Se puede dar el caso que seencuentren restricciones del tipo ≥≥≥≥ con el LDnegativo, en cuyo se multiplica por -1 la inecuacióny se logra la configuración deseada. De no ser así, elproblema no corresponde al caso sencillo que seestá estudiando y se resolverá por mecanismos quese verán luego.

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Se procede luego a llevar las inecuaciones aecuaciones. Se introduce en cada inecuación deltipo ≤≤≤≤ una nueva variable, llamada holgura. Estasvariables de holgura, que se denotan por si (i=1,2 y 3)deben ser no negativas (s por slack). Ellasabsorberán las diferencias entre los dos miembros delas inecuaciones.

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Se obtiene así el modelo equivalente:s.a.

    Para aplicar el Simplex se hará caso omiso de lasrestricciones de no negatividad, pues el método seencargará de conservar esa condición.

    21 xx2z min −−−−−−−−====

    0s

    0s

    0s

    0x

    0x

    55sx35

    x2

    60sxx3

    80sx38

    x2

    3

    2

    1

    2

    1

    321

    221

    121

    ≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥

    ====++++++++

    ====++++++++

    ====++++++++

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Se pasan todos los términos de la función objetivo almiembro izquierdo de forma tal que el coeficientede z sea la unidad:

    y se llega al sistema de 4 ecuaciones con 6incógnitas:

    0xx2z 21 ====++++++++

    55sx35

    x2

    60sxx3

    80sx38

    x2

    0xx2z

    321

    221

    121

    21

    ====++++++++

    ====++++++++

    ====++++++++

    ====++++++++

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Se construye un tablero similar al siguiente:

    – En este tablero es fácil identificar varias zonas, lascuales reflejan los elementos constitutivos del modelo:

    La zona dedicada a identificar las columnas:

    z x1 x2 s1 s2 s3 LD

    1 2 1 0 0 0 0

    0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    z x1 x2 s1 s2 s3 LD

    1 2 1 0 0 0 0

    0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    La zona correspondiente a la matriz tecnológica:

    La zona correspondiente al vector de recursos:

    z x1 x2 s1 s2 s3 LD

    1 2 1 0 0 0 0

    0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    z x1 x2 s1 s2 s3 LD

    1 2 1 0 0 0 0

    0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    La zona de los coeficientes de la función objetivo:

    La zona que corresponde al valor del objetivo:

    Las zonas del vector de recursos y del objetivo sesuelen agrupar bajo el nombre de lado derecho (LD).

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Por construcción se tiene que:•En la matriz tecnológica se identifican las columnasde una matriz identidad:

    •En la fila de la función objetivo y sobre las columnasde la identidad, hay sólo valores nulos:

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    • Los valores del vector de recursos son todos nonegativos:

    Por cumplirse estas tres propiedades, se diceque el tablero está en forma canónica (fc).

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Si una sola de estas tres propiedades no se cumple, el tablero no está en

    forma canónica.

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    • La fc tablero brinda beneficios importantes:

    – Permite leer directamente del tablero una soluciónbásica factible y el valor de la función objetivo.

    – Permite identificar si la solución actual es óptima.

    – Permite identificar las variables que pueden cambiarde valor para mejorar el objetivo.

    A continuación se revisarán esos beneficios en elejemplo actual.

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – La fc permite leer directamente del tablero una soluciónbásica factible y el valor de la función objetivo, ya que lasvariables ubicadas en las columnas de la identidad, tomanel valor del LD ubicado en la fila donde está el 1. Así setiene que s1 = 80, s2 = 60 y s3 = 55.

    z x1 x2 s1 s2 s3 LD

    1 2 1 ⇓⇓⇓⇓0 0 0 0 0 2 8/3 1⇒⇒⇒⇒ 0⇒⇒⇒⇒ 0⇒⇒⇒⇒ 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    z x1 x2 s1 s2 s3 LD

    1 2 1 0 ⇓⇓⇓⇓0 0 0 0 2 8/3 1 ⇓⇓⇓⇓0 0 80 0 3 1 0 1⇒⇒⇒⇒ 0⇒⇒⇒⇒ 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    Por tanto las variables ubicadas en las columnas restantes,toman el valor 0, así se tiene que x1 = x2 = 0.

    El valor de la función objetivo, se lee directamente en el LDcomo se indica; así se tiene que z = 0 .

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 ⇓⇓⇓⇓0 0 0 2 8/3 1 0 ⇓⇓⇓⇓0 80 0 3 1 0 1 ⇓⇓⇓⇓0 60 0 2 5/3 0 0 1⇒⇒⇒⇒ 55

    z x1 x2 s1 s2 s3 LD

    ⇓⇓⇓⇓1⇒⇒⇒⇒ 2⇒⇒⇒⇒ 1⇒⇒⇒⇒ 0⇒⇒⇒⇒ 0⇒⇒⇒⇒ 0⇒⇒⇒⇒ 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Se puede verificar en el modelo que x1 = x2 = 0, s1 = 80,s2 = 60 y s3 = 55, es una solución básica factible y ademásque z = 0. Para aclarar esta primera propiedad de la formacanónica, basta retomar el sistema de 4 ecuaciones con 6incógnitas que está representado:

    Si x1 y x2 toman el valor 0, el sistema queda entonces:

    55sx35

    x2

    60sxx3

    80sx38

    x2

    0xx2z

    321

    221

    121

    21

    ====++++++++

    ====++++++++

    ====++++++++

    ====++++++++

    55s

    60s

    80s

    0z

    3

    2

    1

    ================

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Gráficamente se puede apreciar que la soluciónactual corresponde al origen de coordenadas:

    x1

    x2

    z=0

    (0,0)

    S

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – La fc permite saber si una solución es óptima: Si los coeficientesno nulos ubicados en la fila de la función objetivo son todosnegativos, la solución actual es óptima (estamos minimizando). Eneste caso se tiene:

    por tanto esta solución no es óptima. Para verificarlo basta extraerdel tablero la expresión de z:

    es decir z = –2x1 – x2 luego, si x1 ó x2 aumentan, el valor delobjetivo mejora. Es claro que se puede buscar otra solución quemejore el valor de la función objetivo.

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    0xx2z 21 ====++++++++

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – La forma canónica permite identificar las variables que puedencambiar de valor para mejorar el objetivo: Si algún coeficientede la fila del objetivo es positivo, la solución actual puedemejorar. En este caso:

    tanto x1 como x2 mejoran el valor del objetivo, no obstante, lamejora inmediata será mayor, si se hace aumentar la variablecon el coeficiente de mayor magnitud. Recuerde que en estecaso z = –2x1 – x2 por tanto un aumento unitario x1 en produceuna mejora inmediata mayor en el valor de la función objetivoque un aumento unitario en x2 .

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – En definitiva, al construir el tablero en forma canónicadel problema, estamos ante la situación siguiente:

    y se sabe que:– La solución x = (0, 0, 80, 60, 55) es factible yarroja un valor del objetivo z = 0.– La solución x = (0, 0, 80, 60, 55) es factible masno óptima.

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Luego se procede a iterar, es decir, a buscar otro punto extremoque mejore la función objetivo. El criterio del Simplex esseleccionar aquél que, en forma inmediata, mejora la mayorcantidad. En la primera iteración de este caso, esto se logra si elvalor de x1 aumenta.

    – Para cambiar la solución actual por otra que mejore el objetivo,hacemos aparecer en la columna de x1 una columna de la matrizidentidad. Para ello acudimos al pivotamiento. Por el momento sesabe que se debe pivotear en la columna de x1. la columnasombreada deberá contener un 1 y el resto serán 0.

    z ⇓⇓⇓⇓x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 3 1 0 1 0 60 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – La pregunta obligada es: ¿en cuál fila se hará aparecer el 1?La interpretación del significado de los elementos del tableropuede ayudar:

    • Recuerde que un elemento cualquiera del vector derecursos representa, en principio, un recurso disponible.Así, los valores 80, 60 y 55, representan respectivamente,la cantidad de malta, cebada y levadura disponibles.

    • Un elemento de la matriz tecnológica representa lavariación del recurso respectivo, por una variaciónunitaria en el nivel de la variable de decisión asocia-da.Así, los valores 2, 3 y 2 sombreados en el tablero anterior,representan respectivamente, la malta, cebada ylevadura que se consumen, por cada unidad adicionalque se produzca de x1.

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – El crecimiento de x1 está entonces limitado por alguno delos cocientes:

    es decir, con la cantidad de malta disponible se puedenproducir hasta 40 unidades de x1, la cebada alcanza paraproducir hasta 20 unidades y, la levadura alcanza hastaproducir hasta 27,5 unidades. Es claro que el crecimiento dex1 está limitado al menor de estos cocientes, es decir, a 20unidades, pues de lo contrario se violaría uno o más de losotros requerimientos.

    – Esta prueba se conoce como Test de la Razón Mínima (TRM)y sirve para seleccionar la fila donde se debe pivotear ycual es la restricción (o las restricciones) que primero frenanel crecimiento de x1.

    5,272

    55 y 20

    360

    ,402

    80 ============

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    Cebada

    MaltaLevadura

    x1

    x2

    z=0 (20,0)

    (0,30)

    (0,0)

    S

    (27.5,0) (40,0)Crecimiento de x1

    El TRM solamente se efectúa sobre coeficientes positivos.El TRM garantiza la no negatividad de las variables.

    ¿Por qué?

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Con el pivotamiento se debe hacer aparecer unacolumna de la identidad, es decir, un 1 en la posiciónsombreada y 0 en cada elemento del resto de esacolumna:

    – La operación de pivotamiento es sencilla y se basa enlas operaciones elementales sobre matricesestudiadas en Álgebra Lineal.

    z ⇓⇓⇓⇓x1 x2 s1 s2 s3 LD TRM 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 80/2=40 0 3 1 0 1 0 60 ⇐⇐⇐⇐60/3=20 0 2 5/3 0 0 1 55 55/2=27,5

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – En el ejemplo se procede como sigue:• Se hace aparecer un 1 en la posición pivotal, para locual se divide toda la fila pivote entre el valor delelemento pivote:

    • Se hace aparecer un 0 en las demás filas de la columnapivote, para ello basta restar a cada una de las filas encuestión, k veces la fila pivote, siendo k el valorubicado donde se desea hacer aparecer el 0.

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 2 8/3 1 0 0 80 0 1 1/3 0 1/3 0 20 0 2 5/3 0 0 1 55

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    •Por ejemplo, para la fila de la primera restricción se leresta a esa fila 2 veces la fila pivote:

    •Para hacer aparecer el 0 de la tercera fila, se le restaa esa fila 2 veces la fila pivote:

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 0 2 1 -2/3 0 40 0 1 1/3 0 1/3 0 20 0 2 5/3 0 0 1 55

    z x1 x2 s1 s2 s3 LD 1 2 1 0 0 0 0 0 0 2 1 -2/3 0 40 0 1 1/3 0 1/3 0 20 0 0 1 0 -2/3 1 15

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    •Análogamente para la fila de la función objetivo, a lacual se le resta 2 veces la fila pivote:

    – El pivotamiento conserva la fc: en la zona de lasrestricciones se identifica una matriz identidad, en la filadel objetivo sobre las columnas de la identidad, hay sólovalores nulos y los valores del vector de recursos son todosno negativos. Por tanto se conservan los beneficios de lafc, en particular se lee una nueva solución factible x1=20,x2=0, s1=40, s2=0 y s3=15 y el valor del objetivo, dado por z= -40.

    z x1 x2 s1 s2 s3 LD 1 0 1/3 0 -2/3 0 -40 0 0 2 1 -2/3 0 40 0 1 1/3 0 1/3 0 20 0 0 1 0 -2/3 1 15

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Si se extrae el sistema de 4 ecuaciones con 6incógnitas que está representado en el tablero, setiene:

    Si x2 y s2 valen 0, el sistema queda:

    15ss32

    x

    20s31

    x31

    x

    40s32

    sx2

    40s32

    x31

    z

    322

    221

    212

    22

    ====++++−−−−

    ====++++++++

    ====−−−−++++

    −−−−====−−−−++++

    15s

    20x

    40s

    40z

    3

    1

    1

    ============

    −−−−====

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Lo que ha ocurrido al pivotear es un cambio de puntoextremo, es decir, de solución básica factible:

    x1

    x2

    z=0

    z=-40

    (20,0)

    (0,0)

    S

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Al revisar el último tablero se aprecia que la soluciónactual no es óptima, pues existe una variable decoeficiente positivo en la fila del objetivo, en este caso x2:

    – Al efectuar el TRM se tiene la posición donde pivotear:

    z x1 ⇓⇓⇓⇓ x2 s1 s2 s3 LD 1 0 1/3 0 -2/3 0 -40 0 0 2 1 -2/3 0 40 0 1 1/3 0 1/3 0 20 0 0 1 0 -2/3 1 15

    z x1 ⇓⇓⇓⇓ x2 s1 s2 s3 LD TRM 1 0 1/3 0 -2/3 0 -40 0 0 2 1 -2/3 0 40 40/2=20 0 1 1/3 0 1/3 0 20 20/(1/3)=60 0 0 1 0 -2/3 1 15 ⇐⇐⇐⇐15/1=15

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Al hacerlo se llega a:

    – De este tablero se puede leer directamente unanueva solución básica factible:

    x1 = 15, x2 = 15, s1 = 10, s2 = 0 y s3 = 0y el valor de la función objetivo vendrá dado porz = - 45. Este valor representa una mejoría respectoal anterior.

    z x1 x2 s1 s2 s3 LD 1 0 0 0 -4/9 -1/3 -45 0 0 0 1 2/3 -2 10 0 1 0 0 5/9 -1/3 15 0 0 1 0 -2/3 1 15

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Como los coeficientes de la función objetivo son todosnegativos, se ha alcanzado la solución óptima. El valordel objetivo en el problema original es z = 45,recuerde que se está minimizando y el problemaoriginal es de maximización.

    – Al extraer del tablero el sistema de 4 ecuaciones con6 incógnitas representado en él, se tiene:

    15ss32

    x

    15s31

    s95

    x

    10s2s32

    s

    45s31

    s94

    z

    322

    321

    321

    32

    ====++++−−−−

    ====−−−−++++

    ====−−−−++++

    −−−−====−−−−−−−−

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    – Si las incógnitas s2 y s3 toman el valor 0, el sistemaqueda entonces:

    y los valores de las soluciones son los que podemosleer en el tablero.

    15x

    15x

    10s

    45z

    2

    1

    1

    ============

    −−−−====

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    • Gráficamente, los cambios de soluciones que hanocurrido a lo largo del proceso se resumen así:

    x1

    x2

    z=0

    z=-40

    (20,0)

    (0,0)

    S

    z*=-45

    x*= (15,15)

    Ejemplo 1

  • Programación Lineal José Luis Quintero

    • Resumen:Si todas las restricciones de un problema de PL son del tipo ≤≤≤≤,entonces se dispone de una solución inicial que permitearrancar el Simplex. Dicho punto extremo es el origenx = (0, 0, ..., 0) del espacio de opciones generado por todaslas variables de decisión. Para resolver el problema procedade la siguiente manera:1 Asegúrese que el LD de cada restricción sea positivo yque todas las restricciones sean del tipo ≤≤≤≤. De no ser así, elproblema no corresponde al caso sencillo que estamostrabajando en esta sección.

    2 Si el problema es de maximización, transfórmelo en unode minimización mediante:

    ==== ∑∑∑∑∑∑∑∑

    n

    1=jjj

    n

    1=jjj xc- min xc max

    Resumen

  • Programación Lineal José Luis Quintero

    3 Lleve las inecuaciones a ecuaciones, para ello agregueuna variable de holgura no negativa al miembro izquierdode cada una de las restricciones del tipo ≤≤≤≤. No tome encuenta las restricciones de no negatividad (recuerde quede conservar la no negatividad se encarga el TRM).

    4 Pase todos los términos de la función objetivo a un solomiembro, de forma tal que el coeficiente de z sea launidad z - f(x) = 0.

    5 Construya un tablero de la forma:

    z x1 ... xn s1 ... sm LD 1 -c1 ... -cn 0 ... 0 0 0 a1,1 ... a1,n 1 ... 0 b1 ... ... ... ... ... ... ... ... 0 am,1 ... am,n 0 ... 1 bm

    Resumen

  • Programación Lineal José Luis Quintero

    donde:

    z: valor de la función objetivo

    x1,x2,...,xn: variables de decisión

    s1,s2,...,sm : variables de holgura introducidas

    c1,c2,...,cn: coeficientes de costo originales

    b1,b2,...,bm: recursos originales (bi≥≥≥≥ 0, i=1,2,...,m)ai,j (i= 1,2,...,m y j = 1,2,...,n): coeficientes tecnológicos

    Este tablero debe estar en forma canónica, es decir, en lazona de las restricciones se identifican las columnas de lamatriz identidad de orden m, en la fila de la funciónobjetivo, sobre las columnas de la identidad hay sólovalores nulos y los valores del LD son no negativos.

    Resumen

  • Programación Lineal José Luis Quintero

    6 Si la solución que se lee en el tablero es óptima, detenga elproceso. La solución óptima se identifica cuando loscoeficientes no nulos de la función objetivo son todosnegativos (estamos en el caso de minimización). Si setrataba originalmente de un problema de maximizaciónrecuerde cambiar el signo del valor del objetivo.

    7 Si la solución actual no es óptima:• Determine la columna pivote escogiendo la columna dela variable cuyo coeficiente en la función objetivo sea elmayor elemento positivo. Sea xj la variable asociada a lacolumna seleccionada.

    • Determine la fila pivote, para lo cual efectúe el Test de laRazón Mínima. El TRM se efectúa dividiendo el valor decada recurso bi entre los coeficientes positivos de lacolumna pivote de xj . La fila pivote será la que arroje larazón mínima.

    Resumen

  • Programación Lineal José Luis Quintero

    • En caso de empate de dos o más filas en el TRM,escoja como fila pivote cualquiera de las queresultaren empatadas.

    • Si no se puede efectuar el TRM, porque los coeficientesque hacen de divisores son no positivos, se tiene unasolución ilimitada, en cuyo caso detenga el procesoindicando esta situación.

    8 Efectúe el pivotamiento y vaya al paso 6.

    Resumen

  • Programación Lineal José Luis Quintero 49

    Puntos a tratar

    1. Introducción

    2. Caso sencillo

    3. Ejemplo ilustrativo 1

    4. Ejemplo ilustrativo 2

  • Programación Lineal José Luis Quintero

    • El caso de solución ilimitada:

    s.a.:

    que al llevarlo al formato de minimización queda:

    s.a.:

    21 xx2z max ++++====

    2xx 21 ≤≤≤≤++++−−−−

    27

    xx41

    21 ≤≤≤≤++++−−−−

    0x,x 21 ≥≥≥≥

    21 xx2z min −−−−−−−−====

    2xx 21 ≤≤≤≤++++−−−−

    27

    xx41

    21 ≤≤≤≤++++−−−−

    0x,x 21 ≥≥≥≥

    Ejemplo 2

  • Programación Lineal José Luis Quintero

    � El tablero correspondiente es:

    �No se puede realizar el TRM en la columna de x1 (lavariable candidata a aumentar de valor) pues lasentradas correspondientes son negativas. De acuerdo ala interpretación dada a los coeficientes tecnológicos,ello implica que un aumento unitario de x1 produce losrecursos asociados en vez de consumirlos, luego ningúnrecurso es limitante para el mejoramiento del objetivo.

    � Se trata pues de un caso de solución ilimitada, es decir,el objetivo mejorará tanto como se quiera z = ∞∞∞∞.

    z ⇓⇓⇓⇓x1 x2 s1 s2 LD

    1 2 1 0 0 0

    0 -1 1 1 0 2 0 -1/4 1 0 1 7/2

    Ejemplo 2

  • Programación Lineal José Luis Quintero

    �Gráficamente puede observarse que nada detiene elaumento de x1, luego el objetivo, por este solo conceptoz →→→→ ∞∞∞∞ mientras x1 →→→→ ∞∞∞∞ :

    Dirección de aumento

    irresticto de la función objetivo

    x1

    x2

    (0,0)

    z=0

    S

    z=2x1

    Ejemplo 2

  • Programación Lineal José Luis Quintero 53

    Pensamiento de hoy

    “La experiencia es directamenteproporcional al número deerrores cometidos”

    Murphy