数模常用算法系列--整数线性规划(分枝定界法)、整数非线性规划(蒙特卡洛...

数模常⽤算法系列--整数线性规划(分枝定界法)、整数⾮线性
规划(蒙特卡洛法)
边界效应整数线性规划求解----分枝定界法
什么是整数规划?
糖水不等式线性规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。⽬前所流⾏的求解整数规划的⽅法,往往只适⽤于整数线性规划。⽬前还没有⼀种⽅法能有效地求解⼀切整数规划。
整数规划的分类
- 变量全限制为整数时,称(完全)整数规划
- 变量部分限制为整数时,称混合整数规划
什么是分枝定界法
原理如下:
设有最⼤化的整数规划问题A,与它相应的线性规划为问题B,从解问题B开始,若其最优解不符合A的整数条件,那么B的最优⽬标函数必是A的最优⽬标函数z^*的上界\overline{z};⽽A的任意可⾏解的⽬标函数值将是z^*的⼀个下界\underline z ,分枝定界法就是将B的可⾏域分成⼦区域的⽅法。逐步减⼩\overline z和增⼤\underline z最终求到z^*
本质就是个分治回溯,逼近最⼤值的算法。Matlab算法如下:(强烈警告,(不会验证)由于⽐较懒,并未对算法正确性验证,思路上验证了⼀下没问题就码上来了,如果有错,请⼀定联系~~)
% c,A,Aeq,Beq,LB,UB,是linprog函数的相关参数,知道了它们就可以求出对应的线性规划最优解,
% now是⽬前已经知道的整数解的最⼤值
function y = control(c,A,Aeq,Beq,LB,UB,now)
ret = 0;
[x,fval] = linprog(c,A,Aeq,Beq,LB,UB); % x是最优解的解向量,fval是对应的函数值
if fval < now
y = fval;
return;
end  % 如果得到的当前最优解fval⼩于已知的now,那说明最优整数解不在这个区间,则剪枝返回。
for i = 1 : length(x)
if rem(x(i),1) ~= 0  % rem(x,1)如果返回值不为0,则表⽰是⼩数。遍历x,到第⼀个⼩数xi.政治体制改革的目标
天指神功
NUB = UB;张远忠
NLB = LB;
NUB(i) = floor(x(i)); % 把xi对应的上界更新为xi的向下取整。
NLB(i) = ceil(x(i)); % 把xi对应的下界更新为xi的向上取整。
fval1 = control(c,A,Aeq,Beq,LB,NUB,now);  %分成了两个区间,原来下界~向下取整
now = max(fval1,now);
fval2 = control(c,A,Aeq,Beq,NLB,UB,now);  % 向上取整~原来上届
ret = max(ret,fval1); % 更新得到整数最优解,并退出。
ret = max(ret,fval2);
break
end
if  i == length(x)  %如果每个xi都是整数,直接退出
y = ret;
return ;
end
end
if j == length(x)+1  %如果当前已经是整数最优,返回fval,否则返回ret。
y = fval;
end
end
⾮线性整数规划--蒙特卡洛算法(随机取样法)
什么是⾮线性规划?
就是⾃变量不再是线性的规划。没错就是这个。
蒙特卡洛算法
对于⾮线性整数规划⽬前尚未有⼀种成熟⽽准确的求解⽅法,那么到⼀个相对满意的解就成了主要需求。
蒙特卡洛算法是⼀种⼤量随机取样枚举解,以达到存在⼀种解,其函数值落在了我们期望的⾼值区(不要问我什么是⾼值区)。
那么具体多少次枚举合适呢?这是相对于问题⽽⾔的,举个例⼦:
0\leq x_i \leq 99 ,1 \leq i \leq 5, y = x_1^2 + x_2^2+3x_3^2+4x_4^2+2x_5^2-8x_1-2x_2-3x_3-x_4-2
x_5 ,
解空间⼤⼩为100^5 = 10^{10},太⼤了,枚举不了
如果选择随机采样1e6,假设最优点不是孤⽴的奇点,并设⽬标函数落在可以接受的⾼值区的概率是0.00001,那么存在⼀个点落在⾼值区的概率为 1-0.99999^{1000000}\approx 0.999954602,显然这个概率是可以接受的,也即是我们认为通过随机采样1e6,是能够得到满⾜期望的解。
随机采样的算法就不写了,因为太懒了(因为不会)。
今⽇感触:matlab的库函数是真的多,基础语法还是不⾏啊,以及数模的算法还挺有意思的,虽然⾼⼤上,其实也就那样。
-----9.10 更新
~~
cnn规划问题还是⽤lingo吧,太⽅便了。
Processing math: 0%

本文发布于:2024-09-22 07:30:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/536860.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:整数   规划   算法   验证   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议