当前位置: 首页 > news >正文

MATLAB入门——线性规划、非线性规划、多目标规划

4-1 线性规划_哔哩哔哩_bilibili

4-2 非线性规划_哔哩哔哩_bilibili

4-3 多目标规划_哔哩哔哩_bilibili

1.线性规划

有限条件下,最大收益

1. 例题

例题:张麻子既要攻碉楼又要追替身,他们一伙6人,总共1200发子弹;每有一人攻确楼会给百姓带来40点士气值,每有一人追替身会给百姓带来30点士气值;攻碉楼每人需240发子弹,追替身每人需120发。4问攻碉楼和追替身各派几个人,能使百姓的士气值最大?


解:
设派x_{1}人攻碉楼,排x_{2}人追替身,百姓士气值为y;

士气值最大:max  y=40x_{1}+30x_{2}

总共6人:x_{1}+x_{2}\leq 6;

既要攻碉楼又要追替身:x_{1}\geq 1,x_{2}\geq 1;

 子弹有限:则240x_{1}+120x_{2}\leq 1200;


 2. 代码实现

2.1 Linprog函数

模型化为matlab标准型:目标函数最小值、约束条件小于等于号或等号;(如果求最大值,约束条件有大于等于——>求最小值后求反)

  •  [x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
  •  x返回最优解的变量取值,fval返回目标函数的最优值;

 

 2.非线性规划

  •  线性规划:所有变量都是一次方;
  • 非线性规划:至少一个变量不是一次方;

2.1 代码实现

 函数求解:

  • [x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
  • x得到决策变量取值,fval得到最优解取值

本题:设好后fun和nonlcon函数文件以及其他参数后,执行:

[x,y]=fmincon('fun1',[0;0;0],[],[],[],[],[0;0;0],[],'fun2')

 

 3.多目标规划

3.1 例题

 

3.2 概念

需要衡量每个目标的完成情况,并主观上区分三个目标的重要性,使得整体的完成情况尽量好
引入三个概念:正负偏差绝对约束目标约束,优先因子

3.2.1  绝对约束和目标约束

  • 绝对约束是模型中自带的约束条件,必须满足,否则是不可行解
  • 例如2x_{1}+x_{2}\leq 11,使用材料的数量不能超过总共数量

3.2.2 目标约束

  • 目标约束是模型中对不等式右端追求的值允许有偏差
  • 目标3:尽可能使利润不少于56万,也就是z=8x_{1}+10x_{2}\geq 56,但允许有偏差
  • 这个“偏差”就是加入正负偏差变量,变成:8x_{1}+10x_{2}+d_{i}^{-}-d_{i}^{+}=56

 3.2.3 优先因子

1.尽量使产品I的产量不超过产品II的产量; 2.尽可能充分利用所有设备; 3.尽可能使利润不少于56万
这三者到底哪个重要?需要主观上确定优先因子P_{k}
例如,我认为目标3最重要,给他优先因子是10;目标2第二重要,给他优先因子5; 目标1第三重要,给它优先因子是1。那么三个目标重要性之比是10: 5: 1
 

第一目标要求不超过目标值,一位置正偏差变量d_{1}^{+}越小越好

 3.3 解题

需要衡量每个目标的完成情况,并主观上区分三个目标的重要性,使得整体的完成情况尽量好

  • 把所有的目标约束都加上d_{i}^{-}-d_{i}^{+}变成灯饰(注意,绝对约束也可以这样做变成等式,视情况而定)
  • 按照需求,主观确定确定优先因子P_{k}

 得到多目标规划模型:

 求解方法:fgoalattain函数;或序贯算法;或用Lingo求解

相关文章:

  • MobaXterm使用指南
  • 电子技术——BJT的物理结构
  • VBA提高篇_18 VBA代码录制优化Select(tion)及表格合并Merge(cells()/Rows()/Columns()
  • 数据结构(C++)图论基础
  • Python爬虫以及数据可视化分析之某站热搜排行榜信息爬取分析
  • JavaScript高级 ES7-ES13 新特性
  • Django的信号机制解读
  • 线程安全的集合类(多线程环境下使用ArrayList、队列及哈希表)
  • JVM虚拟机简述
  • C++数论————质数筛法(单独判断一个数,判断N个数) 埃氏筛法
  • 区区几行代码,就能全面实现 Python 自动探索性数据分析
  • C++ 浅谈之智能指针 shared_ptr 循环引用
  • python之selenium入门教程
  • Power BI散点图
  • 分享|2023年全球市场准入认证咨讯
  • synchronized底层原理
  • Java多线程之CAS中的ABA问题与JUC的常见类
  • 【Android -- 开源库】权限适配 RxPermissions 的基本使用
  • Unity-TCP-网络聊天功能(二): 登录与注册
  • 51单片机最强模块化封装(1)
  • 罗志田:文学革命的社会功能与社会反响
  • 巴菲特第60次股东大会开场点赞库克:他为伯克希尔赚的钱比我还多
  • 国内多景区实行一票游多日:从门票经济向多元化“链式经济”转型
  • 9米长林肯车开进“皖南川藏线”致拥堵数小时,车主回应称将配合调查
  • 三亚再回应游客骑摩托艇出海遇暴雨:俱乐部未配备足额向导人员,停业整改
  • 中国金茂向滨江集团提供11.21亿元诚意金借款,拟合作开发3月获取的地块