Explanation-based generalization problem def

Description

Two problem definitions for explanation-based generalization.

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

Download

Listing

%  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).

Comments

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