Kai*_*Kai 6 artificial-intelligence tetris evolutionary-algorithm
我曾经写过一个很好玩俄罗斯方块的俄罗斯方块AI.我使用的算法(在本文中描述)是一个两步过程.
在第一步中,程序员决定跟踪对问题"感兴趣"的输入.在俄罗斯方块中,我们可能有兴趣跟踪连续存在的差距,因为最小化差距可以帮助更容易地放置未来的碎片.另一个可能是平均柱高,因为如果您即将失败,承担风险可能是个坏主意.
第二步是确定与每个输入相关联的权重.这是我使用遗传算法的部分.只要根据结果随时间调整权重,任何学习算法都会在此处执行.我们的想法是让计算机决定输入与解决方案的关系.
使用这些输入及其权重,我们可以确定采取任何行动的价值.例如,如果将直线形状一直放在右列中将消除4个不同行的间隙,那么如果其重量很高,则此动作可以获得非常高的分数.同样地,将其平放在顶部可能实际上会导致间隙,因此动作得分较低.
我一直想知道是否有办法将学习算法应用到第一步,在那里我们找到"有趣的"潜在输入.似乎可以编写一种算法,其中计算机首先学习哪些输入可能有用,然后应用学习来权衡这些输入.之前有过这样的事吗?它是否已经在任何AI应用程序中使用?