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 noise, leak, initial_value, and time_step_size arguments are used to implement the
LeakyCompetingIntegrator as the LCAMechanism’s
The leak argument is used to specify the
leak parameter of the
LeakyCompetingIntegrator. This function is only used used when
integrator_mode is True (which it is by default). If
integrator_mode is False, the
LeakyCompetingIntegrator function is skipped entirely,
and all related arguments (noise, leak, initial_value, and time_step_size) have no effect.
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).
The key state_features that disinguish an LCAMechanism from its parent class (
function is a
Logistic Function (rather than
integrator_function is a
Function (rather than
matrix of its
by default, has diagonal elements with uniform weights assigned the value of
self_excitation, and off-diagonal elements with uniform weights assigned the negative of the
competition; however, if the matrix argument is specified, then
competition are ignored.
Like any RecurrentTransferMechanism, by default an LCAMechanism has a single primary OutputPort
named RESULT that contains the Mechanism’s current
value. It also has two
StandardOutputPorts in its
attribute – MAX_VS_NEXT and MAX_VS_AVG that are available for assignment, in addition to the
standard_output_ports of a RecurrentTransferMechanism:
value of the MAX_VS_NEXT OutputPort contains the difference between the two elements of
value with the highest values, and the
value of the
MAX_VS_AVG OutputPort contains the difference between the element with the highest value and the average of all
the others (see above for their relationship to the output of a DDM Mechanism).