2013-10-23 3 views
2

저는 Prolog의 초보자이며 증분 택시 일정을 개발해야하는 과제가 있습니다. 제한 조건의 일부는 우리가 24 시간 시스템을 사용하고 있다는 것입니다. 이 내 기븐스 있습니다 프롤로그의 시간 제약 검사

%taxi_info(Taxi_id, Region, BeginningTime, EndTime, Capacity, CoordinateX, CoordinateY). 
taxi_info(t11, r1, 6:00, 18:00,6, 43.668943, -79.386211). 
taxi_info(t12, r2, 18:00, 6:00,3, 43.668943, -79.386211). 

%customer_info(Party, Name, PickUpCoordinatesX, PickUpCoordinatesY, TimeOfPickUp). 
customer_info(3, 'Fox', 43.6608633, -79.4013261, 21:30). 

그래서 여기에 주어진 정보에서 고객이 21시 반에 의해 선택되어야하며, 택시 T12은 사용할 수있는 것입니다. 이 제약 조건을 어떻게 작성합니까?

답변

0

this other 질문은 시간 슬롯으로 계산되어야하며, 나는 당신에게 할당 된 것과 유사한 표현을 제안하고 절대 시간 점을 얻기위한 '서비스'술어를 제안했습니다.

편집 여기은 (과도하게 단순화 지금 표현이없는 다른 모든 제약 조건 무시)

timepoint(H:M, P) :- 
    P is H*60 + M. 

다음 쿼리는 읽을 수 관련 코드

?- customer_info(_Party, Name, _PickUpCoordinatesX, _PickUpCoordinatesY, TimeOfPickUp), 
    timepoint(TimeOfPickUp, T), 
    taxi_info(Taxi_id, _Region, BeginningTime, EndTime, _Capacity, _CoordinateX, _CoordinateY), 
    timepoint(BeginningTime, B), 
    timepoint(EndTime, E), 
    T >= B, T < E.