[EM] Floyd-Warshall algorithm - variations

Ernest Prabhakar drernie at mac.com
Sun Dec 21 01:08:02 PST 2003


On Dec 19, 2003, at 3:02 PM, Markus Schulze wrote:

> Dear Ernest,

Hi Markus,

Thanks for the prompt reply.
>
> I don't know Python-ish pseudo-code.

I'll try to find ways to make it more English-like, so the algorithm is 
clearer.

> But in Pascal/C-ish pseudo-code
> the Dijkstra algorithm (aka Dykstra algorithm) looks as follows when
> the strength of a pairwise defeat is measured primarily by p1 (= the
> absolute number of votes for the winner of this pairwise defeat) and
> secondarily by p2 (= the margin of this pairwise defeat):

<lots of code omitted>
Ouch.  That's why I no longer program in C (or procedural languages). 
:-)

Let me put it another way.   Could you please explain in words why you 
feel it is necessary or useful to use *both* absolute votes and margins 
in the calculation?   Are the margins used simply to break a tie 
between absolute votes?  I think that's what is implied by the line:
>            if ( p1[i,x] = d1[x,k] ) then
>            t : = min { p2[i,x], d2[x,k] } ;

Also, is there a particular mathematical or anti-strategic reason for 
randomizing the tie-breaking round, rather than just automatically 
picking the candidate who would have the best chance of winning such a 
random draw?

-- Ernie P.




More information about the Election-Methods mailing list