Multi objective optimization with Galapagos


I am trying to use Galapagos for multi-objective optimization. Due to the progression time, I have gotten an idea that to run the single objective optimization individually, and record the result. Then, the recorded result can be put in Galapagos with a certain weight, thus, run the ‘multi-objective’ optimization.

Does anyone know a way to record the single optimization result from Galapagos? So it could be used for further optimization.

Thank you for your help.


Is it true multi-objective searching or is it another case of this?

1 Like

Definitley check the thread linked by David.

But to your question:

Here’s a component that will write a line to a text file every time the Grasshopper document is recalculated. (With Galapagos, this will result in duplicate lines for some reason, but you can easily filter those.) (7.5 KB)

Hi David!

Thanks for your replying.
That was a really nice thread linked you shared with me.

BTW, I have also some problem with the single objective result from Galapagos. Could you please have a look at the link, maybe you know any reason that caused so.

Thank you.


On reflection, this won’t work anyway, because Galapagos looks at different solutions every time. The logger can still be useful, though!

Hi Thomas,

Thanks for the file that you shared with me.

I just have another problem regarding the result from Galapagos. From the thread link shared by David. I see you both are the senior user of Grasshopper and Galapagos.
Could you please have a look at the link, and give me some advice on it?

Thank you very much!


Hi Thomas,

I was thinking a way to record the optimization process, not only the result, but also the corresponding variation state. So after I am done with each single objective optimization, I can link them together with different weight factors, as a multi-objective optimization with Galapagos.


You should calculate the weighted sum first, and then run the optimization!
The other way around makes little sense.

Try combining your objectives, as discussed in the other thread, and/or try Octopus.
But, as I discuss in my paper, using Octopus (or Galapagos, for that matter) is just too slow for optimizing daylight and glare, so I recommend Opossum.

Oh, Opossum! I just downloaded it from Food4Rhino. You made the Opossum plug-in?! That is brilliant!

I will definitely read your paper and try the Opossum!

Haha, thanks! Let me know how it goes!

Hi Thomas,

After I read your paper, I tried to test Opossum with a simple model. Which I tried to get the max. UDI by varying the louver shading system.

However, after 981 iterations, the optimization process stopped. All the result objectives have the same value.
I am not sure if I understood correctly how Opossum works. Do you have any idea?

Form Finding - (47.2 KB)

BTW, another question regarding your paper ‘Model-based Optimization for Architectural
Design: Optimizing Daylight and Glare in Grasshopper’. You have mentioned that DIRECT search can be used when optimization with only small numbers of variables. So, does that mean in this case, the Goat is also an option? Or, when we are doing more complex and time-intensive daylighting problems, Opossum would be better?

Thank you.


Hi Yanting,

The daylight simulations have a Run input.
In your definition, there is a Button attached to that input.

This means that the simulation will not run unless the button is pressed.
(That’s true for a lot of simulation components.)
This won’t work with Opossum, or any other optimization tools.

You should replace the Button with a Boolean toggle, which should be True when you are running an optimization.

In the future, you should to a simple check: Lock the definition, change a slider value, and unlock it. (If you drag the slider it will cause multiple simulations.) If no simulation triggers and the objective doesn’t update, something is wrong.


PS: Yes, that’s what I meant in terms of DIRECT and Opossum.
But both need simulation results to do anything :wink:

1 Like

Hi Thomas,

Thank you for your answer.

I tried to use Opossum to do the optimization after I replaced the ‘Button’ with a ‘Toggle’. Here are some questions I have till now:

  1. Does the ‘Optimization Type’ matter?
    I read your paper, you chose to use Minimize when you optimize the UDI, through you had to translate it as ’ 1-UDI’

  2. My optimization still does not show any convergence as the example you have, though the iteration ran for over 900 times. (the picture here is just an example, my file crashed when I was checking the result)

3.How would you check the optimization result?
From Opossum, at the end of iterations, it will only pop up a window to show the ‘best value’. Then, check the result list, there will only state some numbers.
**How would you be able to identify the best result with the corresponding variation?**Is there any way to visualize the result after the optimization is done?

4.The plugin crashed a few times already, whenever I check the result list and double-click the variation number on the list. Do you know any reason for that?

Hope to hear from you soon. :smile:


No, but optimization problems are more commonly formulated as minimization, that’s why I prefer to do it that way.

It shows some convergence! I’m not sure what you mean with 900 times. In the picture I only see 31 iterations, i.e., simulations.

The problem is probably too simple (only two variables), and the climate (Denmark) makes it hard to get super good UDI. I did my tests with Singapore climate.

Opossum automatically resets to the best solution.

Hmm, there’s something wrong with the results list on this problem.
Probably it’s the combination with DIVA.
It’s a new feature, so it’s still a little buggy.
But you don’t really need it if your’e only interested in the best solution.

Hi Thomas,

Sorry to get back to you so late. Thanks for your answer :smiley:

Thomas WortmannParamDesSing19h ParamDesSing

It shows some convergence! I’m not sure what you mean with 900 times. In the picture I only see 31 iterations, i.e., simulations.

The problem is probably too simple (only two variables), and the climate (Denmark) makes it hard to get super good UDI. I did my tests with Singapore climate.

In the picture, I just wanted to show you an example to say that the result did not converge. Because after I was done with the whole optimization with nearly 1000 simulations, the program crashed. :joy: (That is why you see only 30 iterations on the picture I sent.) But the result graph did not show any convergence in my case.

You have said that you tried with Singapore climate, then you got the best result.
Do you think it is because of the Climate? So I do not get any convergence? (the same thing happened with Galapagos)

Thank you.


Yes. When two different optimization algorithms give you the same result, it most likely has something to to with the problem definition rather than the algorithms.