Short Circuit Voting

Locked
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Short Circuit Voting

Post by DGDanforth »

Taking Josef's lead of 'stable' vote I suggest we use the phrase 'short circuit vote' in exactly
the same sense as is used with the evaluation of BOOLEAN expressions.

I find it fun and instructive to write pseudo code about these social matters that actually compiles.
Here briefly is my interpretation of the current desired way of voting augmented with short circuiting

Code: Select all

MODULE BBChairShortCircuit;	

	IMPORT
		Services;
		
	VAR
		T:	LONGINT; (*Termination time of vote*)
		Q:	INTEGER;	(*Quorum number*)
		q:	INTEGER; (*Number of members who have voted*)
		dB:	INTEGER; (*Excess of Best score over the next runner up (not including abstain*)
		M:	INTEGER; (*Missing members who have not yet voted*)
(*
*)
	
	PROCEDURE ShortCircuitVote* (VAR o: INTEGER): BOOLEAN;
	VAR time: LONGINT;
	BEGIN
		time := Services.Ticks();
		WHILE time < T DO
			IF (M < dB) OR (Q<=q) THEN
				(* o := Option(B); option that wins the vote*)
				RETURN TRUE
			END;
			time := Services.Ticks();
		END;
		RETURN FALSE
	END ShortCircuitVote;
	
END BBChairShortCircuit.
In words, a vote is started and continues until the time T is reached OR until either the excess of the best score dB over the next runner up exceeds the number of missing votes OR until the quorum is reached. The option with the best (largest number of votes) is the result of the poll. If none of the above then the measure voted on fails.

With that understanding a vote of 2 YES, 0 NO, 9 ABSTAIN would be considered valid and 'YES' for the measure would be the result of the vote.

So, I capitulate to the will of the people and abandon my effort to use the MajorityRule.

Comments
User avatar
Josef Templ
Posts: 2048
Joined: Tue Sep 17, 2013 6:50 am

Re: Short Circuit Voting

Post by Josef Templ »

> OR until the quorum is reached.

As I pointed out earlier, it is a fundamental mistake to close a poll when the quorum is reached.
This OR must be eliminated.

Why?
If I know that I have for example a voting time of one week, I must be able to decide
to cast my vote on the first day of that week or on the last day, perhaps because
I need some time to evaluate the issue more closely until I cast my vote.
If the poll is closed without a stable result before the week expires,
I have no chance to cast my vote although it might change the result
of the poll. This rule is unfair and may lead to wrong results.

The quorum rule must only be used for validating the poll after the poll
time has expired.

An analysis of the last polls shows that if the generalized short-circuit rule is used, polls can be closed
before the end of the polling period anyway without running into the above mentioned
unfair situation.

- Josef
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Short Circuit Voting

Post by DGDanforth »

Ok,
How about this

Code: Select all

	PROCEDURE ShortCircuitVote* (VAR o: INTEGER): BOOLEAN;
	VAR time: LONGINT; flag: BOOLEAN;
	BEGIN
		time := Services.Ticks();
		WHILE (time < T) & (dB <= M) DO time := Services.Ticks() END;
		flag :=  (M < dB) OR (Q<=q);
		IF flag THEN (* o := Option(B); option that wins the vote*) END;
		RETURN flag
	END ShortCircuitVote;
	
If we short circuit then ..
if the voting time has elapsed and a quorum was reached then ..
User avatar
ReneK
Posts: 214
Joined: Tue Sep 17, 2013 9:16 am
Location: Vienna, Austria, Europe

Re: Short Circuit Voting

Post by ReneK »

I agree with Josef on the quorum thing.

If abstain is seen as described by Doug, I'd be for a mandatory "none of the above" on all measures.
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Short Circuit Voting

Post by DGDanforth »

ReneK wrote:I agree with Josef on the quorum thing.

If abstain is seen as described by Doug, I'd be for a mandatory "none of the above" on all measures.
I've changed my tune about abstain. It is now as you all are using it.
The result of a poll that either short circuits or runs it allotted time (and a quorum was reached) is based on the largest score over all of the options (not including abstain).
*If there is a tie for the largest score then .... flip a coin?
User avatar
Josef Templ
Posts: 2048
Joined: Tue Sep 17, 2013 6:50 am

Re: Short Circuit Voting

Post by Josef Templ »

ReneK wrote: If abstain is seen as described by Doug, I'd be for a mandatory "none of the above" on all measures.
adding a mandatory "none of the above" seems reasonable at a first glance.
However, when the poll already contains an exhaustive list of alternatives it does not give sense.
This happens in particular when the poll is about a binary decision and there exist options 'yes' and 'no'.
Of course, it can be ignored, but it looks and in fact it is ridiculous in such cases.

For non-exhaustive lists of options I would support that rule.
An example where it was missing is http://forum.blackboxframework.org/view ... p?f=4&t=91.

An example where it already has been applied is http://forum.blackboxframework.org/view ... p?f=4&t=90.

An example where it does not give sense is http://forum.blackboxframework.org/view ... ?f=4&t=121.

An example where it has been added for formalistic reasons is http://forum.blackboxframework.org/view ... p?f=4&t=63.

- Josef
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Short Circuit Voting

Post by DGDanforth »

Slight rewrite for clarity

Code: Select all

	PROCEDURE ShortCircuitVote* (VAR option: INTEGER): BOOLEAN;
	VAR time: LONGINT; flag: BOOLEAN;
	BEGIN
		WHILE (time < cutOff) & ~Short(count) DO IncrementTime(time) END;
		flag :=  Short(count) OR Quorum(count);
		IF flag THEN option := Option(count)  END; (*option that wins the vote*)
		RETURN flag
	END ShortCircuitVote;
	
I propose that the 'first maximum' be the choice of a vote (after abstain which should come first)
Hence if the options are
ABSTAIN
YES
NO
and YES and NO have equal counts then YES would be the result of the vote. If, however, the options are
ABSTAIN
NO
YES
then NO would be chosen in the case of a tie.

-Doug
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Short Circuit Voting

Post by DGDanforth »

By the way, I found the word spread to be most useful both in determining Short() and in determining Option().
Short() succeeds if the spread is greater than the missing.
Option() returns the first option with the maximum score.
Alternatively flag := Option(option, count) could be used to return FALSE if the spread is 0.
Ivan Denisov
Posts: 1700
Joined: Tue Sep 17, 2013 12:21 am
Location: Russia

Re: Short Circuit Voting

Post by Ivan Denisov »

The results of voting should be fixed here:
http://wiki.blackboxframework.org/index ... overned.3F

Can I close this topic?
User avatar
DGDanforth
Posts: 1061
Joined: Tue Sep 17, 2013 1:16 am
Location: Palo Alto, California, USA
Contact:

Re: Short Circuit Voting

Post by DGDanforth »

Ivan Denisov wrote:The results of voting should be fixed here:
http://wiki.blackboxframework.org/index ... overned.3F

Can I close this topic?
Yes
Locked