我正在寻找在Python中实现蚁群优化算法,虽然我对Python和面向对象编程都很陌生,所以学习曲线一直很陡峭。在这一点上,我坚持就如何应对以下情况:Python数据结构对于2D网格的建议
- 蚂蚁走动2D网格,他们会遇到障碍,信息素存款其他蚂蚁,食品等什么数据结构我做用来表示这个2D世界以及每个单元格的上述属性?
我试过一个二维数组,以为array[x-coord][y-coord]
可能指向适当的属性(Obstacle: 'Yes/'No', Pheromone Level: X %, etc.)
一个{} (dictionary)
。不幸的是,虽然NumPy让我创建一个二维数组,但我无法将字典对象分配给各个坐标。
from numpy import *
myArray = array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
myArray[2][2]={}
返回:
Traceback (most recent call last):
File "/Users/amormachine/Desktop/PythonTest.py", line 7, in <module>
myArray[2][2]={}
TypeError: long() argument must be a string or a number, not 'dict'
[Finished in 0.6s with exit code 1]
我不承诺任何字典或这种模式实施这个项目肯定会欣赏群体的智慧。
有许多不同的方式来表示这个问题。表示问题的最佳方式主要取决于您想要对表示做什么。因此,我们需要一些指导方针来帮助您:您是否期望数据的任何部分都非常大(例如2D世界的大小,这个世界中有多少个单元格会被填充属性)?您希望能够快速执行哪些操作(例如,访问矩阵中单元格的属性,对矩阵执行算术运算)? – Bitwise 2013-04-09 00:53:34
感谢您的Bitwise问题。随着项目的进一步深入,我将深入探讨更多方面。目前,简单清晰的数据结构非常有帮助。 – amormachine 2013-04-09 02:08:15