我刚刚学习了遗传算法的基本知识(更多介绍)。对于赋值,我们要找到在0 <= x <= 256的区间内使f(x)= sin(x * pi / 256)最大化的x的值。
虽然我了解如何获得个人的健康以及如何使健康正常化,但我在生成人口方面有点迷失。在文中,为了执行交叉和变异,使用8位表示每个人。例如:
189 = 10111101
35 = 00100011
我的问题是:
使用c,生成人口的最佳方法是什么?我查了一下,我能找到的只是使用uint8_t。我正在考虑将其生成为数组,然后找到一种转换为它的整数表示的方法。
规范健身有什么用途?
感谢您的时间。
答案 0 :(得分:0)
通常的方式是人口是随机的,但如果你有一些初步优化,你可以围绕已有的结果形成人口。
当GA与PSO,模拟退火等等等语言混合时,使用混合算法是很常见的。