by hhemken » Tue Nov 06, 2012 4:35 pm
islamfaisal,
This is a very interesting project. It embodies both math and engineering, so you can emphasize one or the other or both, as you wish.
I'm doubtful that there is any general way to optimize all kinds of algorithms irrespective of their domains or details. I agree with Vysarge, pick a class of related algorithms and focus on them. By Nov 25 you should be able to write a program that can optimize one or a few e.g. primality algorithms. They would have to be suitably instrumented so that your optimizer can watch what they are doing, what goes in, what comes out, timings, memory use, and whatever else you can think of.
Two broad approaches are 1) finding patterns and optimizing the operation of the algorithms based on them, and 2) creating rules and applying them somehow within the algorithms. One is machine learning, the other is sort of rule-based AI. For Nov 25, keep it as simple and clear as possible, but see if you can successfully optimize at least a couple of algorithms, sketch out your approach in a minimally functional test program, or some similar not-too-ambitious milestone.
Vysarge's suggestion to use genetic algorithms (GA) is ambitious, but would allow you to learn some very interesting notions about how things work. If you can parameterize the algorithms in such a way that "chromosomes" holding the parameters (the more parameters the better, the greater the range of possible values for each the better) are amenable to the GA process, you might be able to find some genuinely unexpected optimizations. You would learn one or two secrets of the universe!
As to questions 3 and 4, don't overextend yourself or neglect the rest of your school work or personal life. Ultimately, though, you must let your heart be your guide.
Good luck!
Heinz
Heinz Hemken
Mentor
Science Buddies Expert Forum