Thursday, November 25, 2010

Nobody Cares About You and Your Algorithm

The business model of Q\&A sites like StackOverflow revolves around recognizing that there is a difference between replying to a question and answering that question. Equally, there is a difference between publishing a paper on an idea and releasing this idea to the world in the form of an implementation.

In a number of cases, as I look forward to kicking the tires of some ideas featured in some papers, the feedback I get from some authors is that the implementation 'is easy' i.e. that it should be easy for me to duplicate the pseudo code and implement it into matlab/octave.

Sure ... all your peers could write an implementation of your code. But between the two of us, do you really think your peers will get famous re-implementing your algorithm ? You and I both know the answer.

If Nuit Blanche is to be used as a way of promoting your algorithm or your ideas (as it should) you need to provide an implementation of it even though 'it is easy'. Otherwise your idea as ingenious as it may be, will die. Become the giant that allows others to be standing on your shoulders.

See, it's always a question of context: Pulsing a nuclear reactor is easy. Pulsing a nuclear reactor when you have no training for the if-and-outs of the process... not so much. Performing experiments is easy. Performing experiments in a zero-gravity environment where everybody around you barf their brains out while the ceiling drips condensation water on your data acquisition computer keyboard ... not so much.

Yes, in some idealized world things are easy, in some idealized world, your readers would know how to install Sedumi on their computers. Except when was the last time you lived in that idealized world ? Most comments in this simple post revolve around software installation issues as a pre-condition before running a code. If people have problems installing a package that has installation 'how-tos', do you really think 'it is easy' for them to rewrite an implementation of your algorithm ?

Ideas are just that ... ideas, you need other people to take them forward and the only way to do that is by releasing an actual implementation that works. If you don't do this, your ideas will become irrelevant. Don't get me wrong, you'll get a good publication, your peers will think highly of you, some may even grant you tenure or a better job, some might even put your name up for prizes, but the fact of the matter is, the rest won't care. Worse, your idea will be of no consequence to new entrants in the field be they students or curious researchers from other fields.

Even if you think that the constants of your implementation are too large, or that the asymptotics are bad, don't fear, somebody, somewhere, thinks it's really cool because it solves her problem.

The Nuit Blanche effect is nothing compared to the Slashdot effect, yet it provides you with the ability to reach out to thousands of potentially interested and focused people and/or future employers. More than hundred people will come to your site in a few days as a result of being featured here . And trust me, these people care.. Help Nuit Blanche help you become a f@%$*$ rock star, make some implementation of your ideas available.

[Stats for the link pointing to TFOCS solver last week.]


Eric Tramel said...


I can't tell you how many hours of my degree has been implementing other people's work so I can actually run meaningful comparisons :P

Along with a PhD, I should get some kind of minor in "decoding" what the author *actually* implemented versus what they said in the abstract/intro/pseudo-code! :)

Yaroslav Bulatov said...

You are lucky if the algorithm is even included in form of pseudo-code. Looking for graph theory algorithms I often come across papers which give algorithm in form of a high-level constructive proof of algorithms existence, with the task of turning it into set of instructions left to the reader. For instance "Algorithmic Graph Minor Theory" paper promises a polynomial time algorithm for certain graph theory problems, but you won't find any pseudo-code there

Igor said...


The worst is not the decoding part, it's the moment you figure out that the paper is wrong, misleading or a fraud (this has happened to me in a different field). On the one hand, you now know, on the other all the time spent is lost forever.


I can see where the TCS folks are coming from, while peers may give you some respect for a P result, people on the outside are likely to make fun of you if the polynomial exponent is 525 ( ).

Happy Thanksgiving to y'all.


Anonymous said...

I have hypothesized why this is the case. Scientists worship "novelty". Implementing an algorithm, provided its natural language description already exists, does not bring novelty, so is omitted in order to save resources of the scientist. Economic incentives.

There is an interesting implication for what to do. If you are planning to punish an author, and no incentives from a third party exists, this will repel people. A reward is better, but what reward it may be…

beroal said...


Yaroslav Bulatov said...

Actually the exponent there is 0 Point 525, which isn't too bad. Comment on another post of his gives example of O(n^81) algorithm

Igor said...

Oops. Thanks Yaroslav :-)

Yaroslav Bulatov said...
This comment has been removed by the author.
Yaroslav Bulatov said...

Another example, Lipton and Tarjan gave an O(n log n) algorithm that gives guaranteed approximation on large enough graph. Later, it was found that to for guarantee to be within half optimal, the graph needs at least 2^(2^400) nodes. (this is from Baker's "Approximation Algorithms") intro