赞
踩
目录
数学规划是运筹学的一个分支,其研究目的在给定的条件下(称为约束条件),按照某一衡量指标(称为目标函数)来寻求计划、管理工作中的最优方案(称为最优解)。
规划问题又被认为是求解目标函数在一定约束条件下的极值问题。
目标函数
约束条件,下标i表示第i各约束条件
x称为决策变量
按照目标函数,约束条件以及决策变量,规划问题可以分为
线性规划是指数学规划模型中的目标函数,约束条件全部为严格的线性表达式,并且对决策变量是否为整数没有限制
如果是求取目标函数的最大值,可以对目标函数取负,求其最小值的最优解,也即是原来的目标函数的最优解
- [x,fval]=linprog(C,A,b,Aeq,beq,lb,ub,x0);
- % x0表示迭代求解的初始值,但可以不给
- %
- % 若不存在不等式约束,则令A=[],b=[]
- %
- % 若不存在等式约束,则灵Aeq=[],beq=[]
- %
- % 若第i个决策变量没有上界或下界,则灵lb(i)=-inf或ub(i)=+inf
- %
- % 返回值x表示目标函数取最小值时x的取值
- %
- % fval表示目标函数取得的最小值
- [x,fval]=fmincon(@fun,x0,A,b,Aeq,beq,lb,ub,@nonlfun,option)
- %非线性规划的算法求解出来的是一个局部最优解,故非线性规划中对于初始值x0的选取非常重要
- %如果需要求解全局最优解,有两种思路:
- %①给定不同的初始值,在里面找到一个最优解‘
- %②先用蒙特卡洛模拟,得到一个蒙特卡洛解,然后用这个解作为迭代初值x0
- %option选项可以给定求解的算法,有四种可选择,'interior-point(内点法)','sqp(序列二次规划%法)','active-set(有效集法)','trust-region-reflective(信赖域反射算法)'
- %@fun表示目标函数,要编写一个独立的m文件,存储目标函数
MATLAB求解
- [x,fval]=intlinprog(C,intcon,A,b,Aeq,beq,lb,ub);
- %intcon参数表示决策变量中哪些限制为整数
- %其余参数与线性规划求解器linprog的参数相同
目标函数
约束条件
- [x,fval]=fminimax(@Fun,x0,A,b,Aeq,beq,lb,ub,@nonlfun,option)
- % 大写@Fun表示该参数与fmincon的@fun有所不同
- % @Fun参数表示目标函数用一个函数向量表示
- % 即
- % f=zeros(m,1)
- % f(1)=...
- % f(2)=...
- % 返回值x为决策变量的取值
- % 返回值fval为目标函数向量的极小最优解
目标函数
约束条件
对目标函数进行加权后转化为一个目标函数,即可用常规的规划求解
根据目标函数之间的权重系数,对权重系数进行敏感性分析,即更改权重,观察规划结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。