EXO10 - BoTorch Multi-Objective Optimization
Question
Starting from the reference files (in directory examples/cabin):
- Replace the random optimizer with the new BoTorch multi-objective optimizer
- Compare the performance between random sampling and BoTorch optimization
- Analyze the Pareto frontier obtained with BoTorch
- Visualize the convergence of the optimization process
Objectives
- Life Cycle Cost (minimize)
- Life Cycle Assessment - CO2 emissions (minimize)
- Thermal Comfort (minimize)
Parameters to test
- n_initial_points: 5, 10, 15
- n_optimization_iterations: 10, 20, 30
- acquisition_function: "qEHVI"
- batch_size: 1, 2
Expected outcomes
- Better Pareto frontier compared to random sampling
- Faster convergence to good solutions
- More efficient exploration of the design space
- Robust handling of discrete unordered variables
Hint(s)
- Look at the botorch_example.py file for reference implementation
- The BoTorch optimizer automatically handles discrete variables through encoding
- Monitor the hypervolume improvement during optimization
- Compare the number of function evaluations needed to reach similar quality solutions