PDA

查看完整版本 : [求助]适应度函数的编写


liuran8436
2008-04-17, 12:23
要解决的问题是企业联盟的伙伴选择,目标函数件见附件。
主要问题是用 0 1 编码时链接成本难以表示。

我也在思考中,希望大家能给于帮助, 谢谢。

qq121132041

liuran8436
2008-04-18, 12:29
现在算衔接成本的程序是

csj=[1,0,1,0,0,0,1,0,0,1,0,0,0,0;
0,1,1,0,0,0,0,1,0,0,0,1,0,0;
1,0,0,1,0,0,0,1,0,1,0,0,0,0;
0,1,0,0,0,1,1,0,0,0,0,0,1,0;
0,1,0,1,0,0,1,0,0,0,0,0,0,1;
1,0,1,0,0,0,1,0,0,0,1,0,0,0;
0,1,0,1,0,0,0,1,0,0,1,0,0,0;
1,0,0,0,0,1,1,0,0,0,0,0,0,1;
1,0,0,0,1,0,1,0,0,0,0,1,0,0;
0,1,0,0,1,0,1,0,0,0,0,1,0,0;]

for i = 1:10
k=0
for j = 1:14
if csj(i,j)==1
r=j
k=k+1
jl(i,k)=r
end
end
end

distance=[0,1.5,2.3,3.1,0.8,0.88,4.21,2.11,3.21,2.5,1.6,4.5,1,0.9;
1.5,0,1.3,0.56,4.07,1.83,2,3.8,2.9,4.01,2.3,3.3,2.1,1.3;
2.3,1.3,0,0.7,1.06,2.7,3.12,2.11,1.78,1.85,1.98,3.21,2.22,1.5;
3.1,0.56,0.7,0,1.8,2.3,1.6,3,1.77,1.92,2.93,2.38,3.04,2.37;
0.8,4.07,1.06,1.8,0,3.5,1.84,2.11,1.58,2.06,3.41,3.22,3.54,2.73;
0.88,1.83,2.7,2.3,3.5,0,1.92,4.2,2,3.31,1.51,1.7,1.96,2.4;
4.21,2,3.12,1.6,1.84,1.92,0,3.92,2.41,3.24,2.17,4.03,3.51,2.76;
2.11,3.8,2.11,3,2.11,4.2,3.92,0,2.81,3.72,3.24,3.31,4.15,3.56;
3.21,2.9,1.78,1.77,1.58,2,2.41,2.81,0,3.92,2.34,2.77,4.71,5.08;
2.5,4.01,1.85,1.92,2.06,3.31,3.24,3.72,3.92,0,4.31,3.56,3.14,4.22;
1.6,2.3,1.98,2.93,3.41,1.51,2.17,3.24,2.34,4.31,0,4.31,3.11,4.15;
4.5,3.3,3.21,2.38,3.22,1.7,4.03,3.31,2.77,3.56,4.31,0,3.56,3.14;
1,2.1,2.22,3.04,3.54,1.96,3.51,4.15,4.71,3.14,3.56,0,3.47;
0.9,1.3,1.5,2.37,2.73,2.4,2.76,3.56,5.08,4.22,4.15,3.14,3.47,0;]

for i=1:10
eval(i,1)=0;
for j=2:4
eval(i,1)=eval(i,1)+distance(jl(i,j-1),jl(i,j));
end
end

错误提示为

??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

liuran8436
2008-04-18, 14:14
哦 错误找到了

dnping
2008-04-18, 14:14
distance=[0,1.5,2.3,3.1,0.8,0.88,4.21,2.11,3.21,2.5,1.6,4.5,1,0.9;
1.5,0,1.3,0.56,4.07,1.83,2,3.8,2.9,4.01,2.3,3.3,2.1,1.3;
2.3,1.3,0,0.7,1.06,2.7,3.12,2.11,1.78,1.85,1.98,3.21,2.22,1.5;
3.1,0.56,0.7,0,1.8,2.3,1.6,3,1.77,1.92,2.93,2.38,3.04,2.37;
0.8,4.07,1.06,1.8,0,3.5,1.84,2.11,1.58,2.06,3.41,3.22,3.54,2.73;
0.88,1.83,2.7,2.3,3.5,0,1.92,4.2,2,3.31,1.51,1.7,1.96,2.4;
4.21,2,3.12,1.6,1.84,1.92,0,3.92,2.41,3.24,2.17,4.03,3.51,2.76;
2.11,3.8,2.11,3,2.11,4.2,3.92,0,2.81,3.72,3.24,3.31,4.15,3.56;
3.21,2.9,1.78,1.77,1.58,2,2.41,2.81,0,3.92,2.34,2.77,4.71,5.08;
2.5,4.01,1.85,1.92,2.06,3.31,3.24,3.72,3.92,0,4.31,3.56,3.14,4.22;
1.6,2.3,1.98,2.93,3.41,1.51,2.17,3.24,2.34,4.31,0,4.31,3.11,4.15;
4.5,3.3,3.21,2.38,3.22,1.7,4.03,3.31,2.77,3.56,4.31,0,3.56,3.14;
1,2.1,2.22,3.04,3.54,1.96,3.51,4.15,4.71,3.14,3.56,0,3.47;
0.9,1.3,1.5,2.37,2.73,2.4,2.76,3.56,5.08,4.22,4.15,3.14,3.47,0;]

这个里面元素可能不一致……

liuran8436
2008-04-18, 20:46
这个里面元素可能不一致……

对 落了一个数 找到了 谢谢。

目标函数已经没问题了,现在在看选择和变异的程序,费解中。

liuran8436
2008-04-28, 19:44
这里回贴的人好像很少啊 我现在的程序调通了 可就是收敛不了 难道选择遗传算法就是个错误?

pslpsl
2008-08-20, 02:34
关于收敛可自己根据题目的具体情况改进算法

tqr591513792
2008-10-02, 18:18
要解决的问题是企业联盟的伙伴选择,目标函数件见附件。
主要问题是用 0 1 编码时链接成本难以表示。

我也在思考中,希望大家能给于帮助, 谢谢。

qq121132041

大家一起探讨探讨!!!:confused: