分支限界法实现最优装载c++_最优化模型入门

eebdbff9c73ed58f9ed877471f9a8179.png

一. 最优化基础[1]

  • 最优化方法概念:求解一元或多元函数的极小值或最小值的计算方法(目标:求解方程最优的待定参数)
  • 解决最优化问题的方法:①确定性算法。②随机性算法。

1.引例:

  • 前提:所给的两个变量
    数据隐含变量的一种确定性关系
  • 目的:希望通过求解参数
    确定最优的函数关系。
  • 优化:近似偏差最小,即需要选择一条曲线使其尽可能多地穿过图形中的点,而数学上表示,就是
    ,即转化为求解一元函数
    的极小值的方法:求所有驻点+不可导点;判断是否为极值;求极小值
  • 缺点:过程繁琐不易实现,运行时间偏长,若目标函数过于复杂还可能得不到正确的结果。
  • 最优化数学模型例子:①下料问题。②运输问题。(线性规划也是一种最优化的例子)
  • 最优化数学模型表示

其中

称为目标函数,
等式约束和不等式约束。

2.迭代下降算法

迭代下降准则(框架算法):

1)给出目标函数的初始迭代点

2)按一定规则产生

处的一个
下降方向

3)再沿方向

搜索得到
下一个迭代点
,使得

4)若满足停机条件,则终止迭代并输出

,否则转步骤2)

注意:

a.在适当的假设下一般可以说明算法能在有限步之内找到最优解或得到一个收敛到最优解的迭代点列。

二. 无约束优化问题

1.函数:fminbnd

即求

  • 特点:求数值解,过程简洁容易实现单要确定搜索区间。
  • 注意:有时变换函数的表示形式,极坐标方程/参数方程在确定区间时有一定优势。

2.函数fminsearch和fminunc

  • 区别:
  • fminsearch采用了基于免导数算法,适用范围更广,但处理问题规模较小,求解素服较慢。
  • fminunc采用了基于导数的算法,若可以提供导数信息,求解更高效

3.线性规划linprog

这里

向量为决策变量;
为目标函数系数;其余为不等式、等式条件约束的系数、向量。
为决策变量的下边界和上边界。

混合整数线性规划intlinprog,添加限制条件:

4.非线性规划fmincon

表示非线性不等式、等式约束,
表示非线性目标函数。

编程思路:

  1. 首先建立M文件定义优化目标函数 function f = fun(X)
  2. 然后建立M文件定义非线性约束条件function [C,Ceq] = nonlcon(X)
  3. 建立主程序,调用上述两个函数代入fmincon

待续。

附:

Matlab优化工具箱:

%命令                    %           算法                          %       问题
fminbnd()                %黄金分割法,抛物线插值法                 求单变量无约束最优化
      [xmin,ymin] = fminbnd(fun,x1,x2);%fun是目标函数,x是搜索区间,xminymin分别是极小点,极小值
fminsearch()             %基于免导数的算法:Nelder-Mead单纯形方法  求多变量无约束最优化
fminunc()                %基于导数的算法:拟牛顿方法,信赖域方法   求多变量无约束最优化
      [Xmin,Fmin] = fminsearch(FUN,X0);
      [Xmin,Fmin] = fminunc(FUN,X0);
linprog()                %内点法、(对偶)单纯形法、有效集法         求线性规划问题
intlinprog()             %分支定界法                               求解混合整数线性规划问题
      [Xmin,Fmin] = linprog(C,A,b,Aeq,beq,Lb,Ub)如果条件无则用空矩阵代替
      [Xmin,Fmin] = intlinprog(C,I,A,b,Aeq,beq,Lb,Ub)如果条件无则用空矩阵代替
fmincon()                %信赖域法、有效集法、内点法、序列二次规划 求多变量有约束最优化
      [Xmin,Fmin]=fmincon(fun,X0,A,b,Aeq,Beq,Lb,Ub,nonlcon)%nonlcon是针对非线性约束编写的函数文件名
ga()                     %遗传算法                                 求困难复杂多态最优化的最优解
partideswarm()           %粒子群优化                               求困难复杂多态最优化的最优解
simulannealbnd()         %模拟退火                                 求困难复杂多态最优化的最优解

参考

  1. ^张勇主编,数学实验与数学建模基础,电子科技大学出版社,2020
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值