TroglodyteDerivations's picture
Updated lines 80-147 with: st.write("Example 3 via Method 1:") # Example 3 parameters eta = 0.1 N_st = 3 epsilon = 1e-5 # Intrinsic reward formulation r_t_int = eta * (1 / (N_st + epsilon)**0.5) # Display the formulation with parameters plugged in st.latex(r""" r_{t}^{int} \eta \frac{1}{\sqrt{N(s_{t}) + \epsilon}} = 0.1 \frac{1}{\sqrt{3 + 1 x 10^{-5}}} """) st.write(f"Calculated intrinsic reward: {r_t_int}") st.dataframe(df_0_0[2:3]) # Display the formulation with parameters plugged in st.write("Example 4 via Method 2:") st.latex(r""" r_{t}^{int} \eta \frac{1}{\sqrt{N(s_{t}) + \epsilon}} = 0.1 \frac{1}{\sqrt{4 + 1 x 10^{-5}}} """) # Abstract Base Class for Intrinsic Reward Calculation class IntrinsicRewardCalculator(ABC): @abstractmethod def calculate_intrinsic_reward(self, eta, count, epsilon): pass # Concrete Class for Intrinsic Reward Calculation class ConcreteIntrinsicRewardCalculator(IntrinsicRewardCalculator): def calculate_intrinsic_reward(self, eta, count, epsilon): return eta * (1 / np.sqrt(count + epsilon)) def populate_df_0_0(self, df_0_0, eta, count, epsilon): intrinsic_reward = self.calculate_intrinsic_reward(eta, count, epsilon) df_0_0.at[0, 'Intrinsic Reward'] = intrinsic_reward return df_0_0 # Example 4 parameters eta = 0.1 count = 4 epsilon = 1e-5 x,y = 0,0 # Create instance for Intrinsic Reward Calculation irc = ConcreteIntrinsicRewardCalculator() intrinsic_reward = irc.calculate_intrinsic_reward(0.1, 4, 1e-5) st.write(f"Intrinsic Reward @ {count} @ Coordinates {x,y}:", intrinsic_reward) st.write(f"Intrinsic Reward @ {count} @ Coordinates {x,y} rounded 2 decimal places:", np.round(intrinsic_reward,2)) # Populate the DataFrame with the calculated intrinsic reward df_0_0 = irc.populate_df_0_0(df_0_0, eta, count, epsilon) # Display the updated DataFrame st.dataframe(df_0_0[3:4]) st.write("Example 5 via Method 1:") # Example 5 parameters eta = 0.1 N_st = 5 epsilon = 1e-5 # Intrinsic reward formulation r_t_int = eta * (1 / (N_st + epsilon)**0.5) # Display the formulation with parameters plugged in st.latex(r""" r_{t}^{int} \eta \frac{1}{\sqrt{N(s_{t}) + \epsilon}} = 0.1 \frac{1}{\sqrt{5 + 1 x 10^{-5}}} """) st.write(f"Calculated intrinsic reward: {r_t_int}") st.write(f"Calculated intrinsic reward rounded 4 decimal places:", np.round(r_t_int,4)") st.dataframe(df_0_0[4:5])
3b5b8d7 verified