线性规划

线性规划1、线性规划1.1线性规划的定义线性规划的标准形式:其中的c和x均为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。例如:x1和x2称为决策变

大家好,又见面了,我是你们的朋友全栈君。

1、线性规划

1.1 线性规划的定义

线性规划的标准形式:

image-20210804192517263

其中的 c 和 x 均为 n 维列向量,A、 Aeq 为适当维数的矩阵,b 、beq 为适当维数的列向量。

例如:x1 和 x2 称为决策变量,整个式子分为了目标函数和约束条件

image-20210804192557090

总之, 线性规划问题是在一组线性约束条件的限制下, 求一线性目标函数最大或最小的问题。

1.2 线性规划的解

线性规划问题的标准数学形式:

image-20210804193128609

满足(4)并使(3)达到最大值的可行解称为最优解;可行解构成的域称为可行域。

1.2.1 图解法

1.1 中例子的约束条件 x1 和 x2 可用域如下,显然,对于目标函数来说,x1 和 x2 越大,目标函数值越大,最优解为image-20210804193538356 ,最优目标值为 z* = 26。

image-20210804193254954

有如下结论:

  1. 可行域可出现多种情况,既可能有界,也可能无界。
  2. 可行域非空时,既可存在有限最优解,也可不存在最优解。
  3. 若存在最优解,则必可找到具有可行域的“顶点” 。

1.2.2 MATLAB 解法

MATLAB 线性规划标准形式为

image-20210804200451521

线性规划的函数为 linprog ,注意,linprog 求解的为线性规划最小值 min,若想求线性规划最大值,则需要对向量 c 取符号

[x,fval] = linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 

fval 返回目标函数的值, LB 和 UB 分别是变量 x 的下界和上界,x0 是 x 的初始值,

例 1

image-20210804200844426

m 文件:注意 linprog 中 c 取了负号

image-20210804200935916

例 2

image-20210804201014425

m 文件:

image-20210804201038685

1.3 可转换为线性规划的问题

image-20210804201518475

可取

image-20210804201531924

image-20210804201543614

那么问题转化为

image-20210804201555417

例 3

image-20210804201609258

其中 image-20210804201623614

对于以上问题,取 image-20210804201646484 ,那么问题变为线性规划问题

image-20210804201707478

1.4 运输问题

某产品有 m 个产地,n 个销地,各地产量为 a1,a2 … am,各地需求量为 b1,b2 … bn,从 i 到 j 的单价运费为 cij,问如何调度才可使总运费最省?

解:

引入 xij,其取值为由 i 产地运往 j 销地的该商品数量,有

image-20210804202139348

对于产销平衡问题,有以下关系:

image-20210804202226207

1.5 指派问题

n 个人干 n 项工作,若第 i 个人去干第 j 项工作,需要花费 cij 时间,给定矩阵 C = (cij) 问如何分配才可使花费总时间最短?

解:

引入变量 xij,用来表示第 i 个人是否做第 j 项工作,xij = 1 表示做,xij = 0 表示不做,那么可得到如下数学模型:

image-20210805145637795

image-20210805145709591

同理,xij 也可使用矩阵来表示,每行每列仅有一个为 1,其余为 0,因此这为 0-1 规划问题,针对指派问题,可将约束条件写为 xij >= 0 ,m = n = n,ai = bi = 1 ,因此可发现,这个问题进一步简化为了运输问题。

image-20210805150203289

image-20210805150210774

1.5.1 指派问题的匈牙利算法

对系数矩阵 C 行或列进行线性变换,得到新的矩阵 B,矩阵 B 和 C 具有相同的最优指派。

例 4

指派问题的系数矩阵为

image-20210805151632247

对其进行行列变换得到:

image-20210805151658304 image-20210805151707818

可发现,最优指派为 x12 = 1, x21 = 1, x33 = 1, x44 = 1

image-20210805151748289

例 5

对于较为复杂的指派问题

image-20210805151827206

对其进行线性变换,有

image-20210805151846446

对于第 3 行和第 5 行,都只在第 1 个元素的位置为 0,那么这时无法得到最优指派,只能继续进行线性变换,有

image-20210805151942940

这时,可发现,最优指派为 x12 = 1, x24 = 1, x31 = 1, x43 = 1, x55 = 1

image-20210805152028659

1.6 对偶理论与灵敏度分析

1.6.1 原始问题和对偶问题

image-20210805152207878

称(P)为原始问题, (D)为它的对偶问题。 注意变换时 c 和 b 的位置。

对于如下线性规划问题:

image-20210805154240590

可改写为

image-20210805154250441

那么对偶问题为

image-20210805154400883

令 y = y1 – y2 ,又可写成

image-20210805154424246

可将原始问题转化为对偶问题进行求解,在求出最优解后,再根据性质反求出原始问题的最优解。

4.2 灵敏度分析

灵敏度分析就是系数、常数等发生变化时, 已求得的线性规划问题的最优解会有什么变化;或者这些系数在什么范围内变化时, 线性规划问题的最优解或最优解不变。也可理解为鲁棒性。

1.7 投资的收益和风险

以一个题目为例对本知识点进行总结。

1.7.1 问题描述

市场上有 n 种资产 si(i = 1, 2, …, n),目前资金总数为 M,资产 si 的收益率为 ri,亏损率为 qi,交易费率为 pi,在不超过金额 ui 时,交易费按 ui 计算,假设银行存款利率为 r0。r0 = 5%

n = 4 时

image-20210805155500444

目标是使净收益尽可能大,总风险尽可能小。

1.7.2 符号规定

定义 xi 为投资 si 的资金,a 为投资风险度,Q 为总体收益。

基本假设:

  1. 投资数额 M 相当大,为了便于计算,假设 M = 1
  2. 投资越分散,总的风险越小
  3. 总体风险用所投资的所有项目中最大的一个风险来度量
  4. n 种资产之间是相互独立的
  5. ri,pi,qi,r0 为定值,不受外界影响

1.7.3 建模与分析

模型为:目标函数第一个为收益,第二个为风险

image-20210805160019536

1.7.4 模型简化

固定风险水平,优化收益

在实际中,由于承受风险能力不同,因此规定一个风险界限 a,使得 image-20210805160136235 ,那么模型变为

模型一:

image-20210805160205461

固定盈利水平,极小化风险

若希望总盈利到达 k 以上,则目标函数变为了极小化风险

模型二:

image-20210805160338253

权衡资产风险和预期收益

对风险和收益进行权衡,设置权重 s (0 < s < 1),s 称为投资偏好系数

模型三:

image-20210805160657540

1.7.5 模型的求解

以上模型的求解可使用 MATLAB 解法进行解决,以模型一为例

image-20210805160955722

image-20210805161016533

从 a = 0 开始,以步长 0.001 循环搜索,MATLAB 代码如下:

image-20210805161150370

1.7.6 结果分析

  1. 风险大,收益也大。
  2. 当投资越分散时,投资者承担的风险越小,冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。
  3. (根据 MATLAB 图形进行说明)在 a = 0.006 附近有转折点,在这一点左边,风险增加很少时,利润增长很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合,大约 a = 0.6%,Q = 20%,(然后计算投入各个资产的资金数量)x0 = 0, x1 = 0.24, x2 = 0.4, x3 = 0.1091, x4 = 0.2212.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155776.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • db4o 参考资料

    db4o 参考资料转自IBM:http://www.ibm.com/developerworks/cn/java/jdb4o/本系列是对开放源码数据库db4o的详尽介绍,db4o可以充分利用当前的面向对象的语言、系统和理念。要下载db4o,可以参考db4o主页;为了实践本系列的示例,需要下载db4o。系列文章第1部分:简介和概览(2007年4月9日)

  • 最佳程序员奖_程序员必读书籍排行榜

    最佳程序员奖_程序员必读书籍排行榜优秀的程序员需要有大量的知识技能储备,读书是获取知识的一个非常重要的途径。每每读到好书,会让人茅塞顿开、醍醐灌顶。以下图书,都可以称得上好书。你会推荐哪些给更广大的程序员呢?文末附有投票,每人可投5本你心中的好书,我们将从参与投票的网友中,选出5位,送上你心中的好书(5本全送哦)~~国外图书推荐C++Prinmer图书推荐理由C++学习头牌 C++领域专家:潘爱民、孟岩作序,代表技术圈鼎力推荐! 一线C++工程师腾讯Milo、微软刘未鹏、陈梓瀚、阿里..

  • C# Winform 窗体美化(目录)

    C# Winform 窗体美化(目录)最近在看C#Winform的窗体美化,发现一些很有用的美化皮肤库,学习过后也把一些资料整理一下。一、IrisSkin换肤库(IrisSkin4)二、LayeredSkin界面库(LayeredSkinDemo)三、不规则窗体(GoldFishProject,TransparentForm)四、镂空窗体(HollowForm)五、鼠标穿透(MousePenetration)

  • 【剑指offer】删除字符也出现在一个字符串

    【剑指offer】删除字符也出现在一个字符串

  • 解决verycd上不能下载资源的问题

    解决verycd上不能下载资源的问题以下内容为转载:当时在verycd上搜索资料,但是下载不了,忽然看到这一篇文章,试了以下,果然可以下载。顺便记下以便后续使用。唉,我真的挺喜欢verycd的,好多好好的资源哟,尤其是杂志啊、设计素材

  • java vimrc_vimrc: 终极 vim 配置, 克隆自: https://github.com/amix/vimrc

    java vimrc_vimrc: 终极 vim 配置, 克隆自: https://github.com/amix/vimrc这个仓库克自https://github.com/amix/vimrc放在oschina上来加速部署,也方便再添加些功能.如何使用:gitclonehttps://git.oschina.net/shrekuu/vimrc.git~/.vim_runtimesh~/.vim_runtime/install_awesome_vimrc.sh更多:这个版本直接加入了~/.vim_ru…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号