From b24920c15a00f6910a9dc9fe7477ab1e528bb487 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:19:39 -0700 Subject: [PATCH 01/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c765103..b93a4a8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The [Smith set](https://en.wikipedia.org/wiki/Smith_set) is the minimal set of election candidates which can beat all others pairwise (by simple majority ranking preference) - if there is a single winner in the set they are -guaranteed the standard [Condorcet i.e. Majority winner](https://en.wikipedia.org/wiki/Condorcet_winner) (they beat all others pairwise). +guaranteed the standard [Condorcet i.e. Majority winner](https://en.wikipedia.org/wiki/Condorcet_winner) (they beat all others pairwise). (TODO: optionally resolve nontrivial Smith sets - ties - via plurality/IRV methods within the set). `smithy` identifies the Smith set via graph Strongly Connected Component (SCC) analysis of the pairwise majority graph using [`rustworkx`](https://www.rustworkx.org/). From 845ac38533d3a9f8869850bee2998683724ee627 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:30:02 -0700 Subject: [PATCH 02/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b93a4a8..3a06617 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The [Smith set](https://en.wikipedia.org/wiki/Smith_set) is the minimal set of election candidates which can beat all others pairwise (by simple majority ranking preference) - if there is a single winner in the set they are -guaranteed the standard [Condorcet i.e. Majority winner](https://en.wikipedia.org/wiki/Condorcet_winner) (they beat all others pairwise). (TODO: optionally resolve nontrivial Smith sets - ties - via plurality/IRV methods within the set). +guaranteed the standard [Condorcet i.e. Majority winner](https://en.wikipedia.org/wiki/Condorcet_winner) (they beat all others pairwise). (TODO: for small elections, optionally resolve nontrivial Smith sets - ties - via plurality methods within the set, at least reducing to something like e.g. an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). `smithy` identifies the Smith set via graph Strongly Connected Component (SCC) analysis of the pairwise majority graph using [`rustworkx`](https://www.rustworkx.org/). From 3dc8a3cb46a67a54cfc1529b7b4e801394e18a68 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:31:35 -0700 Subject: [PATCH 03/10] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3a06617..36bd269 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The [Smith set](https://en.wikipedia.org/wiki/Smith_set) is the minimal set of election candidates which can beat all others pairwise (by simple majority ranking preference) - if there is a single winner in the set they are -guaranteed the standard [Condorcet i.e. Majority winner](https://en.wikipedia.org/wiki/Condorcet_winner) (they beat all others pairwise). (TODO: for small elections, optionally resolve nontrivial Smith sets - ties - via plurality methods within the set, at least reducing to something like e.g. an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). +guaranteed the standard [Condorcet i.e. Majority winner](https://en.wikipedia.org/wiki/Condorcet_winner) (they beat all others pairwise). `smithy` identifies the Smith set via graph Strongly Connected Component (SCC) analysis of the pairwise majority graph using [`rustworkx`](https://www.rustworkx.org/). @@ -12,7 +12,9 @@ in the number of ballots, while the SCC and condensation graph analysis is approximately quadratic in the number of candidates for the dense tournament graphs typical of Condorcet elections. Internally, repeated ballots are compressed/cache-counted before pairwise evaluation to improve performance over duplicate rankings. -This is all overkill for small elections, but is fun. +This is all overkill for small elections, but is fun. + +(TODO: for small elections because enumerating all IRV paths scales badly in the event of many ties, optionally resolve nontrivial Smith sets - ties - via plurality methods within the set, at least reducing to something like e.g. an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). ## Usage From 55f64d1a323db37d5cf6af68ec69efbd174a72cf Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:34:54 -0700 Subject: [PATCH 04/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 36bd269..22b80cb 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections because enumerating all IRV paths scales badly in the event of many ties, optionally resolve nontrivial Smith sets - ties - via plurality methods within the set, at least reducing to something like e.g. an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). +(TODO: for small elections because enumerating all IRV paths scales badly in the event of many tied counts, optionally resolve nontrivial Smith sets - majoritarian ties - via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). ## Usage From fa24eb575833748d1806909585a12e1222778810 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:35:21 -0700 Subject: [PATCH 05/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 22b80cb..fdc2f66 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections because enumerating all IRV paths scales badly in the event of many tied counts, optionally resolve nontrivial Smith sets - majoritarian ties - via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). +(TODO: for small elections -because enumerating all IRV paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). ## Usage From e9c263a8c529b65ea8a666c253bb623856c97e8a Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:48:24 -0700 Subject: [PATCH 06/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fdc2f66..b709203 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections -because enumerating all IRV paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths). +(TODO: for small elections -because enumerating all IRV paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths and builds a winning coalition willing to elect them as delegate). ## Usage From 17c121f0afd9b7126b34dbb8823c518601225fb3 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 13:04:49 -0700 Subject: [PATCH 07/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b709203..25edb9c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections -because enumerating all IRV paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique candidate who wins all paths and builds a winning coalition willing to elect them as delegate). +(TODO: for small elections -because enumerating all IRV paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a majority coalition). ## Usage From bc146d523d88667eb3b93474f3d56e99d48b775f Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 13:23:05 -0700 Subject: [PATCH 08/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25edb9c..3246b3d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections -because enumerating all IRV paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a majority coalition). +(TODO: for small elections -because enumerating all tie resolution paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a majority coalition). ## Usage From 51d651bee61e641f2f88513cd3adb07558d32973 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 15:07:22 -0700 Subject: [PATCH 09/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3246b3d..df9c095 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections -because enumerating all tie resolution paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a majority coalition). +(TODO: for small elections -because enumerating all tie resolution paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a plurality coalition amongst the majority winners). ## Usage From fc0569e252d1c97c626fc698a96c0647ce9510a1 Mon Sep 17 00:00:00 2001 From: "Thomas (Tom) C. Gorordo" <57684088+tgorordo@users.noreply.github.com> Date: Thu, 4 Jun 2026 15:23:03 -0700 Subject: [PATCH 10/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df9c095..434ed18 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ of Condorcet elections. Internally, repeated ballots are compressed/cache-counte pairwise evaluation to improve performance over duplicate rankings. This is all overkill for small elections, but is fun. -(TODO: for small elections -because enumerating all tie resolution paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a plurality coalition amongst the majority winners). +(TODO: for small elections -because enumerating all tie resolution paths scales badly in the event of many tied counts-, optionally resolve nontrivial Smith sets -majoritarian ties- via IRV within the set, at least reducing to an IRV winner set within the Smith set if not likely identifying a unique delegate who wins all paths, having built a plurality coalition amongst the majority winners. This should identify a winning candidate as the best possible focal point for voluntary coordination; if your elections have other priorities you may want to resolve amongst the smith set differently). ## Usage