[ACT-R-users] different base level activations

Dan Bothell db30 at andrew.cmu.edu
Fri Jan 9 10:25:12 EST 2004


--On Friday, January 09, 2004 2:54 PM +0100 Sarah Schimke 
<sarah.schimke at cognition.uni-freiburg.de> wrote:

>
> Hello,
> thank you very much for your answers to my last question. I
> have a new problem now:
>
> Is there a way to give different base level activations to
> different chunks or different chunk types?
> In my model, one type of chunk should be harder to retrieve
> than the other chunks, so I would like to give such a chunk
> a lower base level activation at the moment of its creation
> (it does not exist from the beginning).
>

There is no "automatic" way to do that for a specific chunk
or chunk-type as far as I know, but maybe someone else knows
some tricks I don't.  However, there are commands which allow
you to set the base-level or the parameters that determine the
base-level if you have base-level learning enabled.  The two
commands that would be useful are set-base-levels and sdp.  They
are described in the ACT-R 4 manual which you can get at
<http://act.psy.cmu.edu/ftp/release/ACT-R_4.0/>.  How and when
you call them would depend on how the new chunks are being
created and when you need the results to really take effect.
So, without knowing anything about the model I can't say
much about that, but I can provide some examples of their
use.

If base-level learning is not enabled, then the base-level
can be set directly for a chunk like this:

(set-base-levels (chunk-name 5))

or

(sdp chunk-name :base-level 3)

If base-level learning is enabled, then you must set the
creation time and references which determine the base-level:

(set-base-levels (chunk-name 10 0))

where the first number is the number of references and the
second is the creation time in seconds.

or

(sdp chunk-name :creation-time 0 :references 10)


Since you said the chunks don't exist at the start, it's
likely that you don't know their names in advance.  So,
you'll probably have to "get" the name some how and in
that case you'll probably need the functional form of the
commands since you'll either be evaluating some form to
get the name or have it bound to a variable.  So, if
we assume that there is a variable called chunk-name-var
with the current value of a chunk-name, then the commands
would look like this:

(set-base-levels-fct (list (list chunk-name-var 10 0)))

or

(sdp-fct (list chunk-name-var :creation-time 0 :references 10))

It's also possible when using sdp to specify a list of chunks
for which one wants to set the parameters.  So assuming that
there are multiple variables holding chunk names one could do:

(sdp-fct (list (list c-name-var1 c-name-var2) :creation-time 1))

Finally, there is a command called sdm which can be used to
return a list of chunks matching a particular specification
(the details are again in the manual referenced above).  In
particular one can use it to return the list of chunks of a
specific type:

(sdm isa chunk-type-name)

will return the list of all chunks of the chunk-type chunk-type-name.

Putting that with sdp one could then set the paramters for all of
the chunks of a particular type at once like this:

(sdp-fct (list (no-output (sdm isa chunk-type-name)) :creation-time -1.0)

The no-output command prevents sdm from printing the chunks as well,
which it would do by default.

Hope that helps, and if you have any other questions let me know.

Dan






More information about the ACT-R-users mailing list