Explanation-based generalization problem def


Two problem definitions for explanation-based generalization.

Source: PROLOG programming for artificial intelligence, 3rd Edition, Harlow, 2001, ISBN 0-201-40375-7.



%  Figure 23.3  Two problem definitions for explanation-based generalization.
% For compatibility with some Prologs the following predicates
% are defined as dynamic:
:- dynamic gives/3, would_please/2, would_comfort/2, feels_sorry_for/2, 
   go/3, move/2, move_list/2.
% A domain theory: about gifts
gives( Person1, Person2, Gift)  :-
  likes( Person1, Person2),
  would_please( Gift, Person2).
gives( Person1, Person2, Gift)  :-
  feels_sorry_for( Person1, Person2),
  would_comfort( Gift, Person2).
would_please( Gift, Person)  :-
  needs( Person, Gift).
would_comfort( Gift, Person)  :-
  likes( Person, Gift).
feels_sorry_for( Person1, Person2)  :-
  likes( Person1, Person2),
  sad( Person2).
feels_sorry_for( Person, Person)  :-
  sad( Person).
% Operational predicates
operational( likes( _, _)).
operational( needs( _, _)).
operational( sad( _)).
% An example situation
likes( john, annie).
likes( annie, john).
likes( john, chocolate).
needs( annie, tennis_racket).
sad( john).
% Another domain theory: about lift movement
%  go( Level, GoalLevel, Moves)  if
%    list of moves Moves brings lift from Level to GoalLevel
go( Level, GoalLevel, Moves)  :-
  move_list( Moves, Distance),         % A move list and distance travelled
  Distance =:= GoalLevel - Level.
move_list( [], 0).
move_list( [Move1 | Moves], Distance + Distance1)  :-
  move_list( Moves, Distance),
  move( Move1, Distance1).
move( up, 1).
move( down, -1).
operational( A =:= B).


pl/prolog/pllib/explanation-based_generalization_problem_def.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0