trueskill-ranked 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,4 +14,7 @@ class Factor
14
14
  def var
15
15
  @vars[0]
16
16
  end
17
+ def to_s
18
+ return "<Factor "+self.object_id.to_s+">"
19
+ end
17
20
  end
@@ -24,4 +24,7 @@ class LikelihoodFactor < Factor
24
24
  a=1.0/(1.0+@variance*msg.pi)
25
25
  return @mean.update_message(self,a*msg.pi,a*msg.tau)
26
26
  end
27
+ def to_s
28
+ return "<LiklihoodFactor "+self.object_id.to_s+">"
29
+ end
27
30
  end
@@ -14,4 +14,7 @@ class PriorFactor < Factor
14
14
  value=Gaussian.new @val.mu,sigma
15
15
  var.update_value self,0,0,value
16
16
  end
17
+ def to_s
18
+ return "<PriorFactor "+self.object_id.to_s+">"
19
+ end
17
20
  end
@@ -60,6 +60,8 @@ class SumFactor < Factor
60
60
  tau=pi*tausum.inject{|sum,x| sum + x }
61
61
  return var.update_message(self,pi,tau)
62
62
  end
63
-
63
+ def to_s
64
+ return "<SumFactor "+self.object_id.to_s+">"
65
+ end
64
66
  end
65
67
 
@@ -25,4 +25,7 @@ class TruncateFactor < Factor
25
25
  tau=(div.tau+sqrt_pi*v)/denom
26
26
  return var.update_value(self,pi,tau)
27
27
  end
28
+ def to_s
29
+ return "<TruncateFactor "+self.object_id.to_s+">"
30
+ end
28
31
  end
@@ -42,6 +42,8 @@ class Variable < Gaussian
42
42
  def []=(y,value)
43
43
  @messages[y]=value
44
44
  end
45
-
45
+ def to_s
46
+ return "<Variable "+self.object_id.to_s+" mu="+self.mu.to_s+" sigma= "+self.sigma.to_s+">"
47
+ end
46
48
  end
47
49
 
@@ -138,13 +138,13 @@ class TrueSkillObject
138
138
  delta=0
139
139
  (teamdiff_len-1).times do |x2|
140
140
  teamdiff_layer[x2].down
141
- delta=[delta,trunc_layer[x].up].max
142
- teamdiff_layer[x].up(1)
141
+ delta=[delta,trunc_layer[x2].up].max
142
+ teamdiff_layer[x2].up(1)
143
143
  end
144
144
  (teamdiff_len-1).step(0,-1) do |x2|
145
145
  teamdiff_layer[x2].down
146
- delta=[delta,trunc_layer[x].up].max
147
- teamdiff_layer[x].up(0)
146
+ delta=[delta,trunc_layer[x2].up].max
147
+ teamdiff_layer[x2].up(0)
148
148
  end
149
149
  end
150
150
  if delta<=min_delta
@@ -164,6 +164,8 @@ class TrueSkillObject
164
164
  end
165
165
  def transform_ratings(rating_groups, ranks=nil, min_delta=DELTA)
166
166
  rating_groups=validate_rating_groups(rating_groups)
167
+ #pp "Start groups"
168
+ #pp rating_groups
167
169
  group_size=rating_groups.length
168
170
  if ranks.nil?
169
171
  ranks=Array(0..group_size-1)
@@ -178,17 +180,27 @@ class TrueSkillObject
178
180
  sorting.each do |x,g|
179
181
  unsorting_hint << x
180
182
  end
183
+ #pp "Sorted Groups"
184
+ #pp sorted_groups
185
+ #pp "Sorted Ranks"
186
+ #pp sorted_ranks
181
187
  layers=build_factor_graph(sorted_groups,sorted_ranks)
182
188
  run_schedule(layers[0],layers[1],layers[2],layers[3],layers[4])
183
189
  rating_layer,team_sizes=layers[0],_team_sizes(sorted_groups)
190
+ #pp "Team Sizes"
191
+ #pp team_sizes
192
+ #pp "Rating Layer"
193
+ #pp rating_layer
184
194
  transformed_groups=[]
185
195
  ([0]+team_sizes.take(team_sizes.size - 1)).zip(team_sizes).each do |start,ending|
186
196
  group=[]
187
- rating_layer[start,ending].each do |f|
197
+ rating_layer[start...ending].each do |f|
188
198
  group << Rating.new(f.var.mu,f.var.sigma)
189
199
  end
190
200
  transformed_groups << Array(group)
191
201
  end
202
+ #pp "Transformed"
203
+ #pp transformed_groups
192
204
  unsorting=unsorting_hint.zip(transformed_groups).sort { |x,y| x[0]<=>y[0]}
193
205
  output=[]
194
206
  unsorting.each do |x,g|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trueskill-ranked
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.1'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: