Note
Go to the end to download the full example code
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]:
We also show how the Pareto front can be refined.
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()
<RootLogger root (INFO)>
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()
result = execute_algo(
opt_problem,
"MNBI",
max_iter=1000,
sub_optim_max_iter=100,
n_sub_optim=3,
sub_optim_algo="NLOPT_SLSQP",
)
INFO - 13:08:09: Optimization problem:
INFO - 13:08:09: minimize FonsecaFleming
INFO - 13:08:09: with respect to x
INFO - 13:08:09: over the design space:
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: Solving optimization problem with algorithm MNBI:
INFO - 13:08:09: Searching for the individual optimum of each objective
INFO - 13:08:09: Optimization problem:
INFO - 13:08:09: minimize f_0
INFO - 13:08:09: with respect to x
INFO - 13:08:09: over the design space:
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: 1%| | 6/1000 [00:00<00:03, 263.68 it/sec, obj=[3.45593287e-09 9.81688668e-01]]
INFO - 13:08:09: 1%| | 7/1000 [00:00<00:03, 290.97 it/sec, obj=[0. 0.98168436]]
INFO - 13:08:09: 1%| | 8/1000 [00:00<00:03, 315.76 it/sec, obj=[0. 0.98168436]]
INFO - 13:08:09: 1%| | 9/1000 [00:00<00:02, 349.74 it/sec, obj=[0. 0.98168436]]
INFO - 13:08:09: Optimization result:
INFO - 13:08:09: Optimizer info:
INFO - 13:08:09: Status: None
INFO - 13:08:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 13:08:09: Number of calls to the objective function by the optimizer: 11
INFO - 13:08:09: Solution:
INFO - 13:08:09: Objective: 0.0
INFO - 13:08:09: Design space:
INFO - 13:08:09: +------+-------------+--------------------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+--------------------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | 0.577350268484795 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | 0.577350268484795 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | 0.5773502684847949 | 4 | float |
INFO - 13:08:09: +------+-------------+--------------------+-------------+-------+
INFO - 13:08:09: Optimization problem:
INFO - 13:08:09: minimize f_1
INFO - 13:08:09: with respect to x
INFO - 13:08:09: over the design space:
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: 1%| | 10/1000 [00:00<00:04, 217.16 it/sec, obj=[0.95084904 0.06744148]]
INFO - 13:08:09: 1%| | 11/1000 [00:00<00:04, 232.22 it/sec, obj=[0.99997026 0.77891095]]
INFO - 13:08:09: 1%| | 12/1000 [00:00<00:03, 251.29 it/sec, obj=[0.98859846 0.01317993]]
INFO - 13:08:09: 1%|▏ | 13/1000 [00:00<00:03, 259.03 it/sec, obj=[9.81345634e-01 2.10356748e-05]]
INFO - 13:08:09: 1%|▏ | 14/1000 [00:00<00:03, 272.14 it/sec, obj=[9.81688668e-01 3.45593287e-09]]
INFO - 13:08:09: 2%|▏ | 15/1000 [00:00<00:03, 284.90 it/sec, obj=[0.98168436 0. ]]
INFO - 13:08:09: 2%|▏ | 16/1000 [00:00<00:03, 296.84 it/sec, obj=[0.98168436 0. ]]
INFO - 13:08:09: 2%|▏ | 17/1000 [00:00<00:03, 313.33 it/sec, obj=[0.98168436 0. ]]
INFO - 13:08:09: Optimization result:
INFO - 13:08:09: Optimizer info:
INFO - 13:08:09: Status: None
INFO - 13:08:09: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 13:08:09: Number of calls to the objective function by the optimizer: 11
INFO - 13:08:09: Solution:
INFO - 13:08:09: Objective: 0.0
INFO - 13:08:09: Design space:
INFO - 13:08:09: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | -0.577350268484795 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | -0.577350268484795 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | -0.5773502684847949 | 4 | float |
INFO - 13:08:09: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:09: Solving mNBI sub-problem for beta = [0.5 0.5]
INFO - 13:08:09: Optimization problem:
INFO - 13:08:09: minimize -t_extraction
INFO - 13:08:09: with respect to t, x
INFO - 13:08:09: subject to constraints:
INFO - 13:08:09: beta_sub_optim_constraint <= 0.0
INFO - 13:08:09: over the design space:
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:09: | t | -inf | 0 | inf | float |
INFO - 13:08:09: +------+-------------+-------+-------------+-------+
INFO - 13:08:09: 2%|▏ | 18/1000 [00:00<00:04, 234.18 it/sec, obj=[0.63212056 0.63212056]]
INFO - 13:08:09: Optimization result:
INFO - 13:08:09: Optimizer info:
INFO - 13:08:09: Status: None
INFO - 13:08:09: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:09: Number of calls to the objective function by the optimizer: 4
INFO - 13:08:09: Solution:
INFO - 13:08:09: The solution is feasible.
INFO - 13:08:09: Objective: 0.1439142599466381
INFO - 13:08:09: Standardized constraints:
INFO - 13:08:09: beta_sub_optim_constraint = [ 8.32667268e-17 -1.38777878e-16]
INFO - 13:08:09: Design space:
INFO - 13:08:09: +------+-------------+------------------------+-------------+-------+
INFO - 13:08:09: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:09: +------+-------------+------------------------+-------------+-------+
INFO - 13:08:09: | x[0] | -4 | -6.407485192731112e-17 | 4 | float |
INFO - 13:08:09: | x[1] | -4 | -6.407485192731112e-17 | 4 | float |
INFO - 13:08:09: | x[2] | -4 | -6.407485192731112e-17 | 4 | float |
INFO - 13:08:09: | t | -inf | -0.1439142599466381 | inf | float |
INFO - 13:08:09: +------+-------------+------------------------+-------------+-------+
INFO - 13:08:09: 2%|▏ | 19/1000 [00:00<00:05, 183.86 it/sec, obj=[0.63212056 0.63212056]]
INFO - 13:08:09: Optimization result:
INFO - 13:08:09: Optimizer info:
INFO - 13:08:09: Status: None
INFO - 13:08:09: Message: None
INFO - 13:08:09: Number of calls to the objective function by the optimizer: 26
INFO - 13:08:09: Solution:
INFO - 13:08:09: Objective: 0.8939534673502061
INFO - 13:08:09: Pareto efficient solutions:
INFO - 13:08:09: Pareto optimal points : 6 / 19
INFO - 13:08:09: Utopia point : [0. 0.]
INFO - 13:08:09: Compromise solution (closest to utopia) : [[0.06744148 0.95084904]
INFO - 13:08:09: [0.95084904 0.06744148]]
INFO - 13:08:09: Distance from utopia : 0.9532377715846151
INFO - 13:08:09: Objective values:
INFO - 13:08:09: +------+----------+----------+-----------+-----------+
INFO - 13:08:09: | name | 1 | 2 | 3 | 4 |
INFO - 13:08:09: +------+----------+----------+-----------+-----------+
INFO - 13:08:09: | 1 | 0 | 0.981684 | 0.0674415 | 0.950849 |
INFO - 13:08:09: | 2 | 0.981684 | 0 | 0.950849 | 0.0674415 |
INFO - 13:08:09: +------+----------+----------+-----------+-----------+
INFO - 13:08:09: Design space:
INFO - 13:08:09: +-------+-------------+---------+----------+----------+-----------+-------------+-------+
INFO - 13:08:09: | name | lower_bound | 1 | 2 | 3 | 4 | upper_bound | type |
INFO - 13:08:09: +-------+-------------+---------+----------+----------+-----------+-------------+-------+
INFO - 13:08:09: | x (1) | -4 | 0.57735 | -0.57735 | 0.424791 | -0.424791 | 4 | float |
INFO - 13:08:09: | x (2) | -4 | 0.57735 | -0.57735 | 0.424791 | -0.424791 | 4 | float |
INFO - 13:08:09: | x (3) | -4 | 0.57735 | -0.57735 | 0.424791 | -0.424791 | 4 | float |
INFO - 13:08:09: +-------+-------------+---------+----------+----------+-----------+-------------+-------+
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, "ParetoFront", save=False, show=True)
<gemseo.post.pareto_front.ParetoFront object at 0x7f8ba7f4f9d0>
Solve the Fonseca-Fleming optimization problem more finely¶
The Pareto front is then refined with 10 sub-optimizations instead of 3.
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",
)
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize FonsecaFleming
INFO - 13:08:10: with respect to x
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: Solving optimization problem with algorithm MNBI:
INFO - 13:08:10: Searching for the individual optimum of each objective
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize f_0
INFO - 13:08:10: with respect to x
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: 1%| | 6/1000 [00:00<00:03, 265.80 it/sec, obj=[3.45593287e-09 9.81688668e-01]]
INFO - 13:08:10: 1%| | 7/1000 [00:00<00:03, 293.37 it/sec, obj=[0. 0.98168436]]
INFO - 13:08:10: 1%| | 8/1000 [00:00<00:03, 318.34 it/sec, obj=[0. 0.98168436]]
INFO - 13:08:10: 1%| | 9/1000 [00:00<00:02, 352.87 it/sec, obj=[0. 0.98168436]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 11
INFO - 13:08:10: Solution:
INFO - 13:08:10: Objective: 0.0
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+--------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+--------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.577350268484795 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.577350268484795 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.5773502684847949 | 4 | float |
INFO - 13:08:10: +------+-------------+--------------------+-------------+-------+
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize f_1
INFO - 13:08:10: with respect to x
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: 1%| | 10/1000 [00:00<00:04, 219.76 it/sec, obj=[0.95084904 0.06744148]]
INFO - 13:08:10: 1%| | 11/1000 [00:00<00:04, 234.80 it/sec, obj=[0.99997026 0.77891095]]
INFO - 13:08:10: 1%| | 12/1000 [00:00<00:03, 253.96 it/sec, obj=[0.98859846 0.01317993]]
INFO - 13:08:10: 1%|▏ | 13/1000 [00:00<00:03, 261.36 it/sec, obj=[9.81345634e-01 2.10356748e-05]]
INFO - 13:08:10: 1%|▏ | 14/1000 [00:00<00:03, 274.31 it/sec, obj=[9.81688668e-01 3.45593287e-09]]
INFO - 13:08:10: 2%|▏ | 15/1000 [00:00<00:03, 287.05 it/sec, obj=[0.98168436 0. ]]
INFO - 13:08:10: 2%|▏ | 16/1000 [00:00<00:03, 299.04 it/sec, obj=[0.98168436 0. ]]
INFO - 13:08:10: 2%|▏ | 17/1000 [00:00<00:03, 315.61 it/sec, obj=[0.98168436 0. ]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 11
INFO - 13:08:10: Solution:
INFO - 13:08:10: Objective: 0.0
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.577350268484795 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.577350268484795 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.5773502684847949 | 4 | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.11111111 0.88888889]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0 | 4 | float |
INFO - 13:08:10: | t | -inf | 0 | inf | float |
INFO - 13:08:10: +------+-------------+-------+-------------+-------+
INFO - 13:08:10: 2%|▏ | 18/1000 [00:00<00:04, 234.48 it/sec, obj=[0.90043834 0.20664322]]
INFO - 13:08:10: 2%|▏ | 19/1000 [00:00<00:04, 240.75 it/sec, obj=[0.91873293 0.15869784]]
INFO - 13:08:10: 2%|▏ | 20/1000 [00:00<00:03, 247.87 it/sec, obj=[0.91966962 0.15614908]]
INFO - 13:08:10: 2%|▏ | 21/1000 [00:00<00:03, 253.84 it/sec, obj=[0.91967277 0.15614049]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 7
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.04794255057736304
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [-9.53889745e-14 1.10154941e-13]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.3394642613023262 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.3394642613023261 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.339464261302326 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.04794255057736304 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.22222222 0.77777778]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.3394642613023262 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.3394642613023261 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.339464261302326 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.04794255057736304 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: 2%|▏ | 22/1000 [00:00<00:04, 209.63 it/sec, obj=[0.91967277 0.15614049]]
INFO - 13:08:10: 2%|▏ | 23/1000 [00:00<00:04, 215.91 it/sec, obj=[0.84203912 0.33739501]]
INFO - 13:08:10: 2%|▏ | 24/1000 [00:00<00:04, 222.32 it/sec, obj=[0.85527677 0.31046303]]
INFO - 13:08:10: 2%|▎ | 25/1000 [00:00<00:04, 228.11 it/sec, obj=[0.85546004 0.31007996]]
INFO - 13:08:10: 3%|▎ | 26/1000 [00:00<00:04, 233.95 it/sec, obj=[0.85546008 0.31007988]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 8
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.09364292443480814
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [ 1.03119223e-09 -4.66331571e-10]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.2256025149680226 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.2256025149680226 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.2256025149680226 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.09364292443480814 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.33333333 0.66666667]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.2256025149680226 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.2256025149680226 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.2256025149680226 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.09364292443480814 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: 3%|▎ | 27/1000 [00:00<00:04, 203.29 it/sec, obj=[0.85546008 0.31007987]]
INFO - 13:08:10: 3%|▎ | 28/1000 [00:00<00:04, 208.33 it/sec, obj=[0.77161692 0.45984451]]
INFO - 13:08:10: 3%|▎ | 29/1000 [00:00<00:04, 213.20 it/sec, obj=[0.77767797 0.45048948]]
INFO - 13:08:10: 3%|▎ | 30/1000 [00:00<00:04, 217.99 it/sec, obj=[0.77769345 0.45046533]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 6
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.1255364934686558
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [-9.90765803e-12 -5.96217520e-13]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.1306276041616624 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.1306276041616625 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.1306276041616625 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1255364934686558 | inf | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.44444444 0.55555556]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.1306276041616624 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.1306276041616625 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.1306276041616625 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1255364934686558 | inf | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: 3%|▎ | 31/1000 [00:00<00:04, 194.79 it/sec, obj=[0.77769345 0.45046533]]
INFO - 13:08:10: 3%|▎ | 32/1000 [00:00<00:04, 198.77 it/sec, obj=[0.68170374 0.57895294]]
INFO - 13:08:10: 3%|▎ | 33/1000 [00:00<00:04, 202.92 it/sec, obj=[0.68463821 0.57556413]]
INFO - 13:08:10: 3%|▎ | 34/1000 [00:00<00:04, 207.08 it/sec, obj=[0.68463912 0.57556308]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 6
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.14185712248151133
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [1.02950981e-12 4.25381952e-13]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.04287486268043029 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.04287486268043034 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.04287486268043035 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1418571224815113 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.55555556 0.44444444]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | -0.04287486268043029 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | -0.04287486268043034 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | -0.04287486268043035 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1418571224815113 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: 4%|▎ | 35/1000 [00:00<00:05, 188.07 it/sec, obj=[0.68463912 0.57556308]]
INFO - 13:08:10: 4%|▎ | 36/1000 [00:00<00:05, 191.62 it/sec, obj=[0.57513103 0.68501143]]
INFO - 13:08:10: 4%|▎ | 37/1000 [00:00<00:04, 195.19 it/sec, obj=[0.5755631 0.6846391]]
INFO - 13:08:10: 4%|▍ | 38/1000 [00:00<00:04, 198.81 it/sec, obj=[0.57556308 0.68463912]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 7
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.14185712248204044
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [1.42996726e-13 3.05810932e-13]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.04287486268025626 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.04287486268025616 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.04287486268025619 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1418571224820404 | inf | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.66666667 0.33333333]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.04287486268025626 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.04287486268025616 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.04287486268025619 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1418571224820404 | inf | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: 4%|▍ | 39/1000 [00:00<00:05, 183.21 it/sec, obj=[0.57556308 0.68463912]]
INFO - 13:08:10: 4%|▍ | 40/1000 [00:00<00:05, 186.22 it/sec, obj=[0.45294727 0.77609783]]
INFO - 13:08:10: 4%|▍ | 41/1000 [00:00<00:05, 189.36 it/sec, obj=[0.45046707 0.77769234]]
INFO - 13:08:10: 4%|▍ | 42/1000 [00:00<00:04, 192.39 it/sec, obj=[0.45046533 0.77769345]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 6
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.1255364934616085
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [1.48561718e-13 9.68516933e-13]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.1306276041658536 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.1306276041658536 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.1306276041658536 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1255364934616085 | inf | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.77777778 0.22222222]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.1306276041658536 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.1306276041658536 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.1306276041658536 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.1255364934616085 | inf | float |
INFO - 13:08:10: +------+-------------+---------------------+-------------+-------+
INFO - 13:08:10: 4%|▍ | 43/1000 [00:00<00:05, 178.75 it/sec, obj=[0.45046533 0.77769345]]
INFO - 13:08:10: 4%|▍ | 44/1000 [00:00<00:05, 181.46 it/sec, obj=[0.31697497 0.85214023]]
INFO - 13:08:10: 4%|▍ | 45/1000 [00:00<00:05, 184.34 it/sec, obj=[0.31010616 0.85544751]]
INFO - 13:08:10: 5%|▍ | 46/1000 [00:00<00:05, 187.16 it/sec, obj=[0.31007988 0.85546008]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 6
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.09364292499323551
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [ 8.56675841e-13 -2.60819144e-12]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.225602514270673 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.2256025142706731 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.225602514270673 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.09364292499323551 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: Solving mNBI sub-problem for beta = [0.88888889 0.11111111]
INFO - 13:08:10: Optimization problem:
INFO - 13:08:10: minimize -t_extraction
INFO - 13:08:10: with respect to t, x
INFO - 13:08:10: subject to constraints:
INFO - 13:08:10: beta_sub_optim_constraint <= 0.0
INFO - 13:08:10: over the design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.225602514270673 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.2256025142706731 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.225602514270673 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.09364292499323551 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: 5%|▍ | 47/1000 [00:00<00:05, 175.68 it/sec, obj=[0.31007988 0.85546008]]
INFO - 13:08:10: 5%|▍ | 48/1000 [00:00<00:05, 178.25 it/sec, obj=[0.17146323 0.91399085]]
INFO - 13:08:10: 5%|▍ | 49/1000 [00:00<00:05, 180.98 it/sec, obj=[0.15642562 0.91956815]]
INFO - 13:08:10: 5%|▌ | 50/1000 [00:00<00:05, 183.60 it/sec, obj=[0.1561406 0.91967273]]
INFO - 13:08:10: 5%|▌ | 51/1000 [00:00<00:05, 186.18 it/sec, obj=[0.15614049 0.91967277]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO Stopped the driver
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 7
INFO - 13:08:10: Solution:
INFO - 13:08:10: The solution is feasible.
INFO - 13:08:10: Objective: 0.04794255057731033
INFO - 13:08:10: Standardized constraints:
INFO - 13:08:10: beta_sub_optim_constraint = [-1.83464355e-14 2.24126273e-14]
INFO - 13:08:10: Design space:
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: | x[0] | -4 | 0.3394642613024756 | 4 | float |
INFO - 13:08:10: | x[1] | -4 | 0.3394642613024756 | 4 | float |
INFO - 13:08:10: | x[2] | -4 | 0.3394642613024756 | 4 | float |
INFO - 13:08:10: | t | -inf | -0.04794255057731033 | inf | float |
INFO - 13:08:10: +------+-------------+----------------------+-------------+-------+
INFO - 13:08:10: 5%|▌ | 52/1000 [00:00<00:05, 172.60 it/sec, obj=[0.15614049 0.91967277]]
INFO - 13:08:10: Optimization result:
INFO - 13:08:10: Optimizer info:
INFO - 13:08:10: Status: None
INFO - 13:08:10: Message: None
INFO - 13:08:10: Number of calls to the objective function by the optimizer: 80
INFO - 13:08:10: Solution:
INFO - 13:08:10: Objective: 0.8939534673502061
INFO - 13:08:10: Pareto efficient solutions:
INFO - 13:08:10: Pareto optimal points : 42 / 52
INFO - 13:08:10: Utopia point : [0. 0.]
INFO - 13:08:10: Compromise solution (closest to utopia) : [[0.63212056 0.63212056]]
INFO - 13:08:10: Distance from utopia : 0.8939534673502061
INFO - 13:08:10: Objective values:
INFO - 13:08:10: +------+----------+----------+----------+
INFO - 13:08:10: | name | 1 | 2 | 3 |
INFO - 13:08:10: +------+----------+----------+----------+
INFO - 13:08:10: | 1 | 0 | 0.981684 | 0.632121 |
INFO - 13:08:10: | 2 | 0.981684 | 0 | 0.632121 |
INFO - 13:08:10: +------+----------+----------+----------+
INFO - 13:08:10: Design space:
INFO - 13:08:10: +-------+-------------+---------+----------+---+-------------+-------+
INFO - 13:08:10: | name | lower_bound | 1 | 2 | 3 | upper_bound | type |
INFO - 13:08:10: +-------+-------------+---------+----------+---+-------------+-------+
INFO - 13:08:10: | x (1) | -4 | 0.57735 | -0.57735 | 0 | 4 | float |
INFO - 13:08:10: | x (2) | -4 | 0.57735 | -0.57735 | 0 | 4 | float |
INFO - 13:08:10: | x (3) | -4 | 0.57735 | -0.57735 | 0 | 4 | float |
INFO - 13:08:10: +-------+-------------+---------+----------+---+-------------+-------+
Display the Pareto front¶
We can clearly see the effect of the refinement.
execute_post(opt_problem, "ParetoFront", save=False, show=True)
<gemseo.post.pareto_front.ParetoFront object at 0x7f8bb49375e0>
Total running time of the script: (0 minutes 0.863 seconds)