![]() |
遗传算法求解具体问题(附需求解的程序)
下面是一个简单的程序
function[sol,val] = FN(sol) sum=0; for x=0:stepx:Xmax %(x,y)为点,这些点是均匀分布在Xmax乘以Ymax的矩形区域的。 for y=0:stepy:Ymax F=0; for i=1:k % K代表有K个圆 squareD=(x-sol(2*i-1))^2+(y-sol(2*i))^2; % 求解(x,y)与K个圆圆心之间的距离 if squareD<=r^2 % K个圆 ,每个圆的半径为r F=1; break; end end if F==1 sum=sum+1; end end end val=sum/((Xmax/stepx+1)*(Ymax/stepy+1)); 其中val是求得的适应度,定义空间是Xmax*Ymax的矩形,stepx和stepy分别是X和Y的取点间隔, squareD是一点到一个圆心的距离,sum为求得的在所有的圆覆盖范围内的总数。 求解的目的要使得val最大。 想用遗传算法求解这个问题,或者遗传算法工具箱求解,function[sol,val] = FN(sol) 这一句中的sol 什么意思 我不太懂,我觉得大意就是开始给定K个圆的圆心,但是怎么给定了? 最后求解的结果是在val最大的情况下,求得K个圆的坐标 。 请大家帮助,谢谢! |
所有时间均为北京时间。现在的时间是 13:32。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.