如何为我的遗传算法创造环境?

2024-05-15 14:46:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写一个遗传算法,关于一个虚拟生物体的最佳移动序列,它将获得2D网格中最随机放置的食物。它没有智慧,它只是以圆形或正方形的模式运动。我为生物体所在的环境创建二维数组的代码是:

grid = ([])
for i in range(5):
    grid[i]=0
    for j in range(5):
        grid[i][j]=0

(board[4][5]在x,y中表示4,5;board[4][5]的值是0或1,具体取决于 空间是否被占用。现在程序实际上只是分配 每个空格为零,表示没有个人)

它只是说“列表分配索引超出范围”。我该怎么解决这个问题?顺便问一下,有没有人知道更好的方法来为生物体创造二维环境?在


Tags: inboard网格for环境模式range序列
2条回答

它可能需要对您的适应度函数进行大量的评估,因此有效的实现可能对您非常有益。Numpy提供现成的多维数组。在

numpy.zeros((5, 5))

它将为您提供一个5x5数组,其中填充了0。Numpy还提供了一些不错的功能,比如计算值的出现次数,这将比纯Python实现快得多。在

现在你的数组只有一个元素,你在数组之外建立索引。试试这个

grid = [[[] for x in xrange(5)] for y in xrange(5)]

代替你的格子。这将给你一个5乘5的网格,现在你可以索引网格[3][4]。在

相关问题 更多 >