Advertisement
Guest User

lgmonitor

a guest
Mar 20th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. exercise = [[(0.891,8),(0.009,8),(0.1,0)], #fit
  2. [(0.18,0),(0.72,0),(0.1,0)], #unfit
  3. [(0,0),(0,0),(1,0)]] #dead
  4.  
  5. relax = [[(0.693,10),(0.297,10),(0.01,0)], #fit
  6. [(0,5),(0.99,5),(0.01,0)], #unfit
  7. [(0,0),(0,0),(1,0)]] #dead
  8. FIT = 0
  9. UNFIT = 1
  10. DEAD = 2 # :'(
  11.  
  12. EXERCISE = 0
  13. RELAX = 1
  14.  
  15. def q_zero(s,a):
  16. if a == EXERCISE:
  17. probsfit,rewardfit = exercise[s][FIT]
  18. probsunfit,rewardunfit = exercise[s][UNFIT]
  19. probsdead,rewarddead = exercise[s][DEAD]
  20. return ((probsfit*rewardfit)+(probsunfit*rewardunfit)+(probsdead*rewarddead))
  21. elif a == RELAX:
  22. probsfit,rewardfit = relax[s][FIT]
  23. probsunfit,rewardunfit = relax[s][UNFIT]
  24. probsdead,rewarddead = relax[s][DEAD]
  25. return ((probsfit*rewardfit)+(probsunfit*rewardunfit)+(probsdead*rewarddead))
  26.  
  27. def v_n(n,s,y_symbol):
  28. return max(q_n(n,s,EXERCISE,y_symbol),q_n(n,s,RELAX,y_symbol))
  29.  
  30. def q_n(n,s,a,y_symbol):
  31. if(n==0):
  32. return q_zero(s,a)
  33. if a == EXERCISE:
  34. probsfit = exercise[s][FIT][0]
  35. probsunfit = exercise[s][UNFIT][0]
  36. probsdead = exercise[s][DEAD][0]
  37. 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)))
  38. elif a == RELAX:
  39. probsfit = relax[s][FIT][0]
  40. probsunfit = relax[s][UNFIT][0]
  41. probsdead = relax[s][DEAD][0]
  42. 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))))
  43.  
  44. if __name__ == '__main__':
  45. userstring = input("Please enter a space separated n, followed by G and then an s:")
  46. array = userstring.split()
  47. n = int(array[0])
  48. s = int(array[2])
  49. g = float(array[1])
  50. results = {
  51. "exercise" : [],
  52. "relax" : [],
  53. "pi" : []
  54. }
  55. for x in range(n+1):
  56. results['exercise'].append(q_n(x,s,EXERCISE,g))
  57. for x in range(n+1):
  58. results['relax'].append(q_n(x,s,RELAX,g))
  59. for x in range(n+1):
  60. if results['exercise'][x]>= results['relax'][x]:
  61. results['pi'].append("exercise")
  62. else:
  63. results['pi'].append("relax")
  64. print(results)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement