Skip to content

Commit

Permalink
Merge pull request #1 from paretoman/gh-pages
Browse files Browse the repository at this point in the history
strategic voting
  • Loading branch information
jamesonquinn authored Aug 1, 2017
2 parents ceab5d9 + 6bcc06c commit ed2a6a3
Show file tree
Hide file tree
Showing 15 changed files with 345 additions and 33 deletions.
36 changes: 18 additions & 18 deletions newer.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,24 +123,24 @@ <h1 id="postmedian>">Lightly-strategic voting: "normalization"</h1>
</div>
<div class="sim-ballot">

<h2 class="ballot_title" style="margin-bottom: 0.15em;">UNSTRATEGIC BALLOT</h2>
<p class="ballot_caption">Judge, don't choose.</p>
<h2 class="ballot_title" style="margin-bottom: 0.15em;">Normalizing Voter</h2>
<p class="ballot_caption">Best is 5. Worst is 1.</p>

<iframe src="play/ballot4.html" width="655" height="256" scrolling="no"></iframe>
<iframe src="play/ballot5.html" width="655" height="256" scrolling="no"></iframe>

</div>
<div class="words">
<p><em>Description: this should be like ncase's "drag the voter" examples, with a normalizing score voter. This voter should have a series of circles, where the closest one intersects the closest candidate and the farthest one the farthest candidate. Thus, as you moved the voter or candidates the circles would change size.</em></p>

<p>As soon as voters are using strategy in score voting — even a very slight amount of strategy, such as normalization — it is no longer fully exempt from impossibility theorems like Arrow's theorem. In particular, it no longer obeys independence of irrelevant alternatives (IIA); adding or removing a losing candidate can change how voters normalize, and thus change who wins. For instance, in the simulation below, try removing the pentagon candidate, and see what happens.</p>
<p>As soon as voters are using strategy in score voting — even a very slight amount of strategy, such as normalization — it is no longer fully exempt from impossibility theorems like Arrow's theorem. In particular, it no longer obeys independence of irrelevant alternatives (IIA); adding or removing a losing candidate can change how voters normalize, and thus change who wins. For instance, in the simulation below, try moving the losing yellow traingle candidate, and see what happens.</p>

</div>
<div class="sim-ballot">
<div class="sim-test">

<h2 class="ballot_title" style="margin-bottom: 0.15em;">UNSTRATEGIC BALLOT</h2>
<p class="ballot_caption">Judge, don't choose.</p>

<iframe src="play/ballot4.html" width="655" height="256" scrolling="no"></iframe>
<p class="caption-test">
non-optimal<br>
</p>
<iframe src="play/election7.html" width="800" height="380" scrolling="no"></iframe>

</div>
<div class="words">
Expand All @@ -149,27 +149,27 @@ <h2 class="ballot_title" style="margin-bottom: 0.15em;">UNSTRATEGIC BALLOT</h2>
<p>But a bigger problem than IIA violation, which in the real world is relatively hard to engineer or take advantage of, is the issue of differential voting power. In the following election, one of the groups of voters normalizes, and the other one doesn't. The two groups are the same size, but the normalizing group gets a candidate they like a lot better.</p>

</div>
<div class="sim-ballot">
<div class="sim-test">

<h2 class="ballot_title" style="margin-bottom: 0.15em;">UNSTRATEGIC BALLOT</h2>
<p class="ballot_caption">Judge, don't choose.</p>

<iframe src="play/ballot4.html" width="655" height="256" scrolling="no"></iframe>
<p class="caption-test">
Strategists win<br>
</p>
<iframe src="play/election8.html" width="800" height="380" scrolling="no"></iframe>

</div>
<div class="words">
<p><em>groups of voters at (-4,0)non-normalizing and (4,0)normalizing. Cands at (-2.5,.5), (-2,0), (0,0), (2,0), (2.5,.5). (2,0) wins. </em></p>

<p>Is that kind of thing realistic? Perhaps not in the form above; few voters would be so unstrategic as not to normalize. But actually, normalizing as above is a pretty weak strategy. To strategize even more strongly, voters could somehow assess which two candidates were the frontrunners, and use them as the endpoints for normalization. Mostly, this means casting an approval-like ballot that gives every candidate either a 5 or a 0. For instance, in the election below, the voter believes that triangle and square are the frontrunners. Compare the strongly strategic voter below with the normalized voter in the second example above.</p>
<p>Is that kind of thing realistic? Perhaps not in the form above; few voters would be so unstrategic as not to normalize. But actually, normalizing as above is a pretty weak strategy. To strategize even more strongly, voters could somehow assess which two candidates were the frontrunners, and use them as the endpoints for normalization. Mostly, this means casting an approval-like ballot that gives every candidate either a 5 or a 0. For instance, in the election below, the voter believes that the red hexagon and the blue square are the frontrunners. Compare the strongly strategic voter below with the normalized voter in the second example above.</p>


</div>
<div class="sim-ballot">

<h2 class="ballot_title" style="margin-bottom: 0.15em;">UNSTRATEGIC BALLOT</h2>
<p class="ballot_caption">Judge, don't choose.</p>
<h2 class="ballot_title" style="margin-bottom: 0.15em;">Strong Strategic Voter</h2>
<p class="ballot_caption">Almost like strategic approval.</p>

<iframe src="play/ballot4.html" width="655" height="256" scrolling="no"></iframe>
<iframe src="play/ballot8.html" width="655" height="256" scrolling="no"></iframe>

</div>
<div class="words">
Expand Down
2 changes: 1 addition & 1 deletion play/ballot1.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main("Plurality");</script>
<script>main({system: "Plurality"});</script>
2 changes: 1 addition & 1 deletion play/ballot2.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main("Ranked");</script>
<script>main({system: "Ranked"});</script>
2 changes: 1 addition & 1 deletion play/ballot3.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main("Approval");</script>
<script>main({system: "Approval"});</script>
2 changes: 1 addition & 1 deletion play/ballot4.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main("Score");</script>
<script>main({system: "Score"});</script>
26 changes: 26 additions & 0 deletions play/ballot5.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/ballot.css">
</head>
<body></body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main({
system: "Score",
strategy: "normalized"
});</script>
27 changes: 27 additions & 0 deletions play/ballot6.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/ballot.css">
</head>
<body></body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main({
system: "Score",
strategy: "thresholdfrontrunners",
frontrunners: ["square","hexagon"]
});</script>
26 changes: 26 additions & 0 deletions play/ballot7.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/ballot.css">
</head>
<body></body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main({
system: "Score",
strategy: "threshold"
});</script>
27 changes: 27 additions & 0 deletions play/ballot8.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/ballot.css">
</head>
<body></body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Ballot.js"></script>

<script src="js/main_ballot.js"></script>
<script>main({
system: "Score",
strategy: "normfrontrunners",
frontrunners: ["square","hexagon"]
});</script>
40 changes: 40 additions & 0 deletions play/election6.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/election.css">
</head>
<body>
<div id="left"></div>
<div id="center"></div>
<div id="right"></div>
</body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Buttons.js"></script>

<script src="js/main_sandbox.js"></script>
<script>
main({

system: "Score",
strategy: "normalized",

candidates: 3,
candidatePositions: [[50,125],[250,125],[280,280]],

voters: 1,
voterPositions: [[155,125]]

});
</script>
41 changes: 41 additions & 0 deletions play/election7.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/election.css">
</head>
<body>
<div id="left"></div>
<div id="center"></div>
<div id="right"></div>
</body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Buttons.js"></script>

<script src="js/main_sandbox.js"></script>
<script>
main({

features:1,
system: "Score",

candidates: 3,
candidatePositions: [[150-30,150],[150+130,150],[150+50,150]],

voters: 1,
voterPositions: [[150,150]],
voterStrategies: ["normalized"]

});
</script>
42 changes: 42 additions & 0 deletions play/election8.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/model.css">
<link rel="stylesheet" type="text/css" href="css/election.css">
</head>
<body>
<div id="left"></div>
<div id="center"></div>
<div id="right"></div>
</body>
</html>

<script src="js/helpers.js"></script>
<script src="js/minpubsub.js"></script>
<script src="js/Loader.js"></script>
<script src="js/Mouse.js"></script>
<script src="js/Draggable.js"></script>
<script src="js/Model.js"></script>
<script src="js/Candidate.js"></script>
<script src="js/Voters.js"></script>
<script src="js/Election.js"></script>
<script src="js/Buttons.js"></script>

<script src="js/main_sandbox.js"></script>
<script>
main({

features:3,
system: "Score",

candidates: 3,
candidatePositions: [[100,150],[150,150+100],[300-100,150]],

voters: 2,
voterPositions: [[100,150],[300-100,150]],
voterStrategies: ["normalized","nope"],
frontrunners: ["square","hexagon"]

});
</script>
Loading

0 comments on commit ed2a6a3

Please sign in to comment.