Move voters tool

This tool attempts to discover for a particular scoring rule whether there exists a Non-Convergent Nash Equilibrium where no on candidate can increase their score by changing their political position.

Enter a scoring rule as a list of scores. For example "1 0 0 0" is Plurality (First Past the Post) on four candidates and "3 2 1" is Borda on three candidates. For each clustering of candidate positions it will say whether such a Nash Equilibrium exists with that clustering. Note that this tool will scale the scoring rule by some "Scale Factor" to ensure that the Linear Program is integer which hopefully prevents rounding being a problem.

You can add "C" to the string to switch to cumulative notation, so e.g. "C 1 1 1 1" means Borda on four candidates. You can add "v" to the string to increase verbosity of the output or "V" to increase the verbosity of the output further. "No NE: Non Zero Slope" means that no NE exists because a candidate with a unique position can increase their score by sliding slightly to the right or left.
"No NE: No LP solution" means that there is no solution to the LP, so there is no NE.
"No NE: (no gap) ..." means that we can only find a solution for an NE if we allow one political position to be infinitesimally different from another; since reals do not have infinitesimals no real valued NE exists.
"Exists NE: ..." means that we have found a solution and an NE exists.

Source code is available on Github. A similar tool is available for voting on a circle: roundvoters.