如何执行python列表元素组合的遗传进化?
我是一名Python程序员,在这种情况下,我必须模拟list元素组合的遗传演变。 其想法如下:如何执行python列表元素组合的遗传进化?,python,genetic-algorithm,evolutionary-algorithm,Python,Genetic Algorithm,Evolutionary Algorithm,我是一名Python程序员,在这种情况下,我必须模拟list元素组合的遗传演变。 其想法如下: li #initial list combinations=get_combinations(li) #not all possible combinations results=[] for c in combinations: results.append(do_stuff(li)) #do_stuff returns percantage of accuracu 最后,我有两个列表:组合,它保
li #initial list
combinations=get_combinations(li) #not all possible combinations
results=[]
for c in combinations: results.append(do_stuff(li)) #do_stuff returns percantage of accuracu
最后,我有两个列表:组合,它保留了li元素和结果的一些组合,它为每个组合保留了一个percantive值o准确性。这样做的目的是选择精度最高的组合
不可能检查所有li的组合,这需要数月的计算时间。我想我得从一些随机的开始?然后努力做到最好。我应该使用什么图书馆?在这里如何符号化进化
编辑:
或者:元素集不断演化,直到其精度超过k%。基本上有四种可能性: 1.探索所有组合 然而,随着组合的数量呈指数增长,这是难以解决的 2.随机搜索 生成随机组合,直到得到一个足够好的组合 3.本地搜索 从一些组合开始。然后做一个小小的改变。如果新版本比当前版本好,则将其设置为当前版本并重复此过程 上述方法可以大大改进。根据我的经验,最好的改进之一就是 4.进化算法 使用模拟自然进化的算法。最基本的进化算法如下所示: 初始化候选解决方案的总体。 在不满足停止条件之前: 从总体中选择两个候选解决方案,其中较好的解决方案被选择的几率较高。 可选*以某种方式重新组合两个解决方案取决于表示,即将它们组合在一起以创建新的解决方案。 可选*轻微更改或变异新解决方案。 将新的解决方案重新放入总体中,丢弃一些不足以保持总体大小不变的其他解决方案。 必须存在重组或突变。通常,每一项都有一定的可能性
我们面临的挑战是找到一种良好的表达方式,以实现有效的重组和突变。您基本上有四种可能: 1.探索所有组合 然而,随着组合的数量呈指数增长,这是难以解决的 2.随机搜索 生成随机组合,直到得到一个足够好的组合 3.本地搜索 从一些组合开始。然后做一个小小的改变。如果新版本比当前版本好,则将其设置为当前版本并重复此过程 上述方法可以大大改进。根据我的经验,最好的改进之一就是 4.进化算法 使用模拟自然进化的算法。最基本的进化算法如下所示: 初始化候选解决方案的总体。 在不满足停止条件之前: 从总体中选择两个候选解决方案,其中较好的解决方案被选择的几率较高。 可选*以某种方式重新组合两个解决方案取决于表示,即将它们组合在一起以创建新的解决方案。 可选*轻微更改或变异新解决方案。 将新的解决方案重新放入总体中,丢弃一些不足以保持总体大小不变的其他解决方案。 必须存在重组或突变。通常,每一项都有一定的可能性
挑战是找到一个好的表示,允许有效的重组和变异。如果你真的不能检查所有的组合,而且它们没有被用任何可用的方式排序,那么看起来你不会能够得到一个自信的答案,哪一个是最准确的。不,不。好的,我愿意在中间相遇。它一直在发展,直到一个组合的分数达到>k%的准确度不确定这是否是答案等级,因此作为评论:在配方部分,有一个简单的随机组合函数,您可以在计算时间允许的情况下执行几次。谢谢,这是一个好的开始,但后来我需要的不仅仅是随机挑选。。。如果你真的不能检查所有的组合,我认为我必须把结果组合在一起,而且它们并不是以任何可用的方式被订购的,看起来你似乎无法得到一个自信的答案,哪一个是最准确的。不,不。好的,我愿意在中间相遇。它一直在发展,直到一个组合的分数达到>k%的准确度不确定这是否是答案等级,因此作为评论:在配方部分,有一个简单的随机组合函数,您可以在计算时间允许的情况下执行几次。谢谢,这是一个好的开始,但后来我需要的不仅仅是随机挑选。。。我想我必须把结果结合起来谢谢
非常地就是这样:非常感谢!就这样: