Программирование на языке ПРОЛОГ для искуственного интеллекта




Планирование поездки


В данном разделе мы создадим программу, которая дает советы по планированию воздушного путешествия. Эта программа будет довольно примитивным советчиком, тем не менее она сможет отвечать на некоторые полезные вопросы, такие как:

  • По каким дням недели есть прямые рейсы из Лондона в Любляну?
  • Как в четверг можно добраться из Любляны в Эдинбург?
  • Мне нужно посетить Милан, Любляну и Цюрих; вылетать нужно из Лондона во вторник и вернуться обратно в Лондон в пятницу. В какой последовательности мне следует посещать эти города, чтобы ни разу на протяжении поездки не пришлось совершать более одного перелета в день.

Центральной частью программы будет база данных, содержащая информацию о рейсах. Эта информация будет представлена в виде трехаргументного отношения:

        расписание( Пункт1, Пункт2, Список_рейсов)

где  Список_рейсов  -  это список, состоящий из структурированных объектов вида:

        Время_отправления / Время_прибытия / Номер_рейса
                                              / Список_дней_вылета

Список_дней_вылета - это либо список дней недели, либо атом "ежедневно". Одно из предложений, входящих в расписание могло бы быть, например, таким:

        расписание( лондон, эдинбург,
                        [ 9:40 / 10:50 / bа4733/ ежедневно,
                        19:40 / 20:50 / bа4833 / [пн, вт, ср, чт, пт, сб]] ).

Время представлено в виде структурированных объектов, состоящих из двух компонент - часов и минут, объединенных оператором ":".




Содержание  Назад  Вперед