Multi-objective Fonseca-Fleming example with the mNBI algorithm#

In this example, the modified Normal Boundary Intersection algorithm (mNBI) is used to solve the FonsecaFleming optimization problem [FF95]:

\[\begin{split}\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}\end{split}\]

We also show how the Pareto front can be refined.

from __future__ import annotations

from gemseo import execute_algo
from gemseo import execute_post
from gemseo.problems.multiobjective_optimization.fonseca_fleming import FonsecaFleming
from gemseo.settings.opt import MNBI_Settings

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.

opt_problem = FonsecaFleming()
mnbi_settings = MNBI_Settings(
    max_iter=1000,
    sub_optim_max_iter=100,
    n_sub_optim=3,
    sub_optim_algo="NLOPT_SLSQP",
)
result = execute_algo(opt_problem, settings_model=mnbi_settings)
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize FonsecaFleming
    INFO - 16:21:41:    with respect to x
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41: Solving optimization problem with algorithm MNBI:
    INFO - 16:21:41: Searching for the individual optimum of each objective
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize f_0
    INFO - 16:21:41:    with respect to x
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:      1%|          | 6/1000 [00:00<00:00, 1176.69 it/sec, feas=True, obj=[2.04753293e-04 9.82706845e-01]]
    INFO - 16:21:41:      1%|          | 7/1000 [00:00<00:00, 1185.07 it/sec, feas=True, obj=[1.10060811e-06 9.81607360e-01]]
    INFO - 16:21:41:      1%|          | 8/1000 [00:00<00:00, 1195.55 it/sec, feas=True, obj=[2.36699549e-13 9.81684376e-01]]
    INFO - 16:21:41:      1%|          | 9/1000 [00:00<00:00, 1203.30 it/sec, feas=True, obj=[3.17715032e-09 9.81684363e-01]]
    INFO - 16:21:41:      1%|          | 10/1000 [00:00<00:00, 1224.51 it/sec, feas=True, obj=[2.74601453e-11 9.81684374e-01]]
    INFO - 16:21:41:      1%|          | 11/1000 [00:00<00:00, 1227.64 it/sec, feas=True, obj=[5.44009282e-14 9.81684376e-01]]
    INFO - 16:21:41:      1%|          | 12/1000 [00:00<00:00, 1228.23 it/sec, feas=True, obj=[0.         0.98168436]]
    INFO - 16:21:41:      1%|▏         | 13/1000 [00:00<00:00, 1231.45 it/sec, feas=True, obj=[0.         0.98168436]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       Objective: 0.0
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |       Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | 0.5773502690103198 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | 0.5773502690115331 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | 0.5773502690114345 |      4      | float |
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize f_1
    INFO - 16:21:41:    with respect to x
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:      1%|▏         | 14/1000 [00:00<00:00, 1044.08 it/sec, feas=True, obj=[0.         0.98168436]]
    INFO - 16:21:41:      2%|▏         | 15/1000 [00:00<00:00, 1067.94 it/sec, feas=True, obj=[1. 1.]]
    INFO - 16:21:41:      2%|▏         | 16/1000 [00:00<00:00, 1084.73 it/sec, feas=True, obj=[0.99999998 0.9931056 ]]
    INFO - 16:21:41:      2%|▏         | 17/1000 [00:00<00:00, 1091.88 it/sec, feas=True, obj=[0.99688636 0.14955784]]
    INFO - 16:21:41:      2%|▏         | 18/1000 [00:00<00:00, 1098.94 it/sec, feas=True, obj=[0.9492493  0.07206897]]
    INFO - 16:21:41:      2%|▏         | 19/1000 [00:00<00:00, 1106.03 it/sec, feas=True, obj=[9.82706845e-01 2.04753293e-04]]
    INFO - 16:21:41:      2%|▏         | 20/1000 [00:00<00:00, 1113.06 it/sec, feas=True, obj=[9.81607360e-01 1.10060811e-06]]
    INFO - 16:21:41:      2%|▏         | 21/1000 [00:00<00:00, 1118.99 it/sec, feas=True, obj=[9.81684376e-01 2.44582132e-13]]
    INFO - 16:21:41:      2%|▏         | 22/1000 [00:00<00:00, 1124.81 it/sec, feas=True, obj=[9.81684363e-01 3.30383776e-09]]
    INFO - 16:21:41:      2%|▏         | 23/1000 [00:00<00:00, 1135.45 it/sec, feas=True, obj=[9.81684374e-01 2.85538260e-11]]
    INFO - 16:21:41:      2%|▏         | 24/1000 [00:00<00:00, 1139.24 it/sec, feas=True, obj=[9.81684376e-01 5.49560397e-14]]
    INFO - 16:21:41:      2%|▎         | 25/1000 [00:00<00:00, 1144.55 it/sec, feas=True, obj=[0.98168436 0.        ]]
    INFO - 16:21:41:      3%|▎         | 26/1000 [00:00<00:00, 1149.15 it/sec, feas=True, obj=[0.98168436 0.        ]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       Objective: 0.0
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | -0.5773502690171886 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -0.5773502690183139 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | -0.5773502690182495 |      4      | float |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.49084218 0.49084218]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    |   0   |     inf     | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:      3%|▎         | 27/1000 [00:00<00:00, 1017.51 it/sec, feas=True, obj=[0.98168436 0.        ]]
   ERROR - 16:21:41: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/6.3.0/lib/python3.12/site-packages/gemseo/algos/opt/nlopt/nlopt.py", line 399, in _run
    nlopt_problem.optimize(x_0.real)
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/6.3.0/lib/python3.12/site-packages/nlopt/nlopt.py", line 454, in optimize
    return _nlopt.opt_optimize(self, *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
nlopt.RoundoffLimited: NLopt roundoff-limited
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.1439142599025487
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [ 4.99600361e-16 -1.33226763e-15]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+------------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |         Value          | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+------------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | -2.193800696659309e-13 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -2.193800696659309e-13 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | -2.193800696659309e-13 |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    |  -0.1439142599025487   |     inf     | float |
    INFO - 16:21:41:          +------+-------------+------------------------+-------------+-------+
    INFO - 16:21:41:      3%|▎         | 28/1000 [00:00<00:01, 721.01 it/sec, feas=True, obj=[0.63212056 0.63212056]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: None
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       Objective: 0.8939534673502063
    INFO - 16:21:41:    Pareto efficient solutions:
    INFO - 16:21:41:       Pareto optimal points : 8 / 28
    INFO - 16:21:41:       Utopia point : [0. 0.]
    INFO - 16:21:41:       Compromise solution (closest to utopia) : [[0.63212056 0.63212056]]
    INFO - 16:21:41:       Distance from utopia : 0.8939534673502063
    INFO - 16:21:41:       Objective values:
    INFO - 16:21:41:          +------+----------+----------+----------+
    INFO - 16:21:41:          | name |        1 |        2 |        3 |
    INFO - 16:21:41:          +------+----------+----------+----------+
    INFO - 16:21:41:          |    1 |        0 | 0.981684 | 0.632121 |
    INFO - 16:21:41:          |    2 | 0.981684 |        0 | 0.632121 |
    INFO - 16:21:41:          +------+----------+----------+----------+
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +-------+-------------+---------+----------+---+-------------+-------+
    INFO - 16:21:41:          |  name | lower_bound |       1 |        2 | 3 | upper_bound |  type |
    INFO - 16:21:41:          +-------+-------------+---------+----------+---+-------------+-------+
    INFO - 16:21:41:          | x (1) |          -4 | 0.57735 | -0.57735 | 0 |           4 | float |
    INFO - 16:21:41:          | x (2) |          -4 | 0.57735 | -0.57735 | 0 |           4 | float |
    INFO - 16:21:41:          | x (3) |          -4 | 0.57735 | -0.57735 | 0 |           4 | float |
    INFO - 16:21:41:          +-------+-------------+---------+----------+---+-------------+-------+

Display the Pareto front#

GEMSEO 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.

execute_post(opt_problem, post_name="ParetoFront", save=False, show=True)
Pareto front
<gemseo.post.pareto_front.ParetoFront object at 0x72a4f341cda0>

Solve the Fonseca-Fleming optimization problem more finely#

The Pareto front is then refined with 10 sub-optimizations instead of 3.

opt_problem = FonsecaFleming()
mnbi_settings.n_sub_optim = 10
result = execute_algo(opt_problem, settings_model=mnbi_settings)
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize FonsecaFleming
    INFO - 16:21:41:    with respect to x
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41: Solving optimization problem with algorithm MNBI:
    INFO - 16:21:41: Searching for the individual optimum of each objective
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize f_0
    INFO - 16:21:41:    with respect to x
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:      1%|          | 6/1000 [00:00<00:00, 1264.04 it/sec, feas=True, obj=[2.04753293e-04 9.82706845e-01]]
    INFO - 16:21:41:      1%|          | 7/1000 [00:00<00:00, 1264.43 it/sec, feas=True, obj=[1.10060811e-06 9.81607360e-01]]
    INFO - 16:21:41:      1%|          | 8/1000 [00:00<00:00, 1265.15 it/sec, feas=True, obj=[2.36699549e-13 9.81684376e-01]]
    INFO - 16:21:41:      1%|          | 9/1000 [00:00<00:00, 1265.97 it/sec, feas=True, obj=[3.17715032e-09 9.81684363e-01]]
    INFO - 16:21:41:      1%|          | 10/1000 [00:00<00:00, 1283.01 it/sec, feas=True, obj=[2.74601453e-11 9.81684374e-01]]
    INFO - 16:21:41:      1%|          | 11/1000 [00:00<00:00, 1279.39 it/sec, feas=True, obj=[5.44009282e-14 9.81684376e-01]]
    INFO - 16:21:41:      1%|          | 12/1000 [00:00<00:00, 1281.65 it/sec, feas=True, obj=[0.         0.98168436]]
    INFO - 16:21:41:      1%|▏         | 13/1000 [00:00<00:00, 1282.30 it/sec, feas=True, obj=[0.         0.98168436]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       Objective: 0.0
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |       Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | 0.5773502690103198 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | 0.5773502690115331 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | 0.5773502690114345 |      4      | float |
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize f_1
    INFO - 16:21:41:    with respect to x
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:      1%|▏         | 14/1000 [00:00<00:00, 1073.59 it/sec, feas=True, obj=[0.         0.98168436]]
    INFO - 16:21:41:      2%|▏         | 15/1000 [00:00<00:00, 1095.86 it/sec, feas=True, obj=[1. 1.]]
    INFO - 16:21:41:      2%|▏         | 16/1000 [00:00<00:00, 1113.54 it/sec, feas=True, obj=[0.99999998 0.9931056 ]]
    INFO - 16:21:41:      2%|▏         | 17/1000 [00:00<00:00, 1119.68 it/sec, feas=True, obj=[0.99688636 0.14955784]]
    INFO - 16:21:41:      2%|▏         | 18/1000 [00:00<00:00, 1126.49 it/sec, feas=True, obj=[0.9492493  0.07206897]]
    INFO - 16:21:41:      2%|▏         | 19/1000 [00:00<00:00, 1132.65 it/sec, feas=True, obj=[9.82706845e-01 2.04753293e-04]]
    INFO - 16:21:41:      2%|▏         | 20/1000 [00:00<00:00, 1139.96 it/sec, feas=True, obj=[9.81607360e-01 1.10060811e-06]]
    INFO - 16:21:41:      2%|▏         | 21/1000 [00:00<00:00, 1146.24 it/sec, feas=True, obj=[9.81684376e-01 2.44582132e-13]]
    INFO - 16:21:41:      2%|▏         | 22/1000 [00:00<00:00, 1152.08 it/sec, feas=True, obj=[9.81684363e-01 3.30383776e-09]]
    INFO - 16:21:41:      2%|▏         | 23/1000 [00:00<00:00, 1160.59 it/sec, feas=True, obj=[9.81684374e-01 2.85538260e-11]]
    INFO - 16:21:41:      2%|▏         | 24/1000 [00:00<00:00, 1162.88 it/sec, feas=True, obj=[9.81684376e-01 5.49560397e-14]]
    INFO - 16:21:41:      2%|▎         | 25/1000 [00:00<00:00, 1168.11 it/sec, feas=True, obj=[0.98168436 0.        ]]
    INFO - 16:21:41:      3%|▎         | 26/1000 [00:00<00:00, 1172.42 it/sec, feas=True, obj=[0.98168436 0.        ]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       Objective: 0.0
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | -0.5773502690171886 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -0.5773502690183139 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | -0.5773502690182495 |      4      | float |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.87260832 0.10907604]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound | Value | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |   0   |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    |   0   |     inf     | float |
    INFO - 16:21:41:       +------+-------------+-------+-------------+-------+
    INFO - 16:21:41:      3%|▎         | 27/1000 [00:00<00:00, 1039.78 it/sec, feas=True, obj=[0.98168436 0.        ]]
    INFO - 16:21:41:      3%|▎         | 28/1000 [00:00<00:00, 1044.40 it/sec, feas=True, obj=[0.90043834 0.20664322]]
    INFO - 16:21:41:      3%|▎         | 29/1000 [00:00<00:00, 1041.02 it/sec, feas=True, obj=[0.91873293 0.15869784]]
    INFO - 16:21:41:      3%|▎         | 30/1000 [00:00<00:00, 1039.47 it/sec, feas=True, obj=[0.91966962 0.15614908]]
    INFO - 16:21:41:      3%|▎         | 31/1000 [00:00<00:00, 1036.71 it/sec, feas=True, obj=[0.91967277 0.15614049]]
    INFO - 16:21:41:      3%|▎         | 32/1000 [00:00<00:00, 1036.06 it/sec, feas=True, obj=[0.91967277 0.15614049]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.04794255052713356
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [ 2.02608763e-13 -3.60156349e-13]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | -0.3394642615047618  |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -0.3394642612459058  |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | -0.3394642612538421  |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.04794255052713356 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.76353228 0.21815208]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     | -0.3394642615047618  |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     | -0.3394642612459058  |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     | -0.3394642612538421  |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.04794255052713356 |     inf     | float |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:      3%|▎         | 33/1000 [00:00<00:01, 943.75 it/sec, feas=True, obj=[0.91967277 0.15614049]]
    INFO - 16:21:41:      3%|▎         | 34/1000 [00:00<00:01, 949.61 it/sec, feas=True, obj=[0.84203912 0.33739501]]
    INFO - 16:21:41:      4%|▎         | 35/1000 [00:00<00:01, 954.53 it/sec, feas=True, obj=[0.85527677 0.31046303]]
    INFO - 16:21:41:      4%|▎         | 36/1000 [00:00<00:01, 953.88 it/sec, feas=True, obj=[0.85546004 0.31007996]]
    INFO - 16:21:41:      4%|▎         | 37/1000 [00:00<00:01, 956.52 it/sec, feas=True, obj=[0.85546007 0.31008016]]
    INFO - 16:21:41:      4%|▍         | 38/1000 [00:00<00:00, 963.47 it/sec, feas=True, obj=[0.85546004 0.31007996]]
    INFO - 16:21:41:      4%|▍         | 39/1000 [00:00<00:00, 961.88 it/sec, feas=True, obj=[0.85546004 0.31007996]]
    INFO - 16:21:41:      4%|▍         | 40/1000 [00:00<00:00, 963.19 it/sec, feas=True, obj=[0.85546005 0.31007993]]
    INFO - 16:21:41:      4%|▍         | 41/1000 [00:00<00:00, 964.72 it/sec, feas=True, obj=[0.85546009 0.31007985]]
    INFO - 16:21:41:      4%|▍         | 42/1000 [00:00<00:00, 967.55 it/sec, feas=True, obj=[0.85546012 0.31007978]]
    INFO - 16:21:41:      4%|▍         | 43/1000 [00:00<00:00, 973.17 it/sec, feas=True, obj=[0.8554601  0.31007982]]
    INFO - 16:21:41:      4%|▍         | 44/1000 [00:00<00:00, 978.98 it/sec, feas=True, obj=[0.85546009 0.31007984]]
    INFO - 16:21:41:      4%|▍         | 45/1000 [00:00<00:00, 984.31 it/sec, feas=True, obj=[0.85546009 0.31007985]]
    INFO - 16:21:41:      5%|▍         | 46/1000 [00:00<00:00, 989.74 it/sec, feas=True, obj=[0.85546009 0.31007985]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.09364288152510496
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [ 8.90168644e-08 -5.43837472e-08]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | -0.2256025800102535  |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -0.2256025813833293  |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     |  -0.225602581344992  |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.09364288152510496 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.65445624 0.32722812]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     | -0.2256025800102535  |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     | -0.2256025813833293  |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |  -0.225602581344992  |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.09364288152510496 |     inf     | float |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:      5%|▍         | 47/1000 [00:00<00:01, 934.42 it/sec, feas=True, obj=[0.85546009 0.31007985]]
    INFO - 16:21:41:      5%|▍         | 48/1000 [00:00<00:01, 938.72 it/sec, feas=True, obj=[0.77161691 0.45984452]]
    INFO - 16:21:41:      5%|▍         | 49/1000 [00:00<00:01, 939.12 it/sec, feas=True, obj=[0.77767797 0.45048948]]
    INFO - 16:21:41:      5%|▌         | 50/1000 [00:00<00:01, 940.17 it/sec, feas=True, obj=[0.77769345 0.45046534]]
    INFO - 16:21:41:      5%|▌         | 51/1000 [00:00<00:01, 940.82 it/sec, feas=True, obj=[0.77769345 0.45046534]]
    INFO - 16:21:41:      5%|▌         | 52/1000 [00:00<00:01, 943.11 it/sec, feas=True, obj=[0.77769345 0.45046533]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.1255364919707028
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [-4.93896729e-11  3.78963430e-09]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     |  -0.130635251180903 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -0.1306236158744216 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | -0.1306239407408536 |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.1255364919707028 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.5453802  0.43630416]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |  -0.130635251180903 |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     | -0.1306236158744216 |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     | -0.1306239407408536 |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.1255364919707028 |     inf     | float |
    INFO - 16:21:41:       +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:      5%|▌         | 53/1000 [00:00<00:01, 875.90 it/sec, feas=True, obj=[0.77769345 0.45046533]]
    INFO - 16:21:41:      5%|▌         | 54/1000 [00:00<00:01, 879.76 it/sec, feas=True, obj=[0.68170379 0.57895302]]
    INFO - 16:21:41:      6%|▌         | 55/1000 [00:00<00:01, 881.01 it/sec, feas=True, obj=[0.68474464 0.57570928]]
    INFO - 16:21:41:      6%|▌         | 56/1000 [00:00<00:01, 882.66 it/sec, feas=True, obj=[0.68462383 0.57558142]]
    INFO - 16:21:41:      6%|▌         | 57/1000 [00:00<00:01, 884.06 it/sec, feas=True, obj=[0.68463908 0.57556312]]
    INFO - 16:21:41:      6%|▌         | 58/1000 [00:00<00:01, 885.94 it/sec, feas=True, obj=[0.68463912 0.57556308]]
    INFO - 16:21:41:      6%|▌         | 59/1000 [00:00<00:01, 888.01 it/sec, feas=True, obj=[0.68463912 0.57556308]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.14185683491615905
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [2.43262084e-07 3.27480598e-07]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | -0.04287461308631135 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | -0.04287494223710642 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | -0.04287493304700618 |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.1418568349161591  |     inf     | float |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.43630416 0.5453802 ]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     | -0.04287461308631135 |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     | -0.04287494223710642 |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     | -0.04287493304700618 |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.1418568349161591  |     inf     | float |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:      6%|▌         | 60/1000 [00:00<00:01, 852.86 it/sec, feas=True, obj=[0.68463912 0.57556308]]
    INFO - 16:21:41:      6%|▌         | 61/1000 [00:00<00:01, 856.89 it/sec, feas=True, obj=[0.57513103 0.68501143]]
    INFO - 16:21:41:      6%|▌         | 62/1000 [00:00<00:01, 858.36 it/sec, feas=True, obj=[0.57556323 0.6846392 ]]
    INFO - 16:21:41:      6%|▋         | 63/1000 [00:00<00:01, 861.07 it/sec, feas=True, obj=[0.57572435 0.68475688]]
    INFO - 16:21:41:      6%|▋         | 64/1000 [00:00<00:01, 865.39 it/sec, feas=True, obj=[0.5755641  0.68463965]]
    INFO - 16:21:41:      6%|▋         | 65/1000 [00:00<00:01, 865.59 it/sec, feas=True, obj=[0.57556313 0.68463907]]
    INFO - 16:21:41:      7%|▋         | 66/1000 [00:00<00:01, 867.46 it/sec, feas=True, obj=[0.57556308 0.68463912]]
    INFO - 16:21:41:      7%|▋         | 67/1000 [00:00<00:01, 869.98 it/sec, feas=True, obj=[0.57556308 0.68463912]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.1418563998953318
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [1.73495133e-06 1.23800550e-06]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | 0.04169925261518337 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | 0.04348747161026356 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | 0.04343754339469275 |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.1418563998953318 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.32722812 0.65445624]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     | 0.04169925261518337 |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     | 0.04348747161026356 |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     | 0.04343754339469275 |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.1418563998953318 |     inf     | float |
    INFO - 16:21:41:       +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:      7%|▋         | 68/1000 [00:00<00:01, 838.11 it/sec, feas=True, obj=[0.57556308 0.68463912]]
    INFO - 16:21:41:      7%|▋         | 69/1000 [00:00<00:01, 841.74 it/sec, feas=True, obj=[0.45538924 0.77708466]]
    INFO - 16:21:41:      7%|▋         | 70/1000 [00:00<00:01, 843.98 it/sec, feas=True, obj=[0.63252142 0.83907792]]
    INFO - 16:21:41:      7%|▋         | 71/1000 [00:00<00:01, 844.62 it/sec, feas=True, obj=[0.45487133 0.7750112 ]]
    INFO - 16:21:41:      7%|▋         | 72/1000 [00:00<00:01, 847.40 it/sec, feas=True, obj=[0.45051277 0.77766464]]
    INFO - 16:21:41:      7%|▋         | 73/1000 [00:00<00:01, 848.90 it/sec, feas=True, obj=[0.45046575 0.77769322]]
    INFO - 16:21:41:      7%|▋         | 74/1000 [00:00<00:01, 850.54 it/sec, feas=True, obj=[0.45046535 0.77769344]]
    INFO - 16:21:41:      8%|▊         | 75/1000 [00:00<00:01, 852.29 it/sec, feas=True, obj=[0.45046533 0.77769345]]
    INFO - 16:21:41:      8%|▊         | 76/1000 [00:00<00:01, 854.55 it/sec, feas=True, obj=[0.45046533 0.77769345]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.125535809547323
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [1.09187899e-06 4.40780275e-07]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |       Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     | 0.1304145607706708 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     | 0.1307382545134637 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     | 0.1307292167773948 |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.125535809547323 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.21815208 0.76353228]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |       Value        | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     | 0.1304145607706708 |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     | 0.1307382545134637 |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     | 0.1307292167773948 |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.125535809547323 |     inf     | float |
    INFO - 16:21:41:       +------+-------------+--------------------+-------------+-------+
    INFO - 16:21:41:      8%|▊         | 77/1000 [00:00<00:01, 826.25 it/sec, feas=True, obj=[0.45046533 0.77769345]]
    INFO - 16:21:41:      8%|▊         | 78/1000 [00:00<00:01, 829.50 it/sec, feas=True, obj=[0.31706447 0.85215876]]
    INFO - 16:21:41:      8%|▊         | 79/1000 [00:00<00:01, 831.41 it/sec, feas=True, obj=[0.44069654 0.88070624]]
    INFO - 16:21:41:      8%|▊         | 80/1000 [00:00<00:01, 831.91 it/sec, feas=True, obj=[0.31749875 0.85247189]]
    INFO - 16:21:41:      8%|▊         | 81/1000 [00:00<00:01, 834.89 it/sec, feas=True, obj=[0.31049571 0.85526244]]
    INFO - 16:21:41:      8%|▊         | 82/1000 [00:00<00:01, 836.30 it/sec, feas=True, obj=[0.31008062 0.85545979]]
    INFO - 16:21:41:      8%|▊         | 83/1000 [00:00<00:01, 837.94 it/sec, feas=True, obj=[0.31007991 0.85546006]]
    INFO - 16:21:41:      8%|▊         | 84/1000 [00:00<00:01, 839.68 it/sec, feas=True, obj=[0.31007988 0.85546007]]
    INFO - 16:21:41:      8%|▊         | 85/1000 [00:00<00:01, 841.33 it/sec, feas=True, obj=[0.31007988 0.85546008]]
    INFO - 16:21:41:      9%|▊         | 86/1000 [00:00<00:01, 842.65 it/sec, feas=True, obj=[0.31007988 0.85546008]]
   ERROR - 16:21:41: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/6.3.0/lib/python3.12/site-packages/gemseo/algos/opt/nlopt/nlopt.py", line 399, in _run
    nlopt_problem.optimize(x_0.real)
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/6.3.0/lib/python3.12/site-packages/nlopt/nlopt.py", line 454, in optimize
    return _nlopt.opt_optimize(self, *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
nlopt.RoundoffLimited: NLopt roundoff-limited
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.09364249860428303
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [1.16135075e-06 1.35331413e-07]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     |  0.2252840082297061  |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     |  0.2257678647994927  |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     |  0.2257543552148791  |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.09364249860428303 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41: Solving mNBI sub-problem for phi_beta = [0.10907604 0.87260832]
    INFO - 16:21:41: Optimization problem:
    INFO - 16:21:41:    minimize -t_extraction
    INFO - 16:21:41:    with respect to t, x
    INFO - 16:21:41:    under the inequality constraints
    INFO - 16:21:41:       beta_sub_optim_constraint <= 0.0
    INFO - 16:21:41:    over the design space:
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | Name | Lower bound |        Value         | Upper bound | Type  |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:       | x[0] |      -4     |  0.2252840082297061  |      4      | float |
    INFO - 16:21:41:       | x[1] |      -4     |  0.2257678647994927  |      4      | float |
    INFO - 16:21:41:       | x[2] |      -4     |  0.2257543552148791  |      4      | float |
    INFO - 16:21:41:       | t    |     -inf    | -0.09364249860428303 |     inf     | float |
    INFO - 16:21:41:       +------+-------------+----------------------+-------------+-------+
    INFO - 16:21:41:      9%|▊         | 87/1000 [00:00<00:01, 818.90 it/sec, feas=True, obj=[0.31007988 0.85546008]]
    INFO - 16:21:41:      9%|▉         | 88/1000 [00:00<00:01, 821.88 it/sec, feas=True, obj=[0.17166205 0.91400962]]
    INFO - 16:21:41:      9%|▉         | 89/1000 [00:00<00:01, 825.17 it/sec, feas=True, obj=[0.31290173 0.93170725]]
    INFO - 16:21:41:      9%|▉         | 90/1000 [00:00<00:01, 827.01 it/sec, feas=True, obj=[0.17159576 0.91440627]]
    INFO - 16:21:41:      9%|▉         | 91/1000 [00:00<00:01, 829.47 it/sec, feas=True, obj=[0.15690892 0.9193933 ]]
    INFO - 16:21:41:      9%|▉         | 92/1000 [00:00<00:01, 830.73 it/sec, feas=True, obj=[0.15614425 0.91967142]]
    INFO - 16:21:41:      9%|▉         | 93/1000 [00:00<00:01, 832.11 it/sec, feas=True, obj=[0.15614052 0.91967276]]
    INFO - 16:21:41:      9%|▉         | 94/1000 [00:00<00:01, 833.64 it/sec, feas=True, obj=[0.15614049 0.91967277]]
    INFO - 16:21:41:     10%|▉         | 95/1000 [00:00<00:01, 835.20 it/sec, feas=True, obj=[0.15614049 0.91967277]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       The solution is feasible.
    INFO - 16:21:41:       Objective: 0.0479411260233733
    INFO - 16:21:41:       Standardized constraints:
    INFO - 16:21:41:          beta_sub_optim_constraint = [5.15990506e-06 4.55681550e-08]
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | Name | Lower bound |        Value        | Upper bound | Type  |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:          | x[0] |      -4     |  0.3392459389454796 |      4      | float |
    INFO - 16:21:41:          | x[1] |      -4     |  0.3395733823668694 |      4      | float |
    INFO - 16:21:41:          | x[2] |      -4     |  0.3395642399370322 |      4      | float |
    INFO - 16:21:41:          | t    |     -inf    | -0.0479411260233733 |     inf     | float |
    INFO - 16:21:41:          +------+-------------+---------------------+-------------+-------+
    INFO - 16:21:41:     10%|▉         | 96/1000 [00:00<00:01, 735.84 it/sec, feas=True, obj=[0.15614049 0.91967277]]
    INFO - 16:21:41: Optimization result:
    INFO - 16:21:41:    Optimizer info:
    INFO - 16:21:41:       Status: None
    INFO - 16:21:41:       Message: None
    INFO - 16:21:41:    Solution:
    INFO - 16:21:41:       Objective: 0.8939534673502063
    INFO - 16:21:41:    Pareto efficient solutions:
    INFO - 16:21:41:       Pareto optimal points : 63 / 96
    INFO - 16:21:41:       Utopia point : [0. 0.]
    INFO - 16:21:41:       Compromise solution (closest to utopia) : [[0.63212056 0.63212056]]
    INFO - 16:21:41:       Distance from utopia : 0.8939534673502063
    INFO - 16:21:41:       Objective values:
    INFO - 16:21:41:          +------+----------+----------+----------+
    INFO - 16:21:41:          | name |        1 |        2 |        3 |
    INFO - 16:21:41:          +------+----------+----------+----------+
    INFO - 16:21:41:          |    1 |        0 | 0.981684 | 0.632121 |
    INFO - 16:21:41:          |    2 | 0.981684 |        0 | 0.632121 |
    INFO - 16:21:41:          +------+----------+----------+----------+
    INFO - 16:21:41:       Design space:
    INFO - 16:21:41:          +-------+-------------+---------+----------+---+-------------+-------+
    INFO - 16:21:41:          |  name | lower_bound |       1 |        2 | 3 | upper_bound |  type |
    INFO - 16:21:41:          +-------+-------------+---------+----------+---+-------------+-------+
    INFO - 16:21:41:          | x (1) |          -4 | 0.57735 | -0.57735 | 0 |           4 | float |
    INFO - 16:21:41:          | x (2) |          -4 | 0.57735 | -0.57735 | 0 |           4 | float |
    INFO - 16:21:41:          | x (3) |          -4 | 0.57735 | -0.57735 | 0 |           4 | float |
    INFO - 16:21:41:          +-------+-------------+---------+----------+---+-------------+-------+

Display the Pareto front#

We can clearly see the effect of the refinement.

execute_post(opt_problem, post_name="ParetoFront", save=False, show=True)
Pareto front
<gemseo.post.pareto_front.ParetoFront object at 0x72a4f34f5190>

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

Gallery generated by Sphinx-Gallery