首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于遗传算法的混淆

关于遗传算法的混淆
EN

Stack Overflow用户
提问于 2012-09-13 18:08:30
回答 2查看 130关注 0票数 1

我的书(人工智能,一种现代方法)说,遗传算法从一组随机生成的状态开始,称为人口。每一种状态都表示为有限字母表上的字符串--最常见的是,0和1s的字符串。例如,8皇后状态必须指定8皇后的位置,每一列为8平方,因此需要8* log(2)8 = 24位。或者,可以将状态表示为8位数字,每个数字的范围从1到8不等。

[ puzzle ]

我不明白表达式8* log(2)8 = 24位,为什么log2 ^ 8?这24位是用来做什么的?

EN

回答 2

Stack Overflow用户

发布于 2012-09-13 18:19:19

如果我们以维基百科页面上的第一个例子为例,解决方案可以编码为2,4,6,8,3,1,7,5 :第一个数字给出A列中女王的行号,第二个数字表示B列中女王的行号,以此类推。现在,我们将从0开始,而不是从1开始行编号。然后用1,3,5,7,0,6,4对溶液进行编码,任何位置都可以这样编码。

我们只有0到7之间的数字,如果用二进制3位(=log2 2(8))写数字就足够了:

代码语言:javascript
复制
000 -> 0
001 -> 1
...
110 -> 6
111 -> 7

一个位置可以用8乘3位数编码,例如,从1,3,5,7,0,0,6,4,我们得到001,1,101,111,10,000,110,100或更简单地说是00101111110110000110100: 24位。

另一方面,位串0000100010111001011110解码为000.010.001.011.101.111.110,然后是0,2, 1,3,4,5,7,6,并给出1,3,2,4,5,8,7 :A列中的女王在第1行,B列中的皇后在第3行,等等。

票数 1
EN

Stack Overflow用户

发布于 2012-09-13 18:19:33

存储可能的平方(8种可能性0-7)所需的位数是log(2)8。请注意,二进制数的111是小数的7。您必须为8列指定正方形,因此需要3位8次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12412250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档