Dynamic Quorum in Python
This protocol initializes quorum for each voting round as 2/3 the average of past voting round quorums (or a bare minimum, whichever is higher). The intended use case of this program is human voting, though the underlying logic is useful for machine learning models reaching consensus and many other scenarios. In some human voting cases or other cases where participation rates are temporally variable to a significant extent, it could be useful to adjust average the past n number of past voting rounds.
It also increments the quorum higher, if indecision (abstention) is excessive ('idk' votes over 1/2 of total votes after initial quorum is met). Therefor, this quorum protocol automatically adjusts to, and allows for fluctuations in engagement, while requiring a minimum of informed engagement, mitigating minority rule and gridlock.
Additional optimizations of parameters for setting quorum and passing a vote can be done automatically by setting thresholds on gridlock and participation. For example, to increase the dynamism, past quorums, turnouts and ratios of the motions passed or failed to those stalled can adjust with increasing granularity by automatically tuning with hyperparameters. As the dataset of prior voting rounds grows, the responsiveness to changing conditions does too, so optimization for engagement and decisiveness perpetually improves.
What are pros and cons to algorithmically adjusting quorum instead of manually setting it?
Pros:
- A consistent protocol eliminates the potential of arbitrary manipulation.
- A well designed dynamic quorum needs no manual intervention.
Cons:
- Many people are suspicious of computerized voting.
- It doesn't eliminate the problem of a majority for tyranny.
1 hidden cell