Fast Schulze Voting Using Quickselect
Arushi Arora, David Eppstein, Randy Le Huynh
TL;DR
The paper tackles the problem of efficiently determining the Schulze voting winner from a weighted majority graph by developing a randomized algorithm that runs in $O(m^2\log m)$ expected time. It adapts the classical quickselect paradigm to a top-heavy Schulze order, using maxmin-weight-path computations as pivot comparisons, backed by dense-graph single-source/destination maxmin-path subroutines running in $O(m^2)$ time. The main contributions are a simpler, faster winner-finding method and a scheme to enumerate all maximal Schulze elements in $O(k m^2\log m)$ expected time, along with a rigorous analysis of expected time and high-probability bounds. The work also clarifies barriers to further improvements, such as tiebreak handling and subgraph restrictions, highlighting both practical speedups and fundamental limits in this problem domain.
Abstract
The Schulze voting method aggregates voter preference data using maxmin-weight graph paths, achieving the Condorcet property that a candidate who would win every head-to-head contest will also win the overall election. Once the voter preferences among $m$ candidates have been arranged into an $m\times m$ matrix of pairwise election outcomes, a previous algorithm of Sornat, Vassilevska Williams and Xu (EC '21) determines the Schulze winner in randomized expected time $O(m^2\log^4 m)$. We improve this to randomized expected time $O(m^2\log m)$ using a modified version of quickselect.
