Description Usage Arguments Details Slots References See Also Examples
Catania's Operant Reserve (COR; Catania, 2005) has been implemented in the CAB package. This is the documentation for the implementation.
1 2 | make.COR(DOR_control, emission_control, dep_control, initial_reserve_control,
stimulus_control, termination_control, food_duration_control, input)
|
DOR_control |
A |
emission_control |
A |
dep_control |
A |
initial_reserve_control |
A |
stimulus_control |
A |
termination_control |
A |
food_duration_control |
A |
input |
An |
COR is implemented as the model.COR class. COR requires the following control classes: DOR_control, emission_control, dep_control, initial_reserve_control, stimulus_control, termination_control, food_duration_control. See slot information.
In brief, COR is a model where the probability of responding is controlled by a construct referred to as the 'reserve'. The emission of responses depletes the value of the reserve. Reinforcement replenishes the reserve based on where reinforcement has occurred within the most recent inter-reinforcement interval. The rule that controls the replenishment to the reserve is the "delay of reinforcement gradient". See Catania (2005) and Berg & McDowell (2011) for more details.
Previous implentations of COR simulate the model at each possible discrete time point. That is, the model is asked at each point in time whether or not a response occurred. Our implementation asks when the next response will occur. This allows us to save a lot of computational time.
DOR_controlFor the delay-of-reinforcement gradient.
emission_controlFor the function that relates the reserve value to the time at which the next response will occur.
dep_controlFor the depletion of the reserve after responding.
initial_reserve_controlFor the initial level of the reserve.
stimulus_controlFor the reinforcement schedule.
termination_controlFor the conditions that terminate the experiment.
food_duration_controlFor the food duration.
control_listA mandatory slot for models. Inherited from the model class. The underlying representation is an environment.
enumerated_conditionsA mandatory slot for models. Inherited from the model class.
iteratorA mandatory slot for models. Inherited from the model class.
inputA mandatory slot for models. Contains all of the inputs required to run the necessary functions. Inherited from the model class.
Berg, J. P., & McDowell, J. J (2011). Quantitative, steady-state properties of Catania's computational model of the operant reserve. Behavioural Processes, 87(1), 71-83. https://doi.org/10.1016/j.beproc.2011.01.006
Catania, A. C. (2005). The operant reserve: A computer simulation in (accelerated) real time. Behavioural Processes, 69(2), 257-278. https://doi.org/10.1016/j.beproc.2005.02.009
class.control for control objects.
class.emission for emission objects.
class.initial_reserve for initial_reserve objects.
class.stimulus for stimulus objects.
class.termination for termination objects.
class.food_duration for food_duration objects.
class.input for input objects.
class.model for the model parent class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # Make a 'model.COR' object
# Set up inputs
time_input = make.input( name = "time_input" )
resp_time = make.input( name = "resp_time" )
rft_time = make.input( name = "rft_time" )
reserve = make.input( name = "reserve" )
# Set up input object
my_inputs = make.input( time_input, resp_time, rft_time, reserve )
# Set up DOR and DOR_control
linear_DOR = make.DOR( DOR_fx = linear_DOR_fx, name = "linear_DOR" )
DOR_params = list( scale = 100, max = c(1, 0.5), "resp_time", "rft_time", "reserve" )
DOR_ctrl = make.control( linear_DOR, DOR_params )
# Set up dep and dep_control
constant_dep = make.dep( dep_fx = constant_dep_fx, name = "constant_dep" )
dep_params = list( deplete = 0.01, "reserve" )
dep_ctrl = make.control( constant_dep, dep_params )
# Set up initial_reserve and initial_reserve_control
constant_initial = make.initial_reserve( initial_reserve_fx = constant_initial_fx, name = "constant_initial" )
initial_params = list( initial = 0.75 )
initial_ctrl = make.control( constant_initial, initial_params )
# Set up stimulus and stimulus_control
vi = make.stimulus( stimulus_fx = true_VI_fx, name = "vi" )
vi_params = list( VI_interval = 2, time = "time_input" )
schedule_ctrl = make.control( vi, vi_params )
# Set up emission and emission_control
G_E_emission = make.emission( G_E_emission_fx, name = "G_E_emission" )
emission_params = list( reserve_value = "reserve", time = "time_input", min_IRT = 1 )
emission_ctrl = make.control( G_E_emission, emission_params )
# Set up termination and termination_control
time_termination = make.termination( termination_fx = time_termination_fx, name = "time_termination" )
termination_params = list( "time", 1000 )
termination_ctrl = make.control( time_termination, termination_params )
# Set up food_duration and food_duration control
food_duration = make.food_duration( food_duration_fx = constant_food_duration_fx, name = "constant_food_duration" )
food_duration_params = list( food_dur = 3, time = "time_input" )
food_duration_ctrl = make.control( food_duration, food_duration_params )
# Make the cOR model
my_COR = make.COR( DOR_ctrl, emission_ctrl, dep_ctrl, initial_ctrl, schedule_ctrl, termination_ctrl, food_duration_ctrl, my_inputs )
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.