非线性整数规划的遗传算法 Matlab 程序(附图) 通常,非线性整数规划是一个具有指数复杂度的 NP 问题,假如约束较为复杂,Matlab 优化工具箱和一些优化软件比如 lingo 等,常常无法应用,即使能 应用也不能给出一个较为令人满意的解
这时就需要针对问题设计专门的优化算法
下面举一个遗传算法应用于非线性整数规划的编程实例,供大家参考
模型的形式和适应度函数定义如下: 这是一个具有 200 个 01 决策变量的多目标非线性整数规划,编写优化的目标函数如下,其中将多目标转化为单目标采纳简单的加权处理
function Fitness=FITNESS(x,FARM,e,q,w)%% 适应度函数% 输入参数列表% x 决策变量构成的 4×50 的 0-1 矩阵% FARM 细胞结构存储的当前种群,它包含了个体 x% e 4×50 的系数矩阵% q 4×50 的系数矩阵% w 1×50 的系数矩阵%%gamma=0
98;N=length(FARM);%种群规模F1=zeros(1,N);F2=zeros(1,N);for i=1:N xx=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 整数规划