【发布时间】:2018-02-27 14:28:00
【问题描述】:
要提出我的问题,请允许我从一个例子开始:
假设一组 1000 个长度相同的数组(又名行向量)。每个都填充了 -1 和 1 之间的随机数。然后我随机抽取 500 个这些行向量并将它们相加。我现在从总和开始,想从最初的 1000 中对选择进行逆向工程。
我决定用遗传算法解决这个问题。我开始了一系列 1000 位长的位串,并运行了变异(又名,翻转随机位)和交叉过程。然后,十分之一秒后,我是 75% 正确的。然后,再过一个小时,我是对的 76%。本质上,我一直在等待正确设置几十位。可能是我的随机数生成器从未以可以合并到解决方案中的方式引入它们。
该算法在开始时做得很好,但后来未能进一步改进解决方案。我试着确保我的基因家族拥有每一个可能的位置之一。那没有帮助;您无法判断物品会以多快的速度从池中消失。
似乎算法中必须有一个额外的组件。一定有什么东西在驱动翻转位(又名突变)位置的选择。这件作品的技术术语是什么?坡度?它来自哪里?
【问题讨论】:
-
嘿布兰农,你能发布你的伪代码吗?这将帮助我们找出问题;)
-
下面的答案对你没用吗?
-
下面的答案都很有用。我一直忙于家庭活动,但我会在接下来的几天里详细评估它们。
标签: algorithm genetic-algorithm gradient-descent