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




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


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

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

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

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

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

                                                  / Список_дней_вылета

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

    могло бы быть, например, таким:

            расписание( лондон, эдинбург,

                            [ 9:40 / 10:50 / bа4733/ ежедневно,

                            19:40 / 20:50 / bа4833 / [пн, вт, ср, чт, пт, сб]] ).

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




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