zoukankan      html  css  js  c++  java
  • Lingo求解线性规划案例2——多阶段投资问题

     凯鲁嘎吉 - 博客园

    http://www.cnblogs.com/kailugaji/

    某公司现有资金30万元可用于投资,5年内有下列方案可供采纳:

      1号方案:在年初投资1元,2年后可收回1.3元;

      2号方案;在年初投资1元,3年后可收回1.45元;

      3号方案:仅在第1年年初有一次投资机会。每投资1元,4年后可收回1.65元;

     4号方案:仅在第2年年初有一次投资机会。每投资1元,4年后可收回1.7元;

      5号方案。在年初存入银行1元,下一年初可得1.1元。

      每年年初投资所得收益及银行利息也可用作安排。

    问该公司在5年内怎样使用资金,才能在第6年年初拥有最多资金?

    :设xiji号方案在第j年年初所使用的资金数。

    显然,对于3号及4号方案,仅有x31x42。此外,不考虑x15x24x25,因为其相应投资方案回收期超过我们所讨论的期限。

    我们将各年的决策变量(表中虚线起点)及其相应效益(表中虚线终点)列表。

                                         

    显然,第j年年初可使用的资金之和应等于第j年年初所引用的决策变量之和。于是,根据表所示的各种因果关系,我们不难建立如下模型:

        maxf=1.7x42+1.45x23+1.3x14+1.1x55

        s.t.  x11+x21+x31+x51=300000

               x12+x22+x42+x52=1.1x51

               x13+x23+x53=1.3x11+1.1x52

               x14+x54=1.45x21+1.3x12+1.1x53

               x55=1.65x31+1.45x22+1.3x13+1.1x54

               x1j≥O,  j=1,2,3,4

              x2j≥O,  j=1,2,3;

              x31≥0,  x42≥0,  x5i≥0,i=1,…,5

    Lingo程序:

    max=1.7*x42+1.45*x23+1.3*x14+1.1*x55;
    x11+x21+x31+x51=300000;
    x12+x22+x42+x52=1.1*x51;
    x13+x23+x53=1.1*x52+1.3*x11;
    x14+x54=1.1*x53+1.3*x12+1.45*x21;
    x55=1.1*x54+1.3*x13+1.45*x22+1.65*x31;
    end

    结果为:

    Global optimal solution found.
      Objective value:                              565500.0
      Infeasibilities:                              0.000000
      Total solver iterations:                             0
    
    
                           Variable           Value        Reduced Cost
                                X42        0.000000           0.1363636E-01
                                X23        0.000000            0.000000
                                X14        435000.0            0.000000
                                X55        0.000000            0.000000
                                X11        0.000000            0.000000
                                X21        300000.0            0.000000
                                X31        0.000000           0.7000000E-01
                                X51        0.000000            0.000000
                                X12        0.000000           0.2363636E-01
                                X22        0.000000           0.1186364
                                X52        0.000000           0.1186364
                                X13        0.000000           0.2000000E-01
                                X53        0.000000           0.2000000E-01
                                X54        0.000000           0.9000000E-01
    
                                Row    Slack or Surplus      Dual Price
                                  1        565500.0            1.000000
                                  2        0.000000            1.885000
                                  3        0.000000            1.713636
                                  4        0.000000            1.450000
                                  5        0.000000            1.300000
                                  6        0.000000            1.100000
  • 相关阅读:
    ASP.NET CORE 使用Consul实现服务治理与健康检查(2)——源码篇
    ASP.NET CORE 使用Consul实现服务治理与健康检查(1)——概念篇
    Asp.Net Core 单元测试正确姿势
    如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch
    Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
    使用VS Code 开发.NET CORE 程序指南
    .NetCore下ES查询驱动 PlainElastic .Net 升级官方驱动 Elasticsearch .Net
    重新认识 async/await 语法糖
    EF添加
    EF修改部分字段
  • 原文地址:https://www.cnblogs.com/kailugaji/p/8215308.html
Copyright © 2011-2022 走看看