Description Details Slots References Examples
In Evolutionary Behaviour Dynamics (McDowell, 2004), the behaviours that an organism is capable of emitting is represented as a set of integers on some domain (e.g. from 0 to 1023). This behavioural domain is divided into subsets to represent different operant classes (from the experimenter's perspective). For example, we may define [0,100] as one operant class and [101,1023] as another operant class. We may then set up an experiment where the EBD algrotihm is reinforced for a response to the first operant class of [0,100] on a variable interval schedule.
The definition of the operant classes (from the organism's perspective) is contained in a EBD_operant_class
object that inherits from the elemental
class.. This object will contain a function that makes integers (genotypes) to operant classes.
The way to put a EBD_operant_class
in your model is as follows:
Make a list of vectors, each of length 2, containing the boundaries of each class.
Call the make.EBD_operant_class
function.
EBD_operant_class
This will contain an operant class function that maps integers to operant classes.
name
The name of the operant_class
object. Inherited from elemental
.
type
This will be elemental
because the operant_class
.
McDowell, J. J. (2004). A computational model of selection by consequences. Journal of the Experimental Analysis of Behavior, 81(3), 297–317. https://doi.org/10.1901/jeab.2004.81-297
1 2 3 4 5 6 7 | # Define the operant classes:
class_bounds = list( c(0,40), c(41, 511), c(512, 552), c(553, 1023) )
# Make an "EBD_operant_class" object:
int_to_class = make.EBD_operant_class( class_bounds, "pop_class" )
# Test that it returns the correct class:
plot( matrix( c( 0:1023, int_to_class@EBD_operant_class( 0:1023 ) ), ncol = 2 ) )
abline( v = unlist( class_bounds ) )
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.