Creating an LCAMechanism
An LCAMechanism is created by calling its constructor. Ordinarily, the self-excitation and competion
arguments are used to specify the values of the diagonal and off-diagonal elements of the
recurrent_projection (see Structure below).
However, if the matrix argument is specified, a warning is issued and the self_excitation and competition
arguments are ignored.
The threshold and threshold_criterion arguments specify the conditions under which execution of the
LCAMechanism terminates if integrator_mode is True. If threshold is None
(the default), then the LCAMechanism will update its
value and the
of each OutputPort only once each time it is executed. If a threshold is specified, then it will continue
to execute until the condition specified by threshold_criterion is True; this can be specified using one of the
VALUE – (default) True when any element of the LCAMechanism’s
value is equal to or
greater than the threshold;
MAX_VS_NEXT – True when the element of the LCAMechanism’s
value with the highest
values is greater than the one with the next-highest value by an amount that equals or exceeds threshold;
MAX_VS_AVG – True when the element of the LCAMechanism’s
value with the highest
values is greater than the average of the others by an amount that equals or exceeds threshold;
CONVERGENCE – True when the no element of the LCAMechanism’s current
differs from its value on the previous update by more than threshold.
For an LCAMechanism with exactly two elements, MAX_VS_NEXT implements a close approximation of the
threshold parameter of the
DriftDiffusionIntegrator Function used by a DDM (see
Usher & McClelland, 2001; and
Bogacz et al (2006)). For an LCAMechanism with more than two
elements, MAX_VS_NEXT and MAX_VS_AVG implements threshold approximations with different properties
(see McMillen & Holmes, 2006).
CONVERGENCE (the default for a TransferMechanism) implements a “settling” process, in which the Mechanism
stops executing when updating produces sufficiently small changes.
Note that threshold and threshold_criterion are convenience arguments, and are not associated with
similarly-named attributes. Rather, they are used to specify the
termination_comparison_op attributes; these can also be
specified directly as arguments of the LCAMechanism’s constructor in order to implement other termination conditions
(see TransferMechanism for additional details).