trueskill-ranked 1.0 → 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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|
|