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

      [11:30 / 12:40 / ju322 / [вт,чт] ] ).

расписание( любляна, лондон,

      [11:10 / 12:20 / yu200 / [пт],

       11:25 / 12:20 / yu212 / [вс] ] ).

расписание( милан, лондон,

      [ 9:10 / 10:00 / az458 / ежедневно,

      12:20 / 13:10 / bа511 / ежедневно ] ).

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

      [ 9:25 / 10:15 / sr621 / ежедневно,

      12:45 / 13:35 / sr623 / ежедневно ] ).

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

      [13:30 / 14:40 / yu323 / [вт, чт] ] ).

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

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

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

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

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

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

Рис. 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 = милан

        Город2 = цюрих

        Город3 = любляна

       

        Npl = ba510

        Отпр1 = 8:30

        Приб1 = 11:20

       

        Np2 =sr621

        Отпр2 = 9:25

        Приб2 = 10:15

       

        Np3 = yu323

        Отпр3 = 13:30

        Приб3 = 14:40

        Np4 = yu200

        Отпр4 = 11:10

        Приб4 = 12:20

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

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

4. 5.    Задача о восьми ферзях

Эта задача состоит в отыскании такой расстановки восьми ферзей на пустой шахматной доске, в которой ни один из ферзей не находится под боем другого. Решение мы запрограммируем в виде унарного отношения:

        решение( Поз)

которое истинно тогда и только тогда, когда Поз

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату