Akiira / Comp-524-program

A genetic algorithm to create test suites that cover every branch of a program
2 stars 0 forks source link

Exploration vs Exploitation #13

Closed ambarket closed 9 years ago

ambarket commented 9 years ago

TO_DISCUSS: The general idea presented here, which is to have two different series of operators for exploration vs exploitation, and the decision of how to determine when exploration has ended and exploitation should begin. Also how would something like this play into the adaptation of our parameters and is it worth spending the time on this when our current algorithm already seems to function quite well.

Exploration: De fined as the period of time from generation 1 to 75% of max generations, or until the population's coverage ratio exceeds 90%, whichever occurs sooner.

Exploitation: This phase starts immediately after exploration, as de fined above ends. TO_DISCUSS: likely the mutation, crossover, and local optimization probabilities will change at this point to some predefined start point for exploitation.

Akiira commented 9 years ago

I will give a more thoughtful reply tomorrow after I ponder this some more. Though my initial thoughts are maybe the algorithm will do this on its own because of the adaptive parameters and the variety of local optimizations.

What we really need is a harder control flow graph to really strain the algorithm. Then we could see how the current algorithm runs near the end and see if we could improve it with an explicit switch to exploitation mode.

ambarket commented 9 years ago

Yea I started trying to do this and I have doubts about if it even makes sense and that I should be spending time on it. It makes the adaptive parameters a lot harder to reason about. I think I'll set that branch aside for now.