Implement and test the ACO for autoscaling decision making, in particular, it has the
following main implementation apart from the core ACO:

1) In case a value of CP has no improvment, it is then calculated as the min I_m/(1+D_m) divide
its own 1+D, in case all values of a CP has no improvment, we use 1/(1+D). In this way, we ensure
the heuristics could guid the search in all cases.

2) The max-min value of trail are updated during search, max = 1/(S_best * (1-p)), min = max/g.
It is worth noting that during local/global update, if a tau value need to be set to max/min
because of the max/min changes, we then need to add the original value to memorized the importance
of trails. Otherwise we simply set them to max/min.

3) The max/min provision values of the valueVector are also updated as in MAPE. The min is updated
when a smallest value has been observed. Max is updated when: (i) increase it by max*(1+g) if the
decided and actual value > b*max (ii) decrease it by max*(1-g) if the decided and actual value <
b*max.