凯鲁嘎吉 - 博客园

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

Lingo求解线性规划案例2——多阶段投资问题的更多相关文章

  1. Lingo求解线性规划案例4——下料问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 造纸厂接到定单,所需卷纸的宽度和长度如表 卷纸的宽度 长度 5 7 9 10000 30000 20000 工 ...

  2. Lingo求解线性规划案例1——生产计划问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 说明: Lingo版本:                            某工厂明年根据合同,每个季度末 ...

  3. Lingo求解线性规划案例3——混料问题

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/  某糖果厂用原料A.B和C按不向比率混合加工而成甲.乙.丙三种糖果(假设混合加工中不损耗原料).原料A.B.C ...

  4. 用Lingo求解线性规划问题

    第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. ...

  5. 图论中最优树问题的LINGO求解

    树:连通且不含圈的无向图称为树.常用T表示.树中的边称为树枝,树中度为1的顶点称为树叶. 生成树:若T是包含图G的全部顶点的子图,它又是树,则称T是G的生成树. 最小生成树:设T=(V,E1)是赋权图 ...

  6. matlab学习笔记之求解线性规划问题和二次型问题

    一.线性规划问题 已知目标函数和约束条件均为线性函数,求目标函数的最小值(最优值)问题. 1.求解方式:用linprog函数求解 2.linprog函数使用形式: x=linprog(f,A,b)  ...

  7. matlab 求解线性规划问题

    线性规划 LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为: minf(x):待最小化的目标函数(如果问题本 ...

  8. Python求解线性规划——PuLP使用教程

    简洁是智慧的灵魂,冗长是肤浅的藻饰.--莎士比亚<哈姆雷特> 1 PuLP 库的安装 如果您使用的是 Anaconda[1] 的话(事实上我也更推荐这样做),需要先激活你想要安装的虚拟环境 ...

  9. 单纯形求解线性规划(BZOJ1061)

    推荐一篇论文:http://wenku.baidu.com/view/ce5784754a7302768f99391d 我们设xi为第i个志愿者的招募次数,以样例为例,则不难列出如下的线性规划方程: ...

随机推荐

  1. QTimer 的使用

    QTimer(重复和单发计时器) 应用 QTimer 时,先创建一个 QTimer 类,利用 connect 将 timeout() 与对应槽函数连接,在调用 start() 函数设置定时器时间间隔, ...

  2. CLR 协变、逆变

    看书看得有点晕了,协变.逆变傻傻分不清楚. 看到泛型和委托.委托方法,发现这里面的协变和逆变不一样. 泛型的逆变和协变:如果某个返回类型可以由其基类替换,那么这个类型就是支持协变的.如果某个参数类型可 ...

  3. 4.3 explain 之 type

    一.explain 的type类型 二.类型的排序 从最好到最差依次是: system > const > eq_ref > ref > range > index &g ...

  4. markdown基础入门

    一.标题 语法:# 文字 注意:1个#号代表标题1,两个代表标题2,依次类推 # 标题1 ## 标题2 ### 标题3 #### 标题4 ##### 标题5 ###### 标题6 二.加粗,斜体 语法 ...

  5. Java马士兵高并发编程视频学习笔记(一)

    1.同一个资源,同步和非同步的方法可以同时调用 package com.dingyu; public class Y { public synchronized void m1() { System. ...

  6. 2018年,JavaScript都经历了什么?

    摘要: 对JSer来说,这是很有意思的1年. 本文灵感来自JavaScript Weekly周报,欢迎大家订阅. The State of JavaScript 2018 The State of J ...

  7. 查询文章的上下篇Sql语句

    直接开入正题 文章内容页一般都会有上一篇和下一篇的功能: 那么查询上下篇的sql语句应该怎么写呢:示例数据表:zmd_article自增主键:id当前文章id:10 肯定有人说,这简单啊id+1和id ...

  8. HTML5 常用标签整理

    <!--1.  html5 文本 --> <div> <header> <hgroup> <h1>h1</h1> <h2& ...

  9. CPU 实用工具

    系统版本:CentOS 7.4 top 17:49:04 // 当前时间 up 3:55 // 系统运行时间,格式为时:分 2 users // 当前登录用户数 load average // 三个值 ...

  10. es6 语法 (函数扩展)

    //函数参数默认值(more值后不能有参数) { function test(x,y = 'world'){ console.log('默认值',x,y); } test('hello');// he ...