Prolog 人工智能语言中文论坛---打造优质Prolog学习交流园地

一个供Prolog爱好者学习与交流的地方


您没有登录。 请登录注册

关于20QProlog游戏

浏览上一个主题 浏览下一个主题 向下  留言 [第1页/共1页]

1 关于20QProlog游戏 于 周三 九月 19, 2012 2:57 pm

有个游戏20Q,它也是Prolog编辑的吗?其中它是如何判断你回答的是错的,也就是和他想的不一样的比如你说‘是’,他说‘不是’。

查阅用户资料

2 回复: 关于20QProlog游戏 于 周日 十月 21, 2012 12:14 pm

zxjun 写道::有个游戏20Q,它也是Prolog编辑的吗?其中它是如何判断你回答的是错的,也就是和他想的不一样的比如你说‘是’,他说‘不是’。

游戏网址:
http://www.20q.net/

刚才玩了一下,确实挺会猜的。

我在想,如果它背后的数据库有把很多条目以关键词的形式储存,
那要猜出东西应该是不难的。

比如数据库里有:([]里代表关键词)
1. 大象[动物,鼻子长的]
2. 马[动物,鼻子一般长]
3. 树[植物,高的]
4. 花[植物,不高的]

那问两个问题,第1个问是否为动物,第2个问是否鼻子长,
就可以猜到是大象。

我想很重要的一个规则是,为了尽早猜出答案,
假设剩下的可能答案集合为S,电脑问的下一个问题要尽可能使得玩家不管回答是或否,
都能砍掉S的一半。否则假设S=A+B,A占S的90%,
你回答的答案使电脑认为答案是A当中的一个而把B删除,
那这个问题只砍掉原有可能解集合的10%,也太没效率了。

以上是我自己随便乱猜想的,
刚才玩有发现20Q有一个厉害的地方在于,
你就算有几个不确定的问题回答错了,
它还是有可能猜出正确的答案。
如果20Q是按照我前面写的方法去猜东西,
感觉要做到这个(你回答错它还是能猜对)就很困难。

查阅用户资料 http://prolog.longluntan.net

3 回复: 关于20QProlog游戏 于 周三 十月 24, 2012 2:14 pm

不错。prolog是一种很基础的逻辑系统,但要表达知识则需要更多的语意。

不像prolog只是找不到答案就说不,知识系统则是可以找到一些例外情况。譬如,一般来讲,妈妈都爱小孩,prolog只能推论妈妈爱小孩,若推论不出爱小孩,则她不是妈妈。但是完整的知识表达可以找到有妈妈不那麽喜欢小孩。有个研究称A-prolog,就定义一些所谓知识,它称为答案集(answer-set)推论法。

查阅用户资料 http://yauhsien.wordpress.com

浏览上一个主题 浏览下一个主题 返回页首  留言 [第1页/共1页]

您在这个论坛的权限:
不能在这个论坛回复主题