prolog - 如何在归纳逻辑编程中生成反例?

标签 prolog artificial-intelligence logic-programming

我正在尝试通过使用归纳逻辑编程观察人类来学习拼图和棋盘游戏的规则。我使用 PROGOL,它是用 Prolog 编写的 ILP 程序。虽然对于某些游戏,它能够正确地给我规则,但对于其他一些游戏,由于缺乏反例,它不能正确地给我规则。

例如,在汉诺塔拼图中,规则之一是较大的方 block 不会放置在较小的方 block 之上。这是一个消极的规则。但由于在训练期间该事件不会发生,因此没有可以从中学习该规则的明确的反例。

简而言之,如何在 ILP 中生成反例?

最佳答案

我认为你只能在 progol 中通过积极的数据来学习?

http://link.springer.com/chapter/10.1007/3-540-63494-0_65

马格尔顿,斯蒂芬。 “从积极的数据中学习。”归纳逻辑编程。施普林格柏林海德堡,1997。358-376。

通过在 Progol 中执行以下操作,将仅从正数据模式学习设置为开启:

|- set(posonly)?

关于prolog - 如何在归纳逻辑编程中生成反例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23064735/

相关文章:

prolog - 是否可以用一阶逻辑来表达Prolog的切割?

programming-languages - 使用什么语言创建 Google 自动驾驶汽车软件?

python - 在遗传算法中找到目标数字的好的选择函数是什么?

python - 使用 BERT 进行文章摘要,其中文章不存在标签或预期输出摘要

prolog - 如何实现完全声明式的 Horn 逻辑?

prolog - 通过示例(Prolog 语言)理解 Cut(!) 运算符的问题

prolog - 计算两个列表中匹配元素的数量

使用条件剪切的 Prolog 查询

clojure - clojure.core.logic 中是否有一个合乎逻辑的 for-all ?