.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/multi_objective/plot_mnbi_fonseca.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_multi_objective_plot_mnbi_fonseca.py: Multi-objective Fonseca-Fleming example with the mNBI algorithm =============================================================== In this example, the modified Normal Boundary Intersection algorithm (mNBI) is used to solve the :class:`.FonsecaFleming` optimization problem :cite:`fonseca1995overview`: .. math:: \begin{aligned} \text{minimize the objective function } & f_1(x) = 1 - exp(-\sum_{i=1}^{d}((x_i - 1 / sqrt(d)) ^ 2)) \\ & f_2(x) = 1 + exp(-\sum_{i=1}^{d}((x_i + 1 / sqrt(d)) ^ 2)) \\ \text{with respect to the design variables }&x\\ \text{subject to the bound constraint} & x\in[-4,4]^d \end{aligned} We also show how the Pareto front can be refined. .. GENERATED FROM PYTHON SOURCE LINES 40-51 .. code-block:: Python from __future__ import annotations from gemseo import configure_logger from gemseo import execute_algo from gemseo import execute_post from gemseo.problems.analytical.fonseca_fleming import FonsecaFleming configure_logger() .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 52-58 Solve the Fonseca-Fleming optimization problem ---------------------------------------------- The 3 sub-optimization problems of mNBI are solved with SLSQP, a gradient-based optimization algorithm from the NLOPT library, with a maximum of 100 iterations. The analytic gradients are provided. .. GENERATED FROM PYTHON SOURCE LINES 58-67 .. code-block:: Python opt_problem = FonsecaFleming() result = execute_algo( opt_problem, "MNBI", max_iter=1000, sub_optim_max_iter=100, n_sub_optim=3, sub_optim_algo="NLOPT_SLSQP", ) .. rst-class:: sphx-glr-script-out .. code-block:: none INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize FonsecaFleming INFO - 13:53:09: with respect to x INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: Solving optimization problem with algorithm MNBI: INFO - 13:53:09: Searching for the individual optimum of each objective INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize f_0 INFO - 13:53:09: with respect to x INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: 1%| | 6/1000 [00:00<00:03, 311.04 it/sec, obj=[3.45593287e-09 9.81688668e-01]] INFO - 13:53:09: 1%| | 7/1000 [00:00<00:02, 341.27 it/sec, obj=[0. 0.98168436]] INFO - 13:53:09: 1%| | 8/1000 [00:00<00:02, 369.28 it/sec, obj=[0. 0.98168436]] INFO - 13:53:09: 1%| | 9/1000 [00:00<00:02, 408.97 it/sec, obj=[0. 0.98168436]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 11 INFO - 13:53:09: Solution: INFO - 13:53:09: Objective: 0.0 INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+--------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+--------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.577350268484795 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.577350268484795 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.5773502684847949 | 4 | float | INFO - 13:53:09: +------+-------------+--------------------+-------------+-------+ INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize f_1 INFO - 13:53:09: with respect to x INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: 1%| | 10/1000 [00:00<00:03, 254.45 it/sec, obj=[0.95084904 0.06744148]] INFO - 13:53:09: 1%| | 11/1000 [00:00<00:03, 271.46 it/sec, obj=[0.99997026 0.77891095]] INFO - 13:53:09: 1%| | 12/1000 [00:00<00:03, 293.59 it/sec, obj=[0.98859846 0.01317993]] INFO - 13:53:09: 1%|▏ | 13/1000 [00:00<00:03, 299.85 it/sec, obj=[9.81345634e-01 2.10356748e-05]] INFO - 13:53:09: 1%|▏ | 14/1000 [00:00<00:03, 314.07 it/sec, obj=[9.81688668e-01 3.45593287e-09]] INFO - 13:53:09: 2%|▏ | 15/1000 [00:00<00:03, 327.81 it/sec, obj=[0.98168436 0. ]] INFO - 13:53:09: 2%|▏ | 16/1000 [00:00<00:02, 340.57 it/sec, obj=[0.98168436 0. ]] INFO - 13:53:09: 2%|▏ | 17/1000 [00:00<00:02, 359.22 it/sec, obj=[0.98168436 0. ]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 11 INFO - 13:53:09: Solution: INFO - 13:53:09: Objective: 0.0 INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.577350268484795 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.577350268484795 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.5773502684847949 | 4 | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.5 0.5] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: | t | -inf | 0 | inf | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: 2%|▏ | 18/1000 [00:00<00:03, 268.76 it/sec, obj=[0.63212056 0.63212056]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 4 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.1439142599466381 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [ 8.32667268e-17 -1.38777878e-16] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+------------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+------------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -6.407485192731112e-17 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -6.407485192731112e-17 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -6.407485192731112e-17 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1439142599466381 | inf | float | INFO - 13:53:09: +------+-------------+------------------------+-------------+-------+ INFO - 13:53:09: 2%|▏ | 19/1000 [00:00<00:04, 229.35 it/sec, obj=[0.63212056 0.63212056]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: None INFO - 13:53:09: Number of calls to the objective function by the optimizer: 26 INFO - 13:53:09: Solution: INFO - 13:53:09: Objective: 0.8939534673502061 INFO - 13:53:09: Pareto efficient solutions: INFO - 13:53:09: Pareto optimal points : 6 / 19 INFO - 13:53:09: Utopia point : [0. 0.] INFO - 13:53:09: Compromise solution (closest to utopia) : [[0.06744148 0.95084904] INFO - 13:53:09: [0.95084904 0.06744148]] INFO - 13:53:09: Distance from utopia : 0.9532377715846151 INFO - 13:53:09: Objective values: INFO - 13:53:09: +------+----------+----------+-----------+-----------+ INFO - 13:53:09: | name | 1 | 2 | 3 | 4 | INFO - 13:53:09: +------+----------+----------+-----------+-----------+ INFO - 13:53:09: | 1 | 0 | 0.981684 | 0.0674415 | 0.950849 | INFO - 13:53:09: | 2 | 0.981684 | 0 | 0.950849 | 0.0674415 | INFO - 13:53:09: +------+----------+----------+-----------+-----------+ INFO - 13:53:09: Design space: INFO - 13:53:09: +-------+-------------+---------+----------+----------+-----------+-------------+-------+ INFO - 13:53:09: | name | lower_bound | 1 | 2 | 3 | 4 | upper_bound | type | INFO - 13:53:09: +-------+-------------+---------+----------+----------+-----------+-------------+-------+ INFO - 13:53:09: | x (1) | -4 | 0.57735 | -0.57735 | 0.424791 | -0.424791 | 4 | float | INFO - 13:53:09: | x (2) | -4 | 0.57735 | -0.57735 | 0.424791 | -0.424791 | 4 | float | INFO - 13:53:09: | x (3) | -4 | 0.57735 | -0.57735 | 0.424791 | -0.424791 | 4 | float | INFO - 13:53:09: +-------+-------------+---------+----------+----------+-----------+-------------+-------+ .. GENERATED FROM PYTHON SOURCE LINES 68-74 Display the Pareto front ^^^^^^^^^^^^^^^^^^^^^^^^ |g| detects the Pareto optimal points and the dominated ones. The Fonseca-Fleming problem is interesting because its Pareto front is not convex. The mNBI algorithm successfully computes it. .. GENERATED FROM PYTHON SOURCE LINES 74-77 .. code-block:: Python execute_post(opt_problem, "ParetoFront", save=False, show=True) .. image-sg:: /examples/multi_objective/images/sphx_glr_plot_mnbi_fonseca_001.png :alt: Pareto front :srcset: /examples/multi_objective/images/sphx_glr_plot_mnbi_fonseca_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 78-81 Solve the Fonseca-Fleming optimization problem more finely ---------------------------------------------------------- The Pareto front is then refined with 10 sub-optimizations instead of 3. .. GENERATED FROM PYTHON SOURCE LINES 81-90 .. code-block:: Python opt_problem = FonsecaFleming() result = execute_algo( opt_problem, "MNBI", max_iter=1000, sub_optim_max_iter=100, n_sub_optim=10, sub_optim_algo="NLOPT_SLSQP", ) .. rst-class:: sphx-glr-script-out .. code-block:: none INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize FonsecaFleming INFO - 13:53:09: with respect to x INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: Solving optimization problem with algorithm MNBI: INFO - 13:53:09: Searching for the individual optimum of each objective INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize f_0 INFO - 13:53:09: with respect to x INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: 1%| | 6/1000 [00:00<00:03, 309.22 it/sec, obj=[3.45593287e-09 9.81688668e-01]] INFO - 13:53:09: 1%| | 7/1000 [00:00<00:02, 339.32 it/sec, obj=[0. 0.98168436]] INFO - 13:53:09: 1%| | 8/1000 [00:00<00:02, 366.90 it/sec, obj=[0. 0.98168436]] INFO - 13:53:09: 1%| | 9/1000 [00:00<00:02, 406.42 it/sec, obj=[0. 0.98168436]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 11 INFO - 13:53:09: Solution: INFO - 13:53:09: Objective: 0.0 INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+--------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+--------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.577350268484795 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.577350268484795 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.5773502684847949 | 4 | float | INFO - 13:53:09: +------+-------------+--------------------+-------------+-------+ INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize f_1 INFO - 13:53:09: with respect to x INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: 1%| | 10/1000 [00:00<00:03, 257.87 it/sec, obj=[0.95084904 0.06744148]] INFO - 13:53:09: 1%| | 11/1000 [00:00<00:03, 275.31 it/sec, obj=[0.99997026 0.77891095]] INFO - 13:53:09: 1%| | 12/1000 [00:00<00:03, 297.78 it/sec, obj=[0.98859846 0.01317993]] INFO - 13:53:09: 1%|▏ | 13/1000 [00:00<00:03, 304.12 it/sec, obj=[9.81345634e-01 2.10356748e-05]] INFO - 13:53:09: 1%|▏ | 14/1000 [00:00<00:03, 318.43 it/sec, obj=[9.81688668e-01 3.45593287e-09]] INFO - 13:53:09: 2%|▏ | 15/1000 [00:00<00:02, 332.03 it/sec, obj=[0.98168436 0. ]] INFO - 13:53:09: 2%|▏ | 16/1000 [00:00<00:02, 344.93 it/sec, obj=[0.98168436 0. ]] INFO - 13:53:09: 2%|▏ | 17/1000 [00:00<00:02, 363.65 it/sec, obj=[0.98168436 0. ]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 11 INFO - 13:53:09: Solution: INFO - 13:53:09: Objective: 0.0 INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.577350268484795 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.577350268484795 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.5773502684847949 | 4 | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.11111111 0.88888889] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0 | 4 | float | INFO - 13:53:09: | t | -inf | 0 | inf | float | INFO - 13:53:09: +------+-------------+-------+-------------+-------+ INFO - 13:53:09: 2%|▏ | 18/1000 [00:00<00:03, 273.56 it/sec, obj=[0.90043834 0.20664322]] INFO - 13:53:09: 2%|▏ | 19/1000 [00:00<00:03, 281.78 it/sec, obj=[0.91873293 0.15869784]] INFO - 13:53:09: 2%|▏ | 20/1000 [00:00<00:03, 289.92 it/sec, obj=[0.91966962 0.15614908]] INFO - 13:53:09: 2%|▏ | 21/1000 [00:00<00:03, 296.43 it/sec, obj=[0.91967277 0.15614049]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 7 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.04794255057736304 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [-9.53889745e-14 1.10154941e-13] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.3394642613023262 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.3394642613023261 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.339464261302326 | 4 | float | INFO - 13:53:09: | t | -inf | -0.04794255057736304 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.22222222 0.77777778] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.3394642613023262 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.3394642613023261 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.339464261302326 | 4 | float | INFO - 13:53:09: | t | -inf | -0.04794255057736304 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: 2%|▏ | 22/1000 [00:00<00:03, 247.47 it/sec, obj=[0.91967277 0.15614049]] INFO - 13:53:09: 2%|▏ | 23/1000 [00:00<00:03, 254.76 it/sec, obj=[0.84203912 0.33739501]] INFO - 13:53:09: 2%|▏ | 24/1000 [00:00<00:03, 261.73 it/sec, obj=[0.85527677 0.31046303]] INFO - 13:53:09: 2%|▎ | 25/1000 [00:00<00:03, 268.14 it/sec, obj=[0.85546004 0.31007996]] INFO - 13:53:09: 3%|▎ | 26/1000 [00:00<00:03, 274.26 it/sec, obj=[0.85546008 0.31007988]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 8 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.09364292443480814 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [ 1.03119223e-09 -4.66331571e-10] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.2256025149680226 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.2256025149680226 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.2256025149680226 | 4 | float | INFO - 13:53:09: | t | -inf | -0.09364292443480814 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.33333333 0.66666667] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.2256025149680226 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.2256025149680226 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.2256025149680226 | 4 | float | INFO - 13:53:09: | t | -inf | -0.09364292443480814 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: 3%|▎ | 27/1000 [00:00<00:04, 238.86 it/sec, obj=[0.85546008 0.31007987]] INFO - 13:53:09: 3%|▎ | 28/1000 [00:00<00:03, 244.52 it/sec, obj=[0.77161692 0.45984451]] INFO - 13:53:09: 3%|▎ | 29/1000 [00:00<00:03, 249.83 it/sec, obj=[0.77767797 0.45048948]] INFO - 13:53:09: 3%|▎ | 30/1000 [00:00<00:03, 255.14 it/sec, obj=[0.77769345 0.45046533]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 6 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.1255364934686558 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [-9.90765803e-12 -5.96217520e-13] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.1306276041616624 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.1306276041616625 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.1306276041616625 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1255364934686558 | inf | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.44444444 0.55555556] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.1306276041616624 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.1306276041616625 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.1306276041616625 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1255364934686558 | inf | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: 3%|▎ | 31/1000 [00:00<00:04, 227.46 it/sec, obj=[0.77769345 0.45046533]] INFO - 13:53:09: 3%|▎ | 32/1000 [00:00<00:04, 231.99 it/sec, obj=[0.68170374 0.57895294]] INFO - 13:53:09: 3%|▎ | 33/1000 [00:00<00:04, 236.54 it/sec, obj=[0.68463821 0.57556413]] INFO - 13:53:09: 3%|▎ | 34/1000 [00:00<00:04, 241.11 it/sec, obj=[0.68463912 0.57556308]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 6 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.14185712248151133 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [1.02950981e-12 4.25381952e-13] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.04287486268043029 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.04287486268043034 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.04287486268043035 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1418571224815113 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.55555556 0.44444444] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | -0.04287486268043029 | 4 | float | INFO - 13:53:09: | x[1] | -4 | -0.04287486268043034 | 4 | float | INFO - 13:53:09: | x[2] | -4 | -0.04287486268043035 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1418571224815113 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: 4%|▎ | 35/1000 [00:00<00:04, 220.02 it/sec, obj=[0.68463912 0.57556308]] INFO - 13:53:09: 4%|▎ | 36/1000 [00:00<00:04, 224.06 it/sec, obj=[0.57513103 0.68501143]] INFO - 13:53:09: 4%|▎ | 37/1000 [00:00<00:04, 228.14 it/sec, obj=[0.5755631 0.6846391]] INFO - 13:53:09: 4%|▍ | 38/1000 [00:00<00:04, 232.07 it/sec, obj=[0.57556308 0.68463912]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 7 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.14185712248204044 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [1.42996726e-13 3.05810932e-13] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.04287486268025626 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.04287486268025616 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.04287486268025619 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1418571224820404 | inf | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.66666667 0.33333333] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.04287486268025626 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.04287486268025616 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.04287486268025619 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1418571224820404 | inf | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: 4%|▍ | 39/1000 [00:00<00:04, 214.45 it/sec, obj=[0.57556308 0.68463912]] INFO - 13:53:09: 4%|▍ | 40/1000 [00:00<00:04, 217.97 it/sec, obj=[0.45294727 0.77609783]] INFO - 13:53:09: 4%|▍ | 41/1000 [00:00<00:04, 221.59 it/sec, obj=[0.45046707 0.77769234]] INFO - 13:53:09: 4%|▍ | 42/1000 [00:00<00:04, 225.10 it/sec, obj=[0.45046533 0.77769345]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 6 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.1255364934616085 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [1.48561718e-13 9.68516933e-13] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.1306276041658536 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.1306276041658536 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.1306276041658536 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1255364934616085 | inf | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.77777778 0.22222222] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.1306276041658536 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.1306276041658536 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.1306276041658536 | 4 | float | INFO - 13:53:09: | t | -inf | -0.1255364934616085 | inf | float | INFO - 13:53:09: +------+-------------+---------------------+-------------+-------+ INFO - 13:53:09: 4%|▍ | 43/1000 [00:00<00:04, 210.23 it/sec, obj=[0.45046533 0.77769345]] INFO - 13:53:09: 4%|▍ | 44/1000 [00:00<00:04, 213.48 it/sec, obj=[0.31697497 0.85214023]] INFO - 13:53:09: 4%|▍ | 45/1000 [00:00<00:04, 216.71 it/sec, obj=[0.31010616 0.85544751]] INFO - 13:53:09: 5%|▍ | 46/1000 [00:00<00:04, 219.92 it/sec, obj=[0.31007988 0.85546008]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 6 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.09364292499323551 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [ 8.56675841e-13 -2.60819144e-12] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.225602514270673 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.2256025142706731 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.225602514270673 | 4 | float | INFO - 13:53:09: | t | -inf | -0.09364292499323551 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: Solving mNBI sub-problem for beta = [0.88888889 0.11111111] INFO - 13:53:09: Optimization problem: INFO - 13:53:09: minimize -t_extraction INFO - 13:53:09: with respect to t, x INFO - 13:53:09: subject to constraints: INFO - 13:53:09: beta_sub_optim_constraint <= 0.0 INFO - 13:53:09: over the design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.225602514270673 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.2256025142706731 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.225602514270673 | 4 | float | INFO - 13:53:09: | t | -inf | -0.09364292499323551 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: 5%|▍ | 47/1000 [00:00<00:04, 206.89 it/sec, obj=[0.31007988 0.85546008]] INFO - 13:53:09: 5%|▍ | 48/1000 [00:00<00:04, 210.01 it/sec, obj=[0.17146323 0.91399085]] INFO - 13:53:09: 5%|▍ | 49/1000 [00:00<00:04, 213.12 it/sec, obj=[0.15642562 0.91956815]] INFO - 13:53:09: 5%|▌ | 50/1000 [00:00<00:04, 215.90 it/sec, obj=[0.1561406 0.91967273]] INFO - 13:53:09: 5%|▌ | 51/1000 [00:00<00:04, 218.79 it/sec, obj=[0.15614049 0.91967277]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver INFO - 13:53:09: Number of calls to the objective function by the optimizer: 7 INFO - 13:53:09: Solution: INFO - 13:53:09: The solution is feasible. INFO - 13:53:09: Objective: 0.04794255057731033 INFO - 13:53:09: Standardized constraints: INFO - 13:53:09: beta_sub_optim_constraint = [-1.83464355e-14 2.24126273e-14] INFO - 13:53:09: Design space: INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | Name | Lower bound | Value | Upper bound | Type | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: | x[0] | -4 | 0.3394642613024756 | 4 | float | INFO - 13:53:09: | x[1] | -4 | 0.3394642613024756 | 4 | float | INFO - 13:53:09: | x[2] | -4 | 0.3394642613024756 | 4 | float | INFO - 13:53:09: | t | -inf | -0.04794255057731033 | inf | float | INFO - 13:53:09: +------+-------------+----------------------+-------------+-------+ INFO - 13:53:09: 5%|▌ | 52/1000 [00:00<00:04, 208.79 it/sec, obj=[0.15614049 0.91967277]] INFO - 13:53:09: Optimization result: INFO - 13:53:09: Optimizer info: INFO - 13:53:09: Status: None INFO - 13:53:09: Message: None INFO - 13:53:09: Number of calls to the objective function by the optimizer: 80 INFO - 13:53:09: Solution: INFO - 13:53:09: Objective: 0.8939534673502061 INFO - 13:53:09: Pareto efficient solutions: INFO - 13:53:09: Pareto optimal points : 42 / 52 INFO - 13:53:09: Utopia point : [0. 0.] INFO - 13:53:09: Compromise solution (closest to utopia) : [[0.63212056 0.63212056]] INFO - 13:53:09: Distance from utopia : 0.8939534673502061 INFO - 13:53:09: Objective values: INFO - 13:53:09: +------+----------+----------+----------+ INFO - 13:53:09: | name | 1 | 2 | 3 | INFO - 13:53:09: +------+----------+----------+----------+ INFO - 13:53:09: | 1 | 0 | 0.981684 | 0.632121 | INFO - 13:53:09: | 2 | 0.981684 | 0 | 0.632121 | INFO - 13:53:09: +------+----------+----------+----------+ INFO - 13:53:09: Design space: INFO - 13:53:09: +-------+-------------+---------+----------+---+-------------+-------+ INFO - 13:53:09: | name | lower_bound | 1 | 2 | 3 | upper_bound | type | INFO - 13:53:09: +-------+-------------+---------+----------+---+-------------+-------+ INFO - 13:53:09: | x (1) | -4 | 0.57735 | -0.57735 | 0 | 4 | float | INFO - 13:53:09: | x (2) | -4 | 0.57735 | -0.57735 | 0 | 4 | float | INFO - 13:53:09: | x (3) | -4 | 0.57735 | -0.57735 | 0 | 4 | float | INFO - 13:53:09: +-------+-------------+---------+----------+---+-------------+-------+ .. GENERATED FROM PYTHON SOURCE LINES 91-94 Display the Pareto front ^^^^^^^^^^^^^^^^^^^^^^^^ We can clearly see the effect of the refinement. .. GENERATED FROM PYTHON SOURCE LINES 94-96 .. code-block:: Python execute_post(opt_problem, "ParetoFront", save=False, show=True) .. image-sg:: /examples/multi_objective/images/sphx_glr_plot_mnbi_fonseca_002.png :alt: Pareto front :srcset: /examples/multi_objective/images/sphx_glr_plot_mnbi_fonseca_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.733 seconds) .. _sphx_glr_download_examples_multi_objective_plot_mnbi_fonseca.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_mnbi_fonseca.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_mnbi_fonseca.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_