所以,因为this的答案基本上说我真的应该考虑编码我生物的基因*,我做了!
所以,我创建了以下整齐的小(byte [] - )结构:
Gene = {X,X,X,X,Y,Y,Y,Y,Z,Z,Z,Z}
其中
- X =表示生物中的某个特征。
Y =这些区块控制如何以及何时发生交叉和突变(16种可能的值,我认为应该绰绰有余!)
Z =链的长度(基本上,这是为了未来的构建,我想让进化控制整个长度链)。
(所以Z和Y可以被认为是META信息)
(在你问之前,是的,这是一个12字节:))
我的问题如下:
我如何将这些'生物'的特征联系起来?
基本上,我是这样看的(这可能就是我将如何实现它): 每个'生物'都可以跑来跑去,吃东西,繁殖,基本的东西。我不认为(我肯定不会希望至少!)我将需要一个健身功能本身,但我希望进化,就像在比赛中对于食物,伙伴和太空将驱使这些生物进化。
这种观点错了吗?它会更容易(请注意,我是程序员,不是数学家!)将它看作一个大图并“简单地”从那里拿走它?
或者,tl;博士:你能指出我正确的方向,文章,研究和/或实施的例子吗?
(更多tl; dr;我如何翻译基因,例如腿的长度?)
*阅读问题,我正在构建一种模拟器。
答案 0 :(得分:1)
观察Mitchell,1998年,遗传算法导论,第2章。 3.3,我找到了对Forrest和Jones的一个参考,1994,使用Echo建模复杂自适应系统。指的是似乎正在寻找你正在寻找的东西(世界上不断发展的生物)的软件Echo。目前我无法找到它的链接,但这里有关于实施jEcho的论文,作者是Brian McIndoe。
答案 1 :(得分:1)
我之前没有在遗传算法的基因序列中看到像Y和Z这样的元信息(在我有限的技术暴露中)。你的遗传算法是非传统算法吗?
一个生物有多少特质?如果您的X代表特征的值,并且基因序列可以具有可变长度(Z),那么如果没有为所有特征定义足够的X,会发生什么?如果X的数量超过了你对生物的特征,会发生什么?
如果您拥有的X的数量是固定的,那么对于每个特征,您可以指定一个特定的索引(或一组索引)来表示该特征。
修改强>
您应该确定 X 应该代表的特征的编码:对于一条腿的长度,例如,您可以有几个字节代表腿长。如果字节3-5是腿的长度,您可以像这样表示 X -vector中的长度:
[...101......]
点是其他特征表示。上面的片段表示腿长为5(无论这意味着什么)。下面的基因组仍然有5个腿长,但其他特征也填补了。
[001101011011]