Add a function called 'preprocessing', which contains 'knob range search', 'random' and 'lhs'
knob range search:
I implement it in a stateless way. It checks if the upperbound and lowerbound of every session knob are close to the max_val and min_val, respectively. If not, it calculates a new knob range based on log-scale binary search, and generates the next config to test for new range. At the same time, it checks if the last result is testing the range of this knob. If yes, it will update the knob range in the session.
I do not recommend running tuning algorithms after searching for knob range in the same session. Because they will still affect the algorithms and pipeline runs. Also, doing knob range search for every session is time-consuming. So, we may want to run it once, and download it to the environment file. We can discuss about that.
DDPG now can also collect data with 'random' and 'lhs'.
Add a function called 'preprocessing', which contains 'knob range search', 'random' and 'lhs'