:orphan: response_requirements ********************* Specifies the behaviors that are feasible responses for each stimulus. :ref:`the-decision-function` computes the probabilities only for the feasible responses to a stimulus. For example, in an experiment with the stimulus elements ``red_lever`` and ``blue_lever``, the behavior ``press_blue_lever`` is a feasible respose to ``blue_lever`` but not to ``red_lever``. The feasible responses to a compound stimulus (a set of stimulus elements) consist of the union of the feasible responses for each element. For example, ``press_blue_lever`` is a feasible response to the compund ``red_lever,blue_lever``. Syntax ------ :: response_requirements = b1:[e11, e12, ...], b2:[e21, e22, ...], ... bn:[en1, en2, ...] If a list of stimulus elements contains a single element, the brackets may be omitted: :: response_requirements = b1:e11, b2:e21, ... bn:[en1, en2, ...] Description ----------- :: response_requirements = b1:[e11, e12, ...], b2:[e21, e22, ...], ... bn:[en1, en2, ...] specifies that - ``b1`` is a feasible response to ``e11``, ``e12``, ... - ``b2`` is a feasible response to ``e21``, ``e22``, ... - ... - ``bn`` is a feasible response to ``en1``, ``en2``, ... The comma-separated list of ``behavior:[elements]`` may be line-broken: :: response_requirements = b1:e11, b2:e21, ... bn:[en1, en2, ...] is the same as :: response_requirements = b1:e11, b2:e21, ..., bn:[en1, en2, ...] Dependencies ------------ - The properties ``stimulus_elements`` and ``behaviors`` must be specified before ``response_requirements``. - Each stimulus element used in the specification of ``response_requirements`` must be present in the parameter ``stimulus_elements``. - Each behavior used in the specification of ``response_requirements`` must be present in the parameter ``behaviors``. - Applicable in all mechanisms except the Rescorla-Wagner mechanism. Example ------- :: stimulus_elements = blue_lever, red_lever, food behaviors = ignore_lever, press_lever, eat response_requirements = press_lever: [blue_lever,red_lever] ignore_lever: [blue_lever,red_lever] eat:food specifies that - the only feasible responses to ``blue_lever`` is ``press_lever`` and ``ignore_lever`` - the only feasible responses to ``red_lever`` is ``press_lever`` and ``ignore_lever``, and - the only feasible response to ``food`` is ``eat``.