top | item 459790

Send Me Your Nominations for Algorithms That Changed The World

18 points| Anon84 | 17 years ago |parlezuml.com | reply

42 comments

order
[+] michael_dorfman|17 years ago|reply
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|17 years ago|reply
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)?

[+] DaniFong|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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.
[+] gne1963|17 years ago|reply
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|17 years ago|reply
Yea, Sedgewick. His books taught me algorithms. they are to the point, readable, and have working code.
[+] 10ren|17 years ago|reply
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|17 years ago|reply
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.
[+] shrughes|17 years ago|reply
I would nominate RSA.
[+] fgimenez|17 years ago|reply
On a related note, the Rabin-Miller primality test is needed just to find the primes for RSA to work.
[+] dfranke|17 years ago|reply
I'd consider DH slightly more important.
[+] brl|17 years ago|reply
I think it would be hard to argue that any other single modern algorithm had as much effect on the world as RSA.
[+] cgranade|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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.
[+] 10ren|17 years ago|reply
> please send me your nominations, pointing to ... any evidence for its impact.

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

[+] gne1963|17 years ago|reply
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|17 years ago|reply
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. :-)
[+] jff|17 years ago|reply
I was going to tongue-in-cheek nominate bubble sort, but you got to it first!
[+] webmaven|17 years ago|reply
I'm going to go for Long Division. Yes, I'm serious.
[+] brl|17 years ago|reply
Euclid's Algorithm
[+] mhb|17 years ago|reply
Newton's method, Euler's method
[+] hs|17 years ago|reply
bayesian spam filter