/
BanditOpt.jl
84 lines (73 loc) · 1.99 KB
/
BanditOpt.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
module BanditOpt
"""
BanditOpt is a Julia package for experimenting with various Multi-Armed Bandit algorithms.
"""
BanditOpt
"""
BanditOpt.Agents module provides implementations of various multi-arm bandit algorithms and an
unified API to access those algorithms. This includes base types for implementing various types
of agents and the common interface.
"""
module Agents
using Distributions
using LaTeXStrings
include( "Agents/AgentBase.jl" )
include( "Agents/StationaryAgentBase.jl" )
export
# Methods
get_arm_index, update_reward!, reset!, info_str,
show,
# Agents
AgentBase,
# Stationary Agents
StationaryAgentBase,
epsGreedy, epsNGreedy
end
"""
ArmModels
`ArmModels` module includes the different types of reward processes available for
Bandit algorithms. It define the following base types for creating new reward
processes.
- [Arms.ArmBase](@ref)
- [Arms.StationaryArmBase](@ref)
- [Arms.NonstationaryArmBase](@ref)
"""
module Arms
using Distributions
include( "Arms/ArmBase.jl" )
include( "Arms/StationaryArms.jl" )
include( "Arms/NonStationaryArms.jl" )
# export
# # Methods
# pull!, tick!, reset!,
# # Arm Models
# ArmBase,
# # Stationary Arm Models
# StationaryArmBase,
# # Non-stationary Arm Models
# NonstationaryArmBase
end
# ----------------------------- Exports ----------------------------------
using .Agents
using .Arms
export
# Agents Module
Agents,
# Methods
get_arm_index, update_reward!, reset!, info_str, show,
# Agents
AgentBase,
# Stationary Agents
StationaryAgentBase,
epsGreedy, epsNGreedy,
# Arms Module
Arms
# # Methods
# pull!, tick!, reset!,
# # Arm Models
# ArmBase,
# # Stationary Arm Models
# StationaryArmBase,
# # Non Staionary Arm Models
# NonstationaryArmBase
end # module