美文网首页
线性规划实战—连续投资问题

线性规划实战—连续投资问题

作者: PrivateEye_zzy | 来源:发表于2018-10-12 17:11 被阅读0次

    本章涉及知识点:

    1、前言

    2、案例问题的提出

    3、决策变量的定义

    4、基本情景的假设

    5、约束条件的翻译

    6、目标函数的建立

    7、数学模型的归纳

    8、python编程求解模型

    9、案例结果分析

    10、心得体会

    一、前言

    继写完线性规划的数学算法和实战的两篇文章后—《线性规划的算法分析》《线性规划实战—投资的收益和风险》,我们可以看到,一个经济、管理的问题凡是满足以下条件,就可以建立线性规划的模型

    (1)现实问题的目标(价值)函数可以用一次多项式来表达,即为线性函数

    (2)目标函数的可行解(方案)在其凸集上存在多种组合解

    (3)目标的量化均满足约束条件,且这些约束条件可以用线性等式或不等式来描述

    下面我们继续分析一个连续投资的场景

    二、案例问题的提出

    考虑下列投资项目:

    项目A:在第1~4年每年年初可以投资,并于次年年末收回本利115%;

    项目B:第3年年初可以投资,一直到第5年年末能收回本利125%,且规定最大投资额不超过4万元;

    项目C:第2年年初可以投资,一直到第5年年末能收回本利140%,且规定最大投资额不超过3万元;

    项目D:5年内每一年年初均可以购买公债,并于当年年末归还本金,并加获得利息6%。

    如果你有10万元本金,求确定一个有效的投资方案,使得第5年年末你拥有的资金的本利总额最大?

    三、决策变量的定义

    分析场景里存在时间轴,即存在两种类型的变量

    (1)每年(时间点)均有至少一种投资项目选择,则选择的数量为第一类变量

    (2)每个投资项目投资的资金数目为第二类变量

    由于线性规划适合处理静态问题,为此我们将时间轴维度拉平,定义决策变量为

    决策变量的定义

    其分别表示第i年给项目A、B、C、D的投资数额,总共有4*5=20个互相独立的决策变量,则根据场景的投资规则,我们可以列出翻译出下列二维表

    投资规则

    上述表可以按行方向翻译为:该项目在5年内的投资情况;按列方向翻译为:该年内选择投资的项目组合和额度

    四、基本情景的假设

    (1)由于每个项目均是年初方可投资,则假设每年的投资和收益都是连续的

    (2)每次投资,都应该把可能收益的本利全部投出去,即手中不应当有剩余的呆滞资金

    (3)每种投资项目之间是互相独立的

    (4)每种投资项目的收益为定值,不受其他因素的干扰

    (5)投资的额度可以是任意自然数,不一定是整万元

    五、约束条件的翻译

    基于决策变量的意义和模型场景的假设,我们来翻译题目场景的约束条件集合

    第1年年初:

    还未开始投资,本金为100000元,只有项目A和项目D可以选择,则第1年的资金分配为

    第1年年初投资

    第2年年初:

    由于项目A第1年的收益要到第2年年末才能收回,而项目D第1年的收益在第1年年末就可以收回,则第2年年初拥有的投资金额 = 项目D第1年的投资在第1年年末的本息,则第2年的资金分配为

    第2年年初投资

    第3年年初:

    由于项目C第2年的收益要到第5年年末才能收回,即第2年年初拥有的投资金额 = 项目A第1年的投资在第2年年末的本息+项目D第2年的投资在第2年年末的本息,则第3年的资金分配为

    第3年年初投资

    第4年年初:

    由于项目B第3年的收益要到第5年年末才能收回,即第3年年初拥有的投资金额  = 项目A第2年的投资在第3年年末的本息+项目D第3年的投资在第3年年末的本息,则第4年的资金分配为

    第4年年初投资

    第5年年初:

    第5年年初拥有的投资金额  = 项目A第3年的投资在第4年年末的本息+项目D第4年的投资在第4年年末的本息,则第4年的资金分配为

    第5年年初投资

    上述条件均满足我们基本情景的假设的第2条—每次投资,都应该把可能收益的本利全部投出去,即手中不应当有剩余的呆滞资金,即5个线性等式约束

    此外,由于题目场景里对项目B、C的投资金额有限制,我们用不等式线性约束来表示,即

    不等式线性约束

    至此我们就将场景的约束条件集翻译为:5个等式约束和2个不等式线性约束

    六、目标函数的建立

    我们的目标是求在第5年年末可以拥有最大的本利,则与第5年年末资金收益有关的决策变量为:

    第5年年末资金收益有关的决策变量

    则目标函数可以线性表示为

    目标函数

    七、数学模型的归纳

    经过上述的分析,我们将动态的时间轴投资问题,通过建立20个互相独立的决策变量,拉伸为静态的投资问题,然后通过约束条件的线性等式和不等式,以及目标函数,则归纳整合的数学模型为

    数学模型

    八、python编程求解模型

    我们根据上述建立的数学模型,化为标准型

    标准型

    用我们之前实现的单纯形算法来求解,具体算法之前文章已经详细说明,我们这里直接写业务代码即可

    案例业务代码

    九、案例结果分析

    程序运行计算结果为:

    程序运行计算结果

    即求出的最优投资方案为:

    第1年年初投资组合:项目A:7.1698万元,项目B:0.0万元,项目C:0.0万元,项目D:2.8302万元,该年总投入:10.0万元

    第2年年初投资组合:项目A:0.0万元,项目B:0.0万元,项目C:3.0万元,项目D:0.0万元,该年总投入:3.0万元

    第3年年初投资组合:项目A:4.2453万元,项目B:4.0万元,项目C:0.0万元,项目D:0.0万元,该年总投入:8.2453万元

    第4年年初投资组合:项目A:0.0万元,项目B:0.0万元,项目C:0.0万元,项目D:0.0万元,该年总投入:0.0万元

    第5年年初投资组合:项目A:0.0万元,项目B:0.0万元,项目C:0.0万元,项目D:4.8821万元,该年总投入:4.8821万元

    第5年年末总收入本金+利息为:14.375万元,总赢利:43.75%

    10、心得体会

    这一章我们仍然通过一个实际金融场景问题,来体验金融+数学+编程的整个思维建设推导过程

    从这个案例里可以总结出:

    (1)处理带时间轴的动态问题,需要将其拉伸独立转化为静态问题

    (2)目标函数和约束条件都围绕着决策变量来设计

    (3)等式约束条件需要填充不等式约束条件的松弛变量(单纯形算法的注意点)

    案例代码见:线性规划实战—连续投资问题

    相关文章

      网友评论

          本文标题:线性规划实战—连续投资问题

          本文链接:https://www.haomeiwen.com/subject/gshgaftx.html