Thursday, November 11, 2010

I have this algorithm...

Algorithms can solve two kinds of problems.

1) Problems with verifiable answers and...
2) Those without verifiable answers (or the verification is proved by statistically sampling)

Verifiable answers:

Algorithms in this category address problems like, find me all the numbers in this list, or even, find me the fastest route between point a and b.

The value in the algorithm is not the correctness, it is easy to find the answers to these problems, rather the value in these algorithms are the speed with which they are executed and the amount of data you have to solve your problem.

So for example there are many different kinds of sorting algorithms - they all correctly sort, but some are faster and some use less memory. This is where the ingenuity or value of the sorting algorithm comes in.

For the mapping example, it is not difficult to map the fastest route between two points. But you could imagine an algorithm that used realtime traffic data would provide faster routes than other algorithms. The answer these algorithms may be different, but their actual processing of information - the algorithm itself - may be the same. The only difference is the input data used by the algorithm.

Now onto the algorithms with no answers -
these are the interesting algorithms that answer questions like - find the top 10 sites on music, or recommend movies I'll like, or find me a date.

In the case of search - the answer can be the top 10 sites on music are the top music sites that people link to (google's algorithm), or the top 10 sites that my friends like (a facebook solution)

In the case of recommendations, we would have an algorithm like that produced by the netflix prize, a statistical sampling of user preferences run through a barrages of matrix filters. We could also have the pandora algorithm, create a genetic code for a piece of music based on frequency, btm, etc and then find other similar genetic codes.

For dating there is a little less innovation out there. Most sites ask a set of questions (perhaps developed by behavioral specialists), and match those with similar or compatible answers, or let users shop for dates by displaying the answers to these behavioral questions.

But that is it go forth and create algorithms for problems with no answers