声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2521|回复: 4

[工具箱] gads工具箱种群类型bitstring如何使用

[复制链接]
发表于 2008-1-19 18:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我由于做遗传算法在数字图像分割方面的应用的论文,现正在使用matlab的gads工具箱做实验。因为现在在赶时间,所以来不及细心钻研了,只好求助于各位热心人以解燃眉之急,实在不好意思……
具体问题是这样的:我在对256灰度级的图像进行实验,种群中的个体就是各个灰度级,十进制来说就是[0,255]这个范围。对于这个问题,个体的取值应该是0~255之间的整数。所以我觉得应该用8位二进制数进行个体的编码。但是参考了一些书,没有发现任何一本书举例说明如何进行类似的设置……所以希望有热心人告诉我如何设置种群参数中的各项,包括Population type(这个我想应该是bit string吧)、Initial range(这个是我急切想知道的),以及各个需要注意和特别设置的地方,谢谢!请知道的高手指教!万分感谢!

[ 本帖最后由 eight 于 2008-1-22 19:54 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-1-19 19:06 | 显示全部楼层

回复 楼主 的帖子

你再来不及,别人也不可能特地为你写个程序,除非刚好有人有

建议你自己动手,有问题再来讨论
 楼主| 发表于 2008-1-19 22:46 | 显示全部楼层
我已经把适应度函数的程序写好了,用double vector的Population type运行ga,结果基本正确。只是我真正需要的是把个体取为0~255之间的离散值,这样才符合题意。我希望您告诉我的是,对于Initial range,当Population type是double vector情况下自然是填[0;255],而当Population type设置为bitstring时,这个地方应该怎么填?而适应度函数里又是不是要进行解码之类的操作?
可以把我的适应度函数代码贴出来:

function z = my_th(x)
I = imread('cameraman.tif');
L = 256;
[m,n]=size(I);
N = m*n;
p=imhist(I);
p=p/N;
ip = p;
for i = 0:L-1
    ip(i+1) = i * ip(i+1);
end
uT = sum(ip);
w0 = sum(p(1:x+1));
wt = w0;
w1 = 1 - wt;
ut = sum(ip(1:x+1));
u0 = ut/(wt+eps);
u1 = (uT-ut)/(1-wt+eps);
z = -(w0*w1*(u1-u0)^2);

这个函数使用otsu方法(最大类间方差法)求图像分割的阈值,x是目前取的灰度级(也就是随机产生的个体),这个x应该在[0,255]之间取离散值,可是我应该如何设置相应的ga选项,和修改我的适应度函数(如果需要的话),来使用八位二进制位串表示个体?

[ 本帖最后由 shibtom 于 2008-1-19 22:57 编辑 ]
发表于 2008-3-4 15:26 | 显示全部楼层
我也遇到了同样的问题。用bitstring适应度函数是一定要修改的
发表于 2008-3-27 23:23 | 显示全部楼层
我也遇到整数变量的问题,到底应该如何设置?:@(
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 08:48 , Processed in 0.059680 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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