Class: Saulabs::TrueSkill::Factors::Base
- Inherits:
-
Object
- Object
- Saulabs::TrueSkill::Factors::Base
show all
- Defined in:
- lib/saulabs/trueskill/factors/base.rb
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Base
Returns a new instance of Base.
10
11
12
13
14
15
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 10
def initialize
@messages = []
@bindings = {}
@variables = []
@priors = []
end
|
Instance Method Details
#bind(variable) ⇒ Object
41
42
43
44
45
46
47
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 41
def bind(variable)
message = Gauss::Distribution.new
@messages << message
@bindings[message] = variable
@variables << variable
return message
end
|
#log_normalization ⇒ Object
25
26
27
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 25
def log_normalization
raise "Abstract method Factors::Base#log_normalization called"
end
|
#message_count ⇒ Object
21
22
23
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 21
def message_count
@messages.size
end
|
#reset_marginals ⇒ Object
29
30
31
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 29
def reset_marginals
@bindings.values.each { |var| var.replace(Gauss::Distribution.new) }
end
|
#send_message_at(idx) ⇒ Object
33
34
35
36
37
38
39
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 33
def send_message_at(idx)
message = @messages[idx]
variable = @variables[idx]
log_z = Gauss::Distribution.log_product_normalization(message, variable)
variable.replace(message * variable)
return log_z
end
|
#update_message_at(index) ⇒ Object
17
18
19
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 17
def update_message_at(index)
raise "Abstract method Factors::Base#update_message_at(index) called"
end
|