Giter Site home page Giter Site logo

avaneev / biteopt Goto Github PK

View Code? Open in Web Editor NEW
127.0 127.0 9.0 2.77 MB

Derivative-Free Global Optimization Method (C++, Python binding)

License: Other

C++ 65.37% C 34.63%
cma-es constraint-programming differential-evolution evolutionary-algorithms genetic-algorithm hyperparameter-optimization meta-heuristic metaheuristics mixed-integer-programming nelder-mead optimization optimization-algorithms optimization-methods optimization-tools stochastic-optimization-algorithms stochastic-optimizers

biteopt's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

biteopt's Issues

wrapParamReal gives parameters outside of range; a typo?

In wrapParamReal, is the line

return( maxv - rnd.get() * ( v - dv ));

supposed to be

return( maxv - rnd.get() * ( v - maxv ));

? This would mirror the symmetric case for when v < minv. In any case, the current code can return a parameter value outside the range. In my test case I have minv: -1000, maxv: 1000, so dv = 2000. The incoming sample is 1039.54, which reaches line 1802, giving 1000 - rnd.get() * (1039.54 - 2000). Since rnd.get() is in [0,1] and the parenthetical is negative, we get a resulting sample greater than 1000, the supposed maximum.

Thanks for biteopt! :)

Memory leak

In biteaux.h and biteopt.h there are "new" statements without corresponding "delete" statements.

For instance in
void updateDims( const int aParamCount, const int M = 6,
const int PopSize0 = 0 )

there is an deleteBuffers() call, but for "new CBiteOptWrap*[ OptCount ];"
there seems no corresponding delete.

This leads to a memory leak in fcmaes (where BitOpt is called here https://github.com/dietmarwo/fast-cma-es/blob/master/_fcmaescpp/biteoptimizer.cpp)

Is there a way I can prevent this leak by adapting the calling code in biteoptimizer.cpp ?

Benchmarking

Hello, I maintain the humpday package which I use to select optimizers. Biteopt was brought to my attention by this issue and I'd like to include it. It seems like the other benchmarking has gone very well.

I'm assuming I can use biteopt? You say there are zero hyper-parameters, which is good, but is there anything obvious I should know?
-Peter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.