织梦网站主页文章列表调用,福州seo按天付费,建商城站用WordPress,用于做网站头的图片文章目录 数学规划定义一般形式分类 1.线性规划(linear programming)2.非线性规划(nonlinear programming)3. 整数规划(integer programming)4. 0-1规划(0-1 programming)5. 最大最小化模型6. 多目标规划模型7.敏感性分析#xff08;对权重#xff09;[例题] 数学规划定义
数… 文章目录 数学规划定义一般形式分类 1.线性规划(linear programming)2.非线性规划(nonlinear programming)3. 整数规划(integer programming)4. 0-1规划(0-1 programming)5. 最大最小化模型6. 多目标规划模型7.敏感性分析对权重[例题] 数学规划定义
数学规划是统筹学的一个分支用来研究在给定条件下约束条件如何按照某一行衡量指标目标函数来寻求计划、管理工作中的最优方案。
通俗的讲就是求目标函数在一定约束条件下的极值问题。
一般形式
min或maxz f(x)
x决策变量一般有多个自变量
f(x)目标函数
不等式约束、等式约束、整数约束约束条件分类
线性规划 非线性规划 整数规划 0-1规划
1.线性规划(linear programming)
目标函数f(x)和约束条件均是决策变量的线性表达式。 注linprog函数 只能求解最小值问题最大值问题要在目标函数前加负号转化为最小值问题将结果 fval - fval 即可。
2.非线性规划(nonlinear programming)
目标函数f(x) 和 约束条件中存在决策变量的非线性表达式。
注解决起来比线性规划困难目前没有通用的算法大多数算法都是在选定决策变量的初始之后通过一定的收索方法寻求最优的决策变量。
3. 整数规划(integer programming)
存在变量要求取整数值的数学规则分为 线性整数规划 和 非线性整数规划 。
注目前所流行的求解整数规划的算法往往只适用于线性整数规划。
[x,fval] intlinprog(c,intcon,A,b,Aeq,beq,lb,ub) % Matlab线性整数规划求解 % intcon 参数可以指定哪些决策变量是整数行向量。
0-1规划(0-1 programming)
4. 0-1规划(0-1 programming)
整数规划的特例整数变量的取值只能为0和1。
[x,fval] intlinprog(c,intcon,A,b,Aeq,beq,lb,ub) % 仍然使用线性整数规划的 intlinprog 函数只不过在lb和ub上做文章。 % 0-1变量的 lb 0, ub 1。
5. 最大最小化模型
在最不利的的条件下寻求最有利的策略。
[x,feval] fminimax(Fun,x0,A,b,Aeg,beg,lb,ub,nonlfun,option) max(feval)
% 目标函数 Fun 用一个函数向量表示 % 其他变量与非线性规划相同
6. 多目标规划模型
一个规划问题中有多个目标。
解决方案对多目标函数进行加权组合将问题变为单目标规划。
[x fval] linprog(c, A, b, Aeq, beq, lb,ub, x0)
% 仍然使用线性规划的 linprog 函数 % c中系数乘上了相应权重并除以某一个常数做标准化
注 多个目标函数统一为最大化或最小化问题后才可以进行加权组合。 如果目标函数量纲不相同则需要对其进行标准化后再进行加权。标准化的方法一般是由目标函数除以某一个常数该常数是指目标函数某个取值具体取值可根据经验确定。 对多目标函数进行加权求和时权重需要由该问题领域的专家给定。实际建模比赛中若无特殊要求我们可另权重相同。
7.敏感性分析对权重
通过逐一改变相关变量数值的方法来解释关键指标受这些因素变动影响大小规律。
[例题]
某化工厂今年拟生产两种新产品 A 和 B其生产费用分别为 2 万元/吨和 5 万元/吨。这两种产品均将造成环境污染每生产一吨 A 产品会产生 0.4 吨的污染每生产一吨 B产品会产生 0.3 吨的污染。由于条件限制工厂生产产品A和B的最大生产能力各为每月5吨和 6 吨而市场需要这两种产品的总量每月不少于7 吨。该工厂决策认为这两个目标中环境污染应优先考虑且根据经验生产费用的参考值为 30 万元污染量参老缜园试问工厂如何安排生产计划,在满足市场需要的前提下,使设备的花费和产生的污染均达最小。
%% 多目标规划
w1 0.4; w2 0.6; % 两个目标函数的权重 x1 5 x2 2
% w1 0.5; w2 0.5; % 两个目标函数的权重 x1 5 x2 2
% w1 0.3; w2 0.7; % 两个目标函数的权重 x1 1 x2 6
c [w1/30*2w2/2*0.4 ;w1/30*5w2/2*0.3]; % 线性规划目标函数的系数
A [-1 -1]; b -7; % 不等式约束
lb [0 0]; ub [5 6]; % 上下界
[x,fval] linprog(c,A,b,[],[],lb,ub) % 求解线性规划时使用 —— 目标函数和约束条件都是线性的
f1 2*x(1)5*x(2)
f2 0.4*x(1) 0.3*x(2)%% 敏感性分析
clear;clc
W1 0.1:0.001:0.5; W2 1- W1;
n length(W1);
F1 zeros(n,1); F2 zeros(n,1); X1 zeros(n,1); X2 zeros(n,1); FVAL zeros(n,1);
A [-1 -1]; b -7; % 不等式约束
lb [0 0]; ub [5 6]; % 上下界
for i 1:nw1 W1(i); w2 W2(i);c [w1/30*2w2/2*0.4 ;w1/30*5w2/2*0.3]; % 线性规划目标函数的系数[x,fval] linprog(c,A,b,[],[],lb,ub);F1(i) 2*x(1)5*x(2);F2(i) 0.4*x(1) 0.3*x(2);X1(i) x(1);X2(i) x(2);FVAL(i) fval;
end% 「Matlab」“LaTex字符汇总”讲解https://blog.csdn.net/Robot_Starscream/article/details/89386748
% 在图上可以加上数据游标按住Alt加鼠标左键可以设置多个数据游标出来。
figure(1)
plot(W1,F1,W1,F2)
xlabel(f_{1}的权重)
ylabel(f_{1}和f_{2}的取值)
legend(f_{1},f_{2})figure(2)
plot(W1,X1,W1,X2)
xlabel(f_{1}的权重)
ylabel(x_{1}和x_{2}的取值)
legend(x_{1},x_{2})figure(3)
plot(W1,FVAL) % 看起来是两个直线组合起来的下半部分
xlabel(f_{1}的权重)
ylabel(综合指标的值)