trueskill-ranked 1.0 → 1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/TrueSkill/FactorGraph/Factor.rb +3 -0
- data/lib/TrueSkill/FactorGraph/LikelihoodFactor.rb +3 -0
- data/lib/TrueSkill/FactorGraph/PriorFactor.rb +3 -0
- data/lib/TrueSkill/FactorGraph/SumFactor.rb +3 -1
- data/lib/TrueSkill/FactorGraph/TruncateFactor.rb +3 -0
- data/lib/TrueSkill/FactorGraph/Variable.rb +3 -1
- data/lib/TrueSkill/TrueSkill.rb +17 -5
- metadata +1 -1
data/lib/TrueSkill/TrueSkill.rb
CHANGED
@@ -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[
|
142
|
-
teamdiff_layer[
|
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[
|
147
|
-
teamdiff_layer[
|
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
|
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|
|