简单易懂的在线游戏,由20个问题组成,并由精确可靠的AI提供支持。
他们怎么这么好猜?
简单易懂的在线游戏,由20个问题组成,并由精确可靠的AI提供支持。
他们怎么这么好猜?
Answers:
您可以将其视为二进制搜索算法。在每次迭代中,我们都会提出一个问题,该问题应消除大约一半的可能单词选择。如果总共有N个单词,那么我们可以期望在log2(N)个问题后得到答案。
有了20个问题,我们应该最好能够在2 ^ 20 = 1百万个单词中找到一个单词。
消除异常值(错误答案)的一种简单方法是使用类似RANSAC的方法。这意味着,您将随机选择一个较小的子集,而不是考虑所有已回答的问题,这足以给您一个答案。现在,您用不同的随机子集重复几次,直到您看到大部分时间都得到相同的结果。然后,您就会知道您有正确的答案。
当然,这只是解决此问题的多种方式中的一种。
code
链接进行查看:openbookproject.net/py4fun/animal/animal.html
决策树直接支持这种应用。决策树通常用于人工智能。
决策树是一个二叉树,它在每个分支上询问“最佳”问题,以区分由左子元素和右子元素代表的集合。最佳问题由某种学习算法确定,该学习算法由20个问题应用程序的创建者用来构建树。然后,正如其他海报指出的那样,一棵20层深的树为您提供了一百万种东西。
在每个点上定义“最佳”问题的一种简单方法是寻找一个将集合平均分成一半的属性。这样,当您对这个问题的回答是/否时,您将在每个步骤中消除大约一半的馆藏。这样,您可以近似二进制搜索。
维基百科给出了一个更完整的例子:
http://en.wikipedia.org/wiki/Decision_tree_learning
和一些一般背景:
我建议在这里阅读有关游戏的信息:http : //en.wikipedia.org/wiki/Twenty_Questions
特别是“计算机”部分:
游戏表明识别任意物体所需的信息(由香农的熵统计量测得)约为20位。在教人们有关信息论的知识时,通常以游戏为例。从数学上讲,如果每个问题的结构都消除了一半的对象,则20个问题将允许提问者区分2个20或1,048,576个主题。因此,“二十个问题”最有效的策略是提出这样的问题:每次都会将剩余可能性的领域划分为大约一半。该过程类似于计算机科学中的二进制搜索算法。