数学建模系列-优化模型---(一)规划模型

2023-05-16

数学建模中我们经常遇到的一种问题是给定一些条件,目标是求得基于单或者多自变量的某个条件之的最优结果。

一、线性规划模型
给定多个条件,求某一个线性方程的最大值。(对与这种问题,我们一般采用的是最普通的图像法,在坐标系中标出我们需要的条件范围,采用直线逼近求最顶点的距离和对应的冲量)。

二、非线性规划
球的是某一个非线性方程的最大值,凸优化的思想也是来源于次,目标可能是局部最优而非全局最优了。

三、0-1规划
0-1规划中,所有未知量的取值只能是0或1,应用于任务分配场景。

以上三种都可以直接用Matlab工具箱直接解决。

目标规划模型
线性规划模型只能解决一组线性约束条件下的最大或最小值的问题。目标规划模型用来解决多目标优化的模型。

思路:
1.用评价模型的思想,各项加权转化为单目标优化
2.用不同的优先等级,分为前后数次单目标优化
3.有效解法,可以参考20年省赛题定向越野,其中就只需要我们得到一个可行解即可,可以采用模拟退火算法获得局部近似最优解啊。

matlab多目标优化直接法:

[x,fval]= fgoalattain('fun',x0,goal,weight)           
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b)           
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)           
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
———————————————
function F=Fun(x); 
 
F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); 
 
F(2)=3*x(2)+2*x(4);

a=[-1 -1  0  0    
   0  0  -1 -1    
   3  0   2  0    
   0  3   0  2]; 
b=[-30 -30 120 48]'; 
c1=[-100 -90 -80 -70]; 
c2=[0 3 0 2]; 
[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1))  %求第一个目标函数的目标值 
[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1))  %求第二个目标函数的目标值 
g3=[g1;g2]  %目标goal的值 
[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) 
%这里权重weight=目标goal的绝对值
原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932```
这个其实也是给权重的一种思想

**动态规划**

动态规划是规划模型里面较难的一个。可如此做
动态规划的应用范围:
1.方法计数(如TSP问题总共有多少条路经,有多少种方法取k个值达到sum2.求最大值最小值(如TSP问题最长或最短路径)
3.求存在性(如是否存在必胜策略,以及是否能求的特定的sum等。)
因此,动态规划从底层逻辑上来看更像是一种高级算法的思想。

算法步骤:
1,确定状态(两个核心:1最后一步 2化成子问题)
2转移方程
3开始和边界条件
4计算顺序

1.1 最后一步:
图论里有一种很厉害的思想:如果我这一条路线是最短的,那么去掉最后一步的前n-1跳的路线也是最短的。

1.2思想就是根据最后一步有多少种情况,然后分别推演,把优化问题扔给上一步。比如付钱模型,怎么样付钱使得我的硬币最少,那么在最少的方法中。我除了最后一枚硬币,前面的数量应该也是最少的。

转化为:假入最后一枚的面值(lujing)有n条,那么模型可以写为
f(n)=min{f(x-n1)+n1,f((x-n2)+n2,f(x-n3)+n3};


2.初始条件f(0)=0;边界条件算当f(Y<0)时怎么做,另外,f(Y)无解时,置+无穷


详见https://blog.csdn.net/sinat_19594515/article/details/102738781?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163012761716780366559677%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163012761716780366559677&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-102738781.pc_search_result_control_group&utm_term=%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92&spm=1018.2226.3001.4187
动态规划更像是递归得反推。


小结:
所有规划模型说白了,就是给他简化为单目标优化。动态规划一般应用于图论问题,在这种规划模型中只是有应用场景。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数学建模系列-优化模型---(一)规划模型 的相关文章

随机推荐

  • linux系统启动过程(面试热点)

    linux系统启动过程 启动过程总览1 内核的引导2 运行init3 系统初始化4 建立终端5 用户登录系统6 进入login shell 启动过程总览 1 内核的引导 当计算机打开电源后 xff0c 首先是BIOS开机自检 xff0c 按
  • ZYNQ图像处理(4)——灰度图像转二值化图像

    1 二值化图像简介 前面已经完成了摄像头图像的采集和显示 xff0c 以及RGB图像转灰度图 二值化图像在图像处理领域同样有广泛的应用 xff0c 本节介绍如何用FPGA实现灰度转二值化图形 灰度实现二值化的原理很简单 xff0c 只需要设
  • Axios和Ajax处理后台返回文件流实现文件下载(图片和Excel)

    Axios 定义公共方法 xff0c 下载Excel download url data fileName return axios method 39 post 39 url headers里面设置token headers 34 tok
  • c++每日十题10.18

    1 将两个字符串连接起来组成一个字符串时 xff0c 选用 xff08 xff09 函数 正确答案 C 你的答案 C 正确 A strlen B strcap C strcat D strcmp strlen 测字符串长度 strcap复制
  • 人脸识别算法原理过程详解

    本文为转载内容 xff0c 由于找不到源作者链接 xff0c 故特此说明 人脸识别各算法详解 最近 xff0c 由于工作需要 xff0c 为了找到一款高效的人脸识别算法 xff0c 对各种人脸识别算法都研究了一番 xff0c 以下记录的是各
  • ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

    Note When installing in a non Anaconda environment make sure to install the Protobuf compiler before running the pip ins
  • Jetson Nano 关闭开启图形界面减少内存占用

    如果希望一直保持桌面关闭 xff0c 则可以使用下述命令 xff0c 然后 xff0c 重新启动后 xff0c 桌面将保持禁用或启用状态 xff1a ubuntu关闭图形用户界面 sudo systemctl set default mul
  • python程序docker化部署

    启动docker systemctl start docker 启动docker systemctl enable docker 设置开机自启动docker systemctl status docker 查看docker状态 步骤 xff
  • 嵌入式(一)——MPU9250九轴学习

    加速度计对四轴或小车的加速度比较敏感 xff0c 取瞬时值计算倾角误差比较大 xff1b 而陀螺仪积分得到的角度不受小车加速的的影响 xff0c 但是随着时间的增加积分漂移和温度漂移带来的误差比较大 xff0c 所以这两个传感器正好可以弥补
  • jetson nano Docker化部署

    Docker安装 1 安装docker https docs docker com engine install ubuntu sudo apt get update sudo apt get install apt transport h
  • 钢筋盘点计数数据集图片展示

    数据集分为训练集和测试集 xff0c 其中训练集共有569张已标注图片 xff0c 测试集共有85张未标注图片 xff0c 共计654张 其图片质量与标注质量满足工业化生产实际需要 xff0c 质量保障 有需要的可以到我的资源中进行下载 x
  • Windows下使用pip安装包 出错 TLS/SSL

    Windows下使用pip安装包的时候出现如下问题 xff1a WARNING pip is configured with locations that require TLS SSL however the ssl module in
  • opencv模板匹配步骤及Code

    opencv模板匹配步骤及Code 首先介绍一下模板匹配的适用场景 xff1a 1 图像检索 2 目标跟踪 简单的说 xff0c 模板匹配最主要的功能就是在一幅图像中去寻找和另一幅模板图像中相似度最高的部分 xff0c 这就是模板匹配 比如
  • Tensorflow简单项目讲解

    Tensorflow简单项目讲解 转载请注明出处 xff1a https blog csdn net qq 41007606 article details 81906486 这里对Tensorflow就不在做具体介绍了 xff0c 直接切
  • Keras Model模型方法

    Model模型方法 compile compile self optimizer loss metrics 61 None loss weights 61 None sample weight mode 61 None weighted m
  • 关于Keras的“层”(Layer)——常用层

    所有的Keras层对象都有如下方法 xff1a layer get weights xff1a 返回层的权重 xff08 numpy array xff09 layer set weights weights xff1a 从numpy ar
  • Centos7 glibc库升级到2.23(实测可行)

    注意 xff1a Centos 为了稳定使用的glibc版本通常比较低 而安装有些程序需要依赖新版本 升级glibc需要慎重 xff0c 因很多人升级失败后导致系统不能用了 本人亲测 xff0c 升级了多台机器 xff0c 全部升级成功 g
  • [linux]wsl环境挂载window共享文件

    场景 xff1a 公司有一台内网的机器用来共享文件 xff0c 这里面的磁盘都是T级以上 xff0c 平时大家都是把文件存储到这台电脑上 xff0c 确保公司的资源安全 如果要用脚本来处理文件 xff0c 就需要挂载到内网的linux服务器
  • 最简单C/C++数据可视化函数库MathGL配置方法

    1 简介 xff1a MathGL是一个可用于C C 43 43 数据可视化的函数库 xff0c 可以对不同种类的数据进行可视化 由于MathGL本身不具有显示功能 xff0c 需要配合opencv以及其他可视化工具才能够显示图形 由于目前
  • 数学建模系列-优化模型---(一)规划模型

    数学建模中我们经常遇到的一种问题是给定一些条件 xff0c 目标是求得基于单或者多自变量的某个条件之的最优结果 一 线性规划模型 给定多个条件 xff0c 求某一个线性方程的最大值 xff08 对与这种问题 xff0c 我们一般采用的是最普