reinforcement learning if flip(self explore)return random choice(self actionselsereturn argmaxe((next_actdot_product(self weightsself get_features(state,next_act))for next_act in self actions def show_actions(self,state=none)"""prints the value for each action in state this may be useful for debugging ""if state is nonestate self state for next_act in self actionsprint(next_act,dot_product(self weightsself get_features(state,next_act)) def dot_product( , )return sum( * for ( , in zip( , )test coderlfeatures py -(continued from rlqtest import senv simple game environment from rlsimplegamefeatures import get_featuressimp_features from rlplot import plot_rl fa sarsa_lfa_learner(senvget_features step_size= #fa max_display_level #fa do( #plot_rl(fa ,steps_explore= ,steps_exploit= ,label="sarsa_lfa( )"fas sarsa_lfa_learner(senvsimp_features step_size= #plot_rl(fas ,steps_explore= ,steps_exploit= ,label="sarsa_lfa(simp)"exercise how does the step-size affect performancetry different step sizes ( other sizes in betweenexplain the behaviour you observe which step size works best for this example explain what evidence you are basing your prediction on exercise does having extra features always helpdoes it sometime helpdoes whether it helps depend on the step sizegive evidence for your claims exercise for each of the following first predictthen plotthen explain the behavour you observed(asarsa lfamodel-based learning (with update per stepand -learning for , steps exploring followed by , steps exploiting (bsarsa lfamodel-based learning and -learning for , steps exploring followed by , steps exploit ii , steps exploring followed by , steps exploit version june