非线性整数规划的遗传算法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));