
Send Me Your Nominations for Algorithms That Changed The World - Anon84
http://parlezuml.com/blog/?postid=771
======
notaddicted
This appeared here a few months ago;
<http://www.eecs.berkeley.edu/~karp/greatalgo/>

I think I'll nominate FFT.

~~~
greendestiny
I was going to separately nominate back-projection for producing CAT scans,
but its really another vote for the importance of FFTs.

------
michael_dorfman
I'm a little suprised nobody has mentioned the Simplex algorithm yet. I don't
think it's importance in the history of optimization problems could be
overstated.

Also: does the Monte Carlo method count as an algorithm?

~~~
schtog
Monte Carlo methods is a family of algorithms no?

I still haven't groked exactly what is so special about them. Incredibly
useful, sure, but aren't they just simulations? Ie, isn't it something anyone
would have come up with(sorry if I'm just ignorant here)?

~~~
shrughes
They are the kind of obvious thing that many people would invent for
themselves, yes. But the question was about algorithms that changed the world,
not about non-obvious algorithms.

I would argue that in the case of Monte Carlo methods, computers are what
deserve credit (for making obvious methods like Monte Carlo affordable) rather
than the methods themselves.

------
DaniFong
The Finite Element Method.

The Fast Fourier Transform.

Max-Flow-Min-Cut. (Ford-Fulkerson)

Simulated annealing.

Carrier sense multiple access with collision detection (the protocol used by
ethernet)

And if it counts, dynamic programming, in its many variants. If it doesn't,
Dijkstra's algorithm.

~~~
cgranade
I have to second simulated annealing if only because it gets too ignored
normally. It's a wonderful technique for attacking the optimization of
intractable problems, and one that belongs in any good mental toolkit for
optimization.

------
gne1963
But the more I think about it, I'd have to give Dijkstra's shortest path
routing algorithm my highest marks...
<http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm> it probably was used to
route this message to all you who are reading this... and also used in the
routing of the board design on which your screen is attached.,,and is the
basis of many other technology and efficient scheduling applications in common
use today...

------
10ren
Basic algorithms for arithmetic, when first originated thousands of years ago,
have probably had a far more profound effect on the world than any recent
computer-based algorithm. Particularly in accounting and engineering, they
would have contributed to the ability to have economies that could support
large civilizations. The earliest records found of ancient languages are
sometimes accounting records.

Interpreting "algorithms in computing" more widely than the questioner meant
of course. :-)

~~~
russell
Algebra itself started out as a bunch of recipes for doing computations back
in Babylonian times, "fathered" by Diophantus, and Al-Khwarizmi who named and
codified Algebra.

~~~
dhimes
I thought it was Al Jabar (or Al Jabbar) from whence we get the name.

~~~
ewiethoff
Name of author: Abu Ja'far Muhammad ibn Musa al-Khwarizmi. Name of work: _al-
Kitab al-mukhtasar fi hisab al-jabr wa'l-muqabala_ ("A Handbook of Calculation
by Completion and Reduction").

John Derbyshire examines al-Khwarizmi's work in chapter 3 of _Unknown
Quantity: A Real and Imaginary History of Algebra_ [ISBN 978-0-452-28853-9],
which I just finished reading a few days ago.

The first part of al-Khwarizmi's book concerns finding the roots of first- and
second-order polynomials of one unknown. He classified the polynomials into 6
fundamental types, with all positive coefficients. Keep in mind, that negative
numbers did not exist at the time, though subtraction did. He showed how to
manipulate polynomials into a suitable one of the 6 types by adding a term
(al-jabr, completing) or subtracting a term (al-muqabala, reducing).

Says Derbyshire, "al-Khwarizmi has no literal symbolism--no way to lay out
equations in letters and numbers, no sign for the unknown quantity and its
powers." The problems, the fundamental types, the procedures are all presented
in words.

Interestingly, Diophantus 600 years earlier did addition and subtraction of
polynomial terms using "a rich literal symbolism to aid the manipulations."

~~~
dhimes
Thank you! I've been mistaken for years (I can't read the glyph myself, just
took it from someone who I thought could).

------
gne1963
The point in polygon problem for arbitrary polygons I believe was first solved
by Robert Sedgewick and published in his awesome algorithms book... it is
discussed here... <http://bit.ly/i1u1> In most computer applications today we
assume we can easily tell whether or not a point is within (or without)... But
I think Robert published the first algorithm on how...

~~~
russell
Yea, Sedgewick. His books taught me algorithms. they are to the point,
readable, and have working code.

~~~
gne1963
Yes me too. I still believe that the godfather is Knuth:
<http://en.wikipedia.org/wiki/Donald_Knuth> think But as you highlight
Sedgewick to me was more readable and applicable to the code I was writing in
the early 90s.

------
10ren
PageRank, in least in terms of transfer of wealth (only one measure, but at
least it _is_ a measure of impact on the world).

~~~
greendestiny
Is it a good candidate as an algorithm though? The novel part of pagerank is
representing hyperlinks as a connectivity matrix and using the eigenvalues as
search ranking. Finding the eigenvalues themselves was not new, and the rest
doesn't seem as important in an algorithmic sense.

~~~
10ren
I don't want you to be right, but... I think you are right. PageRank is an
application of an algorithm; seeing a problem in such a way that it can be
solved.

I therefore instead nominate the algorithm which Pagerank applies.

------
shrughes
I would nominate RSA.

~~~
brl
I think it would be hard to argue that any other single modern algorithm had
as much effect on the world as RSA.

~~~
corentin
MP3?

~~~
russell
Discrete cosine transform and its variants gave us jpeg and mp3

~~~
brl
Oh, you're absolutely right of course. I completely overlooked that. In that
case, I think that the top two prizes should go to one Fourier transform
related algorithm and one algorithm from public-key cryptography.

------
russell
Quicksort: <http://en.wikipedia.org/wiki/Quicksort> The wikipedia article has
a great visualization of the algorithm in action.

~~~
shrughes
But how did it change the world? There are plenty of other usable sorting
algorithms.

~~~
russell
It did not change the world in the sense that pagerank did, but in 1961 it was
an important contribution, because it was simple enough to lend itself to
formal analysis.

------
cgranade
The Deutsch-Jozsa Algorithm, while not immediately "practical" in the sense
that it solved some real-world problem that had been vexing computer
scientists, was instrumental in showing conclusively that quantum computers
could be asymptotically faster than classical computers for some problems.
This then led the way for more applied quantum algorithms such as Shor's
Algorithm (itself a special case of QFT and period-finding algorithms). So I'd
like to nominate DJA for an algorithm that changed the world.

------
greendestiny
A few important ones:

Lempel-Ziv compression: Though it's hard to point to things that would have
been impossible without it, it's saved so much transfer and storage capacity
in its time that the economic impact would be huge.

Apriori association mining: Of fairly limited application, but it's use in
market basket data has probably had quite a large impact on our retail sector
for one.

------
slackerIII
I'd go with something like Reed-Solomon error correction. It makes CDs and
DVDs work. Programmers have to be insulated from the flawed physical world and
error correction codes do that.

------
prakash
Consistent Hashing: <http://en.wikipedia.org/wiki/Consistent_hashing>

------
10ren
> please send me your nominations, pointing to ... _any evidence for its
> impact_.

I think that's the hardest part of the question.

------
gne1963
russell... I would perhaps nominate bubble sort above quicksort...for us old
timers, it was easy to understand, code, and install in our programs where
ever we need a sort... bubble sort I would argue first brought sorting to our
discipline.

~~~
russell
Early in my career I implemented a cross reference function using bubble sort
and was ridiculed by a Real Computer Scientist. I opted for quick sort,
because I wasnt going to expose myself to that here. :-)

------
webmaven
I'm going to go for Long Division. Yes, I'm serious.

------
brl
Euclid's Algorithm

------
mhb
Newton's method, Euler's method

------
hs
bayesian spam filter

