thouska / spotpy

A Statistical Parameter Optimization Tool
https://spotpy.readthedocs.io/en/latest/
MIT License
254 stars 152 forks source link

Is global multi-objective optimization with SCEUA possible? #206

Closed mmmatthew closed 5 years ago

mmmatthew commented 5 years ago

In the tutorial hints it is written:

If you have more than one series of observations, or simulation or objectivefunction: You can include them into your analysis, if you use 'MC', 'LHS' or 'FAST'

Are these the only algorithms that can handle multiple objective functions?

thouska commented 5 years ago

Hi @mmmatthew , for every implemted algorithm you can return several objective functions. They will all be saved in the spotpy output file. However, if you use a optimization algorithm, so any but MC, LHS or FAST, only the first objective function that you return will be used for optimization.

mmmatthew commented 5 years ago

Hi @thouska, thanks for the quick reply. So, if I combine multiple objective functions into a single one with, say, a weighted sum, then this counts as a single objective function and should work with SCEUA?

thouska commented 5 years ago

Yes, this is correct. You can do more or less whatever you want in the def objectivefunction as long as you return a value that tells you something about your model performance. The boundaries of this value shoud be somewhere between 0 (perfect fit) and +inf (no fit at all).
As you point out, this value can also be generated by combining different objective functions.