Update to include SRACOS in Python and Java version
Bugs fixed in Python version
A theoretically-grounded derivative-free optimization method, born from a statistical view of evolutionary algorithms. More details can be found in the paper:
Yang Yu, Hong Qian, and Yi-Qi Hu. Derivative-Free Optimization via Classification. In: Proceedings of the 30th AAAI Conference on Artificial Intelligence (AAAI'16), Phoenix, AZ, 2016 (PDF file)
Other downloadable sources: http://lamda.nju.edu.cn/code_RACOS.ashx and http://cs.nju.edu.cn/yuy/code_racos.ashx
SRACOS is the online version of RACOS, which can be much faster than RACOS in online scenarios, where solutions have to be evaluated one after another. For example, on policy optimization in OpenAI Gym tasks with 2000 iterations, the experiment comparison is as the figure below, normalzied by the performance of SRACOS:
SRACOS is currently available only in the Python and Java version by running RACOS as
OnlineSwitch = true
racos.ContinueOpt(Sphere, SampleSize, MaxIteration, PositiveNum, RandProbability, UncertainBits, OnlineSwitch)
Continue con = new Continue(t);
con.TurnOnSequentialRacos();
latest python version of RACOS is in an on going project ZOOpt: https://github.com/polixir/ZOOpt
The codes are released under the GNU GPL 2.0 license. For commercial purposes, please contact Dr. Yang Yu (yuy@nju.edu.cn) or Prof. Zhi-Hua Zhou (zhouzh@nju.edu.cn)