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!!
  • 相关阅读:
    使用logstash配置nginx和tomcat日志统一收集到一台日志服务器
    文章
    辣和辛的区别是什么?
    prometheus和zabbix的对比
    从零搭建Prometheus监控报警系统
    Adobe Flash Professional 制作定制FLashPlayer播放器之读取配置文件(二)
    Adobe Flash Professional 制作定制FLashPlayer播放器(一)
    OSG+VS2015 测试Demo
    OSG+VS2015 入门教程---环境搭建
    button的类型?为什么button 会自动提交表单?
  • 原文地址:https://www.cnblogs.com/pingge/p/3264227.html
Copyright © 2011-2022 走看看