当前位置:   article > 正文

数学规划模型

数学规划模型

目录

数学规划概述

一般数学形式

分类

线性规划

完整数学模型

MATLAB求解

非线性规划

完整数学模型 

MATLAB求解

整数规划

最大最小化

完整数学模型

MATLAB求解

多目标规划

完整数学模型


数学规划概述

数学规划是运筹学的一个分支,其研究目的在给定的条件下(称为约束条件),按照某一衡量指标(称为目标函数)来寻求计划、管理工作中的最优方案(称为最优解)。

规划问题又被认为是求解目标函数在一定约束条件下的极值问题。

一般数学形式

目标函数z=f(x)

约束条件g_i(x)\leq0,下标i表示第i各约束条件

x称为决策变量

分类

按照目标函数,约束条件以及决策变量,规划问题可以分为

  • 线性规划,目标函数和约束条件都是决策变量的线性表达式
  • 非线性规划,目标函数和约束条件含有决策变量的非线性表达式
  • 整数规划,约束条件中限制某些或全部决策变量为整数,有线性整数规划模型和非线性证书规划模型之分
  • 0-1规划,约束条件中限制某些或全部决策变量为0或1,可看作特殊的整数规划模型
  • 多目标规划问题,目标函数不止一个,通常没有绝对的最优解,只有满意解

线性规划

线性规划是指数学规划模型中的目标函数,约束条件全部为严格的线性表达式,并且对决策变量是否为整数没有限制

完整数学模型

  • 目标函数min\quad z=f(x)=C^Tx,其中C,x为同一维度的列向量。
  • 约束条件s.t.\left\{\begin{matrix} Ax\leq b\\A_{eq}x\leq b_{eq} \\ lb\leq x\leq ub \end{matrix}\right.,第一个式子称为不等式约束,第二个不等式称为等式约束,第三个不等式称为上下界约束

如果是求取目标函数的最大值,可以对目标函数取负,求其最小值的最优解,也即是原来的目标函数的最优解

MATLAB求解

  1. [x,fval]=linprog(C,A,b,Aeq,beq,lb,ub,x0);
  2. % x0表示迭代求解的初始值,但可以不给
  3. %
  4. % 若不存在不等式约束,则令A=[],b=[]
  5. %
  6. % 若不存在等式约束,则灵Aeq=[],beq=[]
  7. %
  8. % 若第i个决策变量没有上界或下界,则灵lb(i)=-inf或ub(i)=+inf
  9. %
  10. % 返回值x表示目标函数取最小值时x的取值
  11. %
  12. % fval表示目标函数取得的最小值

非线性规划

完整数学模型 

  • 目标函数min \quad f(x)
  • 约束条件\left\{\begin{matrix} Ax\leq b, Aeqx=beq(linear\,constraints)) \\ C(x)\leq 0, Ceq(x)=0(nonlinear\,constraints) \\ lb\leq x\leq ub \end{matrix}\right.

MATLAB求解

  1. [x,fval]=fmincon(@fun,x0,A,b,Aeq,beq,lb,ub,@nonlfun,option)
  2. %非线性规划的算法求解出来的是一个局部最优解,故非线性规划中对于初始值x0的选取非常重要
  3. %如果需要求解全局最优解,有两种思路:
  4. %①给定不同的初始值,在里面找到一个最优解‘
  5. %②先用蒙特卡洛模拟,得到一个蒙特卡洛解,然后用这个解作为迭代初值x0
  6. %option选项可以给定求解的算法,有四种可选择,'interior-point(内点法)','sqp(序列二次规划%法)','active-set(有效集法)','trust-region-reflective(信赖域反射算法)'
  7. %@fun表示目标函数,要编写一个独立的m文件,存储目标函数

整数规划

MATLAB求解

  1. [x,fval]=intlinprog(C,intcon,A,b,Aeq,beq,lb,ub);
  2. %intcon参数表示决策变量中哪些限制为整数
  3. %其余参数与线性规划求解器linprog的参数相同

最大最小化

完整数学模型

目标函数min{max\[f1(x),f2(x),...,fm(x)\]}

约束条件s.t.\left\{\begin{matrix} Ax\leq b\\ Aeqx = beq\\ C(x)\leq 0\\ Ceq(x)=0\\ VLB\leq x\leq VUB\ \end{matrix}\right.

MATLAB求解

  1. [x,fval]=fminimax(@Fun,x0,A,b,Aeq,beq,lb,ub,@nonlfun,option)
  2. % 大写@Fun表示该参数与fmincon的@fun有所不同
  3. % @Fun参数表示目标函数用一个函数向量表示
  4. % 即
  5. % f=zeros(m,1)
  6. % f(1)=...
  7. % f(2)=...
  8. % 返回值x为决策变量的取值
  9. % 返回值fval为目标函数向量的极小最优解

多目标规划

完整数学模型

目标函数z=\left\{\begin{matrix} min\,f_1(x)\\ min\,f_2(x) \end{matrix}\right.

约束条件\left\{\begin{matrix} Ax\leq beq \\ Aeqx\leq beq\\ C(x)\leq 0\\ Ceq(x)=0\\ LVB\leq x\leq LUB \end{matrix}\right.

对目标函数进行加权后转化为一个目标函数,即可用常规的规划求解

根据目标函数之间的权重系数,对权重系数进行敏感性分析,即更改权重,观察规划结果。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/593170
推荐阅读
相关标签
  

闽ICP备14008679号