Hi,
I have to solve a problem and think that machine learning might be
a good approach for that. Since I'm a newbie to machine learning I would
like to hear your opinions.
My goal is to predict the run time of particular program code fragments.
The input data are C programs which are parsed into its basic constructs
(statements/expressions) and then simulated so that I get to know how many
cycles each C construct took during execution. I would like to train my
system with different benchmarks and collect the run times for the found
C constructs. After the training phase, I would like to use the trained
system to predict the run time of constructs of a new program. Thus, I
would be able to predict the run time of this new program without
simulating it.
Do you think machine learning is a good approach for this problem?
I so, can you recommend any free C++ libraries that if possible work
in a batch mode (no GUI required) with a file interface (i.e. input
data is passed as file).
To realize this system I need two things to do:
a) I need to classify the C constructs during the train phase in order to
be able to map construct of new programs (after the training) to
similar learned constructs. What can this be done efficiently? I think the
main challenge is the choice of criteria that describe a particular
program
construct. Are there any rules or helper for that?
b) Let's assume a) has been successfully solved. How would the system work
than? I would provide as input different C construct (defined by their
classification properties) and their run times and the machine learner
would store the run times? But what happens when two program construct
have the same properties (i.e. belong to the same class) but have
different run times? Will these run times be averaged?
Thank you for your advices.
Brest regards,
Tim
[ comp.ai is moderated ... your article may take a while to appear. ]