我正在尝试通过使用归纳逻辑编程观察人类来学习拼图和棋盘游戏的规则。我使用 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/