[][src]Function sp_npos_elections::seq_phragmen

pub fn seq_phragmen<AccountId, R>(
    candidate_count: usize,
    minimum_candidate_count: usize,
    initial_candidates: Vec<AccountId>,
    initial_voters: Vec<(AccountId, VoteWeight, Vec<AccountId>)>
) -> Option<ElectionResult<AccountId, R>> where
    AccountId: Default + Ord + Clone,
    R: PerThing

Perform election based on Phragmén algorithm.

Returns an Option the set of winners and their detailed support ratio from each voter if enough candidates are provided. Returns None otherwise.

  • candidate_count: number of candidates to elect.
  • minimum_candidate_count: minimum number of candidates to elect. If less candidates exist, None is returned.
  • initial_candidates: candidates list to be elected from.
  • initial_voters: voters list.

This function does not strip out candidates who do not have any backing stake. It is the responsibility of the caller to make sure only those candidates who have a sensible economic value are passed in. From the perspective of this function, a candidate can easily be among the winner with no backing stake.