首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的遗传算法出了什么问题

我的遗传算法出了什么问题
EN

Stack Overflow用户
提问于 2013-02-09 12:57:40
回答 1查看 517关注 0票数 0

我正在尝试理解遗传算法是如何工作的。就像我通过尝试在我的博客上写些东西来学到的一样;然而,我的知识非常有限,我不确定我这样做是否正确。

这个算法的目的是看看如果一半的人已经感染了疾病,那么这个群体中的一半人需要多长时间才能感染疾病。这只是我在脑海中想出的一个例子,所以我不确定这是不是一个可行的例子。

一些关于我如何提高知识的反馈将是很好的。

代码如下:

代码语言:javascript
复制
import random

def disease():
    herd = []
    generations = 0
    pos = 0
    for x in range(100):
        herd.append(random.choice('01'))
    print herd
    same = all(x == herd[0] for x in herd)
    while same == False:
        same = all(x == herd[0] for x in herd)
        for animal in herd:
            try:
                if pos != 0:
                    after = herd[pos+1]
                    before = herd[pos-1]
                    if after == before and after == '1' and before == '1' and animal == '0':
                        print "infection at", pos
                        herd[pos] = '1'
            #print herd
                pos += 1
            except IndexError:
                pass
        pos = 0
        generations += 1
        random.shuffle(herd)
        #print herd
    print "Took",generations,"generations to infect all members of herd."
if __name__ == "__main__":
    disease()
EN

回答 1

Stack Overflow用户

发布于 2013-02-09 13:49:19

您的代码不实现GeneticAlgorithm。我建议你先从一个开源库开始,了解它是如何工作的,然后再实现你自己的(如果需要的话)

要使用遗传算法,您需要具备以下条件:

1-要最小化的目标函数

对目标函数中的决策变量进行建模的2-染色体表示法(例如,实值)。你的目标是找到使目标函数最小化的最佳染色体。

3-开始搜索的染色体的初始群体(可以是随机的)

4-遗传算子,即选择、交叉和变异,应用于当前群体以获得下一代

5-迭代直到达到停止标准,例如最大世代数或期望的适应值

这只是对遗传算法实现应该具有的内容的简要描述。

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

https://stackoverflow.com/questions/14785134

复制
相关文章

相似问题

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