views:

207

answers:

4

I often find it is difficult to find something that I know the logic sounds familar but cannot recall the name. Using the existing string based search engine just won't get you good result as most of the time the logic is expressed in a totally different way.

I understand the generic problem is a unsolvable AI problem. The question is how do you tackle this kind of problem? Keeping all the things from text books/experiences in memeory?

+6  A: 

There is a NIST DaD (US Gov) that is a list of algorithms. There is the "Intro to Algorithms" by Cormen. Also, the are a few encyclopedias of Algorithms available. I would check with leading reference books in the category and then go from there.

monksy
+1 for two good complementary references
Kena
Awesome resources. Thanks, Steven.
Dr. Xray
+3  A: 

I highly recommend the book The Algorithm Design Manual by Steven Skiena. It is like an encyclopedia of data structures and algorithms, all in one place, with references to where you can find out more. There are even little graphics to jog your memory about what an algorithm does; see this example.

steveha
I was going to mention that book, I answered that previous question in a rush, and I forgot to add that book in a later edit.
monksy
+1  A: 

Hmm... it is like asking how can I become more intelligent and improve my memory, had it been a computer I'd have said buy multi-core CPU and add more RAM, but this one is hard.

Practice, more reading, write code using different algorithms, read and understand white papers and then keep reading more. Memory tends to remember more through repetition. Sleep well.

Murali VP
The thing is that I only have limited memory :P, and therefore can only store limited information. There are oceans of known problems out of text books in those journals, which even further scares me from remembering all of them... Yes, maybe asking would be the ultimate solution to this one. :>
Dr. Xray
@Xray - don't worry, you are not alone. I would have loved a easy solution to your question, but from my experience, I have found out that you don't and shouldn't try to memorize text books, understand algorithms, keep thinking about them, see how you could use them, once you get your fundamentals strong, things start to become easier.
Murali VP
I don't believe that this answer address the question asked. He didn't ask for performance improvements, he asked for a dictionary of the concepts.
monksy
@steven - you are probably right, reading it again, I could have misunderstood the question.
Murali VP
+1  A: 

Well, it is like the more you exercise your brain the better it gets in remembering things. Look it a this way: if you solve more problems, you will tend to remember what method or strategy you used to solve them, and this will help you solving future problems.

Now having said that, there are resources on the internet, some really good websites/books which you can use:

  1. For example: You have a series of numbers and you want to find out the relation between them, you can visit the Online Encyclopedia of Integer Sequences. Of course, you can solve on your own, but this really helps.

  2. I also came across this site which proved very useful: Wolfram Aplha. It is a good Computational Knowledge Engine.

  3. For me, Introduction to Algorithms by Cormen is a bible for learning algorithms. I always keep a copy with me and use it from time to time.

  4. Project Euler: At times you may not find it practical, but it definitely gives your problem solving ability a boost.

  5. Also check out different programming paradigms like Functional Programming, Logic Programming. It will give a different perspective to solving problems.

bakore
Thanks for these great links! +1 when the vote limit window expires.
Dr. Xray
Definitely, just have my vote count refreshed.
Dr. Xray
Oops, I accidently click the upvote again, which 'cancelled' the vote. stupid feature... :P bakore, could you please edit this so that I could correct this? sorry..
Dr. Xray
Phew~ Thanks. :P
Dr. Xray