Skip to content

Commit 9f79d4a

Browse files
committed
Copy \index commands for chunking manual chapter
1 parent c6bebf6 commit 9f79d4a

File tree

3 files changed

+44
-7
lines changed

3 files changed

+44
-7
lines changed

docs/home/Images/7688_jkt_au.pdf

1.07 MB
Binary file not shown.

docs/home/Images/9780262122962.jpg

782 KB
Loading

docs/soar_manual/04_ProceduralKnowledgeLearning.md

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
<!-- markdownlint-disable-next-line -->
22
# Procedural Knowledge Learning
33

4+
<!-- \index{chunking} -->
5+
<!-- \index{chunk} -->
6+
<!-- \index{result} -->
7+
<!-- \index{subgoal} -->
8+
49
## Chunking
510

611
Chunking is Soar’s experience-based mechanism for learning new procedural
@@ -41,6 +46,8 @@ and using chunking:
4146

4247
## Explanation-based Behavior Summarization
4348

49+
<!-- \index{chunking!explanation-based behavior summarization} -->
50+
4451
Explanation-based behavior summarization (EBBS) improves on generality and
4552
correctness issues in previous versions of chunking. EBBS learns general rules
4653
with the full expressive power of hand-written rules.
@@ -155,7 +162,7 @@ analyzes a behavior trace. Figure below shows an example behavior trace.
155162

156163
Note that this trace is generated dynamically as rules match. Whenever a rule
157164
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
159166
of this chapter represents an instantiation that was created during task
160167
execution within a particular substate.) The instantiation contains both
161168
instance information about what matched (the working memory elements) and
@@ -174,7 +181,7 @@ Similarly, architectural instantiations are created for structures recalled by
174181
semantic and episodic memory in the substate.
175182

176183
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
178185
instantiation graph, it determines the subset of instantiations that contributed
179186
to a result. This set of instantiations and the connections between them is the
180187
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.
211218

212219
### Identity
213220

221+
<!-- \index{chunking!identity} -->
222+
214223
Before we can discuss the algorithm, we must first define one of its central
215224
concepts: _identity_.
216225

@@ -220,9 +229,9 @@ concepts: _identity_.
220229
- **The NULL identity is a special identity that indicates an element which
221230
cannot be generalized and must contain a specific value.** - All elements in
222231
the original rule that reference specific constant values are trivially
223-
assigned the NULL identity. - A variables identity can also be _mapped to the
232+
assigned the NULL identity. - A variable's identity can also be _mapped to the
224233
NULL identity_. When this happens, we say the identity has been
225-
**literalized**.
234+
**literalized**. <!-- \index{chunking!literalization} -->
226235

227236
EBBS traverses a behavior trace of the problem-solving that occurred in the
228237
substate to determine which variables in different rule instances refer to the
@@ -303,6 +312,8 @@ on the identity graph.
303312

304313
### The Nine Components of Explanation-Based Behavior Summarization
305314

315+
<!-- \index{chunking!ebbs-components} -->
316+
306317
1. **Operator Selection Knowledge Analysis**
307318
This component also occurs before the learning episode. Whenever an operator
308319
is selected, it analyzes what rule firings contributed necessary operator
@@ -363,6 +374,8 @@ selected in a substate.
363374

364375
### Operator Selection Knowledge Analysis
365376

377+
<!-- \index{chunking!relevant operator selection knowledge} -->
378+
366379
As described in the beginning of this chapter, chunking summarizes the processing
367380
required to produce the results of subgoals. Traditionally, the philosophy behind
368381
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:
491504
represent that the variable in the condition refers to the same object
492505
as the variable in the action of the other rule.
493506
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
495508
that are guaranteed to only have a single possible value in a state. The
496509
most important singleton is the local `^superstate` singleton, which is
497510
an architecturally created WME that links the substate to the
@@ -516,6 +529,8 @@ graph that can correctly incorporate all identity relationships.
516529

517530
### Constraint Tracking
518531

532+
<!-- \index{constraint-tracking} -->
533+
519534
Rules underlying a behavior trace can include conditions that impose constraints
520535
on the values that a variable can hold. These can include equality tests,
521536
disjunctions, relative comparisons, literal tests, and conjunctions of
@@ -562,6 +577,8 @@ chunk’s actions.
562577

563578
### Backtracing
564579

580+
<!-- \index{chunking!backtracing} -->
581+
565582
When learning a new rule, EBBS performs a dependency analysis of the productions
566583
that fired in a substate – a process called backtracing. Backtracing works as
567584
follows. For each instantiated production that creates a subgoal result,
@@ -802,6 +819,9 @@ same state it matched in.
802819

803820
### Relationship Between Chunks and Justifications
804821

822+
<!-- \index{justification} -->
823+
<!-- \index{chunk} -->
824+
805825
Chunks are closely related to another type of rule called a justification.
806826
Justifications are also created when a substate creates a result for a
807827
superstate, the difference being that justifications are only built when
@@ -843,6 +863,8 @@ chunks and justifications are:
843863

844864
### Chunk Inhibition
845865

866+
<!-- \index{chunking!inhibition} -->
867+
846868
If a newly learned chunk was immediately added to production memory, it would
847869
immediately match with the same working memory elements that participated in its
848870
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
890912

891913
### Generality and Correctness of Learned Rules
892914

915+
<!-- \index{chunking!correctness} -->
916+
<!-- \index{chunking!over-general} -->
917+
893918
Chunking is intended to produce the most general rule that is also correct.
894919

895920
Generality is a measure of the space of similar situations that a rule can apply
@@ -909,6 +934,11 @@ rules are over-general.
909934

910935
### Over-specialization and Over-generalization
911936

937+
<!-- \index{chunking!over-specialization} -->
938+
<!-- \index{chunking!correctness} -->
939+
<!-- \index{chunking!over-general} -->
940+
<!-- \index{chunking!explanation-based chunking} -->
941+
912942
Explanation-based behavior summarization was pursued to address the main limitation
913943
of traditional chunking: over-specialized rules that were very specific and could
914944
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.
931961

932962
### Previous Results and Rule Repair
933963

964+
<!-- \index{chunking!repair} -->
965+
934966
An agent may learn a slightly over-specialized rule when EBBS repairs a rule that
935967
has unconnected conditions, which are conditions that have an identifier that
936968
is not linked to one of the states referenced in the rule. Such rules are
@@ -1008,6 +1040,9 @@ to production memory.
10081040

10091041
### Collapsed Negative Reasoning
10101042

1043+
<!-- \index{chunking!negated conditions} -->
1044+
<!-- \index{chunking!over-general} -->
1045+
10111046
Over-general chunks can be created when conditions in the behavior trace test
10121047
for the absence of a working memory elements in the substate. Since there is no
10131048
clear way for chunking to generate a set of conditions that describe when a
@@ -1058,7 +1093,7 @@ operators were exhaustively applied.
10581093

10591094
The current solution to this problem is a bit of a hack. Soar allows an agent to
10601095
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
10621097
in the behavior trace, EBBS will not build a chunk. The history of this test
10631098
is maintained, so that if the result of the substate is then used to produce
10641099
further results for a superstate, no higher chunks will be built.
@@ -1224,6 +1259,8 @@ learning is turned off.
12241259

12251260
### Generalizing Knowledge From Math
12261261

1262+
<!-- \index{chunking!RHS functions} -->
1263+
12271264
EBBS introduces the ability to learn more expressive rules
12281265
whose actions perform arbitrary right-hand side functions with variablized
12291266
arguments.
@@ -1364,7 +1401,7 @@ procedural learning.
13641401

13651402
It is theoretically possible to detect nearly all of the sources of
13661403
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,
13681405
`allow-local-negations`. Future versions of Soar will include more
13691406
correctness filters.
13701407

0 commit comments

Comments
 (0)