7

I've just started reading a book about AI. The book is Simply Logical: Intelligent Reasoning by Example. There is a very basic exercise (on page 19 of the pdf, page 5 of the book), but I can't figure it out.

The exercise is

Exercise 1.1. Two stations are 'not too far' if they are on the same or a different line, with at most one station in between. Define rules for the predicate not_too_far.

The only rules I've seen are nearby and connected and don't know how to use this. What I've done so far is this:

not_too_far(X,Y) :- nearby(X,Y)

nbro
  • 39,006
  • 12
  • 98
  • 176
ihavenokia
  • 173
  • 2
  • 6
  • 1
    Does it say how nearby is different from connected? Where do the different lines come from? – Jaden Travnik Dec 24 '16 at 18:52
  • 1
    Let’s define two stations to be nearby if they are on the same line, with at most one station in between. And the are connected if are on the same line, and don't have any station in between. pag 18 you have the source image – ihavenokia Dec 25 '16 at 14:09

1 Answers1

3

Your intuition is good. Because "nearby" is only defined with "connected", there could only be 1 station between them. However, it says that the stations are "not_too_far" if at most one station is between them. What about if no stations are between them? If 2 stations are "connected" they should be "not_too_far" as well.

So it should be:

not_too_far(X,Y) :- connected(X,Y) ; nearby(X,Y).

Where ; denotes OR.

Jaden Travnik
  • 3,767
  • 1
  • 16
  • 35