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



           

Планирование поездки - часть 6


расписание( цюрих, лондон,

      9:00 / 9:40 / bа613 /

      [ пн, вт, ср, чт, пт, сб],

      16:10 / 16:55 / sr806 / [пн, вт, ср, чт, пт, сб] ] ).

расписание( цюрих, милан,

      [ 7:55 / 8:45 / sr620 / ежедневно ] ).

line();

Рис. 4. 5.  Планировщик воздушных маршрутов и база данных о рейсах самолетов.

  • Как мне добраться из Любляны в Эдинбург в четверг?

            ?- маршрут( любляна, эдинбург, чт, R).

            R = [любляна-цюрих : уu322 : 11:30, цюрих-лондон:

            sr806 : 16:10,

            лондон-эдинбург : bа4822 : 18:40 ]

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

            ?- перестановка( [милан, любляна, цюрих],

                                            [Город1, Город2, Город3] ),

            рейс( лондон, Город1, вт, Np1, Oтпp1, Пpиб1),

            peйc( Город1, Город2, ср, Np2, Отпр2, Приб2),

            рейс( Город2, Город3, чт, Np3, Отпp3, Приб3),

            рейс( Город3, лондон, пт, Np4, Отпр4, Приб4).

            Город1 = милан




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