Class: FeldtRuby::Optimize::SearchSpace::Sampler

Inherits:
Object
  • Object
show all
Defined in:
lib/feldtruby/optimize/search_space.rb

Overview

A sampler generates a new candidate (or set of candidates) that is (are) within a search space. This default sampler does uniform random sampling over the whole search space.

Direct Known Subclasses

SetSampler

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(searchSpace = nil) ⇒ Sampler

Returns a new instance of Sampler.

[View source]

87
88
89
# File 'lib/feldtruby/optimize/search_space.rb', line 87

def initialize(searchSpace = nil)
	self.search_space = searchSpace
end

Instance Attribute Details

#search_spaceObject

Returns the value of attribute search_space.


85
86
87
# File 'lib/feldtruby/optimize/search_space.rb', line 85

def search_space
  @search_space
end

Instance Method Details

#sample_candidateObject

Sample one candidate within the space. Default is to do random uniform sampling.

[View source]

98
99
100
101
# File 'lib/feldtruby/optimize/search_space.rb', line 98

def sample_candidate
	num_vars = search_space.num_variables
	(0...num_vars).map {|i| sample_value_for_dimension(i)}
end

#sample_candidates(numCandidates) ⇒ Object

Sample multiple candidates from the search space. The default is just to call the method sampling one candidate mutliple times. But subclasses can implement more sophisticated schemes.

[View source]

105
106
107
# File 'lib/feldtruby/optimize/search_space.rb', line 105

def sample_candidates(numCandidates)
	Array.new(numCandidates) { sample_candidate() }
end

#sample_value_for_dimension(index) ⇒ Object

Random uniform sampling of a valid value for a given dimension index in the search space.

[View source]

92
93
94
95
# File 'lib/feldtruby/optimize/search_space.rb', line 92

def sample_value_for_dimension(index)
	min, delta = search_space.min_values[index], search_space.deltas[index]
	min + delta * rand()
end