election

Implements many different methods for determining the winner of an election given voter preferences.
945 Downloads
Updated 20 Aug 2010

View License

Voting theory is a branch of mathematics with lots of interesting paradoxes. For example, the candidate with the most primary votes might also be at the bottom of the most voters preferences. It is also possible for a candidate with no primary votes to be more preferred pairwise than any other candidate. Pairwise majority preferences can also be cyclic.

Many different election systems have been proposed over the years, some of them nontrivial to compute. This function implements over 20 different election methods.

Example (vector result implies a tie):

[winner,method]=election([1,2,3; 1,2,3; 2,3,1; 3,2,1],'all');
fmt = '%-20s%s\n';
fprintf(1,fmt,'Method:','Winner(s):');
for i=1:numel(winner)
fprintf(1,fmt,method{i},mat2str(winner{i}));
end;

Method: Winner(s):
dictator 1
hat 1
FPP 1
runoff [1 2 3]
exhaustive 1
pref 1
contingent [1 2 3]
Coombs 2
Borda 2
Nanson [1 2]
Baldwin [1 2]
Bucklin 2
Smith [1 2 3]
Schwartz [1 2]
Landau [1 2 3]
Copeland 2
minimaxwinvote [1 2]
minimaxmargin [1 2]
minimaxvote [1 2]
Kemeny-Young [1 2]
rankedpairs [1 2]
Schulze [1 2]

For more information, see the help file or the article at http://www.math4realworld.com.

Cite As

Ben Petschel (2024). election (https://www.mathworks.com/matlabcentral/fileexchange/28521-election), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Graph and Network Algorithms in Help Center and MATLAB Answers
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0