Main Page   Files   Productions   Problem Spaces   Operators   Goal Hierarchy   Groups   Prod. By Type   Todo   All  


move-block.soar

Path to this file:
     blocks_world/
         move-block.soar [src]

Go to the source for this file...

Rules for proposing to "move a block".

Detailed Description

We consider two cases determined by the 'below' and 'on' relations, namely moving a block to the table and moving a block to another block.

Productions

propose*move-block*to-block  
selection*dont-move*in-place  common-sence - try not to move "in-place" blocks!
propose*move-block*to-table  


Production Documentation

propose*move-block*to-block

Documented at line 20 of file move-block.soar
Defined at line 32 of file move-block.soar

Type: proposal

Detailed Description

A block may be plonked on top of another block if both blocks are clear.

This rule corresponds to ? CSP rules - ???

Problem Spaces: any-ps

Operators: move-block

Source

sp {propose*move-block*to-block
   (state <s> ^block <block> {<> <block> <dest>})
   (<block> ^name <a> ^below o)
   (<dest>  ^name <b> ^below o)
-->
   (<s> ^operator <o> + =)
   (<o> ^name move-block
        ^block <a>
        ^destination <b>)}

selection*dont-move*in-place

Documented at line 68 of file move-block.soar
Defined at line 79 of file move-block.soar

common-sence - try not to move "in-place" blocks!

Type: selection

Problem Spaces: any-ps

Operators: move-block

Source

sp {selection*dont-move*in-place
   (state <s> ^operator <o> +)
   (<o> ^name move-block ^block <n>)
   (<s> ^block <b>)
   (<b> ^name <n> ^in-place)
-->
   (<s> ^operator <o> <)}

propose*move-block*to-table

Documented at line 42 of file move-block.soar
Defined at line 58 of file move-block.soar

Type: proposal

Detailed Description

A block may be plonked onto the table if it is clear. We also insist that it is not already on the table! This obviates us having to consider applying a redundant action - without this constraint our implementation cannot implement the operator as there is no block beneath it to update! ;-(

This rule corresponds to ? CSP rules - ???

Problem Spaces: any-ps

Operators: move-block

Source

sp {propose*move-block*to-table
   (state <s> ^block <block>)
   (<block> ^name <a> ^on <> table ^below o)
-->
   (<s> ^operator <o> + =)
   (<o> ^name move-block
        ^block <a>
        ^destination table)
}


Generated with SoarDoc on Mon Jan 24 15:38:25 2005 by richard