非线性整数规划的遗传算法Matlab程序(共6页).docx
《非线性整数规划的遗传算法Matlab程序(共6页).docx》由会员分享,可在线阅读,更多相关《非线性整数规划的遗传算法Matlab程序(共6页).docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上非线性整数规划的遗传算法Matlab程序(附图) 通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能 应用也不能给出一个较为令人满意的解。这时就需要针对问题设计专门的优化算法。下面举一个遗传算法应用于非线性整数规划的编程实例,供大家参考! 模型的形式和适应度函数定义如下: 这是一个具有200个01决策变量的多目标非线性整数规划,编写优化的目标函数如下,其中将多目标转化为单目标采用简单的加权处理。function Fitness=FITNESS(x,FARM,e,q,w)% 适
2、应度函数% 输入参数列表% x 决策变量构成的450的0-1矩阵% FARM 细胞结构存储的当前种群,它包含了个体x% e 450的系数矩阵% q 450的系数矩阵% w 150的系数矩阵%gamma=0.98;N=length(FARM);%种群规模F1=zeros(1,N);F2=zeros(1,N);for i=1:N xx=FARMi; 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);
3、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 遗传进化迭代次数% N 种群规模% Pm 变异概率% 输出参数列表% Xp 最优个体% LC1 子目标1的收敛曲线% LC2 子目标2的收敛曲线% LC3 平均适应度函数的收敛曲线% LC4 最优适应度函数的收敛曲线% 参考调用格
4、式Xp,LC1,LC2,LC3,LC4=MYGA(50,40,0.3)% 第一步:载入数据和变量初始化load eqw;%载入三个系数矩阵e,q,w%输出变量初始化Xp=zeros(4,50);LC1=zeros(1,M);LC2=zeros(1,M);LC3=zeros(1,M);LC4=zeros(1,M);Best=inf;% 第二步:随机产生初始种群farm=cell(1,N);%用于存储种群的细胞结构k=0;while k %以下是一个合法个体的产生过程 x=zeros(4,50);%x每一列的1的个数随机决定 for i=1:50 R=rand; Col=zeros(4,1); i
5、f R0.9 RP=randperm(4); Col(RP(1:2)=1; else RP=randperm(4); Col(RP(1:3)=1; end x(:,i)=Col; end %下面是检查行和是否满足约束的过程,对于不满足约束的予以抛弃 Temp1=sum(x,2); Temp2=find(Temp120); if length(Temp2)=0 k=k+1; farmk=x; endend% 以下是进化迭代过程counter=0;%设置迭代计数器while counter% 第三步:交叉 %交叉采用双亲双子单点交叉 newfarm=cell(1,2*N);%用于存储子代的细胞结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 非线性 整数 规划 遗传 算法 Matlab 程序
限制150内