Advertisement
Guest User

setpiwuetqwepiuhrqertij

a guest
Jan 28th, 2020
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | None | 0 0
  1.     def get_reward(previous_state, new_state,
  2.                    previous_sensor, new_sensor,
  3.                    prev_action, action,
  4.                    prev_val, new_val):
  5.  
  6.         # Max no. of green in img, before and after
  7.         # 0: No green pixels in img;    1: All img consists of green pixels
  8.  
  9.         prev_right, prev_mid, prev_left = prev_val
  10.         sum_prev_val = sum(prev_val)
  11.         new_right, new_mid, new_left = new_val
  12.         sum_new_val = sum(new_val)
  13.         max_new_sensor = np.max(new_sensor)
  14.         max_prev_sensor = np.max(previous_sensor)
  15.         max_c_prev = np.max(previous_state[3:])
  16.         max_c_new = np.max(new_state[3:])
  17.  
  18.         # Encourages going towards prey
  19.         if max_c_prev == 0 and max_c_new == 1:
  20.             return 10 if action == 0 else 2
  21.  
  22.         # Massive payoff if we get super close to prey
  23.         if max_c_prev == 1 and max_c_new == 2:
  24.             return 30
  25.  
  26.         # Nothing happens if prey gets away
  27.         if max_c_prev == 2 and max_c_new == 1:
  28.             return 0
  29.  
  30.         # Give good reward if we see more red than before
  31.         if sum_prev_val < sum_new_val:
  32.             return 10 if action == 0 else 0
  33.  
  34.         # If sensors detect enemy, then give good payoff.
  35.         # If sensors detect wall, give bad payoff to steer clear
  36.         if max_new_sensor > max_prev_sensor:
  37.             return 15 if max_c_new >= 1 else -5
  38.  
  39.         if prev_action != 0 and action != 0:
  40.             return -10
  41.  
  42.         # Give good payoff to encourage exploring (going straight)
  43.         # Minor bad payoff for turning around, but not bad enough to discourage it
  44.         return 1 if action == 0 else -2.5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement