Changing reinforcer time within a session

MEDState Notation Repository Forums Coding Help Archive Changing reinforcer time within a session

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #12698
    Med_Support
    Moderator
    ColoSAuser

    I would like to develop a program where the reinforcer time decreases every 30 minutes for a 2.5 hour session. In particular, I am using a pump and cue light as a reinforcer following a lever press. I would like the compound reinforcer time to progress as follows: 7.5 sec, 5 sec, 2.5 sec, 1.25 sec, 0 sec. Anyone have any insights into having this reinforcer time update every 30 minutes? My current program with an FR schedule with a constant reinforcer time is attached. Thanks.

    Drug Fixed Ratio Left

    #12697
    Med_Support
    Moderator
    Gary Bamberger

    Hello,

    The easiest way would be to create a list with the times and then a State Set that draws from those times every 30 minutes.  S.S.1, S1 & S2 will also need to be modified:

    LIST Z = 7.5", 5", 2.5", 1.25", 0"
    
    
    S.S.1,
    S1,
    0.001": SET A(^CorrectLev) = 1,   A(^Reinforcer)  = 3;
    SET A(^TimeOut)    = 20,  A(^SessionTime) = 240, A(^FRVal) = 1;
    SET A(^MaxReinf)   = 150, A(^SoftCR)      = 1;
    SET J = 5, B(J) = -987.987 ---> S2
    
    S2,     \ First Statement: Wait for START signal, turn HouseLight ON,
    \ test for Correct Lever and turn associated stimulus ON.
    \
    \ Second Statement: Update screen display with default values
    \ for Control Variables.  This will show any changes made via
    \ the "Configure | Change Variables" Window prior to START.
    #START: CLEAR 1,60;
    SET A(^TimeOutTicks) = A(^TimeOut) * 1";
    SET B(J+^Trial) = 1, B(J+^NextTrial) = -987.987;
    SHOW 2,Tot Cor Rsp,B(^CorrectResp), 3,Tot Incor Rsp,B(^IncorrectResp), 4,Reinforcers,F;
    SHOW 6,Trial #,B(J+^Trial),         7,Cor Rsp,B(J+^CorrectResp),       8,Incor Rsp,B(J+^IncorrectResp);
    ON ^HouseLight, ^LeftLever, ^RightLever; LOCKON ^Fan ---> S3
    1": SHOW 1,Lever Code,A(^CorrectLev),    2,Reinforcers,A(^Reinforcer);
    SHOW 4,Time Out,A(^TimeOut),         5,Session Time,A(^SessionTime), 6,FR Value,A(^FRVal);
    SHOW 7,Max Reinforcers,A(^MaxReinf), 8,SoftCR Code,A(^SoftCR) ---> SX
    
    
    S.S.14,
    S1,
    #START: LIST A(^ReinfTimeTicks) = Z(K);
    SHOW 11,Reinforcer Time,A(^ReinfTimeTicks)/1" ---> S2
    
    S2,
    30': LIST A(^ReinfTimeTicks) = Z(K);
    SHOW 11,Reinforcer Time,A(^ReinfTimeTicks)/1" ---> SX
    #Z^Z_End: ---> S1
    

    I hope that this helps.
    Gary

    #12701
    Med_Support
    Moderator
    ColoSAuser

    It works wonderfully and is quite simple. I tried generating a list, but did not incorporate it into its own State Set. Thanks for your help.

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.