直到最近,Go还是世界一流的人类玩家无法被电脑打败的最后的基于转弯的无信息隐藏游戏的堡垒。但是现在这个堡垒已经倒塌了,就像AlphaGo项目成功击败了世界顶级选手之一.一样。
然而,围棋从来没有被设计为一个游戏,这是一个很难的人工智能。它是几千年前发展起来的。对计算机的努力是游戏设计的一个无意的副作用,而不是一个既定的设计目标。
是什么游戏机制使得一个基于转弯的策略游戏不为AI隐藏信息而对人类仍然是可玩的?
如果有人想知道“为什么这个问题也与电子游戏开发商相关”?
发布于 2016-03-16 05:16:44
对于计算机来说,围棋是很困难的,因为在每个棋盘状态下,玩家有很多很多可能的动作,对于电脑来说,太多的动作会造成暴力并计算出所有可能的结果(例如,抽搐-战术-脚趾)。
传统上,玩象棋的电脑程序会计算出所有可能的动作--进入未来几个阶段,并从中挑选一个会导致“最佳”状态的动作,最大限度地发挥计算机播放器的可能优势,最大限度地减少其他玩家的可能优势。
然而,在一个完整的棋局中,有更多的可能的动作,而不是宇宙中有原子,这甚至适用于更多的去,那里有更多可能的棋盘状态。对于一台现代计算机来说,在任何合理的时间内计算都有太多可能的动作。相反,在围棋这样的游戏中,需要使用不同的人工智能方法来“更好地”玩,比如深井能够“学会”如何更好地完成一项任务,这与真正的智能是如何工作的(从试验和错误中学习)。
那么,如果你想让一个“开放信息”游戏对计算机来说很难呢?有一个非常大量的可能的移动,几乎所有这些都可能是一个很好的移动对球员。
发布于 2016-03-16 11:34:50
在设计任意的基于转弯的游戏时,您几乎没有什么选项可以让AI变得更难,重点是AI的不同方面:
你最好的选择是抽象--你的目标应该是创建过于复杂的抽象,而不是用一个数学模型来近似。
你还可以通过提供更难从图像或语音中提取特征的输入来“破解”游戏中的人工智能。即使以99%的准确率提取输入,AI也有机会接收错误的输入,如果收到错误的输入,很可能(取决于AI类型)更有可能做出错误的决定。
或者在规则集中使用组合爆炸 (go使用此)。例如,如果一个回合是打1
牌从10
牌手,有10 possibilities
如何发挥回合。如果您要为这只手选择5
卡,则有"n选择k“选项,仅在这个回合中就给出了总252 possibilities
(!)。注意:还有许多其他方法可以在规则集中引入类似的内容。
以上任何一项都不会使它变得不可能(围棋就是一个很好的例子),但是仔细的设计,你至少可以让它在几年/几十年内变得不可行。
一个非常,非常简单的游戏,为了说明的目的,使用上述建议:
玩家轮流说,每个人说一个句子。目的是讲一个简短的故事。
我想我们可以同意,与普通玩家玩这款游戏的故事质量会比任何人工智能都要好得多,就像人类玩家玩游戏一样有趣(这是游戏的最终目标,不是吗?)这个游戏可能比go更古老。
注意到上面这个游戏是如何包含所有建议的?仅从语音中提取特征并不是一项琐碎的任务,再加上疯狂的状态空间(自然语言是无限的)游戏的抽象目标,使得人工智能几乎不可能破解(=更好地发挥)。
编辑:(对于选民)请查找游戏的定义(另外,上面的游戏只是为了说明目的):一种身体或精神上的活动或竞赛,有规则,人们为娱乐而做或
为了娱乐而从事的活动
让我们不要把游戏限制在类似“使命召唤”之类的事情上。
编辑2:事实上,这是一个很好的问题:
“但是你如何评价一个讲故事游戏所产生的故事呢?”
这说明了为什么至少有一些抽象规则的游戏很难--这正是AI想要问的问题:我如何度量它,如何用等式来描述它?人工智能不能跳出框框思考,也不能做复杂的抽象(比如玩得开心)。正确的答案是:
你不知道。这正是人工智能很难做到的原因。
发布于 2016-03-22 11:38:32
简短的回答:增加变量的数量。
为什么?对于电脑来说,下棋“很容易”,因为只有一定数量的棋子和可能的动作。围棋“难度较大”,因为可能会有更多的动作。一款对电脑来说更加困难的游戏将有更多可能的动作。
例如:战略游戏。我还没有玩RTS*,在那里,计算机可以在没有作弊的情况下战胜一个有经验的人。为什么?变量的数量。资源,随着时间的推移,资源的影响(你是用它们来获得更多的资源,做研究,还是生产单位?),如何处理侦察和情报,以及如何管理大量可用的单位。你也许可以告诉电脑如何“放”远距离单位,但告诉它什么时候放风筝,放多长时间,什么时候制作这些单位等等,再加上其他单位的组合,以及它的可能用途,几乎是不可能的。
要求一台计算机模拟国际象棋中的每一个可能的动作,对于今天的电脑来说,能够保证赢下这一动作的反应是微不足道的。要求计算机模拟RTS中的每一个可能的点击,使用资源、研究树和复杂的单元类型可能是不可能的。然而,与所需的计算机编程相比,即使缺乏经验的人也能相对容易地掌握这些游戏的基本要素。
*我知道我正在使用RTSs作为例子,但理论上任何RTS都可以制作成一个非常类似的基于转弯的策略游戏。
另一个想法:你也可以选择一项人类已经发现很简单的任务,但这实际上是非常复杂的,就像叠衣服一样,然后把它变成一个基于转弯的游戏。玩家可以轮流折叠一件衣服--每一回合都是一件衣服--而花费最少时间完成5回合的玩家则获胜。
我们发现这很简单,因为我们有一个概念,比如“向上”和“内-外”指的是什么等等。作为一个人,你知道引号中所有的短语/单词意味着什么;本质上,你简化了一个基本无限的变量,变成只需要几个单词的指令。向计算机解释这一点或多或少是不可能的。即使你用一件衬衫来解释,电脑也会知道每一件衬衫吗?长袖?短袖?扣好吗?如果衣领被打开了怎么办?等。
https://gamedev.stackexchange.com/questions/118340
复制相似问题