Artificial intelligence 在协作扩散矩阵中均匀分布气味

Artificial intelligence 在协作扩散矩阵中均匀分布气味,artificial-intelligence,Artificial Intelligence,我第一次尝试实现协作扩散行为,但遇到了一个问题。我知道如何制造障碍物而不扩散气味,如果其他友军特工已经在追踪,我知道如何抑制气味。我无法理解的是我如何使气味均匀地分布在母体中。在我看来,矩阵中的每一种迭代方式都决定了气味在迭代后期检查的瓷砖中分布得更快更好。我的意思是,如果我从I迭代到maxRows,从j迭代到maxCols,然后我在每个瓷砖中应用扩散方程,在目标的“北”和“西”侧,我将只有一个瓷砖具有正确的电势,而在“东”和“南”侧,我将有更多瓷砖,因为他们的邻居已经有指定的电势。如何使值均匀

我第一次尝试实现协作扩散行为,但遇到了一个问题。我知道如何制造障碍物而不扩散气味,如果其他友军特工已经在追踪,我知道如何抑制气味。我无法理解的是我如何使气味均匀地分布在母体中。在我看来,矩阵中的每一种迭代方式都决定了气味在迭代后期检查的瓷砖中分布得更快更好。我的意思是,如果我从I迭代到maxRows,从j迭代到maxCols,然后我在每个瓷砖中应用扩散方程,在目标的“北”和“西”侧,我将只有一个瓷砖具有正确的电势,而在“东”和“南”侧,我将有更多瓷砖,因为他们的邻居已经有指定的电势。如何使值均匀分布?从矩阵的两端进行双重迭代,并将结果结合起来,就像目标导向的方法一样,似乎是一个内存消耗器,因为如果我试图从目标开始并围绕目标工作,我将不得不对每个目标和每个具有指定潜力的图块执行计算,这意味着我将不得不这样做4天^(从发起者扩散开始的回合)*NROFGOAL每回合都会增加,这在一个有很多目标的大型矩阵中似乎效率低下

我的问题是,我如何才能以有效的方式在矩阵中均匀分布值。我正在使用AiChallenge Ants,如果这有任何帮助的话


我提前向你表示感谢,我为我在这篇文章中犯的语法错误感到抱歉。

可能有更好的解决方案,但最简单的方法是使用类似于生活游戏简单实现的方法

您有两个缓冲区。一个缓冲区具有当前“生成”的气味(如果您正在执行多任务,则可以锁定,以便只有读者可以查看它)…另一个缓冲区具有正在计算的下一代发送的气味。您只“混合”来自当前生成的气味

完成后,只需更改指针/引用即可交换两个缓冲区


另一种思考方法是让所有瓷砖通过询问邻居并取平均值来计算新发送的瓷砖。当邻居询问他们的气味水平时,他们会报告上一次传递的预先计算值。新发送的瓷砖只有在每个人都完成计算后才会锁定。

添加到我的li游戏中fe回答,我在幕后找到了一些关于优化游戏生命引擎的旧文档。并深入了解了很多细节。我一直在使用这些开箱即用的思想来实现非常大的扩散图我想说的是,你不一定想扔掉你现在拥有的东西——这并不是错的,因为这可能是迈向不同解决方案的第一步。