Source code for psychsim.reward
from psychsim.pwl import *
[docs]def maximizeFeature(key,agent):
return KeyedTree(setToFeatureMatrix(rewardKey(agent),key,1.))
[docs]def minimizeFeature(key,agent):
return KeyedTree(setToFeatureMatrix(rewardKey(agent),key,-1.))
[docs]def achieveFeatureValue(key,value,agent):
return makeTree({'if': equalRow(key,value),
True: setToConstantMatrix(rewardKey(agent),1.),
False: setToConstantMatrix(rewardKey(agent),0.)})
[docs]def achieveGoal(key,agent):
return makeTree({'if': trueRow(key),
True: setToConstantMatrix(rewardKey(agent),1.),
False: setToConstantMatrix(rewardKey(agent),0.),})
[docs]def minimizeDifference(key1,key2,agent):
return makeTree({'if': greaterThanRow(key1, key2),
True: dynamicsMatrix(rewardKey(agent),{key1: -1.,key2: 1.}),
False: dynamicsMatrix(rewardKey(agent),{key1: 1.,key2: -1.})})
[docs]def null_reward(agent):
"""
:return: a reward function that always returns 0
:type agent: str
"""
return makeTree(setToConstantMatrix(rewardKey(agent), 0))