数学规划问题

1.基本定义

1.数学规划就是在给定的条件下,求在一定条件下,如何按照某一个衡量指标来寻求计划,管理工作。
2. 组成:目标函数: 决策变量。
约束条件:不等式约束,等式约束,整数约束。
3.规划主要用来求解优化类问题,求解一些问题的最优解。

2.线性规划

(1)定义目标函数和约束条件都是决策变量的线性表达式,约束条件可以有不等式,等式,但都是都是线性表达式。
在这里插入图片描述

(2)采用matlab求解步骤
写出matlab中线性规划的标准型:
目标函数:转换成最小值问题,提出系数作为列向量
不等式约束,等式约束,上下界约束
不等式约束转化为系数矩阵A,且要变为小于等于的形式,加负号。
不等式约束的系数向量要注意。
上界和下界用ub和lb表示,如果下界部分没有限定就加负无穷。
等式约束用Aeq。

[x,fval]=linprog[C,A,b,Aeq,beq,lb,ub,X0];
%线性规划一般不要初始值
% 如果存在等式和不等式约束,用[]表示A,b,Aeq,beq
%如果某个x没有下界和上界,就设置lb(;)=-inf, ub(;)=+inf
%返回的x表示最小值处的x取值,fval表示最优解处是取得的最小值
%不是所有线性规划都有唯一解,如果求的是最大值,最后给fval加负号

3.非线性规划

(1)定义:目标函数和约束条件有一个是决策变量的非线性表达式。
(2)区分于上面的线性规划可以直接得到最优解,非线性规划需要利用搜索来找近似解,要先给初始值。这样找到的极大可能是局部最优解。
在线性规划的基础上加了非线性不等式约束和非线性等式约束

[x,fval]=fmincon(@fun,X0,A,Aeq,beq,;b,ub,@nolfun,option)

非线性规划中对于初始值选取十分重要,求解出来的是局部最优解,如果要求全局最优解,可以给定不同初始值,在里面求得最优解,更好的方法是先用蒙特卡洛模拟的一个蒙特卡洛解,然后用这个解作为初始值来求解最优解

option是四种求解算法:内点法,序列二次规划法,有效集法,信赖域反射算法,、interior-point,sqp,active-set,trust-region-reflective
不同是算法有各自的优缺点和使用情况,可以改变求解算法来看求解的结果是否变好。

@fun表示目标函数,我们要编写一个独立的m文件存储目标函数
定义函数,通过@fun调用

@nonlfun 非线性部分的约束,同样编写一个独立的n文件存储约束条件,返回非线性等式和不等式约束,如果不存在为空

至于要把下标变成matlab可以识别的符号,在括号中书写即可。

如果用蒙特卡洛模拟找到一个比较合适的初始值点,再用线性规划就可以得到比较好的 结果,推荐使用。找到一个比较好的初始值点,避免出现较大偏差。

4.整数规划

(1)基本介绍要求变量取得整数值。可以分为线性整数规划和非线性,现在比较多的是线性整数规划问题,对于非线性可以用蒙特卡洛模拟。模拟退火,粒子群。其中线性整数规划的求解相比于线性规划,会多了一个输入参数,限定变量为整数。

	[x,fval]=intlinprog(x,intcon,A,b,Aeq,beq,lb,ub) 
	% 不能指定初始值
	%intcon变量参数可以指定那些决策变量是整数
	%如如果三个变量X1,X2,X3,其中X1和X2是整数,用intcon=[1,2],表示

(2)典型问题
背包问题:0-1规划问题,运送货物使得总利润达到最大
利用matlab求解思路:转换为最小问题,加符号
确定整数变量
不等式和等式约束,注意不等式也是需要是小于等于。
下界为0,上界为1
调用函数即可。

指派问题–0-1规划问题
方案安排使得时间最短
目标函数:参加耗时间最短
约束条件:只可以参加一项比赛
每种比赛只有一个人参加
取值为0,1

如果要用matlab求解,需要把双下标问题变成单下标问题。
还有范围通过循环生成,结果表示

还有钢管切割问题,选址问题

5.最大最小化模型

对策论中,在最不利的条件下,寻求最有利的条件策略
许多求最大值的最小化问题。
如何理解这个问题。该点到各个需求点的最大距离最小,在最大距离中找到一个最小值。

6.多目标规划

保证利润的时候也要保证生产时产生的污染最少,对多目标函数进行加权组合,使得问题变为单目标规划。

同意多个目标函数为最大化或者是最小化问题后可以加权组合,如果目标函数的量纲不相同,则需要对其进行标准化后再进行加权,标准化后的做法一般是用目标函数除以某一常量,该常量是这个目标函数的某一个取值。
对目标函数进行加权求和时,权重需要由该问题领域内的专家给定,实际比赛中,无特殊说明,可以认为是一样的。

如何加权重。标准化,除以参考值。
还可以通过权重来分析最后的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值