遗传算法线性规划
1. 线性规划整数解有简便方法吗 线性规划整数解除了用画图法还有什么别的方法有只用代数的方法吗
整数线性规划的解法总结
0-1整数线性规划是整数线性规划的特殊情况,在实际中有着广泛的应用.虽然变量的取值只有两个,但此类问题的求解却意外的困难,下面把有关的一些解法总结一下.
1.穷举法 把所有可能的解一一代入,然后比较满足约束的解,使目标函数最达到最优的解是最优解.这不失为一种方法,但不是一种好方法.如果问题规模大,则无法在可接受的时间内求得最优解.这也是求解整数规划的困难所在.
2.隐枚举法I 是穷举法的改进,其思路是先给出一个可行解,然后代入目标函数算出函数值得到一个上界(如果求最小值)或下界(如果是求最大值).然后一一检验其它的解,如果该解大于上界或小于下界,则不用检验可行性,因为它不可能是最优解,否则的话就要检验可行性,如果是可行解,则修改上界或下界,继续检验其它的解,否则不用修改上界或下界,直接检验其它的解.这种方法通过上界或下界来控制是否需要进行可行性检验,提高了效率.但是,要找可行解也得花一定的时间,当约束和变量较多时,工作量异常的大,退一步来说,即使可行解比较容易找到,但其产生的上界太大,或是下界太小,则其过滤的效果也不明显.这是这种方法的缺陷.
3.隐枚举法II 这种方法先把问题转化成标准型,然后按照分枝定界法的思想,尽量少的检验可行解来寻找最优解.这种方法比较麻烦,我在这里也描述不清楚,过几天理解透了再来写这一部分.
4.隐枚举法III 这是在程冬时,张声年在江西电力职业技术学院学报上发表的一篇文章《关于0-1型整数规划的若干问题》中提出来的,大致的思路是:把所有可能的解都代入目标函数算出值,然后把这些目标函数值进行排序,如果是求最大值,则降序排列,如果是求最小值则升序排列.然后按这个顺序一个一个的检验对应的解的可行性,当碰到第一个可行解时即得到最优解,因为其它的解不会优于此解了.这种方法的缺陷也是明显的,如果变量为N个,则需求2的N次个目标函数值,然后还要进行排序,这又是项工作量很大的工作,再一个就是,如果排序结果是把可行解排在最后一个,那还是得进行2的N次方次检验.
4.启发式算法 遗传算法,蚁群算法等都可归于此类.这都是随机算法,说白了就是听天由命,即使算出了最优解你也不知道是不是最优解,因为此类算法的收敛性都只是依概率收敛的,真正在算的过程中是否已得到最优只有上帝知道.启发式算法是万不得已的情况下才使用的,我们用这种方法只能保证得到的解比其它方法得到的好,但不一定就说得到了最优了.
0-1规划的求解方法还在研究之中,也许你会发现一个有效的算法.
2. 什么是智能优化算法
群体智能优化算法是一类基于概率的随机搜索进化算法,各个算法之间存在结构、研究内容、计算方法等具有较大的相似性。因此,群体智能优化算法可以建立一个基本的理论框架模式:
Step1:设置参数,初始化种群;
Step2:生成一组解,计算其适应值;
Step3:由个体最有适应着,通过比较得到群体最优适应值;
Step4:判断终止条件示否满足?如果满足,结束迭代;否则,转向Step2;
各个群体智能算法之间最大不同在于算法更新规则上,有基于模拟群居生物运动步长更新的(如PSO,AFSA与SFLA),也有根据某种算法机理设置更新规则(如ACO)。
(2)遗传算法线性规划扩展阅读
优化算法有很多,经典算法包括:有线性规划,动态规划等;改进型局部搜索算法包括爬山法,最速下降法等,模拟退火、遗传算法以及禁忌搜索称作指导性搜索法。而神经网络,混沌搜索则属于系统动态演化方法。
优化思想里面经常提到邻域函数,它的作用是指出如何由当前解得到一个(组)新解。其具体实现方式要根据具体问题分析来定。
3. 节约里程法属于线性规划吗
节约里程法不属于线性规划。
在物流配送路径优化研究中,常见的方法有启发式算法、遗传算法等,具体以线性规划法、表上作业法、图表分析作业法、节约里程法为常用方法。
表上作业法是指用列表的方法求解线性规划问题中运输模型的计算方法。是线性规划一种求解方法。
4. 遗传算法能不能解决线性规划顺便举个例子或者链接吧。
当然可以了,不过就是看你这个线性规划的约束条件怎么设置,一般可以在求适应度的时候设置为可行域外适应度值取一个足够大的数
5. matlab中遗传算法求解带约束非线性规划问题
是非线性约束
再单独写个.M文件,像目标函数那样,把两个约束条件写进去,在约束区有个“Nonlinear constraint function” @+"你的约束文件名"
6. Matlab中用遗传算法求解带约束的非线性规划问题
按我的理解x是个6元向量
那么就没有问题 在第一个M文件最后加个f=fsum;
直接
ga(@fitnessfun,6,[],[],[],[],[],[],@nonlconstr)
7. 请帮忙用遗传算法编写两个求线性规划的问题(题目见图一和图二)。
作!业!自!己!做!!!
8. 求助大神 利用遗传算法解决非线性规划问题,最好有MATLAB代码
%%%%%%%%%%%
无聊到专门帮你写了个程序。不想全部写完,自己补完。PS:这题怎么看都是线性规划
&&&&&&&&&&&&&&
%%%%%%%%%%%%%%利用遗传算法计算最优化问题%%%%%%%
%遗传算法参数设置
popsize=200; %种群个数
generation=500;%种群迭代次数,繁殖后代数
pc=0.4; %两个体之间交叉概率
pm=0.05; %个体变异的概率
yueshu=0; %约束成立的标志为1
%初始化群体
for i=1:popsize
while(yuesu==0) %当约束成立时,不再变异。约束不成立时变异。
x(i,1)=randint(1,1,[0,35]); %随机生成(0-35)的整数
x(i,2)=randint(1,1,[0,60]);
x(i,3)=randint(1,1,[0,40]);
x(i,4)=randint(1,1,[0,40]);
x(i,5)=randint(1,1,[0,30]);
x(i,6)=randint(1,1,[0,30]);
x(i,7)=randint(1,1,[0,35]);
x(i,8)=randint(1,1,[0,20]);
%这里自己写几行程序就好
if
%这里判断约束条件,若符合,yueshu=1;
end
end
end
for n=1:generation
%计算适应度
[row col]=size(x);
for i=1:row
fitness(i)=(x(i,1)+x(i,2)+x(i,3)+x(i,5)+x(i,6)+x(i,7)+x(i,8))/20;
end
%轮盘赌选择
zong=sum(fitness);
xt=x;
for i=1:row
temp=rand(1);
for j=1:row
if temp< fitness(j)/zong
break;
end
end
x(i,:)=xt(j,:);
end
%两个个体交叉变异
x2=x;
[row col]=size(x);
for i=1:2:row
temp=rand(1);
if temp<pc
%%%%%%%%%%%%%这里还要自己写个程序判断是否符合约束,不符合一直交叉,直到交叉到符合约束
point=randint(1,1,[1,8]);
x(i,point:8)=x2(i+1,point:8);
x(i+1,1:point)=x2(i,1:point);
end
end
%单个点变异
x3=x;
[row col]=size(x);
for i=1:row
for j=1:8
temp=rand(1);
if(temp<pm)
yueshu=0;
while(yueshu==0) %当约束成立时,不再变异。约束不成立时变异。
if j==1 x(i,1)=randint(1,1,[0,35]);end
if j==2 x(i,2)=randint(1,1,[0,60]);end
if j==3 x(i,3)=randint(1,1,[0,40]);end
if j==4 x(i,4)=randint(1,1,[0,40]);end
if j==5 x(i,5)=randint(1,1,[0,30]);end
if j==6 x(i,6)=randint(1,1,[0,30]);end
if j==7 x(i,7)=randint(1,1,[0,35]);end
if j==8 x(i,8)=randint(1,1,[0,20]);end
%这里自己写程序啊
if
%这里判断约束条件,若符合,yueshu=1;
end
end
end
end
end
end
[row col]=size(x);
for i=1:row
fitness(i)=(x(i,1)+x(i,2)+x(i,3)+x(i,5)+x(i,6)+x(i,7)+x(i,8))/20;
end
maxx=find(fitness==max(fitness));
x(maxx,:)
9. 遗传算法求解非线性规划一定是最优解吗
只是局部最优解,不是全局最优解
10. 急急急!!!遗传算法适应度函数用MATLAB怎么定义呀
给你举个例子吧,比如目标函数是f(x)=x1+x2,matlab中就写为:
function f=fitness(x)
f=x(1)+x(2);
函数输出f,这个你可以随便定义,只是给名字而已
函数名称fitness,这个你也可以随便起,只不过遗传算法中@你起的名字就行
函数输入x:就是你要优化的各个量了,第一个是x(1),第二个是x(2),以此类推