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



онлайн казино

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



        День = пт;
        День = сб;

        no                 (нет) line();

% ПЛАНИРОВЩИК ВОЗДУШНЫХ МАРШРУТОВ

:- ор( 50, xfy, :).

рейс( Пункт1, Пункт2, День, Np, ВрОтпр, ВрПриб) :-
    расписание( Пункт1, Пункт2, СписРейсов),
    принадлежит( ВрОтпр / ВрПриб / Nр / СписДней, СписРейсов),
    день_выл( День, СписДней).

принадлежит( X, [X | L] ).

принадлежит( X, [Y | L] ) :-
      принадлежит( X, L ).

день_выл( День, СписДней) :-
      принадлежит( День, СписДней).

день_выл( День, ежедневно) :-
      принадлежит( День, [пн, вт, ср, чт, пт, сб, вс] ).

маршрут( P1, P2, День, [Р1-Р2 : Np : ВрОтпр] ) :-
                                               
% прямой рейс
      рейс( P1, P2, День, Np, ВрОтпр, _ ).

маршрут( Р1, Р2, День, [Pl-P3 : Np1 : Oтпp1 | Маршрут]) :-
                                               
% маршрут с пересадками
      маршрут( Р3, P2, День, Маршрут ),
      рейс( Р1, Р3, День, Npl, Oтпp1, Приб1),
      вр_отпр( Маршрут, Отпр2),
      пересадка( Приб1, Отпр2).

вр_отпр( [Р1-Р2 : Np : Отпр | _ ], Отпр).

пересадка( Часы1 : Минуты1, Часы2 : Минуты2) :-
      60 * (Часы2-Часы1) + Минуты2 - Минуты1 >= 40




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