1
1
<!-- markdownlint-disable-next-line -->
2
2
# Procedural Knowledge Learning
3
3
4
+ <!-- \index{chunking} -->
5
+ <!-- \index{chunk} -->
6
+ <!-- \index{result} -->
7
+ <!-- \index{subgoal} -->
8
+
4
9
## Chunking
5
10
6
11
Chunking is Soar’s experience-based mechanism for learning new procedural
@@ -41,6 +46,8 @@ and using chunking:
41
46
42
47
## Explanation-based Behavior Summarization
43
48
49
+ <!-- \index{chunking!explanation-based behavior summarization} -->
50
+
44
51
Explanation-based behavior summarization (EBBS) improves on generality and
45
52
correctness issues in previous versions of chunking. EBBS learns general rules
46
53
with the full expressive power of hand-written rules.
@@ -155,7 +162,7 @@ analyzes a behavior trace. Figure below shows an example behavior trace.
155
162
156
163
Note that this trace is generated dynamically as rules match. Whenever a rule
157
164
matches during agent execution, Soar creates an internal record of the rule that
158
- fired, which is called a rule instantiation. (Each box in the behavior traces
165
+ fired, which is called a rule instantiation. <!-- \index{instantiation} --> (Each box in the behavior traces
159
166
of this chapter represents an instantiation that was created during task
160
167
execution within a particular substate.) The instantiation contains both
161
168
instance information about what matched (the working memory elements) and
@@ -174,7 +181,7 @@ Similarly, architectural instantiations are created for structures recalled by
174
181
semantic and episodic memory in the substate.
175
182
176
183
All of the instantiations that were created in a substate form the
177
- _ instantiation graph_ of that substate. As chunking ** backtraces** through the
184
+ _ instantiation graph_ of that substate. As chunking ** backtraces** <!-- \index{chunking!backtracing} --> through the
178
185
instantiation graph, it determines the subset of instantiations that contributed
179
186
to a result. This set of instantiations and the connections between them is the
180
187
basis for the behavior trace used for a learning episode. (At this point, the
@@ -211,6 +218,8 @@ underlying object and supports identity-based variabilization.
211
218
212
219
### Identity
213
220
221
+ <!-- \index{chunking!identity} -->
222
+
214
223
Before we can discuss the algorithm, we must first define one of its central
215
224
concepts: _ identity_ .
216
225
@@ -220,9 +229,9 @@ concepts: _identity_.
220
229
- ** The NULL identity is a special identity that indicates an element which
221
230
cannot be generalized and must contain a specific value.** - All elements in
222
231
the original rule that reference specific constant values are trivially
223
- assigned the NULL identity. - A variable’ s identity can also be _ mapped to the
232
+ assigned the NULL identity. - A variable' s identity can also be _ mapped to the
224
233
NULL identity_ . When this happens, we say the identity has been
225
- ** literalized** .
234
+ ** literalized** . <!-- \index{chunking!literalization} -->
226
235
227
236
EBBS traverses a behavior trace of the problem-solving that occurred in the
228
237
substate to determine which variables in different rule instances refer to the
@@ -303,6 +312,8 @@ on the identity graph.
303
312
304
313
### The Nine Components of Explanation-Based Behavior Summarization
305
314
315
+ <!-- \index{chunking!ebbs-components} -->
316
+
306
317
1 . ** Operator Selection Knowledge Analysis**
307
318
This component also occurs before the learning episode. Whenever an operator
308
319
is selected, it analyzes what rule firings contributed necessary operator
@@ -363,6 +374,8 @@ selected in a substate.
363
374
364
375
### Operator Selection Knowledge Analysis
365
376
377
+ <!-- \index{chunking!relevant operator selection knowledge} -->
378
+
366
379
As described in the beginning of this chapter, chunking summarizes the processing
367
380
required to produce the results of subgoals. Traditionally, the philosophy behind
368
381
how an agent should be designed was that the path of operator selections and
@@ -491,7 +504,7 @@ created and propagated using the following rules:
491
504
represent that the variable in the condition refers to the same object
492
505
as the variable in the action of the other rule.
493
506
1 . Any element that matches special working memory elements called singletons
494
- are assigned the same identity. Singletons are working memory elements
507
+ are assigned the same identity. Singletons <!-- \index{singleton} --> are working memory elements
495
508
that are guaranteed to only have a single possible value in a state. The
496
509
most important singleton is the local ` ^superstate ` singleton, which is
497
510
an architecturally created WME that links the substate to the
@@ -516,6 +529,8 @@ graph that can correctly incorporate all identity relationships.
516
529
517
530
### Constraint Tracking
518
531
532
+ <!-- \index{constraint-tracking} -->
533
+
519
534
Rules underlying a behavior trace can include conditions that impose constraints
520
535
on the values that a variable can hold. These can include equality tests,
521
536
disjunctions, relative comparisons, literal tests, and conjunctions of
@@ -562,6 +577,8 @@ chunk’s actions.
562
577
563
578
### Backtracing
564
579
580
+ <!-- \index{chunking!backtracing} -->
581
+
565
582
When learning a new rule, EBBS performs a dependency analysis of the productions
566
583
that fired in a substate – a process called backtracing. Backtracing works as
567
584
follows. For each instantiated production that creates a subgoal result,
@@ -802,6 +819,9 @@ same state it matched in.
802
819
803
820
### Relationship Between Chunks and Justifications
804
821
822
+ <!-- \index{justification} -->
823
+ <!-- \index{chunk} -->
824
+
805
825
Chunks are closely related to another type of rule called a justification.
806
826
Justifications are also created when a substate creates a result for a
807
827
superstate, the difference being that justifications are only built when
@@ -843,6 +863,8 @@ chunks and justifications are:
843
863
844
864
### Chunk Inhibition
845
865
866
+ <!-- \index{chunking!inhibition} -->
867
+
846
868
If a newly learned chunk was immediately added to production memory, it would
847
869
immediately match with the same working memory elements that participated in its
848
870
creation. This can be problematic if the production’s actions create new working
@@ -890,6 +912,9 @@ the [explainer’s settings](../reference/cli/cmd_explain.md) for more informati
890
912
891
913
### Generality and Correctness of Learned Rules
892
914
915
+ <!-- \index{chunking!correctness} -->
916
+ <!-- \index{chunking!over-general} -->
917
+
893
918
Chunking is intended to produce the most general rule that is also correct.
894
919
895
920
Generality is a measure of the space of similar situations that a rule can apply
@@ -909,6 +934,11 @@ rules are over-general.
909
934
910
935
### Over-specialization and Over-generalization
911
936
937
+ <!-- \index{chunking!over-specialization} -->
938
+ <!-- \index{chunking!correctness} -->
939
+ <!-- \index{chunking!over-general} -->
940
+ <!-- \index{chunking!explanation-based chunking} -->
941
+
912
942
Explanation-based behavior summarization was pursued to address the main limitation
913
943
of traditional chunking: over-specialized rules that were very specific and could
914
944
not be applied to many other situations. Specifically, EBBS’s identity-based
@@ -931,6 +961,8 @@ listed in the next section can produce over-general rules in certain situations.
931
961
932
962
### Previous Results and Rule Repair
933
963
964
+ <!-- \index{chunking!repair} -->
965
+
934
966
An agent may learn a slightly over-specialized rule when EBBS repairs a rule that
935
967
has unconnected conditions, which are conditions that have an identifier that
936
968
is not linked to one of the states referenced in the rule. Such rules are
@@ -1008,6 +1040,9 @@ to production memory.
1008
1040
1009
1041
### Collapsed Negative Reasoning
1010
1042
1043
+ <!-- \index{chunking!negated conditions} -->
1044
+ <!-- \index{chunking!over-general} -->
1045
+
1011
1046
Over-general chunks can be created when conditions in the behavior trace test
1012
1047
for the absence of a working memory elements in the substate. Since there is no
1013
1048
clear way for chunking to generate a set of conditions that describe when a
@@ -1058,7 +1093,7 @@ operators were exhaustively applied.
1058
1093
1059
1094
The current solution to this problem is a bit of a hack. Soar allows an agent to
1060
1095
signal to the architecture that a test for a substate is being made by testing
1061
- for the^quiescence t augmentation of the subgoal. If this special test is found
1096
+ for the^quiescence t <!-- \index{quiescence} --> augmentation of the subgoal. If this special test is found
1062
1097
in the behavior trace, EBBS will not build a chunk. The history of this test
1063
1098
is maintained, so that if the result of the substate is then used to produce
1064
1099
further results for a superstate, no higher chunks will be built.
@@ -1224,6 +1259,8 @@ learning is turned off.
1224
1259
1225
1260
### Generalizing Knowledge From Math
1226
1261
1262
+ <!-- \index{chunking!RHS functions} -->
1263
+
1227
1264
EBBS introduces the ability to learn more expressive rules
1228
1265
whose actions perform arbitrary right-hand side functions with variablized
1229
1266
arguments.
@@ -1364,7 +1401,7 @@ procedural learning.
1364
1401
1365
1402
It is theoretically possible to detect nearly all of the sources of
1366
1403
correctness issues and prevent rules from forming when those situations
1367
- are detected. In Soar 9.6.0, though, only one filter is available,
1404
+ are detected. In Soar 9.6.0, though, only one filter is available,
1368
1405
` allow-local-negations ` . Future versions of Soar will include more
1369
1406
correctness filters.
1370
1407
0 commit comments