NiaPy
NiaPy copied to clipboard
Real (engineering) optimization problems
NiaPy problems which consist of benchmark functions offer an excellent way of benchmarking nature-inspired algorithms quickly. However, many researchers now prefer to evaluate their algorithms also on real-world optimization (e.g. engineering) problems.
Thus, I recommend a new feature which involves the implementations of some popular engineering problems as for example:
- Welded beam design,
- Pressure vessel design,
- Speed reducer design, etc.
Some of these are presented in detail in following paper (Appendix): http://www.informatica.si/index.php/informatica/article/viewFile/204/201
Many of engineering problems are constrained in its nature. Is it possible to add some of the constraints-handling mechanisms in NiaPy?
@zStupan, what do you think?
@firefly-cpp Constraint handling can probably already be done by some sort of penalty method if you extend the Problem class, and something like ranking the solutions by degree of feasibility would take a lot of effort and restructuring of the whole library probably. I'll have a look at how other frameworks are doing it.
I have managed to go over range-based constraints problem resolution under NiaPy by modifying the problem evaluation function to accept 0-1 ranged input variables applying offset and scale for each one of them. I used Differential Evolution for this.