当我的connect-four浏览器游戏运行正常时,Chrome一直在中途杀死页面。这个游戏是一个玩家对电脑的设置,游戏本身运行正常,永远不会崩溃。当我将训练计算机对手的迭代次数设置得太高时,页面崩溃。这些程序使用qLearning算法训练人工智能,在该算法中,人工智能播放自身并为遇到的每个状态存储一个值。如果我将迭代次数设置为125,000或更少,那么一切都很好(除了对手不是那么好)。我不知道是循环的运行时间(大约需要30分钟)杀死了程序,还是其他原因,比如记录状态及其对应的Q值的内存限制。
我如何才能让程序运行更多的训练迭代,而不是chrome杀死页面?
发布于 2016-06-23 02:45:41
关于如何处理代码,您有几个选择。
选项1:setInterval / setTimeout
正如其他人所建议的那样,使用setInterval或setTimeout可以在“块”中运行代码,并且任何一个块都不会导致超时。
选项2:setInterval + generators
对于深度嵌套的代码,使用setTimeout很难正确地重新输入代码。
阅读generators --这会使分块运行代码变得更好,但可能需要重新设计。
选项3: webworkers
Webworkers提供了另一种方法,这取决于您正在计算的内容。它们在后台运行,不能访问DOM或其他任何东西,但它们非常擅长计算。
选项4: nodejs
最后一个选择是离开浏览器,在另一个环境中运行,比如node.JS。如果您在Windows下运行,则HTA文件可能是另一种选择。
https://stackoverflow.com/questions/37975869
复制相似问题