From 625c3a3ac649c0082a36fc92ba8634cc716ef8fe Mon Sep 17 00:00:00 2001 From: leffen Date: Fri, 3 Aug 2012 02:39:55 +0200 Subject: [PATCH] parametrized max_factor in iterated_team_performance to be able to change it from application --- lib/saulabs/trueskill/factor_graph.rb | 4 +++- lib/saulabs/trueskill/layers/iterated_team_performances.rb | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/saulabs/trueskill/factor_graph.rb b/lib/saulabs/trueskill/factor_graph.rb index d2f18ab..8449f6b 100644 --- a/lib/saulabs/trueskill/factor_graph.rb +++ b/lib/saulabs/trueskill/factor_graph.rb @@ -65,6 +65,7 @@ def initialize(teams, ranks, options = {}) @draw_probability = options[:draw_probability] || 0.1 @beta_squared = @beta**2 @epsilon = -Math.sqrt(2.0 * @beta_squared) * Gauss::Distribution.inv_cdf((1.0 - @draw_probability) / 2.0) + @max_delta = options[:max_delta] || 0.0001 @prior_layer = Layers::PriorToSkills.new(self, @teams) @layers = [ @@ -73,7 +74,8 @@ def initialize(teams, ranks, options = {}) Layers::PerformancesToTeamPerformances.new(self), Layers::IteratedTeamPerformances.new(self, Layers::TeamPerformanceDifferences.new(self), - Layers::TeamDifferenceComparision.new(self, ranks) + Layers::TeamDifferenceComparision.new(self, ranks), + @max_delta ) ] end diff --git a/lib/saulabs/trueskill/layers/iterated_team_performances.rb b/lib/saulabs/trueskill/layers/iterated_team_performances.rb index 038999e..7dcb399 100644 --- a/lib/saulabs/trueskill/layers/iterated_team_performances.rb +++ b/lib/saulabs/trueskill/layers/iterated_team_performances.rb @@ -7,10 +7,11 @@ module Layers # @private class IteratedTeamPerformances < Base - def initialize(graph, team_perf_diff, team_diff_comp) + def initialize(graph, team_perf_diff, team_diff_comp,max_delta=0.0001) super(graph) @tpd = team_perf_diff @tdc = team_diff_comp + @max_delta = max_delta end def build @@ -65,7 +66,7 @@ def multiple_team_loop_schedule Schedules::Step.new(@tpd.factors[team_diff-1-i], 1) ]) }) - Schedules::Loop.new(Schedules::Sequence.new([forward_schedule, backward_schedule]), 0.0001) + Schedules::Loop.new(Schedules::Sequence.new([forward_schedule, backward_schedule]), @max_delta) end end