非线性整数规划的遗传算法Matlab程序(附图)通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解
这时就需要针对问题设计专门的优化算法
下面举一个遗传算法应用于非线性整数规划的编程实例,供大家参考
模型的形式和适应度函数定义如下:这是一个具有200个01决策变量的多目标非线性整数规划,编写优化的目标函数如下,其中将多目标转化为单目标采用简单的加权处理
矚慫润厲钐瘗睞枥庑赖
functionFitness=FITNESS(x,FARM,e,q,w)%%适应度函数%输入参数列表%x决策变量构成的4×50的0-1矩阵%FARM细胞结构存储的当前种群,它包含了个体x%e4×50的系数矩阵%q4×50的系数矩阵%w1×50的系数矩阵%%gamma=0
98;N=length(FARM);%种群规模F1=zeros(1,N);F2=zeros(1,N);fori=1:Nxx=FARM{i};ppp=(1-xx)+(1-q)
*xx;F1(i)=sum(w
*prod(ppp));F2(i)=sum(sum(e
*xx));endppp=(1-x)+(1-q)
*x;f1=sum(w
*prod(ppp));f2=sum(sum(e
*x));Fitness=gamma*sum(min([sign(f1-F1);zeros(1,N)]))+(1-gamma)*sum(min([sign(f2-F2);zeros(1,N)]));聞創沟燴鐺險爱氇谴净
针对问题设计的遗传算法如下,其中对模型约束的处理是重点考虑的地方function[Xp,LC1,LC2,LC3,LC4]=MYGA(M,N,Pm)%%求解01整数规划的遗传算法%%输入参数列表%M遗传进化迭代次数%