我正在用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,具体取决于 空间是否被占用。现在程序实际上只是分配 每个空格为零,表示没有个人)
它只是说“列表分配索引超出范围”。我该怎么解决这个问题?顺便问一下,有没有人知道更好的方法来为生物体创造二维环境?在
它可能需要对您的适应度函数进行大量的评估,因此有效的实现可能对您非常有益。Numpy提供现成的多维数组。在
它将为您提供一个5x5数组,其中填充了0。Numpy还提供了一些不错的功能,比如计算值的出现次数,这将比纯Python实现快得多。在
现在你的数组只有一个元素,你在数组之外建立索引。试试这个
代替你的格子。这将给你一个5乘5的网格,现在你可以索引网格[3][4]。在
相关问题 更多 >
编程相关推荐