diff --git a/packages/vote/fpc/fpc.go b/packages/vote/fpc/fpc.go index a8c9ce2c4c97a8800d94e805ca17ae528a7bf536..47ae4a2e75e7da59b22996d18422da40b8e9ea43 100644 --- a/packages/vote/fpc/fpc.go +++ b/packages/vote/fpc/fpc.go @@ -134,7 +134,7 @@ func (f *FPC) formOpinions(rand float64) { } lowerThreshold := f.paras.SubsequentRoundsLowerBoundThreshold - upperThreshold := 1 - f.paras.SubsequentRoundsLowerBoundThreshold + upperThreshold := f.paras.SubsequentRoundsUpperBoundThreshold if voteCtx.HadFirstRound() { lowerThreshold = f.paras.FirstRoundLowerBoundThreshold diff --git a/packages/vote/fpc/parameters.go b/packages/vote/fpc/parameters.go index 997ca7590a7ae2f936174e1fff1f1e619e5d709a..2642ab552924434b59b8c93b0d288a66d94d726b 100644 --- a/packages/vote/fpc/parameters.go +++ b/packages/vote/fpc/parameters.go @@ -8,8 +8,10 @@ type Parameters struct { FirstRoundLowerBoundThreshold float64 // The upper bound liked percentage threshold at the first round. Also called 'b'. FirstRoundUpperBoundThreshold float64 - // The liked percentage threshold used after the first round. Also called 'beta'. + // The lower bound liked percentage threshold used after the first round. SubsequentRoundsLowerBoundThreshold float64 + // The upper bound liked percentage threshold used after the first round. + SubsequentRoundsUpperBoundThreshold float64 // The amount of opinions to query on each round for a given vote context. Also called 'k'. QuerySampleSize int // The amount of rounds a vote context's opinion needs to stay the same to be considered final. Also called 'l'. @@ -26,8 +28,9 @@ type Parameters struct { func DefaultParameters() *Parameters { return &Parameters{ FirstRoundLowerBoundThreshold: 0.75, - FirstRoundUpperBoundThreshold: 0.85, - SubsequentRoundsLowerBoundThreshold: 0.33, + FirstRoundUpperBoundThreshold: 0.75, + SubsequentRoundsLowerBoundThreshold: 0.50, + SubsequentRoundsUpperBoundThreshold: 0.67, QuerySampleSize: 10, FinalizationThreshold: 2, CoolingOffPeriod: 2,