Class: Bandit::BasePlayer

Inherits:
Object
  • Object
show all
Defined in:
lib/bandit/players/base.rb

Direct Known Subclasses

EpsilonGreedyPlayer, RoundRobinPlayer

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ BasePlayer

Returns a new instance of BasePlayer.



13
14
15
16
# File 'lib/bandit/players/base.rb', line 13

def initialize(config)
  @config = config
  @storage = Bandit.storage
end

Class Method Details

.get_player(name, config) ⇒ Object



3
4
5
6
7
8
9
10
11
# File 'lib/bandit/players/base.rb', line 3

def self.get_player(name, config)
  config ||= {}

  case name 
  when :round_robin then RoundRobinPlayer.new(config)
  when :epsilon_greedy then EpsilonGreedyPlayer.new(config)
  else raise UnknownPlayerEngineError, "#{name} not a known player type"
  end
end

Instance Method Details

#choose_alternative(experiment) ⇒ Object

Raises:

  • (NotImplementedError)


18
19
20
21
# File 'lib/bandit/players/base.rb', line 18

def choose_alternative(experiment)
  # return the alternative that should be chosen
  raise NotImplementedError
end

#get(name) ⇒ Object

get state variable by name



29
30
31
# File 'lib/bandit/players/base.rb', line 29

def get(name)
  @storage.player_state_get(self, name)
end

#nameObject



33
34
35
# File 'lib/bandit/players/base.rb', line 33

def name
  self.class.to_s
end

#set(name, value) ⇒ Object

store state variable by name



24
25
26
# File 'lib/bandit/players/base.rb', line 24

def set(name, value)
  @storage.player_state_set(self, name, value)
end