SAVE Voters and Collective Ideals

Serial Approval Vote Election

Serial Approval Vote Election (SAVE)

Aggregation of Voter Ideals (in 2D)

In this explorable, Figure 1, we look into possible ways of reasonably aggregating voter preferences.

Try it out yourself

Simulation controls reference ,,fold,,

The aggregation controls let you:

  • Select a pseudo-random number generator and a seed.
  • Set the number of voters and motions generated by a reset.
  • Reset the electorate using a Uniform or Normal distribution.
  • Set the active metric to one of:
    • the taxicab or \(L^{1}\) metric,
    • the normal Euclidean or \(L^{2}\) metric, or
    • the Chebyshev or \(L^{\infty}\) metric.
  • Toggle the use of different weights for \(X\) and \(Y\) issues.
  • Set the selection control to select either a voter or a motion.
  • Add a new voter or motion (pre-selected for dragging).
  • Delete a selected voter or motion.
  • Add the "best" possible motion given the complete current data.
  • Adjust the X:Y weight ratio for the selected voter.
  • Toggle the display of:
    • distance heat map,
    • indifference curves, with or without curve gradients,
    • preference region boundaries under weightless metrics,
    • gradients at grid points,
    • gradients at motions,
    • algorithmic distance descent paths to a minimum,
    • algorithmic gradient descent paths to a minimum,
    • boundary around regions where net gradient is zero,
    • arrows between motions showing the tournament, and
    • modified option display when something is selected.
  • Pan and Zoom the display.

What IS the best possible election result?

null.svg

Figure 1: An electorate with motions to choose from using various metrics, and how voter preferences aggregate. (No caption updates here. Look at the control settings.)

Details on electorate creation ,,fold,,

This explorable introduces a choice for the electorate PRNG. The default is the Math.random() function native to JavaScript. JavaScript does not provide a way to set or record the underlying PRNG state, which means there is no easy way to repeat an electorate. These public domain PRNG implementations (from https://github.com/bryc/code/blob/master/jshash/PRNGs.md) can be selected to allow repeating electorates when desired. There should be no visible behavior differences between the PRNGs when the seed field is empty.

Electorate creation is triggered by clicking one of the Uniform electorate, Normal electorate, or Cycle election buttons. The result depends upon the choice of PRNG (with or without seed), the motion and voter counts, and for the Cycle button, the active metric. These settings are recorded in a header preceding the display. Examples of the header include:

  1. "Electorate: R, unseeded, m:3, v:5, U, L2w",
  2. "Electorate: S, '1760269053575', m:4, v:10, N, L1", and
  3. "Electorate: M, 'an arbitrary text seed', m:3, v:100, C, L∞w".

The first example uses the initial default settings for this explorable, namely an R for the random PRNG, unseeded to indicate no seed can be provided, m:3 for \(3\) initial motions, v:5 for \(5\) initial voters, U for a uniform distribution, and L2w for a weighted Euclidean metric.

The second header indicates the sfc32 PRNG, a seed of '1760269053575' (no provided seed triggered the use of the time in milliseconds after midnight, 1-Jan-1969 UTC to be used, that number translates to 575 milliseconds after 11:37:33 UTC, 12-Oct-2025), \(4\) motions, \(10\) voters, a normal distribution, and the unweighted taxicab metric.

The third heading shows the mulberry32 PRNG, the seed 'an arbitrary text seed' (without the surrounding single quotes), \(3\) motions, \(100\) voters, cycle election and weighted Chebyshev metric.

If you configure your controls to match the header string (assuming the string does not include "R, unseeded,") you should get an exact match of the prior electorate.

If you are trying to work with a reproducible electorate, be sure to check the lock data checkbox to prevent any accidental modifications of the desired data.

Details on the various display options ,,fold,,

This section describes the various display options controlled by the checkboxes in the control section. Some of these options have slightly different behavior when a voter or motion is selected and the final option, consider selection is checked.

  • distance heat map * : The difference heat map fills the display area with squares that vary from light to dark based on the average distance of the center of the square and the voters. When the viewpoint is changed, the values are recalculated and the colors are scaled so the worst distance in the region remains the darkest, and the best distance remains the lightest.

    When the consider selection option is checked, a selected voter causes the grid coloration to only consider distance to the selected voter. Nothing special happens when a motion is selected.

  • indifference curves * : The indifference curves option shows all the indifference curves for each voter and motion combination. No indifference curve is shown for a voter and that voter's ideal motion because the radius would be zero.

    When the consider selection option is checked, selecting a voter limits the display to only the indifference curves centered on that voter. Selecting a motion limits the display to only the indifference curves that pass through the motion.

    • fill : The fill option affects the display of the indifference curves. Instead of being shown as an empty ellipse, rhombus, or rectangle, the boundary is not shown and the shape is filled with a degree of transparency so that the regions inside the greatest number of indifference curves will be the darkest areas.

      This option only affects how the indifference curves are displayed. The behavior under selection is governed by the indifference curve rules.

  • weightless regions : The weightless regions option draws the lines or paths on which a voter is indifferent between the defining pair of motions. When the metric is unweighted, these lines divide the display into regions in which all voters have the same preference order over the motions. When the metric is weighted the lines are only valid for voters with weight close to 1.
  • grid gradients * : The grid gradients option shows a \(13x13\) grid with a gradient arrow pointing downhill, towards a better collective motion. The arrows show only the direction of the gradient and not the magnitude because the magnitude can vary across several orders of magnitude and trying to scale the value makes the arrows too small to see when they approach the best positions.

    When the consider selection option is checked, a selected voter will cause only the portion of the gradient due that voter to be shown. Nothing special is done when a motion is selected.

  • motion gradients * : The motion gradient option shows the gradient at the position of the motions rather than on a grid. It is otherwise identical to grid gradients, including its behavior when items are selected.
  • distance descent lines : The distance descent lines option shows the result of running a hill-climbing algorithm with the goal of reaching the point with the lowest aggregate voter distance. The line start from eight points with two lines starting from each edge. Under most circumstances, the lines converge to the best possible motion position. Non-convergence generally requires unweighted metrics and very few voters. If you want to see this, try an electorate with two voters, then run through the various metric combinations. The descent stops when there are no more steps down, or all the possible steps are too short to worry about. (Too short is less than \(1e-20\) where the display is \(400x400\).)
    • paths : The paths option affects the distance descent lines display in that instead of simply showing a line segment from the start point to the end point of each descent path, the display shows the steps in the traversal.
  • gradient descent lines : The gradient descent lines is again a descent algorithm, but this time it follows the gradient vectors to the best position. The eight start points are at the corners and the midpoints of each edge. In general the gradient descent lines and the distance descent lines should all converge to the same point.
    • paths : As with the paths option subordinate to the distance descent line option, this paths option affects the gradient descent lines display, showing the steps in the traversal.
  • gradient-zero boundary : The gradient-zero boundary option draws a boundary outside the region in which the gradient is effectively zero. In side this region there is no gradient, so the grid gradients and the motion gradients are not significant enough to show a direction, so are not shown. This is also the region in which both the distance and gradient descent lines stop. The actual boundary is a closed path of vertical and horizontal lines with integer coordinates. When there is convergence, the gradient-zero position is a single point, and the boundary is one of a \(1x1\), \(1x2\), \(2x1\) or \(2x2\) depending on whether the convergence point has zero, one, or two integer coordinates.
  • tournament * : The tournament option superimposes a tournament over the motion positions, with an arrow pointing from the winner to the loser of each motion pair, with no line drawn if the two motions tie.

    When the consider selection option is checked, and a motion is selected, only the arrows for the pairs that include the selected motion are shown. Nothing special is done for a selected voter.

  • * consider selection : The consider selection option governs whether any of the other optional displays should act differently when a motion or a voter is currently selected.

Two more things to note:

  • When a motion is selected its average voter-motion distance is displayed next to the motion's position coordinates in the selection section of the control panel.
  • When the Add best motion button is clicked and there is not convergence, a best motion is generated and shown, but to signal that this "best" motion may not be unique, the gradient descent lines are shown, illustrating the lack of complete convergence, and the zero-gradient boundary is displayed to provide a sense where other "best" motions can be found.

Things to look for in this simulation ,,fold,,

The previous simulation, Voter metrics, explores how different metrics affect a voter's preference orders. This simulation explores how voter preferences aggregate.

One of the take-away points here is that while there may not be a generally accepted order for the different motions, there is quite often a very well defined motion position that is collectively best. Finding this electoral collective ideal is possible in this simulation because all the preferences are completely known.

In the real world, and particularly in a voting context, finding this electoral ideal can be difficult. In most cases, with voting systems with only one or two rounds, the best you can do is select the motion that is closer to this unknown ideal than the others.

The main point of this explorable is the idea that, quite often, there is a collective ideal motion. And it may well be possible to design a collective choice procedure that can get acceptably close to that ideal motion.

Date: 2023-06-13 Tue 00:00

Author: Thomas Edward Cavin

Created: 2025-10-14 Tue 17:26

Validate