coin-or / metslib Goto Github PK
View Code? Open in Web Editor NEWAn Open Source Tabu Search Metaheuristic framework in C++
License: GNU General Public License v3.0
An Open Source Tabu Search Metaheuristic framework in C++
License: GNU General Public License v3.0
METSlib ======= METSlib: a metaheuristic framework. ----------------------------------- This project is under development and, althought useful, must be reviewed to be ready for anyone to use. METSlib is an OO (Object Oriented) metaheuristics optimization framework in C++ designed to make easy implementing or adapting models. The model is modular: all the implemented search algorithms can be applied to the same model. Once the model is implemented one can test some Tabu Search Strategies or Simulated Annealing or other local search based search strategies. METSlib is Open Source and is covered by the GNU GPL license or, at your option, by the Common Public License 1.0. Commercial licensing or custom development can be considered by the author upon request. METSlib implements the basics of some metaheuristics algorithm: * Random Restart Local Search * Variable Neighborhood Search * Iterated Local Search * Simulated Annealing (with linear, exponential and custom cooling schedule) * Tabu Search. In its current state, the main focus of the library is on Tabu Search, other algorithm may have some rough edges. To use any algorithm you must implement an objective function, a neighborhood (move manager) and some moves. For each algorithm you are free to use some of the already implemented termination criteria and/os cooling schedule (for SA) and/or tabu lists and aspiration criteria (for TS), or you can implement you own specialized versions. The object oriented structure was carefully thought out to be highly reusable and the algorithm where reviewed by more than one person and more than one time. This OO library was inspired by the OTS library released by the Coin-OR project. You may want to read https://github.coin/coin-or/metslib Complete API Documentation -------------------------- - https://coin-or.github.io/metslib/docs/stable/0.5/html/ Tutorial -------- A METSlib Tutorial is available here: - https://coin-or.github.io/metslib/docs/stable/0.5/metslib-tr.pdf You can also look in the distributed examples in project https://github.com/coin-or/metslib-examples. Contact Information ------------------- This library was used in different projects by different developers and proved quite useful to implement a new model (or to adapt an old one) without re-inventing the wheel each time you need to change the algorithm or the neighborhood. At the same time it's young so I'll be happy to help you while implementing the nuts and bolts of your own model since documentation is still a work in progress. Feel free to write an email to <[email protected]>. Need help? Willing to help? --------------------------- Join the mailing list http://list.coin-or.org/mailman/listinfo/metslib and start contributing Credits ------- I'd like to thank all the people at the Global Optimization Laboratory (http://gol.dsi.unifi.it) for continuous support and the many useful discussions, in particular Fabio Schoen, Bernardetta Addis and Paola Cappanera. The automake template was borrowed from some projects by Murray Cumming <[email protected]> and Cedric Gustin <[email protected]> If you use the library you should cite it in your work: ======================================================= - Mirko Maischberger, "COIN-OR METSlib, a Metaheuristics Framework in Modern C++" April 2011 BibTex Entry: @misc{metslib2011, author={Mirko Maischberger}, title={{COIN-OR} {METSlib}, a Metaheuristics Framework in Modern C++}, month={April}, year={2011}, howpublished = {https://coin-or.github.io/metslib/docs/stable/0.5/metslib-tr.pdf}, } - Mirko Maischberger
Just wanna have a try, but meet the following error message:
config.status: error: cannot find input file: `Makefile.in'
Issue created by migration from Trac.
Original creator: rmattes
Original creation time: 2013-08-11 16:45:06
Assignee: @baol
In the metslib 0.5.3 release, abstract_search.hh only includes CPL copyright information. I wanted to verify that this file is indeed dual-licensed between GPLv3+ and CPL like the rest of the code.
AUTHORS autom4te.cache config config.log configure COPYING debian INSTALL Makefile.am metslib.pc.in README shave.in test
➜ metslib-trunk-2020-05-13 ./autogen.sh
configure.ac:40: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.
./lib/autoconf/general.m4:2434: AC_DIAGNOSE is expanded from...
aclocal.m4:705: AM_INIT_AUTOMAKE is expanded from...
configure.ac:40: the top level
configure.ac:52: warning: The macro `AC_LANG_CPLUSPLUS' is obsolete.
configure.ac:52: You should run autoupdate.
./lib/autoconf/c.m4:262: AC_LANG_CPLUSPLUS is expanded from...
configure.ac:52: the top level
configure.ac:69: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:69: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
configure.ac:69: the top level
configure.ac:107: warning: AC_OUTPUT should be used without arguments.
configure.ac:107: You should run autoupdate.
configure.ac:40: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated. For more info, see:
configure.ac:40: https://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.ac:105: error: required file 'config/ltmain.sh' not found
metslib/Makefile.am:10: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
autoreconf: error: automake failed with exit status: 1
Issue created by migration from Trac.
Original creator: vdebuen
Original creation time: 2012-01-27 12:22:17
Assignee: @baol
Version: 0.4.3
Hello
(Sorry for my poor english)
I'm Victor de Buen, from Bayes Forecast - Spain, the main developer of open source project TOL, and I'm thinking to create a port package to METSlib to be used by TOL users in order to solve complex problems of real bussines world.
In this kind of problems, we can do almost no assumption over domain, restrictions nor behaviour of variables and cost function. Some times, evaluation of cost function is not analytical, you cannot express as a mathematical formulae, you have only a black-box process that takes a set of parameters and returns a value.
For continuous domain problems we use IPOPT, when gradient and hessian are available, and NLOPT when we have only the gradient or even a non continuous cost function.
We have no speciallized method for integer or mixed-integer problems, and I think that meta-heuristic algorithms are the best option in real world problems.
I supose that algorithms will be much more efficient when user gives specific methods to manage moving, and other algorithm related methods, but I'm afraid that many times user don't know almost anything about the problem except the cost function. However, the CPU time is everytime cheaper, so it could be sufficient having a low convergence rating.
I've readed the documentation, the source code and the examples and I believe that is a good option for TOL due to it's written in C and have a wide battery of algorithms. I don't know much about meta-heuristic methods and I don't understand very well the neighbourhood-related methods. It's mandatory to define a problem-dependent moving methods, or it exists a default one that works for a black-box cost function? I have the same doubt about specific methods to configuration of algorithms like tabu related methods.
Thanks in advance.
Issue created by migration from Trac.
Original creator: FabioKnupp
Original creation time: 2015-05-13 17:29:50
Assignee: @baol
Version: 0.5.1
Keywords: install
Poderiam por favor me mandar um explicativo de como instalar a biblioteca no windows? Uso a IDE codeblocks mingw 4.8
agradeço desde já
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.