Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- exercise = [[(0.891,8),(0.009,8),(0.1,0)], #fit
- [(0.18,0),(0.72,0),(0.1,0)], #unfit
- [(0,0),(0,0),(1,0)]] #dead
- relax = [[(0.693,10),(0.297,10),(0.01,0)], #fit
- [(0,5),(0.99,5),(0.01,0)], #unfit
- [(0,0),(0,0),(1,0)]] #dead
- FIT = 0
- UNFIT = 1
- DEAD = 2 # :'(
- EXERCISE = 0
- RELAX = 1
- def q_zero(s,a):
- if a == EXERCISE:
- probsfit,rewardfit = exercise[s][FIT]
- probsunfit,rewardunfit = exercise[s][UNFIT]
- probsdead,rewarddead = exercise[s][DEAD]
- return ((probsfit*rewardfit)+(probsunfit*rewardunfit)+(probsdead*rewarddead))
- elif a == RELAX:
- probsfit,rewardfit = relax[s][FIT]
- probsunfit,rewardunfit = relax[s][UNFIT]
- probsdead,rewarddead = relax[s][DEAD]
- return ((probsfit*rewardfit)+(probsunfit*rewardunfit)+(probsdead*rewarddead))
- def v_n(n,s,y_symbol):
- return max(q_n(n,s,EXERCISE,y_symbol),q_n(n,s,RELAX,y_symbol))
- def q_n(n,s,a,y_symbol):
- if(n==0):
- return q_zero(s,a)
- if a == EXERCISE:
- probsfit = exercise[s][FIT][0]
- probsunfit = exercise[s][UNFIT][0]
- probsdead = exercise[s][DEAD][0]
- return q_zero(s,a)+((y_symbol)*(probsfit*v_n(n-1,FIT,y_symbol)+probsunfit*v_n(n-1,UNFIT,y_symbol)+probsdead*v_n(n-1,DEAD,y_symbol)))
- elif a == RELAX:
- probsfit = relax[s][FIT][0]
- probsunfit = relax[s][UNFIT][0]
- probsdead = relax[s][DEAD][0]
- return q_zero(s,a)+((y_symbol)*((probsfit*v_n(n-1,FIT,y_symbol))+(probsunfit*v_n(n-1,UNFIT,y_symbol))+(probsdead*v_n(n-1,DEAD,y_symbol))))
- if __name__ == '__main__':
- userstring = input("Please enter a space separated n, followed by G and then an s:")
- array = userstring.split()
- n = int(array[0])
- s = int(array[2])
- g = float(array[1])
- results = {
- "exercise" : [],
- "relax" : [],
- "pi" : []
- }
- for x in range(n+1):
- results['exercise'].append(q_n(x,s,EXERCISE,g))
- for x in range(n+1):
- results['relax'].append(q_n(x,s,RELAX,g))
- for x in range(n+1):
- if results['exercise'][x]>= results['relax'][x]:
- results['pi'].append("exercise")
- else:
- results['pi'].append("relax")
- print(results)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement