您的位置:首页 > 编程语言

集体智慧编程第5章,遗传算法出现schedulecost函数中“NoneType”has no len()

2018-03-26 15:22 555 查看
自己对照教材输入,遗传算法中有时出现schedulecost函数中“NoneType”has no len(),下载了教程源代码,也是这样的,经一天研究,终于发现了bug之处。因为geneticoptimize中的mutate可能返回为空数据,条件是random.random()>=0.5,且vec[i](vec为9的时候)>=domain[i][1]。解决办法:
def mutate(vec):
    i=random.randint(0,len(domain)-1)
    if random.random()<0.5 and vec[i]>domain[i][0]:
      return vec[0:i]+[vec[i]-step]+vec[i+1:]
    elif vec[i]<domain[i][1]:
      return vec[0:i]+[vec[i]+step]+vec[i+1:]
    else:
      return vec
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐