我刚开始读一本关于人工智能的书。这本书是简单的逻辑:通过示例进行智能推理。有一个非常基本的练习(在 pdf 的第 19页,本书的第 5 页),但我无法弄清楚。
练习是
练习 1.1。如果两个车站在同一条线路或不同的线路上,则它们“不会太远”,中间最多只有一个车站。为谓词 not_too_far 定义规则。
我见过的唯一规则是附近和连接的,不知道如何使用它。到目前为止我所做的是:
not_too_far(X,Y) :- 附近(X,Y)
我刚开始读一本关于人工智能的书。这本书是简单的逻辑:通过示例进行智能推理。有一个非常基本的练习(在 pdf 的第 19页,本书的第 5 页),但我无法弄清楚。
练习是
练习 1.1。如果两个车站在同一条线路或不同的线路上,则它们“不会太远”,中间最多只有一个车站。为谓词 not_too_far 定义规则。
我见过的唯一规则是附近和连接的,不知道如何使用它。到目前为止我所做的是:
not_too_far(X,Y) :- 附近(X,Y)
你的直觉很好。因为“附近”仅定义为“已连接”,所以它们之间只能有 1 个站点。但是,如果在它们之间最多只有一个站点,则它表示这些站点是“not_too_far”。如果它们之间没有车站怎么办?如果 2 个站是“连接的”,它们也应该是“not_too_far”。
所以应该是:
not_too_far(X,Y) :- connected(X,Y) ; nearby(X,Y).
在哪里 ; 表示或。