投资问题

  • 问题
  • 解析
    • 递推公式
    • 证明满足优化原则
      • 证明(反证法):
  • 设计
  • 分析
  • 源代码

问题

  • 一般性描述:
    设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,…,n
    问:如何分配这m元钱,使得投资的总效益最高?
  • 组合优化问题:
    假设分配给第i个项目的钱数是Xi,问题描述为:
    目标函数 max{f1(x1)+f2(x2)+…+fn(xn)}
    约束条件 x1+x2+…+xn=m,xi∈N
    实例:
投资x万元 效益f1(x)万元 f2(x) f3(x) f4(x)
0 0 0 0 0
1 11 0 2 20
2 12 5 10 21
3 13 10 30 22
4 14 15 32 23
5 15 20 40 24

解析

递推公式

设Fk(x)表示x万元投给前k个项目的最大效益,k=1,2,…,n,x=1,2,…,m

说明:第k步,前后共分配x万元

  • 分配给第k个项目为xk;
  • x-xk万元,分配给前k-1个项目

证明满足优化原则

优化原则:一个最优决策序列任何子序列本身一定是相对于子序列的初始结束状态的最优决策序列。

已知:这个序列L1是最优决策序列

那么:这个序列任何子序列本身一定是相对于子序列的初始结束状态的最优决策序列。

证明(反证法):

  • 模板:

  • 实例:

如L=f1(x1)+f2(x2)+f3(x3)+f4(x4)+f5(x5)
L1=f1(x1)+f2(x2)+f3(x31)+f4(x4)+f5(x5)
s1=f2(x2)+f3(x31)+f4(x4)
s2=f2(x2)+f3(x32)+f4(x4)
L2=f1(x1)+f2(x2)+f3(x32)+f4(x4)+f5(x5)

其中L中x3可取x32和x32,当取x31时,L的最大值为L1

设计

递推方程:

边界方程:

xi(x)=k:新加第i项时,总共分配x元时,第i项分配了k元(xk)

for k=1,2,3,...,nfor x=1,2,3,...,mfor xk=0,1,2,3,...,x

实例:

x2(1)=0表示在总共分配1万元时,取得最大效益11万元时分配给第二个项目的钱数是0


完成如下表格:

分析

源代码

GitHub源代码

实验7 算法讲义7.3投资问题相关推荐

  1. Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查

    1.使用二分搜索算法查找任意N个有序数列中的指定元素. 2.通过上机实验进行算法实现. 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告. 4.至少使用两种方法进行编程,直接查找/递归 ...

  2. Python 算法设计与分析 投资问题

    Python 算法设计与分析 投资问题 投资问题 题目:设有m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,3,-,n.问:如何分配这m元钱,使得投资的总效益最高? ...

  3. 自然语言处理实验—分词算法(含python代码及详细例子讲解)

    自然语言处理实验-分词算法 最近在学自然语言处理,这是第一个上机实验自然语言处理的分词算法,也是自然语言处理比较入门的算法.和大家分享一下. 首先,自然语言处理,英文是(Nature Language ...

  4. 算法设计与分析 实验五 算法综合实验

    实验5.<算法综合实验> 一.实验目的 理解和复习所学各种算法的概念 掌握和复习所学各种算法的基本要素 掌握各种算法的优点和区别 通过应用范例掌握选择最佳算法的设计技巧与策略 二.实验内 ...

  5. 语法分析实验ll算法c语言,实验5LL语法分析程序的设计与实现(C语言).doc

    实验5LL语法分析程序的设计与实现(C语言) 实验五 LL(1)文法识别程序设计 一.实验目的 通过LL(1)文法识别程序的设计理解自顶向下的语法分析思想. E+T|T TT*F|F Fi|(E) 参 ...

  6. 计算机操作系统实验银行家算法,实验六 银行家算法(下)

    实验六 银行家算法(下) 一.实验说明 实验说明:本次实验主要是对银行家算法进行进一步的实践学习,掌握银行家算法的整体流程,理解程序测试时每一步的当前状态,能对当前的资源分配进行预判断. 二.实验要求 ...

  7. 格雷码算法c语言实验报告,算法设计与分析实验报告

    本科生实验报告 课程名称:算法设计与分析 实验项目:递归和分治算法 实验地点:计算机系实验楼110 专业课:物联网1601学生.2016002105 学生姓名:于 指导员:郝晓丽 2018年5月4日 ...

  8. 强化学习 蒲丰投针实验 蒙特卡洛算法

    目录 一.蒲丰投针实验 1.1背景故事 1.2原理介绍 二.蒙特卡洛方法 2.1方法介绍 2.2经验轨迹 2.3在线学习与离线学习 2.4数学原理 一.蒲丰投针实验 1.1背景故事 1777年,蒲丰请 ...

  9. 密码学实验-RSA算法的几种攻击方法的实现

    目录 一.实验要求 (一) RSA算法攻击方法分析相关要求 二.代码简述 (一)费马方法 1.原理: 2.代码分析 (二)pollard rho 方法 1.原理 2.代码分析: (二)pollard ...

最新文章

  1. 【ACL2020】这8份Tutorial不可错过!包括:常识推理、多模态信息抽取、对话、解释性等...
  2. Big Data應用:以玩家意見之數據分析來探討何謂健康型線上遊戲(上)
  3. vue和layui哪个更好用_幕布和Mind+思维导图哪个更好用?
  4. 【C++】实现动态顺序表的PushBack(),PopBack(),PushFront(),PopFront(),Find(),Insert
  5. [XSY] 简单的数论题(数学、构造)
  6. c# 常用数据库封装
  7. 安卓 图像清晰度识别_螺柱焊位置识别算法初稿
  8. oracle数据库安装提示M,Python第13课:oracle数据库的安装
  9. USACO翻译:USACO 2012 FEB Silver三题
  10. Jboss启动报错——DailyRollingFileAppender无法转换异常
  11. 直接请求接口_「软件测试教程」基于postman进行接口测试实战
  12. 5G 背面:物联网的变局!
  13. MySQL定义异常和异常处理方法
  14. 在开发时选择静态方法还是非静态方法
  15. 清除浮动的方法以及优缺点
  16. php生成excel带图片格式,php导出excel单元格带图片显示方法
  17. iOS 苹果授权登录(Sign in with Apple)/Apple登录/苹果登录集成教程
  18. 面试题七 C/C++ 骑士营救公主 骑士只能向右或者向下移动,遇到陷阱就死了,求骑士营救公主的所有路线-程序员面试题
  19. 格式化数据#1:数据存储|Database
  20. 计算机毕业设计Java计算机培训管理(源码+系统+mysql数据库+lw文档)

热门文章

  1. Open X Live COO 欧阳凯 微软打造大生态圈
  2. Minimum Coins(找到最小数量的硬币)
  3. MySQL数据库——MySQL主键(PRIMARY KEY)
  4. 如何在 R 中使用 Fisher 的最小显着性差异 (LSD)
  5. 33岁转行python,如果不是5岁儿子给我的鼓励,可能幸福也不会来敲门了
  6. 地球的自转轴线和水平线的角度
  7. 高考结束了,入行人工智能和大数据,我们应该怎么报考专业?
  8. 运算放大器的稳定性分析(二)
  9. ZeroMemory memset 等清零的用法
  10. ZOJ 1090 The Circumference of the Circle(计算三角形的外接圆)