How to choose between the multi-objective optimization plugins?

Can someone explain to me what are the main differences of the currently available multi-objective optimization plugins (Tunny, Opossum, and Wallacei)?

I read their documentations, but as a novice to this domain, I am now even more stumbled than when I started reading :wink: You’d almost need a PhD to understand it seems. So for me choosing one almost seems arbitrary.

Is there like a rule of thumb to choose one of them?
And how do you best select the machine learning algorithm (RBFMOpt, MACO, NSGA-2, etc…)

The context I want to use if for is a daylight simulation with multiple constraints.

Hi @crz_06,

Here you can find some nice examples of Lunchbox with good explanations and video tutorials.

and this one of crow gives a good explanation.

Hi @crz_06

I am a developer for Tunny.
First I will answer your last question.
Only Tunny supports optimizations with constraints among the plug-ins listed.

Next, regarding the algorithm to be used, I recommend using NSGA-2 when the objective function is more than 3 or when there are more than 10 variables.
NSGA-2 is a good first choice because it can be applied to a relatively wide range of methods. For that reason, Tunny, opossum, and Wallacei all support this algorithm.

Bayesian optimization in Tunny and RBFMOpt in Opossum are algorithms that may be able to find optimal solutions faster than NSGA-2 when the objective function and variables are smaller than the above.

Sorry the Tunny documentation is confusing. I will do my best to improve it.


@hiron do you have any examples that show optimization with constraints with Tunny? If so could you please share?

Hi @rolandoavillena1

Attached is a simple example of constrained optimization using Tunny.
Note that Tunny’s constraints include results that do not satisfy the constraints, as shown in the result image below.
However, Tunny finds more solutions that satisfy the constraints, as shown in the following graph of results with and without constraints.
This is because learning to determine the next optimization search point also requires the “constraints not satisfied” information.

Tunny’s constraint is considered satisfied if the value input in “Constraint” is less than or equal to zero.

with constraint (Gray points are those that do not satisfy the constraint)

without constraint (9.4 KB)


Thanks @hiron this is really helpful!

1 Like

@hiron, thanks for posting the example. I was trying to make a minimization of volume of a sphere given 3 constraints:

The problem is that when I pass the constraint I get this message. I tried to group them based on the recommendation on the window but it I get the same issue:

Any idea what am I doing wrong? Please if anyone can point me in the right direction.

Rolando (8.8 KB)

Hi @rolandoavillena1

I developed this with the intention that it would work if I set it up in the following way, but I’ve just tried it and it doesn’t work.
It’s a bug and I’ll let you know when I fix it.

If the value is greater than 0, the constraint will not be satisfied, so currently you can use the following to set the maximum value.

Hi @hiron and @rolandoavillena1
The method below appears to work for me to use multiple constraints

1 Like

Thanks for the response @hiron.

I will test it!

can we start optimization with tunny with a boolean toogle?

1 Like


can we start optimization with tunny with a boolean toogle?

Unfortunately, it is not possible at the moment, as various settings need to be specified in the UI when optimising. But it can be added to the development items.
Can you give me more details on the intended use?

1 Like

I am also desperately need any of optimalization plugin which can be triggered by boolean for instance. I see equivalent in Zombie Kangaroo solver. You set up the problem and fitness and then component give you result/s and you can postprocess it further even loop it.

1 Like

Thanks for the comment. I’ve been getting feedback for a while now that people want a zombie solver for optimization, so I’ll see if I can develop one.

1 Like