ACT-R multitasking

Wolfgang Schoppek wschoppe at mason2.gmu.edu
Wed Apr 12 15:57:21 EDT 2000


Hi Dario,
it is really funny: at the very moment when your e-mail arrived, I was sitting
here, working on a solution for this problem. So let me start with a question.

> 1. Interleaving tasks.  Since ACT-R is serial, we require some
> scheduling that allocates pieces of time to each task.

How do you allocate pieces of time to several tasks? Do you work with different
G's for different tasks?

> One
> straightforward approach might use several top-level productions that
> compete through conflict resolution and push task subgoals onto the
> stack.  Each subgoal would do some incremental piece of the task and
> return control to the higher-level productions.  However, this raises
> a problem of time allocation: the noisy process may happen to allocate
> large chunks of time to a single process without others getting their
> share.  In addition, there is a question of whether the subtasks
> should dictate when they complete or whether the scheduler should
> interrupt subtasks when needed.

My solution for that is that I do not use the full depth of the goal stack and
use a generic type for most of the goals. When a subgoal comes into play, it is
not pushed, but rather, the current goal is rehearsed, tagged with 'stack and
replaced by the subgoal. All this is under control of a basic top-level goal.
When a goal is popped, the basic goal retrieves the most active goal in memory
that has a certain tag, e.g. the 'stack tag. But it could also retrieve a goal
with an 'intention tag or with a 'pending tag. Since in my model the sequences
under one (sub)goal are quite short (3-8 steps), the model doesn't spend much
time between the top-level checks - even if it is actually somewhere deep in a
goal hierarchy. Therefore I don't interrupt the ongoing process (although I
think that there are events that do interrupt immediately).

> 2. Prioritizing tasks.  In tasks such as driving, certain tasks aren't
> as important as others (e.g., steering vs. changing radio stations).
> How can the model allocate time according to task priorities?  Again
> with the straightforward approach above, we could set conflict
> resolution parameters to values that represent task priorities.
> However, often these priorities are dynamic and time-related -- for
> instance, after a steering correction, steering may not be important
> for another one or two seconds, during which time a lower-priority
> task could be executed.

I also would like to have a solution for that. I think that some of the
prioritizing takes place on the symbolic level and can be modeled accordingly.
But for strong emergency signals, I think that something happens on lower
levels, where e.g. classical conditioning processes take place. The size of
deviations from desired values might also be a factor.

-- Wolfgang
--------------------------------------------------------------------
 Dr. Wolfgang Schoppek                <<< Tel.: +1 703-993-4663 <<<
 HUMAN FACTORS & APPLIED COGNITION PROGRAM, George Mason University,
 Fairfax, VA 22030-4444
  http://www.uni-bayreuth.de/departments/psychologie/wolfgang.htm
--------------------------------------------------------------------





More information about the ACT-R-users mailing list