Other problems at Rob Lanphier's Condorcet website
Steve Eppley
seppley at alumni.caltech.edu
Thu Jan 2 09:44:15 PST 1997
Rob L wrote:
-snip-
>This problem will be fixed shortly.
-snip-
>I've also incorporated some suggestions from your other email.
-snip-
Thanks muchly.
>> The demo correctly showed all three candidates are in the Smith set,
>> but it doesn't go the extra step and show the Smith//Condorcet
>> winner. That would be a useful addition to the demo, and easy to do.
>
>Easier said than done, though that is in the works. I'd like to
>make arbitrary combinations of methods possible. I could hack
>together a Smith//Condorcet solver, but I'd like to handle the more
>general case
-snip-
I think the Smith//Condorcet hack is easy enough that it's worth
doing, if the general case won't be ready in the near future.
The same routine used to find the Condorcet method winner(s) would
work to find the Smith//Condorcet winners, except that instead of
using "for each candidate" you'd use "for each candidate in the Smith
set".
The following isn't written in the perl language, but I think it
will be simple to translate into perl. Though it's explicitly for
Smith//Condorcet, it's in a format which suggests how to generalize
to arbitrary M1//M2 methods.
;---begin---
; Find the M1//M2 winning score:
; Initialize using the M2 score of an arbitrary member of M1:
BestYetScore := LargestLoss[Smith[1]]
; Check each member of M1 to see if it has a better M2 score:
for each alternative i in Smith
if LargestLoss[i] < BestYetScore ; the < is for "smaller is
; better" M2 methods
; like Condorcet's
; "votes against"
BestYetScore := LargestLoss[i]
endif
endfor
BestScore := BestYetScore ; the score of the M1//M2 winner(s)
; Find the M1//M2 winner(s):
initialize the M1_M2 set to empty
for each alternative i in Smith
; is it a winner?
if LargestLoss[i] = BestScore
append i to M1_M2
endif
endfor
display the M1_M2 set
;---end---
---Steve (Steve Eppley seppley at alumni.caltech.edu)
More information about the Election-Methods
mailing list