MVRSM
MVRSM algorithm for optimising mixed-variable expensive cost functions.
Install / Use
/learn @lbliek/MVRSMREADME
MVRSM
MVRSM uses a piece-wise linear surrogate model for optimisation of expensive cost functions with continuous and discrete variables.
MVRSM_minimize(obj, x0, lb, ub, num_int, max_evals, rand_evals) solves the minimisation problem
min f(x)
st. lb<=x<=ub, the first num_int variables of x are integer
where obj is the objective function, x0 the initial guess,
lb and ub are the bounds, num_int is the number of integer variables,
and max_evals is the maximum number of objective evaluations (rand_evals of these
are random evaluations).
It is the mixed-variable version that is related to the DONE algorithm, meant for problems with both continuous and discrete variables.
Laurens Bliek, 06-03-2020
UPDATE: MVRSM now contains a multi-objective version to deal with more than one objective, see the branch 'multi-objective'
How to cite
@inproceedings{10.1145/3449726.3463136,
author = {Bliek, Laurens and Guijt, Arthur and Verwer, Sicco and de Weerdt, Mathijs},
title = {Black-box mixed-variable optimisation using a surrogate model that satisfies integer constraints},
year = {2021},
isbn = {9781450383516},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3449726.3463136},
doi = {10.1145/3449726.3463136},
booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference Companion},
pages = {1851–1859},
numpages = {9},
location = {Lille, France},
series = {GECCO '21}
}
Dependencies
- numpy
- scipy
- matplotlib
- time
- For comparison with other methods: hyperopt, gpy, pandas
How to run
Run the file demo.py directly, or indicate an existing test function to optimise, for example:
python demo.py -f dim10Rosenbrock -n 10 -tl 4
Here, -f is the function to be optimised, -n is the number of iterations, and -tl is the total number of runs.
Currently the following test functions are already supported:
'func2C', 'func3C', 'dim10Rosenbrock', 'linearmivabo', 'dim53Rosenbrock', 'dim53Ackley', 'dim238Rosenbrock'
Afterward, use plot_result.py for visualisation (set the correct folder and other parameters inside the file).
Please contact l.bliek@tue.nl if you have any questions.
Related Skills
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
mentoring-juniors
Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.
groundhog
399Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
isf-agent
a repo for an agent that helps researchers apply for isf funding
