.


:




:

































 

 

 

 





, , . , , .

?

?

■ , , . , ?

, . : timetable) Placel, Place2, ListOf Flights)

ListOfFlights : DpartureTime / ArrivalTirce / FlightNumber / ListOfDays

" ■■'" , , . ListOfDays , alldays . timetable , , : timetable london, edinburgh, (9:40 / 10:50 J 4733 / alldays, 19:40/ 20:50 / ba4833 / [mo, tu, we, th, f r, su] ]).

( ), ":".

, . : route; Placel, Piace2, Day, Route)

Route , .

1. Placel.

2. 12.

3. , Day.

4. , Route, , timetable.

5. .


4. :



, : From / / FlightNumber / Departure J:ime

, .

1) flight (Placel, Place2, Day, FlightNum, DepTine, ArrTime)

, FlightNum, Placel 12 Day, .

2) deptime; Route, Time)

Route Time.

3)transfer Timel, Time2)

Timel Time2 40 , .

, . .


.

.

transition timetable.

; .

, route accepts, , . .

1. .
Placel ?12, :

route; Placel, Place2, Day, [ Placel / Flace2 / From / Dep ]):-flight! Placel, Flace2, Day, Fnum, Dep, An).

2. .
1 F2 , 1
, 2. ,

.

route (PI, P2, Day, [M / / Fnuml / Depl | RestRoute]):-route(, 2, Day, RestRoute), flight! PI, , Day, Fnuml, Depl, Arrl), cleptimel RestRoute, Dep2), transfer) Arrl, Dep2).

f 1 i ght, transfer deptime , , 4.1. , .

108 I. Prolog


4.1. , ,

:- opt 50, xfy,:).

t route! Placel, Place2, Day, Route):

I Route - , s Placel 12, Day

route[ PI, 2, Day, [ PI / 2 / Frmm / Deptime ]):- % flight! PI, P2, Day, Fnura, Deptime, _).

I

route (PI, P2, Day, [ {Pi / P3 / Fnuml / Depl) I RestRoute]):-

route , P2, Day, RestRoute),

flight! PI, P3, Day, Fnuml, Depl, Arrl),

deptime) RestRoute, Dep2), % DC

transfer! Arrl, Dep2). %

flight) Placel, Place2, Day, Fnuni, Deptime, Arrtime):-timetable! Placel, Place2, Flightlist),

member! Deptime / Arrtiine / Fnum / Daylist, Flightlist), flyday! Day, Daylist).

flyday! Day, Daylist):-member! Day, Daylist).

flyday) Day, alldays):-

member) Day, [mo, tu,we, th, f r, sa, su]).

deptime) [ PI / P2 / Fnum / Dep _), Dep).

transfer) Hoursl:Minsl, Hours2:Mins2):-

60 * (Hours2 - Hoursl) + Mins2 - Hinsl >- 40. member) X, [X | LJ).

member! H, [Y \ L]):-member! X, L).

%

timetable[ edinburgh, london,

[ :40 / 10:50/ ba4733 /alldays, 13:40 / 14:50 / 4773 / alldays, 19:40 / 20:50 / ba4833 / (mo,tu,we,th,fr,su] ]).

timetable! london, edinburgh,

[ 9:40 / 10:50 /4732 / alldays,

11:40 / 12;50 / ba4752 / alldays,

13:40 / 19:50 / ba4S22 / [mo,tu,we,th,fr] ]).

timetable) london, ljubljana,

[ 13:20/ 16:20 / jp212 / (mo, tu,we,f,SU]f 16:30 / 19:30 / 473 / [mo, we,th,sa] ]).

timetable! london, Zurich,

[ 9:10 / 11:45 / ba614 / alldays, 14:45 / 17:20 / sr805 / alldays ]).

timetable I london, milan,

[ 8:30 / 11:20 /baElO / alldays, 11:00 / 13:50 / az459 / alldays ]).


4. :



timetable! ljubljana, Zurich,

[ 11:30 / 12:40 / jp322 / [tu,th]!).

timetable) ljubljana, london,

[ 11:10 / 12:20 / jp211 / [mo,tu,we,fr,su], 20:30 / 21:30 / ba4"72 / Imo, we, th, sa] ] >.

timetable! milan, london,

[ 9:10 / 10:00 / az458 / alldays, 12:20 / 13:10 / ba51.1 / alldays ]).

timetable! milan, Zurich,

[ 9:25 10:15 / sr621 / alldays, 12:45 / 13:35 / Sr623 / alldays ]).

timetable! Zurich, ljubljana,

[ 13:30 / 14:40 / jp323 / (tll,th] ]).

timetablei Zurich, london,

[ 5:00 / 5:40 / ba6l3 / [mo,tu,we,th,fr,sa], 16:10 / 16:55 / sr8Q6 / [mo, tu,we, th, t r, su] ]).

timetable! Zurich, milan,

[7:55 / 8:45 /sr620 / alldays]).

query3 (Cityl,City2,City3,FN1,FN2,FN3,FN41:-

permutation! [milan,ljubljana,Zurich], [Cityl,City2,City3]),

flight! london, Cityl, tu, FN1, Depl, Arrl}, flight! Cityl, City2, we, FN2, Dep2, Arr2}, flight! City2, City3, th, FN3, Dep3, Arr3), flight: City3, london, ft, FN4, Dep4, Arr4).

cone! [), L, L),

cone([X|LI],L2, [X|L3]):-(L1,L2,L3).

permutation! [], []),

permutation! L, [X I P] I:-del(x, l, LI), permutation! Llr P).

del (X, [X|L], L].

del! X, [Y|L], [Y|L1]):-del! X, L, LI).

, , , . , . , .

,

?

1- flight! ljubljana, london, Day, _, DeptHour:_, _), DeptHour >= 18. Day = mo; Day - we;

?
?- route! ljubljana, edinburgh, th, R).

P, = [ ljubljana / zurich / jp322 / 11:30, zuricb / london / sr806 /







:


: 2015-10-01; !; : 376 |


:

:

- - , .
==> ...

1834 - | 1782 -


© 2015-2024 lektsii.org - -

: 0.017 .