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