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.
7
8
9
10
11
12
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 7
def initialize
@messages = []
@bindings = {}
@variables = []
@priors = []
end
|
Instance Method Details
#bind(variable) ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 38
def bind(variable)
message = Gauss::Distribution.new
@messages << message
@bindings[message] = variable
@variables << variable
return message
end
|
#log_normalization ⇒ Object
22
23
24
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 22
def log_normalization
raise "Abstract method Factors::Base#log_normalization called"
end
|
#message_count ⇒ Object
18
19
20
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 18
def message_count
@messages.size
end
|
#reset_marginals ⇒ Object
26
27
28
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 26
def reset_marginals
@bindings.values.each { |var| var.replace(Gauss::Distribution.new) }
end
|
#send_message_at(idx) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 30
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
14
15
16
|
# File 'lib/saulabs/trueskill/factors/base.rb', line 14
def update_message_at(index)
raise "Abstract method Factors::Base#update_message_at(index) called"
end
|