Main Page Files Productions Problem Spaces Operators Goal Hierarchy Groups Prod. By Type All
note-relevant-feature.soar
[src]
Go to the documentation for this file...
00001 echo "\n note-relevant-feature.soar " 00002 00003 ##! 00004 # @file note-relevant-feature.soar 00005 # @operator note-relevant-feature 00006 00007 ##! 00008 # @operator note-relevant-feature 00009 # 00010 # @brief Notice potential relevant features for prediction 00011 # @problem-space predict 00012 # 00013 # If you've previously noted an attribute with a 00014 # "relevant-feature" then make it the worst abstraction operator. In 00015 # other words, this rule hypothesizes that the attribute is the most relevant 00016 # feature and should be abstracted last. 00017 00018 ##! 00019 # @type selection 00020 # 00021 # Make the abstraction operator that matches the relevant feature 00022 # the worst operator (abstract it last). 00023 sp {predict*abstract-relevant-feature*worse 00024 (state <s> ^problem-space <p> ^operator <o> +) 00025 (<p> ^name predict) 00026 (<s> ^object <obj> ^relevant-feature <att>) 00027 (<o> ^name abstract ^attribute <att>) 00028 --> 00029 (write (crlf) |relevant-attribute: | <att> | is worst |) 00030 (<s> ^operator <o> <)} 00031 00032 ##! 00033 # If an incorrect, top-state prediction operator is proposed for 00034 # the last abstraction and there's not currently a relevant-feature 00035 # noted on the top-state, then propose the operator and make it best. 00036 # @type proposal 00037 sp {predict*note-relevant-feature*propose 00038 (state <s> ^problem-space <p> ^operator <o> +) 00039 (<p> ^name predict) 00040 (<s> ^object <obj> -^subgoal) 00041 (<obj> ^correct-prediction <cat> ^last-abstraction <l>) 00042 (<o> ^name prediction ^category <> <cat>) 00043 (<l> ^<att> <value>) 00044 -(<s> ^relevant-feature <att>) 00045 --> 00046 (<s> ^operator <o1> + >) 00047 (<o1> ^name note-relevant-feature ^attribute <att>) 00048 (write (crlf) |Proposing relevant feature | <att> ) 00049 } 00050 00051 00052 ##! 00053 # @type selection 00054 # 00055 # If the relevant-feature isn't part of the current object 00056 # desciption and the note-relevant-feature operator is proposed, then 00057 # reject it. What this does is ensure that the relevant-feature 00058 # attribute hasn't already been abstracted when changing the 00059 # relevant-feature from one thing to (presumably) another. 00060 sp {predict*note-relevant-feature*reject 00061 (state <s> ^problem-space <p> ^operator <o> +) 00062 (<p> ^name predict) 00063 (<s> ^object <obj> ^relevant-feature <att>) 00064 (<obj> ^description <l>) 00065 (<l> -^<att>) 00066 (<o> ^name note-relevant-feature) 00067 --> 00068 (<s> ^operator <o> -) 00069 (write (crlf) | This instance does not have a | <att> | attribute to abstract last |) 00070 } 00071 00072 ##! 00073 # Record relevant feature on the state 00074 # @type application 00075 sp {predict*note-relevant-feature*apply 00076 (state <s> ^problem-space <p> ^operator <o>) 00077 (<p> ^name predict) 00078 (<s> ^object <obj>) 00079 (<o> ^name note-relevant-feature ^attribute <att>) 00080 --> 00081 (<s> ^relevant-feature <att>)} 00082 00083 ##! 00084 # When changing the relevant feature, delete the old one. 00085 # @type application 00086 sp {predict*note-relevant-feature*apply-reject-previous 00087 (state <s> ^problem-space <p> ^operator <o>) 00088 (<p> ^name predict) 00089 (<s> ^object <obj> ^relevant-feature <old-att>) 00090 (<o> ^name note-relevant-feature ^attribute { <> <old-att> <att> } ) 00091 --> 00092 (<s> ^relevant-feature <old-att> - ) 00093 (write (crlf) | Changing relevant feature from | <old-att> | to | <att> ) 00094 }