zoukankan      html  css  js  c++  java
  • LinGo:投资问题——线性规划

    一.根据题目所给数据,建立一张表格方便查看

      

    项目A

    项目B

    项目C

    项目D

    可投资年

    1,2,3,4

    3

    2

    1,2,3,4,5

    收回本利年

    次年年末

    第5年

    第5年

    当年年末

    本利

    1.06

    1.15

    1.20

    1.02

    最大投资金额(万)

    -

    40

    30

    -

       

       

    二.设第i年投资第j个项目 Xij

    第j个项目的本利为r

       

    三.约束条件

    1.第一年投资的金额=100万

    x(1,1) + x(1,4) = 100;

    2.往后每年的投资金额要=今年年初回收的本利和

    x(2,1) + x(2,3) + x(2,4) = x(1,4) * r(4);

    x(3,1) + x(3,2) + x(3,4) = x(1,1) * r(1) + x(2,4) * r(4);

    x(4,1) + x(4,4) = x(2,1) * r(1) + x(3,4) * r(4);

    x(5,4) = x(3,1) * r(1) + x(4,4) * r(4);

    3.第2个项目的单次投资金额要<=40万

    x(3,2) <= 40;

    4.第3个项目的单次投资金额要<=30万

    x(2,3) <= 30;

       

    四.目标函数 : 第五年末的本利和

    max = r(1) * x(4,1) + r(2) * x(3,2) + r(3) * x(2,3) + r(4) * x(5,4);

       

    五.LINGO代码

       

    sets:
        row/1..5/;
        col/1..4/ : r;
          link(row,col) : x;
    endsets
    
    data:
        r = 1.06, 1.15, 1.20, 1.02;
    enddata
    
    !@for(link(i,j) : x(i,j) = 0);
    
    !1;
    x(1,1) + x(1,4) = 100;
    
    !2;
    x(2,1) + x(2,3) + x(2,4) = x(1,4) * r(4);
    
    !3;
    x(3,1) + x(3,2) + x(3,4) = x(1,1) * r(1) + x(2,4) * r(4);
    
    !4;
    x(4,1) + x(4,4) = x(2,1) * r(1) + x(3,4) * r(4);
    
    !5;
    x(5,4) = x(3,1) * r(1) + x(4,4) * r(4);
    
    x(3,2) <= 40;
    x(2,3) <= 30;
    
    [OBJ]max = r(1) * x(4,1) + r(2) * x(3,2) + r(3) * x(2,3) + r(4) * x(5,4);

    六.LINGO运算结果

     Global optimal solution found.

    Objective value: 119.6512

    Infeasibilities: 0.000000

    Total solver iterations: 1

    Variable Value Reduced Cost

    R( 1) 1.060000 0.000000

    R( 2) 1.150000 0.000000

    R( 3) 1.200000 0.000000

    R( 4) 1.020000 0.000000

    X( 1, 1) 70.58824 0.000000

    X( 1, 2) 0.000000 0.000000

    X( 1, 3) 0.000000 0.000000

    X( 1, 4) 29.41176 0.000000

    X( 2, 1) 0.000000 0.000000

    X( 2, 2) 0.000000 0.000000

    X( 2, 3) 30.00000 0.000000

    X( 2, 4) 0.000000 0.2077600E-01

    X( 3, 1) 0.000000 0.000000

    X( 3, 2) 40.00000 0.000000

    X( 3, 3) 0.000000 0.000000

    X( 3, 4) 34.82353 0.000000

    X( 4, 1) 35.52000 0.000000

    X( 4, 2) 0.000000 0.000000

    X( 4, 3) 0.000000 0.000000

    X( 4, 4) 0.000000 0.1960000E-01

    X( 5, 1) 0.000000 0.000000

    X( 5, 2) 0.000000 0.000000

    X( 5, 3) 0.000000 0.000000

    X( 5, 4) 0.000000 0.000000

    Row Slack or Surplus Dual Price

    1 0.000000 1.146072

    2 0.000000 1.123600

    3 0.000000 1.081200

    4 0.000000 1.060000

    5 0.000000 1.020000

    6 0.000000 0.6880000E-01

    7 0.000000 0.7640000E-01

    OBJ 119.6512 1.000000

    结论:

    第一年:A:70.58824  D:29.41176

    第二年:C:30

    第三年:B:40  D:34.82353

    第四年:A:35.52

    第五年:不投资

      

    ——现在的努力是为了小时候吹过的牛B!!
  • 相关阅读:
    DirectUI的初步分析转
    win32中调用Atl控件
    win32 DirectUI控件开发与调用指南
    sqlite in qt
    Visual Studio2010中使用IE调试Atl
    silveright使用配置文件转
    Windows phone app 商店认证注意事项简要认证规范指南
    Silverlight桌面部署器及其使用
    Lua语言如何调用自己编写的C DLL 转
    使用Visual Leak Detector for Visual C++ 捕捉内存泄露
  • 原文地址:https://www.cnblogs.com/pingge/p/3264227.html
Copyright © 2011-2022 走看看