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

Python 我如何为我的遗传算法创造环境?,python,environment,genetic-algorithm,Python,Environment,Genetic Algorithm,我正在用python编写一个遗传算法,它是关于一个虚拟有机体的一系列最佳移动,这将使它在2D网格中获得最随机放置的食物。它没有智慧;它只是以圆形或方形的模式移动。我为生物体居住的环境创建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,具体取决于 无论空间是否被占用

我正在用python编写一个遗传算法,它是关于一个虚拟有机体的一系列最佳移动,这将使它在2D网格中获得最随机放置的食物。它没有智慧;它只是以圆形或方形的模式移动。我为生物体居住的环境创建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,具体取决于 无论空间是否被占用。现在程序实际上只是分配 每个空格都有一个零值,表示没有人在那里)


它只是说“列表分配索引超出范围”。我如何解决这个问题?顺便问一下,有人知道更好的方法来为生物体创建2D环境吗?

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

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

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

这可能需要对您的健身功能进行大量评估,因此高效的实施可能对您非常有益。Numpy提供了开箱即用的多维数组

numpy.zeros((5, 5))

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

您的问题类似于遗传编程中的问题。如果您感兴趣,这个问题已经用Python实现了。这是一个例子。