[EM] BeatpathWinner algorithm
nkklrp at hotmail.com
Wed Jun 1 20:23:19 PDT 2005
Russ said, 11 days ago:
You might also recall that Mike's "beatpathwinner" algorithm
It wasn't "Mike's". It was from Steve, and I said so.
appeared at http://ElectionMethods.org was a fifth-order algorithm,
whereas it should have been third-order.
_Should_ have been? Maybe _could_ have been, except that Russ didn't know
that it could. Russ didn't know that that algorithm could make do with only
one pass through the 3-candidate permutations, by re-arranging the indices.
It didn't occur to Russ that the algorithm could be speeded up in that way.
No, it didn't occur to me either. But that's irrelevant. It's relevant that
it didn't occur to Russ, because Russ is the one who is criticizing the fact
that the speed-up wasn't included in the algorithm at his website.
I guess I share responsibility
for that little blunder
Yes, I guess you do. I sent to you a Python program using an algorithm from
Steve. At no time did I say that I was an "algorithm expert", to use your
term. At no time did I claim that there wasn't a more efficient algorithm.
You, Russ, were completely clueless about the fact that the algorithm could
be speeded up, could avoid the need for more than one pass through the
3-candidate permutations, by re-arranging the indices in the formula that
uses them. As I said, that didn't occur to Russ, and he needs to blame
himself if he's bothered by the fact that the algorithm didn't have the
Though the possibility of that speedup didn't occur to me either, Russ is
the one who has a great problem about it, and so I mention that Russ was
quite clueless about the possibility of modifying the index-order so that
only one pass would be needed.
When it was claimed on EM that an index-rearrangement would make it possible
to complete the task with one pass through the 3-candidate permutation, I
told Russ about that. That information was not kept from Russ. I didn't ask
Russ to change the algorithm in the way described on EM, because no one
posted a proof of the claim that it would work. It was asserted repeatedly
on EM, and I repeatedly asked that someone post a demonstration of the
claim. No one did.
I wasn't willing to ask Russ to change the algorithm based on an unsupported
claim. But I told him about the claim. Russ chose to leave the algorithm as
it was, and not re-arrange the indices, and not have it do only one pass
through the permutations.
It wasn't my fault that you passively used what I sent to you.
because I had implemented Mike's algorithm in
Python for him.
For me? In what sense for me? Actually I e-mailed to you a Python program
that carries out Steve's BeatpathWinner algorithm. You didn't implement it
in Python. I wrote it in Python and sent it to you. You then wrote your
Python program which was nothing other than a copy of the one that I sent to
You claimed that my program had errors. It had syntax typos in its 1st
version. I didn't have Python, and therefore couldn't test the program. It's
unusual for the 1st version of a program to not have some sort of syntax
typo. Mine was no exception. I had lelt out some colons. Subsequently I sent
to you a version that didn't have the syntax typos, or any other errors.
Contrary to your earlier claim, there were no "logical errors". There were
only syntax typos. And only one or two of those (occurring here and there in
the program, of course).
The only other fault of the 1st version of my Python BeatpathWinner program
was that the Python book that I was using mis-stated how Python does
multidimensional arrays. That was the fault of a careless author, and wasn't
By running the program, Russ found out that the multidimensional arrays
didn't work as the book implied, and, by expermenting with his Python
interpreter (It seems to me that Python is interpreted rather than compiled.
Anyway, I'll use that word with the understanding that maybe I should have
said "compiler".), he found out how they are done by Python.
He told me what he'd found out by experiment, but I chose to not base my
program on his experiment results. I didn't use Python's multidimensional
Instead, I made multidimensional arrays from Python's 1-dimensional arrays,
and a function that I wrote.
With that, and the correction of the syntax typos, my program was correct. I
sent a copy of that final version to Russ.
He chose a different way to deal with the multidimensional arrays, by
experimentally finding out what works, and that's fine. But I sent to him a
correct Python BeatpathWinner program.
About the Python book's failure to accurately describe how the
multidimensional arrays work: It seems to me that books on a programming
language should only be written by the person who wrote that language. If
that person doesn't want to write such a book, then maybe one could be
written by a mathematician, working closely from the language-author's
description. But, failing those authorships, at least the book then should
_not_ be written by a programmer or a computer specialist. Such a
specialist, who may have been using trhe language so long that its features
are 2nd nature to him, and feel like instinct, or seem obvious to him, is
likely to be careless and leave things out.
I had urged him to program and test it himself, but he
I didn't have a Python interpreter.
, so I did it for him.
No, Russ tested the program for himself, so that he could put it at the
website. He didn't test it for me. The testing showed that the
multidimensional arrays didn't work as the Python book implied. He
experimented and found out how they do work. By testing he found out about
the syntax typos. With the experimentally-found multidimensional arrays, and
the experimentally-found syntax typo corrections, Russ wrote a program that
was really only a copy of what I'd sent to him. I then corrected the syntax
typos too, and made the multidimensional arrays. And, just to be doing so, I
sent to Russ a correct Python program, though I knew that he'd made similar
corrections himself and had a completed program, or was writing one.
(In retrospect, it should have been
obvious to me that anyone who is incapable of programming a computer in
this day and age
So Russ is still saying that. It's unusual for any program, in its 1st
version to not have any syntax typos. I subsequently sent to Russ a correct
version of the Python BeatpathWinner program. At no time did any
BeatpathWinner program or algorithm that I sent to Russ have "logical
errors", as Russ claimed.
When I took a course in FORTRAN 77, I got an "A" in the course. That college
had two FORTRAN courses, and I then wanted to take the 2nd one. But it
wasn't offered often, and the only programming language course being offered
in a course was Applesoft BASIC. So I took that course, because at that time
BASIC was the programming language found on personal computers. Especially
Applesoft BASIC. I might have only gotten a "B" in that course, because of
an assignment that I hadn't gotten around to completing.
I did some individual projects using FORTRAN and BASIC, the two programming
languages that were available on college computers at that time.
It seems silly to post here to answer a claim that I'm incapable of
programming a computer. I mean, what does that have to do with EM's topic?
But Russ has made that off-topic, irrelevant, claim several times, and I
might as well answer it, as I have just done.
I don't claim to be a professional programmer. But the final version of my
Python BeatpathWinner program was correct.
is unlikely to be an algorithm expert!)
At no time did I say that I was an algorithm expert. Russ got the algorithm
from me, just as I got it from Steve.
As you know, I have since replaced Mike's goofy fifth-order algorithm
As I said, it wasn't "Mike's" algorithm. I got it from Steve, and Russ got
it from me. Now Russ wants it to be entirely my fault that it didn't have
the speedup that didn't occur to Russ either.
As for "goofy", Russ apparently was too goofy to notice that it could be
speeded up, to notice that rearranging the indices in the formula at the
center of the loops would enable the algorithm to complete its task in one
pass through the 3-candidate permutations. But Russ doesn't want to say that
he himself was goofy because that speedup didn't occur to him.
Though I told Russ about the speedup claim when I heard that claim on EM, I
wouldn't have recommended adding the speedup, even if someone had
demonstrated that it worked (and no one did demonstrate that it worked).
That's because, in the form in which I sent it to Russ, the algorithm is
obvious and natural. It is not obvious that, if you rearrange the order of
the indices in that formula inside the loops, the algorithm will need only
one pass through the 3-candidate permutations. It was un-obvious enough that
no one on EM responded to my request for a proof that it would work. And, as
I said, Russ himself was quite clueless about that possibility.
Mike's algorithm, on the
other hand, was given to me under the implied but unstated "Mike's
Wrong. When I sent the algorithm to Russ, I didn't imply anything about
ownership of it.
My later withdrawal of permission to have things that originated from me was
not based on any claim of legal ownership or copyright. It was a matter of
whether or not Russ had enough pride to quit using materials from me at his
website when permission was withdrawn. As I said, last I checked, Russ was
still demonstating that he didn't have any self-respect, because he was
still using definitions of mine, word-for-word, and was still featuring my
wv, though I'd withdrawn permission to have things that had originated from
which rivals his algorithms and criteria for goofiness.
As I said, Russ suddenly discovered that he didn't like my criteria
immediately after I told him that he no longer had permission to have them,
or anything originating from me, at his website.
He didn't accept that immediately. First, in two e-mails, he pleaded that I
not make that decision. Only when I stood by the withdrawal of permission,
did Russ suddenly realize that he didn't like my criteria, which he had
initially asked me for permission to post at his website, and had kept there
goes something like this: "This work should be universally accepted
I haven't said that my work should be universally accepted, but I have said
that, for some criteria, the versions other than my preference versions lack
usefulness and meaning.
But what someone else should or will do is entirely their business.
I, Mike, retain the unconditional right to deny anyone the right to use it."
There's no doubt that I had, and have, the right to refuse permission for
Russ to use materials originating from me, at his website. That is not a
claim that I have legal ownership of the material. I have no idea about
that. I withdrew permission for Russ to use the materials, and the rest
depends on whether or not Russ has any self-respect.
Express yourself instantly with MSN Messenger! Download today - it's FREE!
More information about the Election-Methods