Aller au contenu

EXO10 - BoTorch Multi-Objective Optimization

Question

Starting from the reference files (in directory examples/cabin):

  1. Replace the random optimizer with the new BoTorch multi-objective optimizer
  2. Compare the performance between random sampling and BoTorch optimization
  3. Analyze the Pareto frontier obtained with BoTorch
  4. 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

  1. Better Pareto frontier compared to random sampling
  2. Faster convergence to good solutions
  3. More efficient exploration of the design space
  4. 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