查看: 415|回复: 0|关注: 0

[已答复] 有关ga函数(遗传算法)使用的一个问题

[复制链接]

新手

25 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2020-7-17 11:33:30 | 显示全部楼层 |阅读模式
目的是用ga函数优化设计流场孔隙结构,变量为28个,均为不小于1不大于5的整数,列为1*28的矩阵x适应度函数fitness如下:
function fit = fitness(x)
res_range=decode(x);
fit=-cal_fitness(res_range);
end



适应度函数中的decode函数如下:
function res_range = decode(x)
a=cell(28,1);
cell_res=ones(18,18);
for i=1:28
    switch x(i)
        case 1
            a{i}=cell_res*72268907;
        case 2
            a{i}=cell_res*55007543;
        case 3
            a{i}=cell_res*39631336;
        case 4
            a{i}=cell_res*26140286;
        case 5
            a{i}=cell_res*14534392;
    end
end
res_range=[a{1},a{2},a{3},a{4},a{5},a{6},a{7}; ...
    a{8},a{9},a{10},a{11},a{12},a{13},a{14}; ...
   a{15},a{16},a{17},a{18},a{19},a{20},a{21}; ...
    a{22},a{23},a{24},a{25},a{26},a{27},a{28}; ];
end



主程序如下:
ub=[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];
lb=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
IntCon=[1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28];
A = [];
b = [];
Aeq = [];
beq = [];
nonlcon = [];
options =gaoptimset('InitialPopulation',[1,1,5,5,5,3,3,1,1,5,5,5,3,3,1,1,5,5,5,3,3,1,1,5,5,5,3,3]);
x=ga(fitness,28,A,b,[],[],lb,ub,nonlcon,IntCon,option);


然而使用ga函数时报错decode函数中switch x(i)输入参数数目不足,而使用ga工具箱时却能正常运行
希望大家能帮忙找一下问题出在哪里,谢谢!(附件为程序里出现的其它函数)

AGA_NET.rar

317.6 KB, 下载次数: 0

可能会用到的函数

回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表