Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:prolog:pllib:space_planner [2019/06/27 15:50]
pl:prolog:pllib:space_planner [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +====== Space planner ======
 +{{tag>​planning}}
 +===== Description =====
 +A definition of the planning space for the blocks world.
 +
 +**Source**: ​ PROLOG programming for artificial intelligence,​ 3rd Edition, Harlow, 2001, ISBN 0-201-40375-7.
 +===== Download =====
 +Program source code: {{space_planner.pl}}
 +===== Listing =====
 +<code prolog>
 +%  Figure 17.2  A definition of the planning space for the blocks world.
 +%  Note: For compatibility with Sicstus Prolog, predicate block/1 in Figure 17.2
 +%  is here replaced by is_block/1.
 +
 +% Definition of action move( Block, From, To) in blocks world
 +
 +% can( Action, Condition): Action possible if Condition true
 +
 +can( move( Block, From, To), [ clear( Block), clear( To), on( Block, From)] ) :-
 +  is_block( Block), ​     % Block to be moved
 +  object( To),           % "​To"​ is a block or a place
 +  To \== Block, ​         % Block cannot bå moved to itself
 +  object( From), ​        % "​From"​ is a block or a place
 +  From \== To,           % Move to new position
 +  Block \== From.        % Block not moved from itself
 +
 +% adds( Action, Relationships):​ Action establishes Relationships
 +
 +adds( move(X,​From,​To),​ [ on(X,To), clear(From)]).
 +
 +% deletes( Action, Relationships):​ Action destroys Relationships
 +
 +deletes( move(X,​From,​To),​ [ on(X,From), clear(To)]).
 +
 +object( X)  :-           % X is an objects if
 +  place( X)              % X is a place
 +  ;                      % or
 +  is_block( X).          % X is a block
 +
 +
 +% A blocks world
 +
 +is_block( a).
 +is_block( b).
 +is_block( c).
 +
 +place( 1).
 +place( 2).
 +place( 3).
 +place( 4).
 +
 +%  A state in the blocks world
 +%
 +%         c
 +%         a b
 +%         ====
 +%  place  1234
 +
 +state1( [ clear(2), clear(4), clear(b), clear(c), on(a,1), on(b,3), on(c,a) ] ).
 +</​code>​
 +===== Comments =====
  
pl/prolog/pllib/space_planner.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