优化:线性规划,整数规划应用及模板

  优化类问题在国赛与美赛中都比较常见,尤其国赛,一般都有一道运筹优化类。优化类问题涉及内容很多,再结合图论相关的算法,加在一起是难点也是重点。例如21年国赛C题,考点很清晰,数据处理内容:插值拟合,降维。结合运筹的多目标规划与动态规划,最终利用启发式搜索遗传,模拟退火等等求解。

线性规划

  理论部分并不难,接口也很容易。
在这里插入图片描述在这里插入图片描述  但是,一般不会直接考查。为了体现区分度,会涉及一些技巧。对于线性规划问题而言,目标函数以及约束条件必须都是线性函数。而对于部分问题,可以转换为线性规划问题求解。
在这里插入图片描述接着,上应用
在这里插入图片描述
在这里插入图片描述
  一道简单的例题,题目要求收益最大且总体风险尽量小。显然,可以构建多目标规划模型。对于收益的衡量可以利用,利率与投资计算。对于风险,可以假设利用本次投资中的最大风险计算。可以构建出多目标规划模型:
在这里插入图片描述
  对于多目标规划问题,我们可以利用接口求解(简便),也可以利用启发式算法求解(advanced)。一般在国赛中,国一国二一般都用启发式。具体求解,后续更新。本节我们只考虑线性规划。
  对于多目标规划问题,可以转化单目标规问题。本题,可以转换为线性规划。方式有3种。
在这里插入图片描述
在这里插入图片描述
构建的模型一与模型二是类似的,都是将目标函数转化为约束条件。都借助常数实现。
求解模板如下,一般需要遍历多组解并对结果进行分析。求解模型一:

clear
clc
f=[-0.05 -0.27 -0.19 -0.185 -0.185]; %目标函数,记得要转换为min
Aeq = [1 1.01 1.02 1.045 1.065]; %一个等式因此一行,n个等式矩阵就为n行
beq = [1];
A=[0 0 0 0 0;0 0.025 0 0 0;0 0 0.015 0 0;0 0 0 0.055 0;0 0 0 0 0.026]; %构造不等式
lb=[0;0;0;0;0];
hold on %作图
for a=0:0.001:0.05
  b=[0;a;a;a;a];
  [x,fval] = linprog(f,A,b,Aeq,beq,lb); %调用接口,
  fval = -1 * fval;  %变换得到最大
  plot(a,fval,'*k') %调用plot做二维图
end
xlabel('a');
ylabel('fval');

在这里插入图片描述
接着,需要对图像进行分析。着重分析拐点加结论。

整数规划

  整数规划中要求约束变量取值为整数,它增加了约束条件。目前还没有一种有效的求解算法,所流行的求解算法,一般都是求解整数线性规划。
在这里插入图片描述在这里插入图片描述在整数规划中需要注意的技巧:
  引入松弛变量。一般而言,对于整数线性规划问题。可以通过引入松弛变量,将原问题的不等式约束转换为等式约束。引入松弛变量的目的在与:可以扩大可行域。例如:

min z = 2x1 + 3x2
3x1 + 5x2 <= 10
x1,x2 >=0 且取整数

%引入松弛变量
 min z = 2x1 + 3x2
3x1 + 5x2 + x3 = 10
x3 >= 0
x1,x2 >=0 且取整数

  互斥约束条件,要求从给定的p个约束条件中,恰好选择q个。思想:引入大整数M处理不需要的约束条件。
在这里插入图片描述如上图所示,两个工序选其一,代表着互斥条件选择一个。假定y=1,那么对于约束条件(2)而言,右边的常数项为无穷大,相当于约束没有作用。对于多互斥条件还可以推广。

在这里插入图片描述
  求解:通常由分支定界法与隔平面法。它们都不是万能的,That is,有些问题可能只适用于分支定界法而不适用于隔平面法反之亦然。当然,也可以采用Matlab提供的接口intprog。分支定界法求解的思想是:在求解原问题的松弛问题时,得的非整数解,将非整数解通过取上整与取下整构成两种分支,不断迭代求解。
在这里插入图片描述0-1整数规划:对于决策变量,只取0,1。也称为指派问题。
在这里插入图片描述

在这里插入图片描述在变量不多的情况下,根据题意。直接建模,利用linprog求解即可。
也可以采用匈牙利算法求解匈牙利算法接口已经做的比较完善。

对于非标准问题,可以进行转换。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值