2D Schaffer Function with Objective Weights

A simple example on how to use multi-objective optimization is shown. The 2D Schaffer function is used. In the plot you can see that all points are on the Pareto front. However, since we set the objective weights, you can notice that SMAC prioritizes the second objective over the first one.

Schaffer 2D
[INFO][abstract_initial_design.py:147] Using 10 initial design configurations and 0 additional configurations.
[INFO][abstract_intensifier.py:305] Using only one seed for deterministic scenario.
[INFO][abstract_intensifier.py:515] Added config 91bfd9 as new incumbent because there are no incumbents yet.
[INFO][abstract_intensifier.py:598] Config 9d232c is a new incumbent. Total number of incumbents: 2.
[INFO][abstract_intensifier.py:598] Config 427430 is a new incumbent. Total number of incumbents: 3.
[INFO][abstract_intensifier.py:598] Config 631e51 is a new incumbent. Total number of incumbents: 4.
[INFO][abstract_intensifier.py:598] Config c4bc7d is a new incumbent. Total number of incumbents: 5.
[INFO][abstract_intensifier.py:598] Config d25f7e is a new incumbent. Total number of incumbents: 6.
[INFO][abstract_intensifier.py:598] Config ddd02b is a new incumbent. Total number of incumbents: 7.
[INFO][abstract_intensifier.py:598] Config 89e67c is a new incumbent. Total number of incumbents: 8.
[INFO][abstract_intensifier.py:598] Config c22923 is a new incumbent. Total number of incumbents: 9.
[INFO][abstract_intensifier.py:598] Config 44c9c5 is a new incumbent. Total number of incumbents: 10.
[INFO][abstract_intensifier.py:598] Config ae3488 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 055dc0 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config b6fd7c is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config e66eef is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 3f38b6 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 7a68da is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 5b0023 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config be7be9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config cf7b9e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 261ae6 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 916981 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config a493de is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 51f5b1 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 5bb5d6 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config a0a42d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config f5781e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config cd512c is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 52319d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 96258f is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config e458eb is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 48e226 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 925028 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 400482 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config ea761d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 199e42 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 1d89c9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 157dde is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 4eabb2 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 9f5bb9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 610e96 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 792399 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config cd1a84 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 143e8d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config bc5507 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config d2073d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 6d39c3 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 310f3d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config ee50f0 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 191396 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config aa13c9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][smbo.py:319] Finished 50 trials.
[INFO][abstract_intensifier.py:598] Config 51c6a1 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 6aa208 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 7c08ce is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 0f10be is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config baab59 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 1118e9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 4abd42 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 146491 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config d52695 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 4f3e25 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 6dfe14 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config ed4f3e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 5a3ff6 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 37ee26 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 1e385c is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 460b13 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config efd57f is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 4b3f4b is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 37a50d is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 49336c is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config c1bea5 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config e4f600 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 8db6b9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 00947e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 623aaa is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config e7652a is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config c17b3b is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config c9a4ab is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config c78bba is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config f523f5 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config d5d9b3 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 050956 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 04cf46 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config cd933e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 6a4a47 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 7cab7f is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config a882a8 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config cfe943 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 161437 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config eb7876 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 257ec9 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 0038ea is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config b779c7 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 9621a8 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 26d5a4 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config fff544 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config ea6007 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 850574 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 405f05 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 016225 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][smbo.py:319] Finished 100 trials.
[INFO][abstract_intensifier.py:598] Config c6f7e7 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config b62dbe is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 5b4ebd is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config dff21b is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config c13f17 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config ef6d00 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 4051b5 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 03d947 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config d2a8ac is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 4ee072 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config e4515e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config a241bb is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config c2b5f5 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 2b4703 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 1d3f71 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 09c690 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 980177 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 18b4fb is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 5889c8 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 38990f is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config af00a5 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 6ea6dc is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config caf420 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config be6467 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config a2cbcd is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config f3c58a is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 31cac4 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 04b3b4 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 62390f is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config f4d7f6 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config e6e911 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 46a579 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 973900 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 818cbb is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 7c3c4a is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 6582db is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config d6935c is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config cd4c2b is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config dd5f9b is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 8cae70 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 759585 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 470bcf is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 36943e is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 624738 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 0d9f14 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 2f3430 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 2215da is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 80f804 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config 9ceac5 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][abstract_intensifier.py:598] Config b49511 is a new incumbent. Total number of incumbents: 11.
[INFO][abstract_intensifier.py:623] Removed one incumbent using crowding distance because more than 10 are available.
[INFO][smbo.py:319] Finished 150 trials.
[INFO][smbo.py:327] Configuration budget is exhausted:
[INFO][smbo.py:328] --- Remaining wallclock time: inf
[INFO][smbo.py:329] --- Remaining cpu time: inf
[INFO][smbo.py:330] --- Remaining trials: 0
[INFO][abstract_intensifier.py:305] Using only one seed for deterministic scenario.
Validated costs from default config:
--- [0. 4.]

Validated costs from the Pareto front (incumbents):
--- [0.01538581 3.51922763]
--- [3.98157338e+00 2.12703017e-05]
--- [0.66494111 1.40318427]
--- [0.27572929 2.17533202]
--- [1.23793885 0.78743083]
--- [0.09228592 2.87714199]
--- [3.16368713 0.04898446]
--- [2.5425014  0.16441216]
--- [1.56462636 0.56122534]
--- [2.01575389 0.33666398]

from __future__ import annotations

from typing import Dict, Tuple

import numpy as np
from ConfigSpace import Configuration, ConfigurationSpace
from matplotlib import pyplot as plt

from smac import HyperparameterOptimizationFacade as HPOFacade
from smac import Scenario
from smac.facade import AbstractFacade

__copyright__ = "Copyright 2021, AutoML.org Freiburg-Hannover"
__license__ = "3-clause BSD"


def schaffer(x: float) -> Tuple[float, float]:
    f1 = np.square(x)
    f2 = np.square(np.sqrt(f1) - 2)

    return f1, f2


def target_function(config: Configuration, seed: int = 0) -> Dict[str, float]:
    f1, f2 = schaffer(config["x"])
    return {"metric1": f1, "metric2": f2}


def plot_from_smac(smac: AbstractFacade) -> None:
    plt.figure()
    configs = smac.runhistory.get_configs()
    incumbents = smac.intensifier.get_incumbents()

    for i, config in enumerate(configs):
        if config in incumbents:
            continue

        label = None
        if i == 0:
            label = "Configuration"

        x = config["x"]
        f1, f2 = schaffer(x)
        plt.scatter(f1, f2, c="blue", alpha=0.1, marker="o", zorder=3000, label=label)

    for i, config in enumerate(incumbents):
        label = None
        if i == 0:
            label = "Incumbent"

        x = config["x"]
        f1, f2 = schaffer(x)
        plt.scatter(f1, f2, c="red", alpha=1, marker="x", zorder=3000, label=label)

    plt.xlabel("f1")
    plt.ylabel("f2")
    plt.title("Schaffer 2D")
    plt.legend()

    plt.show()


if __name__ == "__main__":
    # Simple configspace
    cs = ConfigurationSpace({"x": (-2.0, 2.0)})

    # Scenario object
    scenario = Scenario(
        configspace=cs,
        deterministic=True,  # Only one seed
        n_trials=150,
        objectives=["metric1", "metric2"],
    )

    smac = HPOFacade(
        scenario=scenario,
        target_function=target_function,
        multi_objective_algorithm=HPOFacade.get_multi_objective_algorithm(
            scenario,
            objective_weights=[1, 2],  # Weight metric2 twice as much as metric1
        ),
        overwrite=True,
    )
    incumbents = smac.optimize()

    # Get cost of default configuration
    default_cost = smac.validate(cs.get_default_configuration())
    print(f"Validated costs from default config: \n--- {default_cost}\n")

    print("Validated costs from the Pareto front (incumbents):")
    for incumbent in incumbents:
        cost = smac.validate(incumbent)
        print("---", cost)

    # Plot the evaluated points
    plot_from_smac(smac)

Total running time of the script: (0 minutes 8.529 seconds)