Langton蚂蚁中的JVM堆大小错误

时间:2012-10-30 17:59:58

标签: java jvm

我试图用Java制作一个Langton蚂蚁(http://en.wikipedia.org/wiki/Langton's_ant)程序。我最初想到的是一种只有两种颜色的天真实现 - 因此是一个布尔网格 - 或布尔二维数组。

这里似乎存在问题 - 网格需要在运行时构建 - 也就是说,用户输入网格长度的值。

这意味着我不能将网格值超过特定值 - 因为它会在Java堆上引发内存不足错误。

我最多可以制作的典型网格是(30,000 * 30,0000)。

我正在考虑如何绕过这个问题至少让网格达到2 ^ 32 * 2 ^ 32 ..

有人可以提供即兴创作算法的建议吗?还是其他任何优化?

虽然我的问题是针对一个特定问题的......我猜想解决这个问题的策略可能会遇到很多这样的问题。

由于

1 个答案:

答案 0 :(得分:0)

您不需要在内存中为此分配和保存矩阵。您只能在节点列表中维护受访位置。节点将具有以下信息:xy坐标(来自虚拟矩阵)和color。 这样你的蚂蚁只需要知道她在虚拟矩阵中的位置(xy),并且将根据蚂蚁所在的节点的颜色计算需要遵循的方向。 。