Click here to load reader

Practica Lingo

  • View
    96

  • Download
    0

Embed Size (px)

DESCRIPTION

Practica Lingo

Text of Practica Lingo

  • Desarrollar un modelo Lingo

    Para desarrollar un modelo de optimizacion en

    Lingo hay que especificar:

    Funcion ObjetivoMax(Min) = COSTO1 V ARIABLE1

    + COSTO2 V ARIABLE2;

    Variables: Los nombres de las variables en Lingo deben

    empezar con un caracter alfabetico, seguido de alfabeti-

    cos, numericos o , hasta un maximo de 32 caracteres.

    RestriccionesCOEF11 V AR1 = REC2;

    Comentarios: Comenzaran con el signo ad-miracion ! y terminaran con el signo de pun-

    tuacion ;

    Lingo no distingue entre letras en mayuscula o

    en minuscula.

  • Resolucion del modelo

    Para resolver el modelo, seleccionar SOLVE delcomando Lingo.

    Lingo comenzara a compilar el modelo. Si elmodelo no pasa la compilacion, aparecera unmensaje error.

    Ejemplo

    Max = 2 x+ y;x

  • Max 2x+ ys. a.

    x 33x+2y 5

    x, y 0

    que introduciendo variables de holgura, queda

    x + s1 = 3

    3x+2y + s2 = 5

    x, y, s1, s2 0

    x y s1 s2s1 1 0 1 0 3

    s2 3 2 0 1 5zj 0 0 0 0 0

    zj cj 2 1 0 0s1 0 2/3 1 1/3 4/3

    x 1 2/3 0 1/3 5/3zj 2 4/3 0 2/3 10/3

    zj cj 0 1/3 0 2/3

  • LINGO solver Status

    SOLVER STATUS

    Model Class Muestra el tipo de modelo (LP:Programacion Lineal; ILP: Programacion LinealEntera,...)

    State Muestra la situacion actual de la solu-cion (Global Opt: Optimo global; Infeasible: Nofactible; Unbounded: No acotada;...)

    Objective Valor de la funcion objetivo.

    Infeasibility Cantidad por la que no se verificanlas restricciones.

    Iterations Numero de iteraciones necesarias pa-ra su resolucion.

    VARIABLES Muestra el numero total de va-riables del modelo. Enteras y no Lineales.

    CONSTRAINTS Muestra el numero total derestricciones del modelo y cuales de ellas son nolineales.

    NONZEROS Muestra el numero de coeficien-tes no nulos en el modelo y cuales de ellos apa-recen en variables no lineales.

    GENERATOR MEMORY USED(K) Listala cantidad de memoria.

    ELAPSED RUNTIME (hh:mm:ss) Muestrael tiempo total usado para generar y resolver elmodelo.

  • Solution Report

    Esta pantalla contiene los detalles de la solucion

    del problema.

    Global optimal solution found

    Objective value: 3.333333

    Total solver iterations: 2

    Variable Value Reduced CostX 1,666667 0,0000000Y 0,0000000 0,3333334

    Row Slack or Surplus Dual Price1 3,333333 1,0000002 1,333333 0,00000003 0,0000000 0,6666667

  • Interpretar la Solucion

    Costo reducido: Indican cuanto tendra que

    mejorar cada uno de los coeficientes de la fun-

    cion objetivo antes de que la correspondiente

    variable de decision pueda tomar valor positivo

    en la solucion optima.

    Holgura o excedente: Nos dice lo proximo que

    estamos de satisfacer una restriccion. Si una

    restriccion es violada, como en una solucion in-

    factible, el valor de estas variables sera negativo.

    Precios duales: Mejora en el valor de la funcion

    objetivo por cada incremento unitario en el la-

    do derecho de una restriccion. En un problema

    de maximizar el precio dual es el mismo que el

    precio sombra. En un problema de minimizar el

    precio dual es el negativo del precio sombra.

  • Ejemplos

    Max Z = 3X1+2X2

    s.a. 2X1+X2 23X1+4X2 12

    Xi 0

    Max Z = 36X1+30X2 3X3 4X4

    s.a. X1+X2 X3 56X1+5X2 X4 10

    Xi 0

  • Ejemplo 1

    Max 3x1+2x2s. a.

    2x1+ x2 23x1+4x2 12

    x, y 0que introduciendo variables de holgura y artifi-ciales, queda

    2x1+ x2+ s1 = 2

    3x1+4x2 s2+A1 = 12x1, x2, s1, s2, A1 0

    Fase I: Max - A1

    x1 x2 s1 s2 A1s1 2 1 1 0 0 2

    A1 3 4 0 1 1 12zj 3 4 0 1 1 12

    zj cj 3 4 0 1 0x2 2 1 1 0 0 2

    A1 5 0 4 1 1 4zj 5 0 4 1 1 4

    zj cj 5 0 4 1 0

  • Ejemplo 2

    Max 36x1+30x2 3x3 4x4s. a. x1+ x2 x3 5

    6x1+5x2 x4 10x1, x2, x3, x4 0

    que introduciendo variables de holgura, queda

    x1+ x2 x3 + s1 = 56x1+5x2 x4 + s2 = 10

    x1, x2, x3, x4, s1, s2 0x1 x2 x3 x4 s1 s2

    s1 1 1 1 0 1 0 5

    s2 6 5 0 1 0 1 10zj 0 0 0 0 0 0 0

    zj cj 36 30 3 4 0 0s1 0 5/6 1 1/6 1 1/6 20/6

    x1 1 5/6 0 1/6 0 1/6 10/6zj 36 30 0 6 0 6 360/8

    zj cj 0 0 3 2 0 6x4 0 5 6 1 6 1 20

    x1 1 0 1 0 1 0 5zj 36 20 12 4 12 4 100

    zj cj 0 10 9 0 12 4

  • !PROBLEMA1;

    !Variables de decision:

    X1 = Bizcochos consumidos diariamente,

    X2 = Bolas de helado de chocolate consumidaspor da,

    X3 = Numero de botellas de refresco tomadasdiariamente,

    X4 = Porciones de Pastel de queso con pinapor da;

    !Funcion objetivo;

    MIN = 0.50X1+0.20X2+0.30X3+0.80X4;

    !Restriccion de caloras;

    400X1+200X2+150X3+500X4 >= 500;

    !Restriccion de chocolate;

    3 X1+ 2 X2 >= 6;

    !Restriccion de azucar;

    2 X1+ 2 X2+ 4 X3+ 4 X4 >= 10;

    !Restriccion de grasa;

    2 X1+ 4 X2+X3+ 5 X4 >= 8;

  • ! Problema 2;

    ! Variables de decision:

    X1 = Kilos de arroz,

    X2 = Kilos de pescado,

    X3 = Kilos de verdura;

    ! Funcion Objetivo;

    Min = 0.70 X1+ 1.20 X2+ 0.50 X3;

    ! Restriccion de caloras;

    200 X1+ 300 X2+ 100 X3 = 3;

  • !Problema 3;! Variables de decision:

    X1 = No de sesiones de destilacion con Tn,

    X2 = No de sesiones de destilacion con Ta;

    ! Funcion Objetivo;

    Max = 103 X1+ 110 X2;! Restriccion referida a la cantidad de Crudo,C1;

    7 X1+ 10 X2 = 300;

    ! Restricciones referidas a la demanda de gaso-lina super;

    5 X1+ 4 X2 = 800;

  • !Problema 4;

    ! Variables de decision:

    Xi = Numero de empleados que empiezan a

    trabajar el da i;

    !Funcion Objetivo;

    Min = X1+X2+X3+X4+X5+X6+X7;

    ! Numero de empleados requeridos para el Lu-

    nes;

    X1+X4+X5+X6+X7 >= 17;

    ! Numero de empleados requeridos para el Mar-

    tes;

    X1+X2+X5+X6+X7 >= 13;

    ! Numero de empleados requeridos para el Mierco-

    les;

    X1+X2+X3+X6+X7 >= 15;

    ! Numero de empleados requeridos para el Jue-

    ves;

    X1+X2+X3+X4+X7 >= 19;

  • ! Numero de empleados requeridos para el Vier-

    nes;

    X1+X2+X3+X4+X5 >= 14;

    ! Numero de empleados requeridos para el Saba-

    do;

    X2+X3+X4+X5+X6 >= 16;

    ! Numero de empleados requeridos para el Do-

    mingo;

    X3+X4+X5+X6+X7 >= 11;

  • !Problema 5;

    ! Variables de decision:

    X1 = Onzas de Brutte Regular vendidas anua-

    lmente, (no las producidas inicialmente)

    X2 = Onzas de Brutte Luxery vendidas anual-

    mente,(producidas)

    X3 = Onzas de Chanelle Regular vendidas anua-

    lmente, (no las producidas inicialmente)

    X4 = Onzas de Chanelle Luxery vendidas anua-

    lmente, (producidas)

    X5 = Libras de materia prima compradas;

    ! Funcion Objetivo;

    Max = 7 X1+ (18 4) X2+ 6 X3+ (144) X4 3 X5;

    ! Horas de laboratorio disponibles;

    3 X2+ 2 X4+X5

  • ! Restricciones referentes a la cantidad de pro-

    ductos disponibles para la venta;

    X1+X2 3 X5 = 0;

    !(X1+X2 = 3X5);

    X3+X4 4 X5 = 0;

    !(X3+X4 = 4X5);

    ! Limitacion de materia prima;

    X5

  • !Problema 6;

    ! Variables de decision:

    X1 = Euros invertidos en Atlantic Oil,

    X2 = Euros invertidos en Pacific Oil,

    X3 = Euros invertidos en Midwest Steel,

    X4 = Euros invertidos en Huber Steel,

    X5 = Euros invertidos en Bonos gubernamen-

    tales;

    ! Funcion Objetivo;

    Max = 0,073 X1+ 0,103 X2+ 0,064 X3+0,075 X4+ 0,045 X5;

    !Especificamos la inversion de los 100.000 eu-

    ros;

    X1+X2+X3+X4+X5

  • !Los Bonos deben ser al menos 25%;

    0,25 X3 0,25 X4+X5 >= 0;

    !(X5 0,25(X3+X4));

    !Inversion en Pacific Oil no puede ser mas del

    60%;

    0,6 X1+ 0,4 X2

  • !Problema 7;

    ! Variables de decision:

    X1 =Millones de euros invertidos en Prestamos

    personales ,

    X2 = Millones de euros invertidos en Prestamos

    para automovil,

    X3 =Millones de euros invertidos en Prestamos

    para vivienda,

    X4 =Millones de euros invertidos en Prestamos

    agrcolas,

    X5 =Millones de euros invertidos en Prestamos

    comerciales;

    ! Funcion Objetivo;

    Max = 0,026 X1+0,0509 X2+0,0864 X3+0,06875 X4+0,078 X5;

    !(0,14(0,9X1)+0,13(0,93X2)+0,12(0,97X3)+

    0,125(0,95X4)+0,1(0,98X5)0,1X10,07X20,03X3 0,05X4 0,02X5);

  • ! Fondos totales;

    X1+X2+X3+X4+X5 = 4,8;

    !(40% de12) );

    ! Prestamos para viviendas;

    0,5 X1 0,5 X2+ 0,5 X3 >= 0;

    !(X3 0,5(X1+X2+X3));

    ! Razon total de los creditos malos;

    0,06 X1+ 0,03 X2 0,01 X3+ 0,01 X40,02 X5

  • !Problema 8;

    ! Variables de decision:

    X1 = Numero de unidades para una sola familia,

    X2 = Numero de unidades para dos familias,

    X3 = Numero de unidades para tres familias,

    X4 = Numero de areas recreativas;

    ! Funcion Objetivo;

    Max = 10000 X1+ 12000 X2+ 15000 X3;

    ! Viviendas de una sola familia (Ap. 1);

    0,5 X1 0,5 X2 0,5 X3 >= 0;

    !(X1 0,5(X1+X2+X3));

    ! Uso del suelo (Ap 2, parte de 3 y texto despues

    de 4);

    2 X1+ 3 X2+ 4 X3+X4

  • ! Areas recreativas (parte de Ap. 3);

    X1 2 X2 3 X3+ 200 X4 >= 0;

    !(X4 X1+2X2+3X3200 );

    ! Capital;

    1000X1+1200X2+1400X3+800X4 >=100000;

    ! Consumo de agua;

    400 X1+ 600 X2+ 840 X3+ 450 X4

  • Analisis de sensibilidad

    Despues de resolver el problema, usamos el coman-

    do Range del menu LINGO para generar un

    informe de rangos para el modelo activo. Tal

    informe muestra en que rango se puede:

    Cambiar un coeficiente en la funcion objeti-vo sin que cambien los valores optimos de las

    variables de decision.

    Cambiar el valor de un recurso o disponibilidad(coeficiente del lado derecho de una restriccion)

    sin causar cambios en los valores optimos de

    los precios duales o de los costos reducidos (sin

    que cambien las variables basicas, es decir la

    solucion siga siendo factible, aunque si pueden

    cambiar sus valores).

    Si aparece el mensaje de error:

    Error Code 122: Range reports not possible when range

    analysis is disabled

    hay que ejecutar previamente el comando Op-

    tions del menu LINGO, y en General Solver

    seleccionar la opcion Prices and Ranges en la

    lista asociada a Dual Computations.

  • Ejemplo

    En los ejemplos en los que vayamos a solicitar

    un Range Report conviene nombrar las restric-

    ciones, incluyendo delante de ellas un nombre

    entre corchetes, para luego poder identificarlas

    facilmente.

    [FuncionObjetivo] Max = 20 A+30 C;[Restriccion1] A

  • La primera parte titulada Objective Coeffi-

    cient Ranges incluye en su primera columna

    titulada Variable la lista de variables del pro-

    blema, en la segunda Current Coefficient el

    coeficiente actual de cada variable en la funcion

    objetivo, en la tercera Allowable Increase, la

    cantidad en que se puede incrementar el coefi-

    ciente de cada variable en la funcion objetivo sin

    que cambien los valores de la solucion optima y

    la ultima Allowable Decrease, la cantidad en

    que se puede disminuir el coeficiente de cada

    variable en la funcion objetivo sin que cambien

    los valores optimos de las variables.

    En nuestro ejemplo, podemos decir que mien-

    tras el coeficiente de la variable A en la funcion

    objetivo sea mayor o igual a 15, los valores opti-

    mos de las variables no cambian. El coeficiente

    de la variable C puede variar entre 0 y 40.

  • La segunda parte titulada Right-hand Side Ran-

    ges incluye en su primera columna titulada Row

    la lista de los nombres de las restricciones del

    modelo, en la segunda Current RHS los valores

    actuales de los recursos o disponibilidades (coe-

    ficiente del lado derecho de las restricciones), y

    las siguientes Allowable Increase y Allowable

    Decrease, en cuanto los podemos incremen-

    tar o disminuir, respectivamente, sin causar un

    cambio en los valores optimos de los precios

    duales o costos reducidos.

    En nuestro ejemplo, los precios duales y los cos-

    tos reducidos permanecen constantes si el coefi-

    ciente del lado derecho de la primera restriccion

    esta entre 20 y 120, el de la segunda es mayor

    o igual que 30 y el de la tercera esta entre 60

    y 160.