Comments (5)
I have decided to give up on Schulze_Proportional_Prefilter. I don't know how to make it as aggressive as it can be without ever removing the wrong candidates.
In a recent commit, I started remaking Schulze-STV, extended from SingleTransferableVote. While it doesn't output the correct results for all the Tideman tests, the process runs very fast. I feel confident enough that if I ever get it to find the correct results, it will be fast enough that we don't need a prefilter.
No more prefilter. Issue closed.
from condorcet.
I just checked inside $election->pairwise->pairwise[6]
. These values are also all set to 0.
from condorcet.
It turns out that Schulze_Core::makeStrongestPaths()
has to be modified. The problem is that it sets a path from one candidate to another to 0 if they have a pairwise loss to the other candidate.
The modification I made & reverted earlier that uses $M
as an argument would work. However, you may also just remove the condition if ($election->getPairwise()[$i]['win'][$j] * $M > $election->getPairwise()[$j]['win'][$i])
and it will probably give the same results to the Schulze Method.
from condorcet.
@LiamM32 Is it still an open issue?
from condorcet.
Is it still an open issue?
Maybe. I haven't solved it. But it might just be a matter of the whole algorithm being flawed. Perhaps we should contact Schulze himself to ask about this.
But I think it's most likely that the algorithm itself is flawed. Based on the pairwise results, it indeed should be eliminating the candidate that it eliminates according to the algorithm I envisioned. But somehow, this candidate 'K' is supposed to be one of two winners in Tideman A22, according to the Schulze program.
Unfortunately, I don't understand Schulze STV enough to understand how K wins in this case.
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?
- [Public API Reform] Do a really independant Pairwise object HOT 5
- [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
- [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.