Comments (5)
from condorcet.
Sure. This is to allow only a specified portion of all votes to be processed for pairwise results, right?
Earlier I was thinking that some of the Election functions related to processing information from votes can be moved into a trait in a new file, and be included in both the Election class and a new class.
But you would know better than me how it's best to achieve the desired functionality. It would be nice to have a good way to determine pairwise results for a specified set of voters identified by a tag. Even for the conventional Schulze method or Ranked Pairs, it might be desired to get some statistics for certain demographics of voters, even if this isn't used to determine the end result.
from condorcet.
The Schulze STV method that I am working on has a function to determine how many votes prefer a candidate to all other candidates in a set. Perhaps this belongs in pairwise. Though I didn't put it there because I don't really understand how the pairwise object works.
from condorcet.
No, it's about iterating over votes.
foreach ($this->getElection()->getVotesValidUnderConstraintGenerator() as $oneVote) {
$weight = $oneVote->getWeight($election);
$oneRanking = $oneVote->getContextualRankingWithoutSort($election);
if ( count($oneRanking) >= 1 &&
count($oneRanking[1]) === 1 &&
$yourExpectedWinnerKey === $this->getElection()->getCandidateKey($oneRanking[1])
) {
// $yourExpectedWinner is the first
}
}
from condorcet.
To be honest, I don't really understand why Pairwise needs to be it's own object class. It's massively complicated for what it does. Why not just have a function in the vote object itself to determine which of two candidates is preferred, & methods can iterate over all votes in a foreach loop? If you just want cache for pairwise results, isn't there a simpler implementation that isn't any slower than the current one?
from condorcet.
Related Issues (20)
- Console: Check false or null php.ini memory_limit on large election HOT 1
- PHP Fatal error HOT 7
- Largest remainder methods: Half votes rounded down, party receiving less seats HOT 5
- Unserialize crash with new && empty election object
- Implement VoteFaire Ranking (Popularity)?
- [Public API Reform] Pairwise key 'null' to 'tie'
- [Public API Reform] Split $election->getResult methods, for filtering by tags
- [Public API Reform] Is it useful to edit candidate name with history. Should be immutable?
- [Command Line] Error importing CondorcetFormat: Argument #1 ($callBack) must be of type Closure HOT 6
- $election->getResult() results in error when there are 0 votes HOT 3
- Investigate about removeVote feature and Pairwise integrity
- Allow either commas or semicolons in Condorcet Election Format HOT 11
- Different results when running different numbers of methods HOT 4
- Problem in Schulze_Proportional_Prefilter in Experimental/Schulze-STV branch HOT 5
- [Public API Reform] Remove static setters setMaxParseIteration / setMaxVoteNumber HOT 1
- Tests: parallel mod (paratest, pest --parallel) fail erratically and inconsistently (and worse with JIT) HOT 3
- [Experimental Schulze-STV Branch] Wrong test results from various methods with Explicit Ranking HOT 14
- New Method: Smith Set HOT 1
- New method: STAR Voting HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from condorcet.