请问如何在Prolog中实现事件演算,也就是增加时间点属性?谢谢了
Prolog 人工智能语言中文论坛---打造优质Prolog学习交流园地
貌似在英文维基百科有公式,照着写应该可以用。ponder2 写道:请问如何在Prolog中实现事件演算,也就是增加时间点属性?谢谢了
date_before(Y/M/D, Y1/M1/D1) :- ...
date_before(Y/M/D, Y1/M1/D1) :- is_date(Y/M/D),
is_date(Y1/M1/D1),
(Y < Y1; Y =:= Y1, M < M1; Y =:= Y1, M =:= M1, D < D1).
initiates(Action, _Fluent/Status, _Time) :- call(Action),
Status = on.
terminates(Action, _Fluent/Status, _Time) :- call(Action),
Status = off.
initiallyp(_Fluent/Status) :- Status = off.
holdsAt(Fluent/Status, _Time) :- initiallyp(Fluent/Status),
not(clipped(0, Fluent/Status, Time)).
process(holdsAt(F,T), Result) :-
process(initiallyp(F), Result1),
process(not(clipped(0, F, T)), Result2),
append(Result1, Result2, Result).
process(initiallyp(F), [[[[], F1, 0]], true]) :- Fluent/_Status = F,
F1 = Fluent/on.
process(not(G), [Result, Output]) :- process(G, [Result1, Output1]),
(Output1 -> Result = []; not(Output1) -> Result = Result1).
您在这个论坛的权限:
您不能在这个论坛回复主题