python - 我的遗传算法有什么问题

标签 python algorithm genetic-algorithm genetic

<分区>

我正在尝试了解遗传算法的工作原理。就像我通过尝试在我的上写东西来学习的一切一样;然而,我的知识非常有限,我不确定我是否做对了。

此算法的目的是查看如果一半的牛群已经感染了疾病,则需要多长时间才能将一半的牛群感染。这只是我想到的一个例子,所以我不确定这是否是一个可行的例子。

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

代码如下:

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()

最佳答案

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

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

1- 您试图最小化的目标函数

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

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

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

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

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

关于python - 我的遗传算法有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14785134/

相关文章:

iphone - 二维线段变形算法

algorithm - 惰性传播线段树实现难点

c++ - 如何使用遗传算法求解线性方程组?

python - Django with mysql - 加载 mysqldb 模块时出错

python - OpenCv 不接受函数中的多个绘制指令(在 Python 中)

algorithm - 加权游戏结果的公式/算法

python - 为什么TPOT推荐分类器的得分低于LinearSVC?

java - 通过交换染色体重组创建新的基因型

python - Mapper Mapper|用户|用户无法组装映射表的任何主键列 'users'

python - ModuleNotFoundError - 导入 Python 文件时出现 Airflow 错误