@@ -27,7 +27,7 @@ internally before executing them in the world. In addition, planning provides a
27
27
way of comparing alternative operators based on the states they produce.
28
28
Chunking builds rules that summarize the comparisons and evaluations that occur
29
29
in the look-ahead search so that in the future the rules fire, making look-ahead
30
- search unnecessary – converting deliberation into reaction.
30
+ search unnecessary - converting deliberation into reaction.
31
31
32
32
Many planning systems have a two-stage cycle of planning and execution.
33
33
They always plan when given a new problem and then execute the plan step
@@ -354,11 +354,12 @@ a few Water Jug specific rules; however, that means that with each new
354
354
task, new state copy rules must also be written. To avoid this, we have
355
355
written a general set of rules that can copy down the augmentations.
356
356
These rules match against augmentations of the problem space to
357
- determine with state augmentations to copy. Below are the legal
357
+ determine which state augmentations to copy. Below are the legal
358
358
augmentations dealing with state copying and their meaning:
359
359
360
- - default-state-copy no: Do not copy any augmentations automatically.
361
- - one-level-attributes: copies augmentations of the state and preserves their value.
360
+ - ` default-state-copy no ` : Do not copy any augmentations automatically.
361
+ - ` one-level-attributes ` : copies augmentations of the state and preserves
362
+ their value.
362
363
363
364
Example:
364
365
@@ -367,7 +368,7 @@ augmentations dealing with state copying and their meaning:
367
368
(s2 ^color c1)
368
369
```
369
370
370
- - two-level-attributes: copies augmentations of the state and creates
371
+ - ` two-level-attributes` : copies augmentations of the state and creates
371
372
new identifiers for values. Shared identifiers replaced with same
372
373
new identifier.
373
374
@@ -378,9 +379,9 @@ augmentations dealing with state copying and their meaning:
378
379
(s2 ^color c5) (c5 ^hue green)
379
380
```
380
381
381
- - all-attributes-at-level one: copies all attributes of state as
382
- one-level-attributes (except dont-copy ones and Soar created ones
383
- such as impasse, operator, superstate)
382
+ - ` all-attributes-at-level one` : copies all attributes of state as
383
+ one-level-attributes (except ` dont-copy` ones and Soar created ones
384
+ such as ` impasse`, ` operator`, ` superstate` )
384
385
385
386
Example:
386
387
@@ -389,9 +390,9 @@ augmentations dealing with state copying and their meaning:
389
390
(s2 ^color c1) (s2 ^size big)
390
391
```
391
392
392
- - all-attributes-at-level two: copies all attributes of state as
393
- two-level-attributes (except dont-copy ones and Soar created ones
394
- such as impasse, operator, superstate)
393
+ - ` all-attributes-at-level two` : copies all attributes of state as
394
+ two-level-attributes (except ` dont-copy` ones and Soar created ones
395
+ such as ` impasse`, ` operator`, ` superstate` )
395
396
396
397
Example:
397
398
@@ -400,22 +401,22 @@ augmentations dealing with state copying and their meaning:
400
401
(s2 ^color c5) (c5 ^hue green)
401
402
```
402
403
403
- - dont-copy: will not copy that attribute.
404
+ - ` dont-copy` : will not copy that attribute.
404
405
405
406
Example:
406
407
407
408
```Soar
408
409
(p1 ^dont-copy size)
409
410
```
410
411
411
- - don’t -copy-anything: will not copy any attributes
412
+ - `dont -copy-anything` : will not copy any attributes
412
413
413
414
```Soar
414
415
(p1 ^dont-copy-anything yes)
415
416
```
416
417
417
418
If no augmentations relative to copying are included, the default is to
418
- do all-attributes-at-level one. The desired state is also copied over,
419
+ do ` all-attributes-at-level one` . The desired state is also copied over,
419
420
based on the copy commands for the state.
420
421
421
422
These rules support two levels of copying. How should you decide what
@@ -451,9 +452,10 @@ sp {water-jug*apply*fill
451
452
^empty <volume>)
452
453
-->
453
454
(<j> ^contents <volume>
454
- 0 -
455
+ 0 -
455
456
^empty 0
456
- <volume> - ) # (1)}
457
+ <volume> - ) # (1)
458
+ }
457
459
```
458
460
459
461
1 . To remove a working memory element, use ` - ` .
@@ -481,9 +483,9 @@ sp {water-jug*elaborate*problem-space
481
483
^two-level-attributes jug)}
482
484
```
483
485
484
- You could use ^all-attributes-at-level two instead, but it is best to
486
+ You could use ` ^all-attributes-at-level two ` instead, but it is best to
485
487
list exactly the attributes you need to have copied. After using this,
486
- the substate, s3 , would have the following structure:
488
+ the substate, ` s3 ` , would have the following structure:
487
489
488
490
``` Soar
489
491
(s3 ^jug j3 j4)
@@ -522,7 +524,7 @@ working memory when an operator is applied, although it requires fewer
522
524
working memory elements to be copied during the creation of the initial
523
525
state. This approach also is less natural in that it implies that a new
524
526
jug is created as opposed to just modifying the contents of the existing
525
- jug. For these two reasons, the first approach (two-level-attribute
527
+ jug. For these two reasons, the first approach (` two-level-attribute `
526
528
copying) is preferred.
527
529
528
530
#### Selecting the operator being evaluated
@@ -564,7 +566,7 @@ Once the new state is created, an evaluation can be made. An
564
566
augmentation is added to the state in parallel to the operator being
565
567
applied: ` ^tried-tied-operator <o> ` . This augmentation can be tested by
566
568
rules to ensure that they are evaluating the result of applying the
567
- operator as opposed to the copy of the original state – although this
569
+ operator as opposed to the copy of the original state - although this
568
570
will not work for operators that apply as a sequence of rules.
569
571
570
572
The simplest evaluations to compute are success and failure. Success is
@@ -594,26 +596,26 @@ In addition to success and failure, the selection rules can process
594
596
other symbolic evaluations as well as numeric evaluations. The symbolic
595
597
preferences that are processed are as follows:
596
598
597
- - success: This state is the desired state. This is translated into a
599
+ - ** success** : This state is the desired state. This is translated into a
598
600
best preference. It is also translated into a better preference if
599
601
another operator has a result state with an evaluation of
600
602
partial-success.
601
603
602
- - partial-success: This state is on the path to success. This is
604
+ - ** partial-success** : This state is on the path to success. This is
603
605
translated into a best preference.
604
606
605
- - indifferent: This state is known to be neither success of failure.
607
+ - ** indifferent** : This state is known to be neither success of failure.
606
608
This is translated into an indifference preference.
607
609
608
- - failure: The desired state cannot be achieved from this state. This
610
+ - ** failure** : The desired state cannot be achieved from this state. This
609
611
is translated into a reject preference.
610
612
611
- - partial-failure: All paths from this state lead to failure. This is
613
+ - ** partial-failure** : All paths from this state lead to failure. This is
612
614
translated into a worst preference.
613
615
614
616
For numeric evaluations, an augmentation named ` ^numeric-value ` should be
615
617
created for the evaluation object for an operator. We will discuss
616
- numeric evaluations in more detail in a future section.
618
+ numeric evaluations in more detail in a [ future section] ( #numeric-evaluations ) .
617
619
618
620
If you include your original rules, the selection rules, and the two new
619
621
rules described above (` water-jug*elaborate*problem-space ` ,
@@ -646,10 +648,10 @@ following:
646
648
test for this is: ` (<s1> ^tried-tied-operator) `
647
649
1 . That there is a duplicate of that state that is earlier in the state
648
650
stack. There is nothing inherent in Soar that keeps track of all
649
- earlier states – only the superstate is readily available. We need
651
+ earlier states - only the superstate is readily available. We need
650
652
to add rules that elaborate each state with all of its superstates
651
653
(and their superstates). We will call this the superstate-set.
652
- Computing this requires only two rules – one that adds its
654
+ Computing this requires only two rules - one that adds its
653
655
superstate to the superstate-set and one that adds all of the
654
656
superstate-set of the superstate to its superstate-set.
655
657
@@ -874,7 +876,7 @@ path to the goal. Specifically, chunking can learn a rule that states:
874
876
875
877
This rule is learned when the operator to move one missionary to the
876
878
left is evaluated in a evaluation subgoal and discovered to lead to a
877
- failure state – where there is one missionary and two cannibals on the
879
+ failure state - where there is one missionary and two cannibals on the
878
880
right bank. The problem with this rule is that it doesn’t include a test
879
881
that no cannibals are also moved. If the operator moves a cannibal at
880
882
the same time it moves a missionary, it does not produce a failure
0 commit comments