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!!
  • 相关阅读:
    hadoop之 解析HDFS的写文件流程
    Linux之 手动释放内存
    Heka 的编译
    go get 下载需要的相关工具
    峰值计算的方法
    thrift简介
    Bazaar 版本控制工具
    Homebrew
    虚拟机下centos时间不正确的方便解决方法
    golang 应用的部署相关技术
  • 原文地址:https://www.cnblogs.com/pingge/p/3264227.html
Copyright © 2011-2022 走看看