2525
2626# #############################
2727
28- # function fig_2_1()
28+ # function fig_2_1(fig_dir="." )
2929# env = MultiArmBanditsEnv()
3030# f = render(env)
31- # savefig(f, "figure_2_1.png")
31+ # savefig(f, joinpath(fig_dir, "figure_2_1.png") )
3232# f
3333# end
3434
3535
36- function fig_2_2 ()
36+ function fig_2_2 (fig_dir = " . " )
3737 learner (ϵ) = QLearner (TabularQ (1 , 10 ), EpsilonGreedySelector (ϵ), 0. , cached_inverse_decay ())
3838 p = plot (layout= (2 , 1 ), dpi= 200 )
3939 for ϵ in [0.1 , 0.01 , 0.0 ]
4040 stats = [bandit_testbed (learner (ϵ)) for _ in 1 : 2000 ]
4141 plot! (p, mean (x[1 ] for x in stats), subplot= 1 , legend= :bottomright , label= " epsilon=$ϵ " )
4242 plot! (p, mean (x[2 ] for x in stats), subplot= 2 , legend= :bottomright , label= " epsilon=$ϵ " )
4343 end
44- savefig (p, " figure_2_2.png" )
44+ savefig (p, joinpath (fig_dir, " figure_2_2.png" ) )
4545 p
4646end
4747
48- function fig_2_3 ()
48+ function fig_2_3 (fig_dir = " . " )
4949 learner1 () = QLearner (TabularQ (1 , 10 , 5. ), EpsilonGreedySelector (0.0 ), 0. , 0.1 )
5050 learner2 () = QLearner (TabularQ (1 , 10 ), EpsilonGreedySelector (0.1 ), 0. , 0.1 )
5151 p = plot (legend= :bottomright , dpi= 200 )
5252 plot! (p, mean (bandit_testbed (learner1 ())[2 ] for _ in 1 : 2000 ), label= " Q_1=5, epsilon=0." )
5353 plot! (p, mean (bandit_testbed (learner2 ())[2 ] for _ in 1 : 2000 ), label= " Q_1=0, epsilon=0.1" )
54- savefig (p, " figure_2_3.png" )
54+ savefig (p, joinpath (fig_dir, " figure_2_3.png" ) )
5555 p
5656end
5757
58- function fig_2_4 ()
58+ function fig_2_4 (fig_dir = " . " )
5959 learner1 () = QLearner (TabularQ (1 , 10 ), UpperConfidenceBound (10 ), 0. , 0.1 )
6060 learner2 () = QLearner (TabularQ (1 , 10 ), EpsilonGreedySelector (0.1 ), 0. , 0.1 )
6161 p = plot (legend= :bottomright , dpi= 200 )
6262 plot! (p, mean (bandit_testbed (learner1 ())[1 ] for _ in 1 : 2000 ), label= " UpperConfidenceBound, c=2" )
6363 plot! (p, mean (bandit_testbed (learner2 ())[1 ] for _ in 1 : 2000 ), label= " epsilon-greedy, epsilon=0.1" )
64- savefig (p, " figure_2_4.png" )
64+ savefig (p, joinpath (fig_dir, " figure_2_4.png" ) )
6565 p
6666end
6767
68- function fig_2_5 ()
68+ function fig_2_5 (fig_dir = " . " )
6969 learner (alpha, baseline) = GradientBanditLearner (TabularQ (1 , 10 ), WeightedSample (), alpha, baseline)
7070 truevalue = 4.0
7171 p = plot (legend= :bottomright , dpi= 200 )
7272 plot! (p, mean (bandit_testbed (learner (0.1 , sample_avg ()), truevalue)[2 ] for _ in 1 : 2000 ), label= " alpha = 0.1, with baseline" )
7373 plot! (p, mean (bandit_testbed (learner (0.4 , sample_avg ()), truevalue)[2 ] for _ in 1 : 2000 ), label= " alpha = 0.4, with baseline" )
7474 plot! (p, mean (bandit_testbed (learner (0.1 , 0. ), truevalue)[2 ] for _ in 1 : 2000 ), label= " alpha = 0.1, without baseline" )
7575 plot! (p, mean (bandit_testbed (learner (0.4 , 0. ), truevalue)[2 ] for _ in 1 : 2000 ), label= " alpha = 0.4, without baseline" )
76- savefig (p, " figure_2_5.png" )
76+ savefig (p, joinpath (fig_dir, " figure_2_5.png" ) )
7777 p
7878end
7979
80- function fig_2_6 ()
80+ function fig_2_6 (fig_dir = " . " )
8181 ϵ_greedy_learner (ϵ) = QLearner (TabularQ (1 , 10 ), EpsilonGreedySelector (ϵ), 0. , cached_inverse_decay ())
8282 gradient_learner (alpha) = GradientBanditLearner (TabularQ (1 , 10 ), WeightedSample (), alpha, sample_avg ())
8383 UpperConfidenceBound_learner (c) = QLearner (TabularQ (1 , 10 ), UpperConfidenceBound (10 , c), 0. , cached_inverse_decay ())
@@ -88,6 +88,6 @@ function fig_2_6()
8888 plot! (p, - 5 : 1 , [mean (mean (bandit_testbed (gradient_learner (2.0 ^ i))[1 ] for _ in 1 : 2000 )) for i in - 5 : 1 ], label= " gradient" )
8989 plot! (p, - 4 : 2 , [mean (mean (bandit_testbed (UpperConfidenceBound_learner (2.0 ^ i))[1 ] for _ in 1 : 2000 )) for i in - 4 : 2 ], label= " UCB" )
9090 plot! (p, - 2 : 2 , [mean (mean (bandit_testbed (greedy_with_init_learner (2.0 ^ i))[1 ] for _ in 1 : 2000 )) for i in - 2 : 2 ], label= " greedy with initialization" )
91- savefig (p, " figure_2_6.png" )
91+ savefig (p, joinpath (fig_dir, " figure_2_6.png" ) )
9292 p
9393end
0 commit comments