Compare JAX and NumPy for the resolution of the Sobieski's SSBJ problem.
Note
Click here to download the full example code
Compare JAX and NumPy for the resolution of the Sobieski's SSBJ problem.
from __future__ import annotations
from gemseo import configure
from gemseo import configure_logger
from gemseo.problems.mdo.sobieski.core.design_space import SobieskiDesignSpace
from gemseo.problems.mdo.sobieski.disciplines import SobieskiAerodynamics
from gemseo.problems.mdo.sobieski.disciplines import SobieskiMission
from gemseo.problems.mdo.sobieski.disciplines import SobieskiPropulsion
from gemseo.problems.mdo.sobieski.disciplines import SobieskiStructure
from gemseo.scenarios.doe_scenario import DOEScenario
from gemseo.scenarios.mdo_scenario import MDOScenario
from gemseo_jax.problems.sobieski.chain import JAXSobieskiChain
# Deactivate some checkers to speed up calculations in presence of cheap disciplines.
configure(False, False, True, False, False, False, False)
configure_logger()
Out:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/third_party/prettytable/prettytable.py:73: DeprecationWarning: invalid escape sequence \[
_re = re.compile("\033\[[0-9;]*m")
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/third_party/prettytable/prettytable.py:1291: DeprecationWarning: invalid escape sequence \{
self.vertical_char = random.choice("~!@#$%^&*()_+|-=\{}[];':\",./;<>?")
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/third_party/prettytable/prettytable.py:1292: DeprecationWarning: invalid escape sequence \{
self.horizontal_char = random.choice("~!@#$%^&*()_+|-=\{}[];':\",./;<>?")
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/third_party/prettytable/prettytable.py:1293: DeprecationWarning: invalid escape sequence \{
self.junction_char = random.choice("~!@#$%^&*()_+|-=\{}[];':\",./;<>?")
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/networkx/utils/backends.py:135: RuntimeWarning: networkx backend defined more than once: nx-loopback
backends.update(_get_backends("networkx.backends"))
<RootLogger root (INFO)>
DOE¶
MDF with MDAJacobi¶
Solve the Sobieski's SSBJ problem with JAX¶
chain = JAXSobieskiChain()
doe_scenario = DOEScenario(
[chain],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
)
doe_scenario.add_constraint("g_1", "ineq")
doe_scenario.add_constraint("g_2", "ineq")
doe_scenario.add_constraint("g_3", "ineq")
doe_scenario.execute(algo_name="OT_OPT_LHS", n_samples=100)
Out:
INFO - 13:06:42: Unable to initialize backend 'cuda':
INFO - 13:06:42: Unable to initialize backend 'rocm': module 'jaxlib.xla_extension' has no attribute 'GpuAllocatorConfig'
INFO - 13:06:42: Unable to initialize backend 'tpu': INTERNAL: Failed to open libtpu.so: libtpu.so: cannot open shared object file: No such file or directory
INFO - 13:06:44: Compilation of the output function JAXSobieskiChain: 0:00:00.410124 seconds.
INFO - 13:06:44: Compilation of the Jacobian function JAXSobieskiChain: 0:00:01.512181 seconds.
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
INFO - 13:06:45: Variable y_14 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:45: Variable y_24 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:45: Variable y_34 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:45: Variable y_23 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:45: Variable y_21 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:45:
INFO - 13:06:45: *** Start DOEScenario execution ***
INFO - 13:06:45: DOEScenario
INFO - 13:06:45: Disciplines: JAXSobieskiChain
INFO - 13:06:45: MDO formulation: MDF
INFO - 13:06:45: Optimization problem:
INFO - 13:06:45: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:45: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:45: subject to constraints:
INFO - 13:06:45: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:45: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:45: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:45: over the design space:
INFO - 13:06:45: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:45: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:45: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:45: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:45: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:45: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:45: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:45: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:45: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:45: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:45: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:45: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:45: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:45: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:45: Solving optimization problem with algorithm OT_OPT_LHS:
INFO - 13:06:45: 1%| | 1/100 [00:00<00:00, 154.44 it/sec, obj=-1.25e+3]
INFO - 13:06:45: 2%|▏ | 2/100 [00:00<00:00, 185.70 it/sec, obj=-303]
INFO - 13:06:45: 3%|▎ | 3/100 [00:00<00:00, 177.67 it/sec, obj=-447]
INFO - 13:06:45: 4%|▍ | 4/100 [00:00<00:00, 180.29 it/sec, obj=-444]
INFO - 13:06:45: 5%|▌ | 5/100 [00:00<00:00, 187.30 it/sec, obj=-804]
INFO - 13:06:45: 6%|▌ | 6/100 [00:00<00:00, 192.00 it/sec, obj=-232]
INFO - 13:06:45: 7%|▋ | 7/100 [00:00<00:00, 195.77 it/sec, obj=-701]
INFO - 13:06:45: 8%|▊ | 8/100 [00:00<00:00, 197.64 it/sec, obj=-253]
INFO - 13:06:45: 9%|▉ | 9/100 [00:00<00:00, 202.98 it/sec, obj=-773]
INFO - 13:06:45: 10%|█ | 10/100 [00:00<00:00, 203.08 it/sec, obj=-448]
INFO - 13:06:45: 11%|█ | 11/100 [00:00<00:00, 196.33 it/sec, obj=-659]
INFO - 13:06:45: 12%|█▏ | 12/100 [00:00<00:00, 195.59 it/sec, obj=-282]
INFO - 13:06:45: 13%|█▎ | 13/100 [00:00<00:00, 197.37 it/sec, obj=-387]
INFO - 13:06:45: 14%|█▍ | 14/100 [00:00<00:00, 200.97 it/sec, obj=-379]
INFO - 13:06:45: 15%|█▌ | 15/100 [00:00<00:00, 195.26 it/sec, obj=-196]
INFO - 13:06:45: 16%|█▌ | 16/100 [00:00<00:00, 193.75 it/sec, obj=-647]
INFO - 13:06:45: 17%|█▋ | 17/100 [00:00<00:00, 191.67 it/sec, obj=-238]
INFO - 13:06:45: 18%|█▊ | 18/100 [00:00<00:00, 192.82 it/sec, obj=-304]
INFO - 13:06:45: 19%|█▉ | 19/100 [00:00<00:00, 192.51 it/sec, obj=-372]
INFO - 13:06:45: 20%|██ | 20/100 [00:00<00:00, 195.08 it/sec, obj=-699]
INFO - 13:06:45: 21%|██ | 21/100 [00:00<00:00, 196.18 it/sec, obj=-873]
INFO - 13:06:45: 22%|██▏ | 22/100 [00:00<00:00, 197.29 it/sec, obj=-489]
INFO - 13:06:45: 23%|██▎ | 23/100 [00:00<00:00, 197.09 it/sec, obj=-623]
INFO - 13:06:45: 24%|██▍ | 24/100 [00:00<00:00, 199.25 it/sec, obj=-262]
INFO - 13:06:45: 25%|██▌ | 25/100 [00:00<00:00, 201.37 it/sec, obj=-345]
INFO - 13:06:45: 26%|██▌ | 26/100 [00:00<00:00, 201.00 it/sec, obj=-377]
INFO - 13:06:45: 27%|██▋ | 27/100 [00:00<00:00, 201.86 it/sec, obj=-387]
INFO - 13:06:45: 28%|██▊ | 28/100 [00:00<00:00, 200.41 it/sec, obj=-334]
INFO - 13:06:45: 29%|██▉ | 29/100 [00:00<00:00, 202.18 it/sec, obj=-438]
INFO - 13:06:45: 30%|███ | 30/100 [00:00<00:00, 203.97 it/sec, obj=-1.94e+3]
INFO - 13:06:45: 31%|███ | 31/100 [00:00<00:00, 204.08 it/sec, obj=-733]
INFO - 13:06:45: 32%|███▏ | 32/100 [00:00<00:00, 204.45 it/sec, obj=-774]
INFO - 13:06:45: 33%|███▎ | 33/100 [00:00<00:00, 203.81 it/sec, obj=-517]
INFO - 13:06:45: 34%|███▍ | 34/100 [00:00<00:00, 205.35 it/sec, obj=-232]
INFO - 13:06:45: 35%|███▌ | 35/100 [00:00<00:00, 205.08 it/sec, obj=-195]
INFO - 13:06:45: 36%|███▌ | 36/100 [00:00<00:00, 205.37 it/sec, obj=-218]
INFO - 13:06:45: 37%|███▋ | 37/100 [00:00<00:00, 204.87 it/sec, obj=-198]
INFO - 13:06:45: 38%|███▊ | 38/100 [00:00<00:00, 202.83 it/sec, obj=-536]
INFO - 13:06:45: 39%|███▉ | 39/100 [00:00<00:00, 201.31 it/sec, obj=-173]
INFO - 13:06:45: 40%|████ | 40/100 [00:00<00:00, 201.72 it/sec, obj=-388]
INFO - 13:06:45: 41%|████ | 41/100 [00:00<00:00, 201.44 it/sec, obj=-723]
INFO - 13:06:45: 42%|████▏ | 42/100 [00:00<00:00, 200.16 it/sec, obj=-240]
INFO - 13:06:45: 43%|████▎ | 43/100 [00:00<00:00, 200.29 it/sec, obj=-663]
INFO - 13:06:45: 44%|████▍ | 44/100 [00:00<00:00, 199.93 it/sec, obj=-1.14e+3]
INFO - 13:06:45: 45%|████▌ | 45/100 [00:00<00:00, 200.52 it/sec, obj=-438]
INFO - 13:06:45: 46%|████▌ | 46/100 [00:00<00:00, 200.33 it/sec, obj=-301]
INFO - 13:06:45: 47%|████▋ | 47/100 [00:00<00:00, 200.81 it/sec, obj=-682]
INFO - 13:06:45: 48%|████▊ | 48/100 [00:00<00:00, 199.50 it/sec, obj=-750]
INFO - 13:06:45: 49%|████▉ | 49/100 [00:00<00:00, 199.25 it/sec, obj=-789]
INFO - 13:06:45: 50%|█████ | 50/100 [00:00<00:00, 198.90 it/sec, obj=-395]
INFO - 13:06:45: 51%|█████ | 51/100 [00:00<00:00, 198.06 it/sec, obj=-407]
INFO - 13:06:45: 52%|█████▏ | 52/100 [00:00<00:00, 198.40 it/sec, obj=-315]
INFO - 13:06:45: 53%|█████▎ | 53/100 [00:00<00:00, 198.04 it/sec, obj=-337]
INFO - 13:06:45: 54%|█████▍ | 54/100 [00:00<00:00, 198.34 it/sec, obj=-414]
INFO - 13:06:45: 55%|█████▌ | 55/100 [00:00<00:00, 198.08 it/sec, obj=-240]
INFO - 13:06:45: 56%|█████▌ | 56/100 [00:00<00:00, 198.90 it/sec, obj=-297]
INFO - 13:06:45: 57%|█████▋ | 57/100 [00:00<00:00, 199.13 it/sec, obj=-442]
INFO - 13:06:45: 58%|█████▊ | 58/100 [00:00<00:00, 198.91 it/sec, obj=-233]
INFO - 13:06:45: 59%|█████▉ | 59/100 [00:00<00:00, 198.66 it/sec, obj=-519]
INFO - 13:06:45: 60%|██████ | 60/100 [00:00<00:00, 198.35 it/sec, obj=-920]
INFO - 13:06:45: 61%|██████ | 61/100 [00:00<00:00, 198.20 it/sec, obj=-517]
INFO - 13:06:45: 62%|██████▏ | 62/100 [00:00<00:00, 198.50 it/sec, obj=-390]
INFO - 13:06:45: 63%|██████▎ | 63/100 [00:00<00:00, 198.72 it/sec, obj=-434]
INFO - 13:06:45: 64%|██████▍ | 64/100 [00:00<00:00, 198.42 it/sec, obj=-244]
INFO - 13:06:45: 65%|██████▌ | 65/100 [00:00<00:00, 197.63 it/sec, obj=-192]
INFO - 13:06:45: 66%|██████▌ | 66/100 [00:00<00:00, 197.63 it/sec, obj=-305]
INFO - 13:06:45: 67%|██████▋ | 67/100 [00:00<00:00, 196.74 it/sec, obj=-393]
INFO - 13:06:45: 68%|██████▊ | 68/100 [00:00<00:00, 196.92 it/sec, obj=-307]
INFO - 13:06:45: 69%|██████▉ | 69/100 [00:00<00:00, 197.13 it/sec, obj=-328]
INFO - 13:06:45: 70%|███████ | 70/100 [00:00<00:00, 196.82 it/sec, obj=-998]
INFO - 13:06:45: 71%|███████ | 71/100 [00:00<00:00, 197.00 it/sec, obj=-1.06e+3]
INFO - 13:06:45: 72%|███████▏ | 72/100 [00:00<00:00, 196.14 it/sec, obj=-707]
INFO - 13:06:45: 73%|███████▎ | 73/100 [00:00<00:00, 196.85 it/sec, obj=-897]
INFO - 13:06:45: 74%|███████▍ | 74/100 [00:00<00:00, 197.54 it/sec, obj=-1.36e+3]
INFO - 13:06:45: 75%|███████▌ | 75/100 [00:00<00:00, 197.83 it/sec, obj=-853]
INFO - 13:06:45: 76%|███████▌ | 76/100 [00:00<00:00, 198.15 it/sec, obj=-217]
INFO - 13:06:45: 77%|███████▋ | 77/100 [00:00<00:00, 198.11 it/sec, obj=-370]
INFO - 13:06:45: 78%|███████▊ | 78/100 [00:00<00:00, 198.42 it/sec, obj=-636]
INFO - 13:06:45: 79%|███████▉ | 79/100 [00:00<00:00, 198.74 it/sec, obj=-337]
INFO - 13:06:45: 80%|████████ | 80/100 [00:00<00:00, 199.03 it/sec, obj=-804]
INFO - 13:06:45: 81%|████████ | 81/100 [00:00<00:00, 199.31 it/sec, obj=-318]
INFO - 13:06:45: 82%|████████▏ | 82/100 [00:00<00:00, 199.23 it/sec, obj=-253]
INFO - 13:06:45: 83%|████████▎ | 83/100 [00:00<00:00, 199.00 it/sec, obj=-590]
INFO - 13:06:45: 84%|████████▍ | 84/100 [00:00<00:00, 198.88 it/sec, obj=-438]
INFO - 13:06:45: 85%|████████▌ | 85/100 [00:00<00:00, 198.65 it/sec, obj=-642]
INFO - 13:06:45: 86%|████████▌ | 86/100 [00:00<00:00, 199.16 it/sec, obj=-381]
INFO - 13:06:45: 87%|████████▋ | 87/100 [00:00<00:00, 199.31 it/sec, obj=-447]
INFO - 13:06:45: 88%|████████▊ | 88/100 [00:00<00:00, 199.06 it/sec, obj=-707]
INFO - 13:06:45: 89%|████████▉ | 89/100 [00:00<00:00, 198.94 it/sec, obj=-384]
INFO - 13:06:45: 90%|█████████ | 90/100 [00:00<00:00, 198.86 it/sec, obj=-491]
INFO - 13:06:45: 91%|█████████ | 91/100 [00:00<00:00, 198.95 it/sec, obj=-285]
INFO - 13:06:45: 92%|█████████▏| 92/100 [00:00<00:00, 198.76 it/sec, obj=-433]
INFO - 13:06:45: 93%|█████████▎| 93/100 [00:00<00:00, 198.52 it/sec, obj=-377]
INFO - 13:06:45: 94%|█████████▍| 94/100 [00:00<00:00, 198.62 it/sec, obj=-827]
INFO - 13:06:45: 95%|█████████▌| 95/100 [00:00<00:00, 198.45 it/sec, obj=-712]
INFO - 13:06:45: 96%|█████████▌| 96/100 [00:00<00:00, 198.56 it/sec, obj=-245]
INFO - 13:06:45: 97%|█████████▋| 97/100 [00:00<00:00, 198.69 it/sec, obj=-502]
INFO - 13:06:45: 98%|█████████▊| 98/100 [00:00<00:00, 198.15 it/sec, obj=-309]
INFO - 13:06:45: 99%|█████████▉| 99/100 [00:00<00:00, 198.29 it/sec, obj=-971]
INFO - 13:06:45: 100%|██████████| 100/100 [00:00<00:00, 198.16 it/sec, obj=-649]
INFO - 13:06:45: Optimization result:
INFO - 13:06:45: Optimizer info:
INFO - 13:06:45: Status: None
INFO - 13:06:45: Message: None
INFO - 13:06:45: Number of calls to the objective function by the optimizer: 0
INFO - 13:06:45: Solution:
INFO - 13:06:45: The solution is feasible.
INFO - 13:06:45: Objective: -659.1819334138517
INFO - 13:06:45: Standardized constraints:
INFO - 13:06:45: g_1 = [-0.11936975 -0.11352202 -0.10911984 -0.10600546 -0.10373211 -0.04196619
INFO - 13:06:45: -0.19803381]
INFO - 13:06:45: g_2 = -0.007088218675791014
INFO - 13:06:45: g_3 = [-0.43705891 -0.56294109 -0.64490518 -0.08117258]
INFO - 13:06:45: Design space:
INFO - 13:06:45: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:45: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:45: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:45: | x_shared[0] | 0.01 | 0.05822794533105225 | 0.09 | float |
INFO - 13:06:45: | x_shared[1] | 30000 | 44461.15862672209 | 60000 | float |
INFO - 13:06:45: | x_shared[2] | 1.4 | 1.58903403609043 | 1.8 | float |
INFO - 13:06:45: | x_shared[3] | 2.5 | 2.757102870923486 | 8.5 | float |
INFO - 13:06:45: | x_shared[4] | 40 | 68.73596231164589 | 70 | float |
INFO - 13:06:45: | x_shared[5] | 500 | 723.9554384869837 | 1500 | float |
INFO - 13:06:45: | x_1[0] | 0.1 | 0.2359336189021384 | 0.4 | float |
INFO - 13:06:45: | x_1[1] | 0.75 | 0.8931955972189334 | 1.25 | float |
INFO - 13:06:45: | x_2 | 0.75 | 0.9978936102804572 | 1.25 | float |
INFO - 13:06:45: | x_3 | 0.1 | 0.1551593150888611 | 1 | float |
INFO - 13:06:45: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:45: *** End DOEScenario execution (time: 0:00:00.528993) ***
Solve the Sobieski's SSBJ problem with NumPy¶
doe_scenario = DOEScenario(
[
SobieskiStructure(),
SobieskiAerodynamics(),
SobieskiPropulsion(),
SobieskiMission(),
],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
)
doe_scenario.add_constraint("g_1", "ineq")
doe_scenario.add_constraint("g_2", "ineq")
doe_scenario.add_constraint("g_3", "ineq")
doe_scenario.execute(algo_name="OT_OPT_LHS", n_samples=100)
Out:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
WARNING - 13:06:45: Unsupported feature 'minItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
WARNING - 13:06:45: Unsupported feature 'maxItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
INFO - 13:06:45:
INFO - 13:06:45: *** Start DOEScenario execution ***
INFO - 13:06:45: DOEScenario
INFO - 13:06:45: Disciplines: SobieskiAerodynamics SobieskiMission SobieskiPropulsion SobieskiStructure
INFO - 13:06:45: MDO formulation: MDF
INFO - 13:06:45: Optimization problem:
INFO - 13:06:45: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:45: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:45: subject to constraints:
INFO - 13:06:45: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:45: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:45: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:45: over the design space:
INFO - 13:06:45: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:45: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:45: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:45: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:45: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:45: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:45: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:45: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:45: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:45: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:45: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:45: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:45: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:45: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:45: Solving optimization problem with algorithm OT_OPT_LHS:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/problems/mdo/sobieski/core/utils.py:225: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
ai_coeff[index] = -(f_bound[2] - f_bound[0]) / (2 * mtx_shifted[0, 1])
INFO - 13:06:45: 1%| | 1/100 [00:00<00:02, 47.67 it/sec, obj=-1.25e+3]
INFO - 13:06:45: 2%|▏ | 2/100 [00:00<00:01, 49.66 it/sec, obj=-303]
INFO - 13:06:45: 3%|▎ | 3/100 [00:00<00:02, 40.65 it/sec, obj=-447]
INFO - 13:06:45: 4%|▍ | 4/100 [00:00<00:02, 38.78 it/sec, obj=-444]
INFO - 13:06:45: 5%|▌ | 5/100 [00:00<00:02, 38.85 it/sec, obj=-804]
INFO - 13:06:45: 6%|▌ | 6/100 [00:00<00:02, 38.22 it/sec, obj=-232]
INFO - 13:06:45: 7%|▋ | 7/100 [00:00<00:02, 38.96 it/sec, obj=-701]
INFO - 13:06:45: 8%|▊ | 8/100 [00:00<00:02, 39.62 it/sec, obj=-253]
INFO - 13:06:45: 9%|▉ | 9/100 [00:00<00:02, 40.74 it/sec, obj=-773]
INFO - 13:06:45: 10%|█ | 10/100 [00:00<00:02, 42.01 it/sec, obj=-448]
INFO - 13:06:45: 11%|█ | 11/100 [00:00<00:02, 40.09 it/sec, obj=-659]
INFO - 13:06:45: 12%|█▏ | 12/100 [00:00<00:02, 40.17 it/sec, obj=-282]
INFO - 13:06:45: 13%|█▎ | 13/100 [00:00<00:02, 40.48 it/sec, obj=-387]
INFO - 13:06:45: 14%|█▍ | 14/100 [00:00<00:02, 40.43 it/sec, obj=-379]
INFO - 13:06:45: 15%|█▌ | 15/100 [00:00<00:02, 39.90 it/sec, obj=-196]
INFO - 13:06:46: 16%|█▌ | 16/100 [00:00<00:02, 40.13 it/sec, obj=-647]
INFO - 13:06:46: 17%|█▋ | 17/100 [00:00<00:02, 39.35 it/sec, obj=-238]
INFO - 13:06:46: 18%|█▊ | 18/100 [00:00<00:02, 39.84 it/sec, obj=-304]
INFO - 13:06:46: 19%|█▉ | 19/100 [00:00<00:02, 40.09 it/sec, obj=-372]
INFO - 13:06:46: 20%|██ | 20/100 [00:00<00:01, 40.25 it/sec, obj=-699]
INFO - 13:06:46: 21%|██ | 21/100 [00:00<00:01, 40.62 it/sec, obj=-873]
INFO - 13:06:46: 22%|██▏ | 22/100 [00:00<00:01, 40.93 it/sec, obj=-489]
INFO - 13:06:46: 23%|██▎ | 23/100 [00:00<00:01, 41.09 it/sec, obj=-623]
INFO - 13:06:46: 24%|██▍ | 24/100 [00:00<00:01, 41.24 it/sec, obj=-262]
INFO - 13:06:46: 25%|██▌ | 25/100 [00:00<00:01, 41.49 it/sec, obj=-345]
INFO - 13:06:46: 26%|██▌ | 26/100 [00:00<00:01, 41.74 it/sec, obj=-377]
INFO - 13:06:46: 27%|██▋ | 27/100 [00:00<00:01, 41.62 it/sec, obj=-387]
INFO - 13:06:46: 28%|██▊ | 28/100 [00:00<00:01, 40.71 it/sec, obj=-334]
INFO - 13:06:46: 29%|██▉ | 29/100 [00:00<00:01, 40.95 it/sec, obj=-438]
INFO - 13:06:46: 30%|███ | 30/100 [00:00<00:01, 41.20 it/sec, obj=-1.94e+3]
INFO - 13:06:46: 31%|███ | 31/100 [00:00<00:01, 41.36 it/sec, obj=-733]
INFO - 13:06:46: 32%|███▏ | 32/100 [00:00<00:01, 41.66 it/sec, obj=-774]
INFO - 13:06:46: 33%|███▎ | 33/100 [00:00<00:01, 41.47 it/sec, obj=-517]
INFO - 13:06:46: 34%|███▍ | 34/100 [00:00<00:01, 41.57 it/sec, obj=-232]
INFO - 13:06:46: 35%|███▌ | 35/100 [00:00<00:01, 41.52 it/sec, obj=-195]
INFO - 13:06:46: 36%|███▌ | 36/100 [00:00<00:01, 41.67 it/sec, obj=-218]
INFO - 13:06:46: 37%|███▋ | 37/100 [00:00<00:01, 41.39 it/sec, obj=-198]
INFO - 13:06:46: 38%|███▊ | 38/100 [00:00<00:01, 41.46 it/sec, obj=-536]
INFO - 13:06:46: 39%|███▉ | 39/100 [00:00<00:01, 41.11 it/sec, obj=-173]
INFO - 13:06:46: 40%|████ | 40/100 [00:00<00:01, 41.39 it/sec, obj=-388]
INFO - 13:06:46: 41%|████ | 41/100 [00:00<00:01, 41.29 it/sec, obj=-723]
INFO - 13:06:46: 42%|████▏ | 42/100 [00:01<00:01, 41.04 it/sec, obj=-240]
INFO - 13:06:46: 43%|████▎ | 43/100 [00:01<00:01, 41.13 it/sec, obj=-663]
INFO - 13:06:46: 44%|████▍ | 44/100 [00:01<00:01, 40.99 it/sec, obj=-1.14e+3]
INFO - 13:06:46: 45%|████▌ | 45/100 [00:01<00:01, 41.15 it/sec, obj=-438]
INFO - 13:06:46: 46%|████▌ | 46/100 [00:01<00:01, 40.82 it/sec, obj=-301]
INFO - 13:06:46: 47%|████▋ | 47/100 [00:01<00:01, 41.08 it/sec, obj=-682]
INFO - 13:06:46: 48%|████▊ | 48/100 [00:01<00:01, 41.08 it/sec, obj=-750]
INFO - 13:06:46: 49%|████▉ | 49/100 [00:01<00:01, 41.16 it/sec, obj=-789]
INFO - 13:06:46: 50%|█████ | 50/100 [00:01<00:01, 41.21 it/sec, obj=-395]
INFO - 13:06:46: 51%|█████ | 51/100 [00:01<00:01, 41.17 it/sec, obj=-407]
INFO - 13:06:46: 52%|█████▏ | 52/100 [00:01<00:01, 41.25 it/sec, obj=-315]
INFO - 13:06:46: 53%|█████▎ | 53/100 [00:01<00:01, 41.02 it/sec, obj=-337]
INFO - 13:06:46: 54%|█████▍ | 54/100 [00:01<00:01, 41.03 it/sec, obj=-414]
INFO - 13:06:46: 55%|█████▌ | 55/100 [00:01<00:01, 40.83 it/sec, obj=-240]
INFO - 13:06:46: 56%|█████▌ | 56/100 [00:01<00:01, 40.96 it/sec, obj=-297]
INFO - 13:06:47: 57%|█████▋ | 57/100 [00:01<00:01, 41.11 it/sec, obj=-442]
INFO - 13:06:47: 58%|█████▊ | 58/100 [00:01<00:01, 41.12 it/sec, obj=-233]
INFO - 13:06:47: 59%|█████▉ | 59/100 [00:01<00:00, 41.17 it/sec, obj=-519]
INFO - 13:06:47: 60%|██████ | 60/100 [00:01<00:00, 41.25 it/sec, obj=-920]
INFO - 13:06:47: 61%|██████ | 61/100 [00:01<00:00, 41.23 it/sec, obj=-517]
INFO - 13:06:47: 62%|██████▏ | 62/100 [00:01<00:00, 41.24 it/sec, obj=-390]
INFO - 13:06:47: 63%|██████▎ | 63/100 [00:01<00:00, 41.04 it/sec, obj=-434]
INFO - 13:06:47: 64%|██████▍ | 64/100 [00:01<00:00, 40.88 it/sec, obj=-244]
INFO - 13:06:47: 65%|██████▌ | 65/100 [00:01<00:00, 40.64 it/sec, obj=-192]
INFO - 13:06:47: 66%|██████▌ | 66/100 [00:01<00:00, 40.69 it/sec, obj=-305]
INFO - 13:06:47: 67%|██████▋ | 67/100 [00:01<00:00, 40.59 it/sec, obj=-393]
INFO - 13:06:47: 68%|██████▊ | 68/100 [00:01<00:00, 40.65 it/sec, obj=-307]
INFO - 13:06:47: 69%|██████▉ | 69/100 [00:01<00:00, 40.76 it/sec, obj=-328]
INFO - 13:06:47: 70%|███████ | 70/100 [00:01<00:00, 40.82 it/sec, obj=-998]
INFO - 13:06:47: 71%|███████ | 71/100 [00:01<00:00, 40.79 it/sec, obj=-1.06e+3]
INFO - 13:06:47: 72%|███████▏ | 72/100 [00:01<00:00, 40.67 it/sec, obj=-707]
INFO - 13:06:47: 73%|███████▎ | 73/100 [00:01<00:00, 40.75 it/sec, obj=-897]
INFO - 13:06:47: 74%|███████▍ | 74/100 [00:01<00:00, 40.69 it/sec, obj=-1.36e+3]
INFO - 13:06:47: 75%|███████▌ | 75/100 [00:01<00:00, 40.76 it/sec, obj=-853]
INFO - 13:06:47: 76%|███████▌ | 76/100 [00:01<00:00, 40.85 it/sec, obj=-217]
INFO - 13:06:47: 77%|███████▋ | 77/100 [00:01<00:00, 40.81 it/sec, obj=-370]
INFO - 13:06:47: 78%|███████▊ | 78/100 [00:01<00:00, 40.63 it/sec, obj=-636]
INFO - 13:06:47: 79%|███████▉ | 79/100 [00:01<00:00, 40.78 it/sec, obj=-337]
INFO - 13:06:47: 80%|████████ | 80/100 [00:01<00:00, 40.67 it/sec, obj=-804]
INFO - 13:06:47: 81%|████████ | 81/100 [00:01<00:00, 40.74 it/sec, obj=-318]
INFO - 13:06:47: 82%|████████▏ | 82/100 [00:02<00:00, 40.73 it/sec, obj=-253]
INFO - 13:06:47: 83%|████████▎ | 83/100 [00:02<00:00, 40.50 it/sec, obj=-590]
INFO - 13:06:47: 84%|████████▍ | 84/100 [00:02<00:00, 40.53 it/sec, obj=-438]
INFO - 13:06:47: 85%|████████▌ | 85/100 [00:02<00:00, 40.63 it/sec, obj=-642]
INFO - 13:06:47: 86%|████████▌ | 86/100 [00:02<00:00, 40.74 it/sec, obj=-381]
INFO - 13:06:47: 87%|████████▋ | 87/100 [00:02<00:00, 40.82 it/sec, obj=-447]
INFO - 13:06:47: 88%|████████▊ | 88/100 [00:02<00:00, 40.71 it/sec, obj=-707]
INFO - 13:06:47: 89%|████████▉ | 89/100 [00:02<00:00, 40.77 it/sec, obj=-384]
INFO - 13:06:47: 90%|█████████ | 90/100 [00:02<00:00, 40.82 it/sec, obj=-491]
INFO - 13:06:47: 91%|█████████ | 91/100 [00:02<00:00, 40.90 it/sec, obj=-285]
INFO - 13:06:47: 92%|█████████▏| 92/100 [00:02<00:00, 40.93 it/sec, obj=-433]
INFO - 13:06:47: 93%|█████████▎| 93/100 [00:02<00:00, 40.91 it/sec, obj=-377]
INFO - 13:06:47: 94%|█████████▍| 94/100 [00:02<00:00, 40.89 it/sec, obj=-827]
INFO - 13:06:47: 95%|█████████▌| 95/100 [00:02<00:00, 40.90 it/sec, obj=-712]
INFO - 13:06:47: 96%|█████████▌| 96/100 [00:02<00:00, 40.99 it/sec, obj=-245]
INFO - 13:06:47: 97%|█████████▋| 97/100 [00:02<00:00, 41.10 it/sec, obj=-502]
INFO - 13:06:48: 98%|█████████▊| 98/100 [00:02<00:00, 41.00 it/sec, obj=-309]
INFO - 13:06:48: 99%|█████████▉| 99/100 [00:02<00:00, 40.96 it/sec, obj=-971]
INFO - 13:06:48: 100%|██████████| 100/100 [00:02<00:00, 40.97 it/sec, obj=-649]
INFO - 13:06:48: Optimization result:
INFO - 13:06:48: Optimizer info:
INFO - 13:06:48: Status: None
INFO - 13:06:48: Message: None
INFO - 13:06:48: Number of calls to the objective function by the optimizer: 0
INFO - 13:06:48: Solution:
INFO - 13:06:48: The solution is feasible.
INFO - 13:06:48: Objective: -659.181929189823
INFO - 13:06:48: Standardized constraints:
INFO - 13:06:48: g_1 = [-0.11936975 -0.11352202 -0.10911984 -0.10600546 -0.10373211 -0.04196619
INFO - 13:06:48: -0.19803381]
INFO - 13:06:48: g_2 = -0.007088218675791014
INFO - 13:06:48: g_3 = [-0.43705891 -0.56294109 -0.64490518 -0.08117258]
INFO - 13:06:48: Design space:
INFO - 13:06:48: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:48: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:48: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:48: | x_shared[0] | 0.01 | 0.05822794533105225 | 0.09 | float |
INFO - 13:06:48: | x_shared[1] | 30000 | 44461.15862672209 | 60000 | float |
INFO - 13:06:48: | x_shared[2] | 1.4 | 1.58903403609043 | 1.8 | float |
INFO - 13:06:48: | x_shared[3] | 2.5 | 2.757102870923486 | 8.5 | float |
INFO - 13:06:48: | x_shared[4] | 40 | 68.73596231164589 | 70 | float |
INFO - 13:06:48: | x_shared[5] | 500 | 723.9554384869837 | 1500 | float |
INFO - 13:06:48: | x_1[0] | 0.1 | 0.2359336189021384 | 0.4 | float |
INFO - 13:06:48: | x_1[1] | 0.75 | 0.8931955972189334 | 1.25 | float |
INFO - 13:06:48: | x_2 | 0.75 | 0.9978936102804572 | 1.25 | float |
INFO - 13:06:48: | x_3 | 0.1 | 0.1551593150888611 | 1 | float |
INFO - 13:06:48: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:48: *** End DOEScenario execution (time: 0:00:02.463058) ***
Conclusion¶
JAX is about 3 times faster than NumPy in the case of a sampling loop with a Jacobi MDA.
MDF with MDAGaussSeidel¶
Solve the Sobieski's SSBJ problem with JAX¶
chain = JAXSobieskiChain()
doe_scenario = DOEScenario(
[chain],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
main_mda_settings={"inner_mda_name": "MDAGaussSeidel"},
)
doe_scenario.add_constraint("g_1", "ineq")
doe_scenario.add_constraint("g_2", "ineq")
doe_scenario.add_constraint("g_3", "ineq")
doe_scenario.execute(algo_name="OT_OPT_LHS", n_samples=100)
Out:
INFO - 13:06:49: Compilation of the output function JAXSobieskiChain: 0:00:00.384233 seconds.
INFO - 13:06:49: Compilation of the Jacobian function JAXSobieskiChain: 0:00:01.225698 seconds.
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
INFO - 13:06:49: Variable y_14 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:49: Variable y_24 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:49: Variable y_34 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:49: Variable y_23 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:49: Variable y_21 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:49:
INFO - 13:06:49: *** Start DOEScenario execution ***
INFO - 13:06:49: DOEScenario
INFO - 13:06:49: Disciplines: JAXSobieskiChain
INFO - 13:06:49: MDO formulation: MDF
INFO - 13:06:49: Optimization problem:
INFO - 13:06:49: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:49: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:49: subject to constraints:
INFO - 13:06:49: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:49: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:49: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:49: over the design space:
INFO - 13:06:49: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:49: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:49: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:49: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:49: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:49: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:49: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:49: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:49: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:49: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:49: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:49: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:49: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:49: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:49: Solving optimization problem with algorithm OT_OPT_LHS:
INFO - 13:06:49: 1%| | 1/100 [00:00<00:00, 327.78 it/sec, obj=-1.25e+3]
INFO - 13:06:49: 2%|▏ | 2/100 [00:00<00:00, 329.97 it/sec, obj=-303]
INFO - 13:06:49: 3%|▎ | 3/100 [00:00<00:00, 257.24 it/sec, obj=-447]
INFO - 13:06:49: 4%|▍ | 4/100 [00:00<00:00, 271.80 it/sec, obj=-444]
INFO - 13:06:49: 5%|▌ | 5/100 [00:00<00:00, 279.86 it/sec, obj=-804]
INFO - 13:06:49: 6%|▌ | 6/100 [00:00<00:00, 284.19 it/sec, obj=-232]
INFO - 13:06:49: 7%|▋ | 7/100 [00:00<00:00, 287.34 it/sec, obj=-701]
INFO - 13:06:49: 8%|▊ | 8/100 [00:00<00:00, 282.70 it/sec, obj=-253]
INFO - 13:06:49: 9%|▉ | 9/100 [00:00<00:00, 289.46 it/sec, obj=-773]
INFO - 13:06:49: 10%|█ | 10/100 [00:00<00:00, 294.12 it/sec, obj=-448]
INFO - 13:06:49: 11%|█ | 11/100 [00:00<00:00, 293.41 it/sec, obj=-659]
INFO - 13:06:49: 12%|█▏ | 12/100 [00:00<00:00, 292.44 it/sec, obj=-282]
INFO - 13:06:49: 13%|█▎ | 13/100 [00:00<00:00, 297.44 it/sec, obj=-387]
INFO - 13:06:49: 14%|█▍ | 14/100 [00:00<00:00, 300.28 it/sec, obj=-379]
INFO - 13:06:49: 15%|█▌ | 15/100 [00:00<00:00, 299.22 it/sec, obj=-196]
INFO - 13:06:49: 16%|█▌ | 16/100 [00:00<00:00, 292.78 it/sec, obj=-647]
INFO - 13:06:49: 17%|█▋ | 17/100 [00:00<00:00, 287.15 it/sec, obj=-238]
INFO - 13:06:49: 18%|█▊ | 18/100 [00:00<00:00, 289.39 it/sec, obj=-304]
INFO - 13:06:49: 19%|█▉ | 19/100 [00:00<00:00, 288.83 it/sec, obj=-372]
INFO - 13:06:49: 20%|██ | 20/100 [00:00<00:00, 292.51 it/sec, obj=-699]
INFO - 13:06:49: 21%|██ | 21/100 [00:00<00:00, 293.22 it/sec, obj=-873]
INFO - 13:06:49: 22%|██▏ | 22/100 [00:00<00:00, 291.23 it/sec, obj=-489]
INFO - 13:06:49: 23%|██▎ | 23/100 [00:00<00:00, 287.62 it/sec, obj=-623]
INFO - 13:06:49: 24%|██▍ | 24/100 [00:00<00:00, 289.86 it/sec, obj=-262]
INFO - 13:06:49: 25%|██▌ | 25/100 [00:00<00:00, 292.35 it/sec, obj=-345]
INFO - 13:06:49: 26%|██▌ | 26/100 [00:00<00:00, 289.77 it/sec, obj=-377]
INFO - 13:06:49: 27%|██▋ | 27/100 [00:00<00:00, 288.26 it/sec, obj=-387]
INFO - 13:06:49: 28%|██▊ | 28/100 [00:00<00:00, 282.72 it/sec, obj=-334]
INFO - 13:06:49: 29%|██▉ | 29/100 [00:00<00:00, 284.88 it/sec, obj=-438]
INFO - 13:06:49: 30%|███ | 30/100 [00:00<00:00, 287.27 it/sec, obj=-1.94e+3]
INFO - 13:06:49: 31%|███ | 31/100 [00:00<00:00, 285.68 it/sec, obj=-733]
INFO - 13:06:49: 32%|███▏ | 32/100 [00:00<00:00, 287.36 it/sec, obj=-774]
INFO - 13:06:49: 33%|███▎ | 33/100 [00:00<00:00, 287.32 it/sec, obj=-517]
INFO - 13:06:49: 34%|███▍ | 34/100 [00:00<00:00, 288.52 it/sec, obj=-232]
INFO - 13:06:49: 35%|███▌ | 35/100 [00:00<00:00, 290.60 it/sec, obj=-195]
INFO - 13:06:49: 36%|███▌ | 36/100 [00:00<00:00, 291.85 it/sec, obj=-218]
INFO - 13:06:49: 37%|███▋ | 37/100 [00:00<00:00, 292.81 it/sec, obj=-198]
INFO - 13:06:49: 38%|███▊ | 38/100 [00:00<00:00, 287.30 it/sec, obj=-536]
INFO - 13:06:49: 39%|███▉ | 39/100 [00:00<00:00, 282.11 it/sec, obj=-173]
INFO - 13:06:49: 40%|████ | 40/100 [00:00<00:00, 283.13 it/sec, obj=-388]
INFO - 13:06:49: 41%|████ | 41/100 [00:00<00:00, 283.20 it/sec, obj=-723]
INFO - 13:06:49: 42%|████▏ | 42/100 [00:00<00:00, 282.25 it/sec, obj=-240]
INFO - 13:06:49: 43%|████▎ | 43/100 [00:00<00:00, 283.31 it/sec, obj=-663]
INFO - 13:06:49: 44%|████▍ | 44/100 [00:00<00:00, 281.86 it/sec, obj=-1.14e+3]
INFO - 13:06:49: 45%|████▌ | 45/100 [00:00<00:00, 280.42 it/sec, obj=-438]
INFO - 13:06:49: 46%|████▌ | 46/100 [00:00<00:00, 279.64 it/sec, obj=-301]
INFO - 13:06:49: 47%|████▋ | 47/100 [00:00<00:00, 280.77 it/sec, obj=-682]
INFO - 13:06:49: 48%|████▊ | 48/100 [00:00<00:00, 280.56 it/sec, obj=-750]
INFO - 13:06:49: 49%|████▉ | 49/100 [00:00<00:00, 280.85 it/sec, obj=-789]
INFO - 13:06:49: 50%|█████ | 50/100 [00:00<00:00, 280.72 it/sec, obj=-395]
INFO - 13:06:49: 51%|█████ | 51/100 [00:00<00:00, 279.60 it/sec, obj=-407]
INFO - 13:06:49: 52%|█████▏ | 52/100 [00:00<00:00, 279.20 it/sec, obj=-315]
INFO - 13:06:49: 53%|█████▎ | 53/100 [00:00<00:00, 279.37 it/sec, obj=-337]
INFO - 13:06:49: 54%|█████▍ | 54/100 [00:00<00:00, 278.73 it/sec, obj=-414]
INFO - 13:06:49: 55%|█████▌ | 55/100 [00:00<00:00, 279.26 it/sec, obj=-240]
INFO - 13:06:49: 56%|█████▌ | 56/100 [00:00<00:00, 280.62 it/sec, obj=-297]
INFO - 13:06:49: 57%|█████▋ | 57/100 [00:00<00:00, 280.89 it/sec, obj=-442]
INFO - 13:06:49: 58%|█████▊ | 58/100 [00:00<00:00, 281.12 it/sec, obj=-233]
INFO - 13:06:49: 59%|█████▉ | 59/100 [00:00<00:00, 279.86 it/sec, obj=-519]
INFO - 13:06:49: 60%|██████ | 60/100 [00:00<00:00, 278.66 it/sec, obj=-920]
INFO - 13:06:49: 61%|██████ | 61/100 [00:00<00:00, 277.75 it/sec, obj=-517]
INFO - 13:06:49: 62%|██████▏ | 62/100 [00:00<00:00, 278.65 it/sec, obj=-390]
INFO - 13:06:49: 63%|██████▎ | 63/100 [00:00<00:00, 279.65 it/sec, obj=-434]
INFO - 13:06:49: 64%|██████▍ | 64/100 [00:00<00:00, 280.57 it/sec, obj=-244]
INFO - 13:06:49: 65%|██████▌ | 65/100 [00:00<00:00, 280.11 it/sec, obj=-192]
INFO - 13:06:49: 66%|██████▌ | 66/100 [00:00<00:00, 281.04 it/sec, obj=-305]
INFO - 13:06:49: 67%|██████▋ | 67/100 [00:00<00:00, 279.98 it/sec, obj=-393]
INFO - 13:06:49: 68%|██████▊ | 68/100 [00:00<00:00, 279.48 it/sec, obj=-307]
INFO - 13:06:49: 69%|██████▉ | 69/100 [00:00<00:00, 279.58 it/sec, obj=-328]
INFO - 13:06:49: 70%|███████ | 70/100 [00:00<00:00, 279.72 it/sec, obj=-998]
INFO - 13:06:49: 71%|███████ | 71/100 [00:00<00:00, 279.52 it/sec, obj=-1.06e+3]
INFO - 13:06:49: 72%|███████▏ | 72/100 [00:00<00:00, 279.60 it/sec, obj=-707]
INFO - 13:06:49: 73%|███████▎ | 73/100 [00:00<00:00, 280.69 it/sec, obj=-897]
INFO - 13:06:49: 74%|███████▍ | 74/100 [00:00<00:00, 281.78 it/sec, obj=-1.36e+3]
INFO - 13:06:49: 75%|███████▌ | 75/100 [00:00<00:00, 282.47 it/sec, obj=-853]
INFO - 13:06:49: 76%|███████▌ | 76/100 [00:00<00:00, 283.50 it/sec, obj=-217]
INFO - 13:06:49: 77%|███████▋ | 77/100 [00:00<00:00, 282.99 it/sec, obj=-370]
INFO - 13:06:50: 78%|███████▊ | 78/100 [00:00<00:00, 283.35 it/sec, obj=-636]
INFO - 13:06:50: 79%|███████▉ | 79/100 [00:00<00:00, 283.91 it/sec, obj=-337]
INFO - 13:06:50: 80%|████████ | 80/100 [00:00<00:00, 284.18 it/sec, obj=-804]
INFO - 13:06:50: 81%|████████ | 81/100 [00:00<00:00, 284.46 it/sec, obj=-318]
INFO - 13:06:50: 82%|████████▏ | 82/100 [00:00<00:00, 284.68 it/sec, obj=-253]
INFO - 13:06:50: 83%|████████▎ | 83/100 [00:00<00:00, 284.35 it/sec, obj=-590]
INFO - 13:06:50: 84%|████████▍ | 84/100 [00:00<00:00, 283.01 it/sec, obj=-438]
INFO - 13:06:50: 85%|████████▌ | 85/100 [00:00<00:00, 281.25 it/sec, obj=-642]
INFO - 13:06:50: 86%|████████▌ | 86/100 [00:00<00:00, 282.29 it/sec, obj=-381]
INFO - 13:06:50: 87%|████████▋ | 87/100 [00:00<00:00, 281.88 it/sec, obj=-447]
INFO - 13:06:50: 88%|████████▊ | 88/100 [00:00<00:00, 281.51 it/sec, obj=-707]
INFO - 13:06:50: 89%|████████▉ | 89/100 [00:00<00:00, 282.42 it/sec, obj=-384]
INFO - 13:06:50: 90%|█████████ | 90/100 [00:00<00:00, 283.05 it/sec, obj=-491]
INFO - 13:06:50: 91%|█████████ | 91/100 [00:00<00:00, 283.23 it/sec, obj=-285]
INFO - 13:06:50: 92%|█████████▏| 92/100 [00:00<00:00, 283.05 it/sec, obj=-433]
INFO - 13:06:50: 93%|█████████▎| 93/100 [00:00<00:00, 282.70 it/sec, obj=-377]
INFO - 13:06:50: 94%|█████████▍| 94/100 [00:00<00:00, 282.82 it/sec, obj=-827]
INFO - 13:06:50: 95%|█████████▌| 95/100 [00:00<00:00, 281.44 it/sec, obj=-712]
INFO - 13:06:50: 96%|█████████▌| 96/100 [00:00<00:00, 281.99 it/sec, obj=-245]
INFO - 13:06:50: 97%|█████████▋| 97/100 [00:00<00:00, 282.57 it/sec, obj=-502]
INFO - 13:06:50: 98%|█████████▊| 98/100 [00:00<00:00, 282.20 it/sec, obj=-309]
INFO - 13:06:50: 99%|█████████▉| 99/100 [00:00<00:00, 282.58 it/sec, obj=-971]
INFO - 13:06:50: 100%|██████████| 100/100 [00:00<00:00, 281.58 it/sec, obj=-649]
INFO - 13:06:50: Optimization result:
INFO - 13:06:50: Optimizer info:
INFO - 13:06:50: Status: None
INFO - 13:06:50: Message: None
INFO - 13:06:50: Number of calls to the objective function by the optimizer: 0
INFO - 13:06:50: Solution:
INFO - 13:06:50: The solution is feasible.
INFO - 13:06:50: Objective: -659.1818108437288
INFO - 13:06:50: Standardized constraints:
INFO - 13:06:50: g_1 = [-0.11936975 -0.11352202 -0.10911984 -0.10600546 -0.10373211 -0.04196619
INFO - 13:06:50: -0.19803381]
INFO - 13:06:50: g_2 = -0.007088218675791014
INFO - 13:06:50: g_3 = [-0.43705892 -0.56294108 -0.64490518 -0.08117258]
INFO - 13:06:50: Design space:
INFO - 13:06:50: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:50: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:50: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:50: | x_shared[0] | 0.01 | 0.05822794533105225 | 0.09 | float |
INFO - 13:06:50: | x_shared[1] | 30000 | 44461.15862672209 | 60000 | float |
INFO - 13:06:50: | x_shared[2] | 1.4 | 1.58903403609043 | 1.8 | float |
INFO - 13:06:50: | x_shared[3] | 2.5 | 2.757102870923486 | 8.5 | float |
INFO - 13:06:50: | x_shared[4] | 40 | 68.73596231164589 | 70 | float |
INFO - 13:06:50: | x_shared[5] | 500 | 723.9554384869837 | 1500 | float |
INFO - 13:06:50: | x_1[0] | 0.1 | 0.2359336189021384 | 0.4 | float |
INFO - 13:06:50: | x_1[1] | 0.75 | 0.8931955972189334 | 1.25 | float |
INFO - 13:06:50: | x_2 | 0.75 | 0.9978936102804572 | 1.25 | float |
INFO - 13:06:50: | x_3 | 0.1 | 0.1551593150888611 | 1 | float |
INFO - 13:06:50: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:50: *** End DOEScenario execution (time: 0:00:00.376732) ***
Solve the Sobieski's SSBJ problem with NumPy¶
doe_scenario = DOEScenario(
[
SobieskiStructure(),
SobieskiAerodynamics(),
SobieskiPropulsion(),
SobieskiMission(),
],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
main_mda_settings={"inner_mda_name": "MDAGaussSeidel"},
)
doe_scenario.add_constraint("g_1", "ineq")
doe_scenario.add_constraint("g_2", "ineq")
doe_scenario.add_constraint("g_3", "ineq")
doe_scenario.execute(algo_name="OT_OPT_LHS", n_samples=100)
Out:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
WARNING - 13:06:50: Unsupported feature 'minItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
WARNING - 13:06:50: Unsupported feature 'maxItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
INFO - 13:06:50:
INFO - 13:06:50: *** Start DOEScenario execution ***
INFO - 13:06:50: DOEScenario
INFO - 13:06:50: Disciplines: SobieskiAerodynamics SobieskiMission SobieskiPropulsion SobieskiStructure
INFO - 13:06:50: MDO formulation: MDF
INFO - 13:06:50: Optimization problem:
INFO - 13:06:50: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:50: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:50: subject to constraints:
INFO - 13:06:50: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:50: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:50: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:50: over the design space:
INFO - 13:06:50: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:50: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:50: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:50: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:50: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:50: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:50: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:50: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:50: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:50: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:50: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:50: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:50: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:50: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:50: Solving optimization problem with algorithm OT_OPT_LHS:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/problems/mdo/sobieski/core/utils.py:225: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
ai_coeff[index] = -(f_bound[2] - f_bound[0]) / (2 * mtx_shifted[0, 1])
INFO - 13:06:50: 1%| | 1/100 [00:00<00:00, 130.68 it/sec, obj=-1.25e+3]
INFO - 13:06:50: 2%|▏ | 2/100 [00:00<00:00, 130.88 it/sec, obj=-303]
INFO - 13:06:50: 3%|▎ | 3/100 [00:00<00:01, 92.61 it/sec, obj=-447]
INFO - 13:06:50: 4%|▍ | 4/100 [00:00<00:00, 98.80 it/sec, obj=-444]
INFO - 13:06:50: 5%|▌ | 5/100 [00:00<00:00, 105.23 it/sec, obj=-804]
INFO - 13:06:50: 6%|▌ | 6/100 [00:00<00:00, 105.95 it/sec, obj=-232]
INFO - 13:06:50: 7%|▋ | 7/100 [00:00<00:00, 106.73 it/sec, obj=-701]
INFO - 13:06:50: 8%|▊ | 8/100 [00:00<00:00, 104.31 it/sec, obj=-253]
INFO - 13:06:50: 9%|▉ | 9/100 [00:00<00:00, 108.69 it/sec, obj=-773]
INFO - 13:06:50: 10%|█ | 10/100 [00:00<00:00, 110.06 it/sec, obj=-448]
INFO - 13:06:50: 11%|█ | 11/100 [00:00<00:00, 109.04 it/sec, obj=-659]
INFO - 13:06:50: 12%|█▏ | 12/100 [00:00<00:00, 107.76 it/sec, obj=-282]
INFO - 13:06:50: 13%|█▎ | 13/100 [00:00<00:00, 109.79 it/sec, obj=-387]
INFO - 13:06:50: 14%|█▍ | 14/100 [00:00<00:00, 110.71 it/sec, obj=-379]
INFO - 13:06:50: 15%|█▌ | 15/100 [00:00<00:00, 109.88 it/sec, obj=-196]
INFO - 13:06:50: 16%|█▌ | 16/100 [00:00<00:00, 107.59 it/sec, obj=-647]
INFO - 13:06:50: 17%|█▋ | 17/100 [00:00<00:00, 105.06 it/sec, obj=-238]
INFO - 13:06:50: 18%|█▊ | 18/100 [00:00<00:00, 105.81 it/sec, obj=-304]
INFO - 13:06:50: 19%|█▉ | 19/100 [00:00<00:00, 105.37 it/sec, obj=-372]
INFO - 13:06:50: 20%|██ | 20/100 [00:00<00:00, 107.21 it/sec, obj=-699]
INFO - 13:06:50: 21%|██ | 21/100 [00:00<00:00, 107.36 it/sec, obj=-873]
INFO - 13:06:50: 22%|██▏ | 22/100 [00:00<00:00, 106.42 it/sec, obj=-489]
INFO - 13:06:50: 23%|██▎ | 23/100 [00:00<00:00, 105.16 it/sec, obj=-623]
INFO - 13:06:50: 24%|██▍ | 24/100 [00:00<00:00, 106.37 it/sec, obj=-262]
INFO - 13:06:50: 25%|██▌ | 25/100 [00:00<00:00, 107.22 it/sec, obj=-345]
INFO - 13:06:50: 26%|██▌ | 26/100 [00:00<00:00, 105.99 it/sec, obj=-377]
INFO - 13:06:50: 27%|██▋ | 27/100 [00:00<00:00, 105.23 it/sec, obj=-387]
INFO - 13:06:50: 28%|██▊ | 28/100 [00:00<00:00, 102.75 it/sec, obj=-334]
INFO - 13:06:50: 29%|██▉ | 29/100 [00:00<00:00, 104.02 it/sec, obj=-438]
INFO - 13:06:50: 30%|███ | 30/100 [00:00<00:00, 104.97 it/sec, obj=-1.94e+3]
INFO - 13:06:50: 31%|███ | 31/100 [00:00<00:00, 104.09 it/sec, obj=-733]
INFO - 13:06:50: 32%|███▏ | 32/100 [00:00<00:00, 104.63 it/sec, obj=-774]
INFO - 13:06:50: 33%|███▎ | 33/100 [00:00<00:00, 104.43 it/sec, obj=-517]
INFO - 13:06:50: 34%|███▍ | 34/100 [00:00<00:00, 104.92 it/sec, obj=-232]
INFO - 13:06:50: 35%|███▌ | 35/100 [00:00<00:00, 105.70 it/sec, obj=-195]
INFO - 13:06:50: 36%|███▌ | 36/100 [00:00<00:00, 106.11 it/sec, obj=-218]
INFO - 13:06:50: 37%|███▋ | 37/100 [00:00<00:00, 107.13 it/sec, obj=-198]
INFO - 13:06:50: 38%|███▊ | 38/100 [00:00<00:00, 104.47 it/sec, obj=-536]
INFO - 13:06:50: 39%|███▉ | 39/100 [00:00<00:00, 102.11 it/sec, obj=-173]
INFO - 13:06:50: 40%|████ | 40/100 [00:00<00:00, 102.55 it/sec, obj=-388]
INFO - 13:06:50: 41%|████ | 41/100 [00:00<00:00, 102.36 it/sec, obj=-723]
INFO - 13:06:50: 42%|████▏ | 42/100 [00:00<00:00, 101.75 it/sec, obj=-240]
INFO - 13:06:50: 43%|████▎ | 43/100 [00:00<00:00, 102.11 it/sec, obj=-663]
INFO - 13:06:50: 44%|████▍ | 44/100 [00:00<00:00, 101.30 it/sec, obj=-1.14e+3]
INFO - 13:06:50: 45%|████▌ | 45/100 [00:00<00:00, 100.60 it/sec, obj=-438]
INFO - 13:06:50: 46%|████▌ | 46/100 [00:00<00:00, 100.12 it/sec, obj=-301]
INFO - 13:06:50: 47%|████▋ | 47/100 [00:00<00:00, 100.54 it/sec, obj=-682]
INFO - 13:06:50: 48%|████▊ | 48/100 [00:00<00:00, 100.31 it/sec, obj=-750]
INFO - 13:06:50: 49%|████▉ | 49/100 [00:00<00:00, 100.29 it/sec, obj=-789]
INFO - 13:06:50: 50%|█████ | 50/100 [00:00<00:00, 100.04 it/sec, obj=-395]
INFO - 13:06:50: 51%|█████ | 51/100 [00:00<00:00, 99.40 it/sec, obj=-407]
INFO - 13:06:50: 52%|█████▏ | 52/100 [00:00<00:00, 99.22 it/sec, obj=-315]
INFO - 13:06:50: 53%|█████▎ | 53/100 [00:00<00:00, 99.17 it/sec, obj=-337]
INFO - 13:06:50: 54%|█████▍ | 54/100 [00:00<00:00, 98.82 it/sec, obj=-414]
INFO - 13:06:50: 55%|█████▌ | 55/100 [00:00<00:00, 99.15 it/sec, obj=-240]
INFO - 13:06:50: 56%|█████▌ | 56/100 [00:00<00:00, 99.67 it/sec, obj=-297]
INFO - 13:06:50: 57%|█████▋ | 57/100 [00:00<00:00, 99.85 it/sec, obj=-442]
INFO - 13:06:50: 58%|█████▊ | 58/100 [00:00<00:00, 100.01 it/sec, obj=-233]
INFO - 13:06:50: 59%|█████▉ | 59/100 [00:00<00:00, 99.49 it/sec, obj=-519]
INFO - 13:06:50: 60%|██████ | 60/100 [00:00<00:00, 98.84 it/sec, obj=-920]
INFO - 13:06:50: 61%|██████ | 61/100 [00:00<00:00, 98.52 it/sec, obj=-517]
INFO - 13:06:50: 62%|██████▏ | 62/100 [00:00<00:00, 98.85 it/sec, obj=-390]
INFO - 13:06:50: 63%|██████▎ | 63/100 [00:00<00:00, 99.08 it/sec, obj=-434]
INFO - 13:06:50: 64%|██████▍ | 64/100 [00:00<00:00, 99.36 it/sec, obj=-244]
INFO - 13:06:50: 65%|██████▌ | 65/100 [00:00<00:00, 99.04 it/sec, obj=-192]
INFO - 13:06:50: 66%|██████▌ | 66/100 [00:00<00:00, 99.18 it/sec, obj=-305]
INFO - 13:06:50: 67%|██████▋ | 67/100 [00:00<00:00, 98.58 it/sec, obj=-393]
INFO - 13:06:50: 68%|██████▊ | 68/100 [00:00<00:00, 98.31 it/sec, obj=-307]
INFO - 13:06:50: 69%|██████▉ | 69/100 [00:00<00:00, 98.32 it/sec, obj=-328]
INFO - 13:06:50: 70%|███████ | 70/100 [00:00<00:00, 98.33 it/sec, obj=-998]
INFO - 13:06:50: 71%|███████ | 71/100 [00:00<00:00, 98.18 it/sec, obj=-1.06e+3]
INFO - 13:06:50: 72%|███████▏ | 72/100 [00:00<00:00, 98.31 it/sec, obj=-707]
INFO - 13:06:50: 73%|███████▎ | 73/100 [00:00<00:00, 98.73 it/sec, obj=-897]
INFO - 13:06:50: 74%|███████▍ | 74/100 [00:00<00:00, 99.27 it/sec, obj=-1.36e+3]
INFO - 13:06:50: 75%|███████▌ | 75/100 [00:00<00:00, 99.53 it/sec, obj=-853]
INFO - 13:06:50: 76%|███████▌ | 76/100 [00:00<00:00, 99.94 it/sec, obj=-217]
INFO - 13:06:50: 77%|███████▋ | 77/100 [00:00<00:00, 99.68 it/sec, obj=-370]
INFO - 13:06:50: 78%|███████▊ | 78/100 [00:00<00:00, 99.80 it/sec, obj=-636]
INFO - 13:06:50: 79%|███████▉ | 79/100 [00:00<00:00, 100.05 it/sec, obj=-337]
INFO - 13:06:50: 80%|████████ | 80/100 [00:00<00:00, 100.17 it/sec, obj=-804]
INFO - 13:06:50: 81%|████████ | 81/100 [00:00<00:00, 100.38 it/sec, obj=-318]
INFO - 13:06:50: 82%|████████▏ | 82/100 [00:00<00:00, 100.58 it/sec, obj=-253]
INFO - 13:06:50: 83%|████████▎ | 83/100 [00:00<00:00, 100.58 it/sec, obj=-590]
INFO - 13:06:50: 84%|████████▍ | 84/100 [00:00<00:00, 100.06 it/sec, obj=-438]
INFO - 13:06:50: 85%|████████▌ | 85/100 [00:00<00:00, 99.38 it/sec, obj=-642]
INFO - 13:06:50: 86%|████████▌ | 86/100 [00:00<00:00, 99.97 it/sec, obj=-381]
INFO - 13:06:50: 87%|████████▋ | 87/100 [00:00<00:00, 99.76 it/sec, obj=-447]
INFO - 13:06:51: 88%|████████▊ | 88/100 [00:00<00:00, 99.54 it/sec, obj=-707]
INFO - 13:06:51: 89%|████████▉ | 89/100 [00:00<00:00, 99.89 it/sec, obj=-384]
INFO - 13:06:51: 90%|█████████ | 90/100 [00:00<00:00, 100.09 it/sec, obj=-491]
INFO - 13:06:51: 91%|█████████ | 91/100 [00:00<00:00, 100.09 it/sec, obj=-285]
INFO - 13:06:51: 92%|█████████▏| 92/100 [00:00<00:00, 99.98 it/sec, obj=-433]
INFO - 13:06:51: 93%|█████████▎| 93/100 [00:00<00:00, 99.72 it/sec, obj=-377]
INFO - 13:06:51: 94%|█████████▍| 94/100 [00:00<00:00, 99.71 it/sec, obj=-827]
INFO - 13:06:51: 95%|█████████▌| 95/100 [00:00<00:00, 98.93 it/sec, obj=-712]
INFO - 13:06:51: 96%|█████████▌| 96/100 [00:00<00:00, 99.11 it/sec, obj=-245]
INFO - 13:06:51: 97%|█████████▋| 97/100 [00:00<00:00, 99.32 it/sec, obj=-502]
INFO - 13:06:51: 98%|█████████▊| 98/100 [00:00<00:00, 99.13 it/sec, obj=-309]
INFO - 13:06:51: 99%|█████████▉| 99/100 [00:00<00:00, 99.22 it/sec, obj=-971]
INFO - 13:06:51: 100%|██████████| 100/100 [00:01<00:00, 98.77 it/sec, obj=-649]
INFO - 13:06:51: Optimization result:
INFO - 13:06:51: Optimizer info:
INFO - 13:06:51: Status: None
INFO - 13:06:51: Message: None
INFO - 13:06:51: Number of calls to the objective function by the optimizer: 0
INFO - 13:06:51: Solution:
INFO - 13:06:51: The solution is feasible.
INFO - 13:06:51: Objective: -659.1819417003436
INFO - 13:06:51: Standardized constraints:
INFO - 13:06:51: g_1 = [-0.11936975 -0.11352202 -0.10911984 -0.10600546 -0.10373211 -0.04196619
INFO - 13:06:51: -0.19803381]
INFO - 13:06:51: g_2 = -0.007088218675791014
INFO - 13:06:51: g_3 = [-0.43705892 -0.56294108 -0.64490518 -0.08117258]
INFO - 13:06:51: Design space:
INFO - 13:06:51: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:51: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:51: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:51: | x_shared[0] | 0.01 | 0.05822794533105225 | 0.09 | float |
INFO - 13:06:51: | x_shared[1] | 30000 | 44461.15862672209 | 60000 | float |
INFO - 13:06:51: | x_shared[2] | 1.4 | 1.58903403609043 | 1.8 | float |
INFO - 13:06:51: | x_shared[3] | 2.5 | 2.757102870923486 | 8.5 | float |
INFO - 13:06:51: | x_shared[4] | 40 | 68.73596231164589 | 70 | float |
INFO - 13:06:51: | x_shared[5] | 500 | 723.9554384869837 | 1500 | float |
INFO - 13:06:51: | x_1[0] | 0.1 | 0.2359336189021384 | 0.4 | float |
INFO - 13:06:51: | x_1[1] | 0.75 | 0.8931955972189334 | 1.25 | float |
INFO - 13:06:51: | x_2 | 0.75 | 0.9978936102804572 | 1.25 | float |
INFO - 13:06:51: | x_3 | 0.1 | 0.1551593150888611 | 1 | float |
INFO - 13:06:51: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:51: *** End DOEScenario execution (time: 0:00:01.034559) ***
Conclusion¶
JAX is about 3 times faster than NumPy in the case of a sampling loop with a Gauss-Seidel MDA.
Optimization¶
MDF with MDAJacobi¶
Solve the Sobieski's SSBJ problem with JAX¶
chain = JAXSobieskiChain()
mod_scenario = MDOScenario(
[chain],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
)
mod_scenario.add_constraint("g_1", "ineq")
mod_scenario.add_constraint("g_2", "ineq")
mod_scenario.add_constraint("g_3", "ineq")
mod_scenario.execute(algo_name="NLOPT_COBYLA", max_iter=100)
Out:
INFO - 13:06:52: Compilation of the output function JAXSobieskiChain: 0:00:00.360799 seconds.
INFO - 13:06:52: Compilation of the Jacobian function JAXSobieskiChain: 0:00:01.153002 seconds.
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
INFO - 13:06:52: Variable y_14 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:52: Variable y_24 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:52: Variable y_34 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:52: Variable y_23 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:52: Variable y_21 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:52:
INFO - 13:06:52: *** Start MDOScenario execution ***
INFO - 13:06:52: MDOScenario
INFO - 13:06:52: Disciplines: JAXSobieskiChain
INFO - 13:06:52: MDO formulation: MDF
INFO - 13:06:52: Optimization problem:
INFO - 13:06:52: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:52: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:52: subject to constraints:
INFO - 13:06:52: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:52: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:52: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:52: over the design space:
INFO - 13:06:52: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:52: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:52: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:52: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:52: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:52: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:52: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:52: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:52: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:52: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:52: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:52: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:52: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:52: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:52: Solving optimization problem with algorithm NLOPT_COBYLA:
INFO - 13:06:52: 1%| | 1/100 [00:00<00:00, 260.45 it/sec, obj=-536]
INFO - 13:06:52: 2%|▏ | 2/100 [00:00<00:00, 198.90 it/sec, obj=-539]
INFO - 13:06:52: 3%|▎ | 3/100 [00:00<00:00, 191.63 it/sec, obj=-763]
INFO - 13:06:52: 4%|▍ | 4/100 [00:00<00:00, 166.33 it/sec, obj=-713]
INFO - 13:06:52: 5%|▌ | 5/100 [00:00<00:00, 161.14 it/sec, obj=-687]
INFO - 13:06:52: 6%|▌ | 6/100 [00:00<00:00, 156.77 it/sec, obj=-897]
INFO - 13:06:52: 7%|▋ | 7/100 [00:00<00:00, 150.61 it/sec, obj=-957]
INFO - 13:06:52: 8%|▊ | 8/100 [00:00<00:00, 149.01 it/sec, obj=-956]
INFO - 13:06:52: 9%|▉ | 9/100 [00:00<00:00, 147.77 it/sec, obj=-930]
INFO - 13:06:52: 10%|█ | 10/100 [00:00<00:00, 146.93 it/sec, obj=-943]
INFO - 13:06:52: 11%|█ | 11/100 [00:00<00:00, 147.46 it/sec, obj=-768]
INFO - 13:06:52: 12%|█▏ | 12/100 [00:00<00:00, 146.00 it/sec, obj=-1e+3]
INFO - 13:06:52: 13%|█▎ | 13/100 [00:00<00:00, 144.25 it/sec, obj=-1.34e+3]
INFO - 13:06:52: 14%|█▍ | 14/100 [00:00<00:00, 142.93 it/sec, obj=-1.85e+3]
INFO - 13:06:52: 15%|█▌ | 15/100 [00:00<00:00, 141.00 it/sec, obj=-1.87e+3]
INFO - 13:06:52: 16%|█▌ | 16/100 [00:00<00:00, 139.96 it/sec, obj=-1.99e+3]
INFO - 13:06:52: 17%|█▋ | 17/100 [00:00<00:00, 139.72 it/sec, obj=-2.18e+3]
INFO - 13:06:52: 18%|█▊ | 18/100 [00:00<00:00, 137.81 it/sec, obj=-2.2e+3]
INFO - 13:06:52: 19%|█▉ | 19/100 [00:00<00:00, 136.16 it/sec, obj=-2.42e+3]
INFO - 13:06:52: 20%|██ | 20/100 [00:00<00:00, 135.85 it/sec, obj=-3.03e+3]
INFO - 13:06:52: 21%|██ | 21/100 [00:00<00:00, 135.33 it/sec, obj=-2.99e+3]
INFO - 13:06:52: 22%|██▏ | 22/100 [00:00<00:00, 135.15 it/sec, obj=-2.63e+3]
INFO - 13:06:52: 23%|██▎ | 23/100 [00:00<00:00, 134.07 it/sec, obj=-3.08e+3]
INFO - 13:06:52: 24%|██▍ | 24/100 [00:00<00:00, 133.31 it/sec, obj=-3.12e+3]
INFO - 13:06:52: 25%|██▌ | 25/100 [00:00<00:00, 132.83 it/sec, obj=-3.23e+3]
INFO - 13:06:52: 26%|██▌ | 26/100 [00:00<00:00, 132.49 it/sec, obj=-3.58e+3]
INFO - 13:06:52: 27%|██▋ | 27/100 [00:00<00:00, 132.55 it/sec, obj=-3.68e+3]
INFO - 13:06:52: 28%|██▊ | 28/100 [00:00<00:00, 132.40 it/sec, obj=-3.95e+3]
INFO - 13:06:52: 29%|██▉ | 29/100 [00:00<00:00, 131.66 it/sec, obj=-3.96e+3]
INFO - 13:06:52: 30%|███ | 30/100 [00:00<00:00, 131.52 it/sec, obj=-3.96e+3]
INFO - 13:06:52: 31%|███ | 31/100 [00:00<00:00, 130.98 it/sec, obj=-3.34e+3]
INFO - 13:06:52: 32%|███▏ | 32/100 [00:00<00:00, 130.91 it/sec, obj=-3.82e+3]
INFO - 13:06:52: 33%|███▎ | 33/100 [00:00<00:00, 130.34 it/sec, obj=-3.52e+3]
INFO - 13:06:52: 34%|███▍ | 34/100 [00:00<00:00, 129.94 it/sec, obj=-3.37e+3]
INFO - 13:06:52: 35%|███▌ | 35/100 [00:00<00:00, 129.85 it/sec, obj=-3.42e+3]
INFO - 13:06:52: 36%|███▌ | 36/100 [00:00<00:00, 129.81 it/sec, obj=-3.96e+3]
INFO - 13:06:52: 37%|███▋ | 37/100 [00:00<00:00, 129.69 it/sec, obj=-4.03e+3]
INFO - 13:06:52: 38%|███▊ | 38/100 [00:00<00:00, 129.55 it/sec, obj=-4.02e+3]
INFO - 13:06:52: 39%|███▉ | 39/100 [00:00<00:00, 129.04 it/sec, obj=-3.63e+3]
INFO - 13:06:52: 40%|████ | 40/100 [00:00<00:00, 128.12 it/sec, obj=-3.97e+3]
INFO - 13:06:53: 41%|████ | 41/100 [00:00<00:00, 127.54 it/sec, obj=-3.67e+3]
INFO - 13:06:53: 42%|████▏ | 42/100 [00:00<00:00, 126.70 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 43%|████▎ | 43/100 [00:00<00:00, 126.43 it/sec, obj=-3.39e+3]
INFO - 13:06:53: 44%|████▍ | 44/100 [00:00<00:00, 126.24 it/sec, obj=-3.99e+3]
INFO - 13:06:53: 45%|████▌ | 45/100 [00:00<00:00, 125.99 it/sec, obj=-3.51e+3]
INFO - 13:06:53: 46%|████▌ | 46/100 [00:00<00:00, 126.04 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 47%|████▋ | 47/100 [00:00<00:00, 125.85 it/sec, obj=-3.2e+3]
INFO - 13:06:53: 48%|████▊ | 48/100 [00:00<00:00, 125.77 it/sec, obj=-3.25e+3]
INFO - 13:06:53: 49%|████▉ | 49/100 [00:00<00:00, 125.66 it/sec, obj=-3.29e+3]
INFO - 13:06:53: 50%|█████ | 50/100 [00:00<00:00, 125.49 it/sec, obj=-3.47e+3]
INFO - 13:06:53: 51%|█████ | 51/100 [00:00<00:00, 125.40 it/sec, obj=-3.25e+3]
INFO - 13:06:53: 52%|█████▏ | 52/100 [00:00<00:00, 125.27 it/sec, obj=-3.54e+3]
INFO - 13:06:53: 53%|█████▎ | 53/100 [00:00<00:00, 125.40 it/sec, obj=-3.95e+3]
INFO - 13:06:53: 54%|█████▍ | 54/100 [00:00<00:00, 125.25 it/sec, obj=-3.58e+3]
INFO - 13:06:53: 55%|█████▌ | 55/100 [00:00<00:00, 125.40 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 56%|█████▌ | 56/100 [00:00<00:00, 125.37 it/sec, obj=-3.62e+3]
INFO - 13:06:53: 57%|█████▋ | 57/100 [00:00<00:00, 125.52 it/sec, obj=-3.91e+3]
INFO - 13:06:53: 58%|█████▊ | 58/100 [00:00<00:00, 125.53 it/sec, obj=-3.3e+3]
INFO - 13:06:53: 59%|█████▉ | 59/100 [00:00<00:00, 125.42 it/sec, obj=-3.57e+3]
INFO - 13:06:53: 60%|██████ | 60/100 [00:00<00:00, 125.67 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 61%|██████ | 61/100 [00:00<00:00, 125.72 it/sec, obj=-3.43e+3]
INFO - 13:06:53: 62%|██████▏ | 62/100 [00:00<00:00, 125.81 it/sec, obj=-3.26e+3]
INFO - 13:06:53: 63%|██████▎ | 63/100 [00:00<00:00, 126.02 it/sec, obj=-3.94e+3]
INFO - 13:06:53: 64%|██████▍ | 64/100 [00:00<00:00, 126.08 it/sec, obj=-3.5e+3]
INFO - 13:06:53: 65%|██████▌ | 65/100 [00:00<00:00, 126.11 it/sec, obj=-3.3e+3]
INFO - 13:06:53: 66%|██████▌ | 66/100 [00:00<00:00, 126.15 it/sec, obj=-3.53e+3]
INFO - 13:06:53: 67%|██████▋ | 67/100 [00:00<00:00, 126.14 it/sec, obj=-3.27e+3]
INFO - 13:06:53: 68%|██████▊ | 68/100 [00:00<00:00, 126.13 it/sec, obj=-3.52e+3]
INFO - 13:06:53: 69%|██████▉ | 69/100 [00:00<00:00, 126.36 it/sec, obj=-3.83e+3]
INFO - 13:06:53: 70%|███████ | 70/100 [00:00<00:00, 126.42 it/sec, obj=-3.48e+3]
INFO - 13:06:53: 71%|███████ | 71/100 [00:00<00:00, 126.58 it/sec, obj=-3.87e+3]
INFO - 13:06:53: 72%|███████▏ | 72/100 [00:00<00:00, 126.63 it/sec, obj=-3.48e+3]
INFO - 13:06:53: 73%|███████▎ | 73/100 [00:00<00:00, 126.63 it/sec, obj=-3.49e+3]
INFO - 13:06:53: 74%|███████▍ | 74/100 [00:00<00:00, 126.75 it/sec, obj=-3.87e+3]
INFO - 13:06:53: 75%|███████▌ | 75/100 [00:00<00:00, 126.76 it/sec, obj=-3.47e+3]
INFO - 13:06:53: 76%|███████▌ | 76/100 [00:00<00:00, 126.76 it/sec, obj=-3.46e+3]
INFO - 13:06:53: 77%|███████▋ | 77/100 [00:00<00:00, 126.74 it/sec, obj=-3.48e+3]
INFO - 13:06:53: 78%|███████▊ | 78/100 [00:00<00:00, 126.69 it/sec, obj=-3.33e+3]
INFO - 13:06:53: 79%|███████▉ | 79/100 [00:00<00:00, 126.79 it/sec, obj=-3.51e+3]
INFO - 13:06:53: 80%|████████ | 80/100 [00:00<00:00, 126.95 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 81%|████████ | 81/100 [00:00<00:00, 126.96 it/sec, obj=-3.41e+3]
INFO - 13:06:53: 82%|████████▏ | 82/100 [00:00<00:00, 127.12 it/sec, obj=-3.97e+3]
INFO - 13:06:53: 83%|████████▎ | 83/100 [00:00<00:00, 127.17 it/sec, obj=-3.35e+3]
INFO - 13:06:53: 84%|████████▍ | 84/100 [00:00<00:00, 127.20 it/sec, obj=-3.2e+3]
INFO - 13:06:53: 85%|████████▌ | 85/100 [00:00<00:00, 127.22 it/sec, obj=-3.64e+3]
INFO - 13:06:53: 86%|████████▌ | 86/100 [00:00<00:00, 127.21 it/sec, obj=-3.65e+3]
INFO - 13:06:53: 87%|████████▋ | 87/100 [00:00<00:00, 127.32 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 88%|████████▊ | 88/100 [00:00<00:00, 127.27 it/sec, obj=-3.32e+3]
INFO - 13:06:53: 89%|████████▉ | 89/100 [00:00<00:00, 127.20 it/sec, obj=-3.3e+3]
INFO - 13:06:53: 90%|█████████ | 90/100 [00:00<00:00, 127.28 it/sec, obj=-3.87e+3]
INFO - 13:06:53: 91%|█████████ | 91/100 [00:00<00:00, 127.29 it/sec, obj=-3.63e+3]
INFO - 13:06:53: 92%|█████████▏| 92/100 [00:00<00:00, 127.26 it/sec, obj=-3.45e+3]
INFO - 13:06:53: 93%|█████████▎| 93/100 [00:00<00:00, 127.23 it/sec, obj=-3.41e+3]
INFO - 13:06:53: 94%|█████████▍| 94/100 [00:00<00:00, 127.37 it/sec, obj=-3.77e+3]
INFO - 13:06:53: 95%|█████████▌| 95/100 [00:00<00:00, 127.51 it/sec, obj=-3.96e+3]
INFO - 13:06:53: 96%|█████████▌| 96/100 [00:00<00:00, 127.51 it/sec, obj=-3.48e+3]
INFO - 13:06:53: 97%|█████████▋| 97/100 [00:00<00:00, 127.53 it/sec, obj=-3.41e+3]
INFO - 13:06:53: 98%|█████████▊| 98/100 [00:00<00:00, 127.65 it/sec, obj=-3.97e+3]
INFO - 13:06:53: 99%|█████████▉| 99/100 [00:00<00:00, 127.68 it/sec, obj=-3.29e+3]
INFO - 13:06:53: 100%|██████████| 100/100 [00:00<00:00, 127.62 it/sec, obj=-3.33e+3]
INFO - 13:06:53: Optimization result:
INFO - 13:06:53: Optimizer info:
INFO - 13:06:53: Status: None
INFO - 13:06:53: Message: Maximum number of iterations reached. GEMSEO stopped the driver.
INFO - 13:06:53: Number of calls to the objective function by the optimizer: 0
INFO - 13:06:53: Solution:
INFO - 13:06:53: The solution is feasible.
INFO - 13:06:53: Objective: -3963.5978188452605
INFO - 13:06:53: Standardized constraints:
INFO - 13:06:53: g_1 = [-0.01827806 -0.0334989 -0.04436674 -0.05192983 -0.05740621 -0.13708086
INFO - 13:06:53: -0.10291914]
INFO - 13:06:53: g_2 = 2.8205413821202896e-05
INFO - 13:06:53: g_3 = [-7.67134672e-01 -2.32865328e-01 -9.95245644e-06 -1.83255000e-01]
INFO - 13:06:53: Design space:
INFO - 13:06:53: +-------------+-------------+--------------------+-------------+-------+
INFO - 13:06:53: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:53: +-------------+-------------+--------------------+-------------+-------+
INFO - 13:06:53: | x_shared[0] | 0.01 | 0.0600070513534553 | 0.09 | float |
INFO - 13:06:53: | x_shared[1] | 30000 | 60000 | 60000 | float |
INFO - 13:06:53: | x_shared[2] | 1.4 | 1.4 | 1.8 | float |
INFO - 13:06:53: | x_shared[3] | 2.5 | 2.500000000000004 | 8.5 | float |
INFO - 13:06:53: | x_shared[4] | 40 | 70 | 70 | float |
INFO - 13:06:53: | x_shared[5] | 500 | 1500 | 1500 | float |
INFO - 13:06:53: | x_1[0] | 0.1 | 0.3992532360683517 | 0.4 | float |
INFO - 13:06:53: | x_1[1] | 0.75 | 0.75 | 1.25 | float |
INFO - 13:06:53: | x_2 | 0.75 | 0.75 | 1.25 | float |
INFO - 13:06:53: | x_3 | 0.1 | 0.1562431906272621 | 1 | float |
INFO - 13:06:53: +-------------+-------------+--------------------+-------------+-------+
INFO - 13:06:53: *** End MDOScenario execution (time: 0:00:00.793799) ***
Solve the Sobieski's SSBJ problem with NumPy¶
mod_scenario = MDOScenario(
[
SobieskiStructure(),
SobieskiAerodynamics(),
SobieskiPropulsion(),
SobieskiMission(),
],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
)
mod_scenario.add_constraint("g_1", "ineq")
mod_scenario.add_constraint("g_2", "ineq")
mod_scenario.add_constraint("g_3", "ineq")
mod_scenario.execute(algo_name="NLOPT_COBYLA", max_iter=100)
Out:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
WARNING - 13:06:53: Unsupported feature 'minItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
WARNING - 13:06:53: Unsupported feature 'maxItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
INFO - 13:06:53:
INFO - 13:06:53: *** Start MDOScenario execution ***
INFO - 13:06:53: MDOScenario
INFO - 13:06:53: Disciplines: SobieskiAerodynamics SobieskiMission SobieskiPropulsion SobieskiStructure
INFO - 13:06:53: MDO formulation: MDF
INFO - 13:06:53: Optimization problem:
INFO - 13:06:53: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:53: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:53: subject to constraints:
INFO - 13:06:53: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:53: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:53: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:53: over the design space:
INFO - 13:06:53: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:53: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:53: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:53: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:53: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:53: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:53: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:53: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:53: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:53: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:53: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:53: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:53: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:53: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:53: Solving optimization problem with algorithm NLOPT_COBYLA:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/problems/mdo/sobieski/core/utils.py:225: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
ai_coeff[index] = -(f_bound[2] - f_bound[0]) / (2 * mtx_shifted[0, 1])
INFO - 13:06:53: 1%| | 1/100 [00:00<00:02, 44.50 it/sec, obj=-536]
INFO - 13:06:53: 2%|▏ | 2/100 [00:00<00:02, 38.40 it/sec, obj=-539]
INFO - 13:06:53: 3%|▎ | 3/100 [00:00<00:02, 37.01 it/sec, obj=-763]
INFO - 13:06:53: 4%|▍ | 4/100 [00:00<00:02, 36.33 it/sec, obj=-713]
INFO - 13:06:53: 5%|▌ | 5/100 [00:00<00:02, 35.51 it/sec, obj=-687]
INFO - 13:06:53: 6%|▌ | 6/100 [00:00<00:02, 35.23 it/sec, obj=-897]
INFO - 13:06:53: 7%|▋ | 7/100 [00:00<00:02, 35.31 it/sec, obj=-957]
INFO - 13:06:53: 8%|▊ | 8/100 [00:00<00:02, 35.78 it/sec, obj=-956]
INFO - 13:06:53: 9%|▉ | 9/100 [00:00<00:02, 35.91 it/sec, obj=-930]
INFO - 13:06:53: 10%|█ | 10/100 [00:00<00:02, 35.99 it/sec, obj=-943]
INFO - 13:06:53: 11%|█ | 11/100 [00:00<00:02, 36.12 it/sec, obj=-768]
INFO - 13:06:53: 12%|█▏ | 12/100 [00:00<00:02, 34.12 it/sec, obj=-1e+3]
INFO - 13:06:53: 13%|█▎ | 13/100 [00:00<00:02, 32.87 it/sec, obj=-1.34e+3]
INFO - 13:06:53: 14%|█▍ | 14/100 [00:00<00:02, 32.00 it/sec, obj=-1.85e+3]
INFO - 13:06:53: 15%|█▌ | 15/100 [00:00<00:02, 31.07 it/sec, obj=-1.87e+3]
WARNING - 13:06:54: MDAJacobi has reached its maximum number of iterations but the normed residual 3.7204854871194414e-05 is still above the tolerance 1e-06.
INFO - 13:06:54: 16%|█▌ | 16/100 [00:00<00:02, 29.90 it/sec, obj=-1.99e+3]
INFO - 13:06:54: 17%|█▋ | 17/100 [00:00<00:02, 29.53 it/sec, obj=-2.18e+3]
INFO - 13:06:54: 18%|█▊ | 18/100 [00:00<00:02, 29.06 it/sec, obj=-2.2e+3]
INFO - 13:06:54: 19%|█▉ | 19/100 [00:00<00:02, 28.74 it/sec, obj=-2.42e+3]
WARNING - 13:06:54: MDAJacobi has reached its maximum number of iterations but the normed residual 1.9335592270087927e-05 is still above the tolerance 1e-06.
INFO - 13:06:54: 20%|██ | 20/100 [00:00<00:02, 28.00 it/sec, obj=-2.37e+3]
INFO - 13:06:54: 21%|██ | 21/100 [00:00<00:02, 27.68 it/sec, obj=-2.83e+3]
INFO - 13:06:54: 22%|██▏ | 22/100 [00:00<00:02, 27.24 it/sec, obj=-3.12e+3]
INFO - 13:06:54: 23%|██▎ | 23/100 [00:00<00:02, 27.17 it/sec, obj=-3.21e+3]
INFO - 13:06:54: 24%|██▍ | 24/100 [00:00<00:02, 27.14 it/sec, obj=-3.99e+3]
WARNING - 13:06:54: MDAJacobi has reached its maximum number of iterations but the normed residual 2.6602480542748623e-05 is still above the tolerance 1e-06.
INFO - 13:06:54: 25%|██▌ | 25/100 [00:00<00:02, 26.65 it/sec, obj=-2.6e+3]
INFO - 13:06:54: 26%|██▌ | 26/100 [00:00<00:02, 26.40 it/sec, obj=-3.06e+3]
INFO - 13:06:54: 27%|██▋ | 27/100 [00:01<00:02, 26.39 it/sec, obj=-2.98e+3]
WARNING - 13:06:54: MDAJacobi has reached its maximum number of iterations but the normed residual 3.131065719805529e-06 is still above the tolerance 1e-06.
INFO - 13:06:54: 28%|██▊ | 28/100 [00:01<00:02, 26.07 it/sec, obj=-3.24e+3]
INFO - 13:06:54: 29%|██▉ | 29/100 [00:01<00:02, 25.87 it/sec, obj=-3.67e+3]
INFO - 13:06:54: 30%|███ | 30/100 [00:01<00:02, 25.75 it/sec, obj=-3.16e+3]
WARNING - 13:06:54: MDAJacobi has reached its maximum number of iterations but the normed residual 0.00020046262987076315 is still above the tolerance 1e-06.
INFO - 13:06:54: 31%|███ | 31/100 [00:01<00:02, 25.44 it/sec, obj=-3.09e+3]
INFO - 13:06:54: 32%|███▏ | 32/100 [00:01<00:02, 25.14 it/sec, obj=-3.47e+3]
INFO - 13:06:54: 33%|███▎ | 33/100 [00:01<00:02, 24.88 it/sec, obj=-3.52e+3]
INFO - 13:06:54: 34%|███▍ | 34/100 [00:01<00:02, 24.83 it/sec, obj=-3.52e+3]
INFO - 13:06:54: 35%|███▌ | 35/100 [00:01<00:02, 24.64 it/sec, obj=-3.2e+3]
INFO - 13:06:54: 36%|███▌ | 36/100 [00:01<00:02, 24.62 it/sec, obj=-3.52e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 1.5187500368837417e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 37%|███▋ | 37/100 [00:01<00:02, 24.39 it/sec, obj=-2.96e+3]
INFO - 13:06:55: 38%|███▊ | 38/100 [00:01<00:02, 24.41 it/sec, obj=-3.18e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 1.3580820715243732e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 39%|███▉ | 39/100 [00:01<00:02, 24.25 it/sec, obj=-3.15e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 1.0068765557476064e-05 is still above the tolerance 1e-06.
INFO - 13:06:55: 40%|████ | 40/100 [00:01<00:02, 24.10 it/sec, obj=-3.92e+3]
INFO - 13:06:55: 41%|████ | 41/100 [00:01<00:02, 24.11 it/sec, obj=-3.96e+3]
INFO - 13:06:55: 42%|████▏ | 42/100 [00:01<00:02, 24.09 it/sec, obj=-3.96e+3]
INFO - 13:06:55: 43%|████▎ | 43/100 [00:01<00:02, 24.07 it/sec, obj=-3.96e+3]
INFO - 13:06:55: 44%|████▍ | 44/100 [00:01<00:02, 24.00 it/sec, obj=-3.75e+3]
INFO - 13:06:55: 45%|████▌ | 45/100 [00:01<00:02, 23.99 it/sec, obj=-3.94e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 2.9699912018918902e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 46%|████▌ | 46/100 [00:01<00:02, 23.88 it/sec, obj=-3.38e+3]
INFO - 13:06:55: 47%|████▋ | 47/100 [00:01<00:02, 23.92 it/sec, obj=-3.79e+3]
INFO - 13:06:55: 48%|████▊ | 48/100 [00:02<00:02, 23.78 it/sec, obj=-3.41e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 3.9604198356566634e-05 is still above the tolerance 1e-06.
INFO - 13:06:55: 49%|████▉ | 49/100 [00:02<00:02, 23.62 it/sec, obj=-3.88e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 2.0414068021569107e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 50%|█████ | 50/100 [00:02<00:02, 23.54 it/sec, obj=-3.56e+3]
INFO - 13:06:55: 51%|█████ | 51/100 [00:02<00:02, 23.51 it/sec, obj=-3.57e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 4.339805325609159e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 52%|█████▏ | 52/100 [00:02<00:02, 23.40 it/sec, obj=-3.31e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 2.903076918194352e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 53%|█████▎ | 53/100 [00:02<00:02, 23.26 it/sec, obj=-3.18e+3]
WARNING - 13:06:55: MDAJacobi has reached its maximum number of iterations but the normed residual 4.222419054177024e-06 is still above the tolerance 1e-06.
INFO - 13:06:55: 54%|█████▍ | 54/100 [00:02<00:01, 23.16 it/sec, obj=-3.27e+3]
INFO - 13:06:55: 55%|█████▌ | 55/100 [00:02<00:01, 23.17 it/sec, obj=-3.83e+3]
INFO - 13:06:55: 56%|█████▌ | 56/100 [00:02<00:01, 23.22 it/sec, obj=-3.75e+3]
INFO - 13:06:55: 57%|█████▋ | 57/100 [00:02<00:01, 23.19 it/sec, obj=-3.42e+3]
INFO - 13:06:56: 58%|█████▊ | 58/100 [00:02<00:01, 23.09 it/sec, obj=-3.51e+3]
INFO - 13:06:56: 59%|█████▉ | 59/100 [00:02<00:01, 23.03 it/sec, obj=-3.62e+3]
INFO - 13:06:56: 60%|██████ | 60/100 [00:02<00:01, 23.03 it/sec, obj=-3.5e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 2.439216568543729e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 61%|██████ | 61/100 [00:02<00:01, 22.97 it/sec, obj=-3.46e+3]
INFO - 13:06:56: 62%|██████▏ | 62/100 [00:02<00:01, 22.94 it/sec, obj=-3.34e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 6.1842511238495055e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 63%|██████▎ | 63/100 [00:02<00:01, 22.88 it/sec, obj=-3.36e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 3.6372363218085485e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 64%|██████▍ | 64/100 [00:03<00:01, 21.14 it/sec, obj=-3.19e+3]
INFO - 13:06:56: 65%|██████▌ | 65/100 [00:03<00:01, 21.10 it/sec, obj=-3.45e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 6.279609664777154e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 66%|██████▌ | 66/100 [00:03<00:01, 21.06 it/sec, obj=-3.45e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 4.405999600169342e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 67%|██████▋ | 67/100 [00:03<00:01, 21.04 it/sec, obj=-3.45e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 2.4425135716984906e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 68%|██████▊ | 68/100 [00:03<00:01, 21.01 it/sec, obj=-3.32e+3]
INFO - 13:06:56: 69%|██████▉ | 69/100 [00:03<00:01, 21.00 it/sec, obj=-3.42e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 3.662998088252376e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 70%|███████ | 70/100 [00:03<00:01, 20.99 it/sec, obj=-3.54e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 3.981553508096536e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 71%|███████ | 71/100 [00:03<00:01, 20.97 it/sec, obj=-3.3e+3]
WARNING - 13:06:56: MDAJacobi has reached its maximum number of iterations but the normed residual 1.529222752819427e-06 is still above the tolerance 1e-06.
INFO - 13:06:56: 72%|███████▏ | 72/100 [00:03<00:01, 20.93 it/sec, obj=-3.34e+3]
INFO - 13:06:56: 73%|███████▎ | 73/100 [00:03<00:01, 20.89 it/sec, obj=-3.14e+3]
INFO - 13:06:57: 74%|███████▍ | 74/100 [00:03<00:01, 20.92 it/sec, obj=-3.64e+3]
INFO - 13:06:57: 75%|███████▌ | 75/100 [00:03<00:01, 20.89 it/sec, obj=-3.39e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 3.6083054685158987e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 76%|███████▌ | 76/100 [00:03<00:01, 20.87 it/sec, obj=-3.11e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 2.712717311801625e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 77%|███████▋ | 77/100 [00:03<00:01, 20.85 it/sec, obj=-3.51e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 2.1988893016520166e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 78%|███████▊ | 78/100 [00:03<00:01, 20.83 it/sec, obj=-3.07e+3]
INFO - 13:06:57: 79%|███████▉ | 79/100 [00:03<00:01, 20.89 it/sec, obj=-3.69e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 3.3277311553287673e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 80%|████████ | 80/100 [00:03<00:00, 20.86 it/sec, obj=-3.08e+3]
INFO - 13:06:57: 81%|████████ | 81/100 [00:03<00:00, 20.85 it/sec, obj=-3.39e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 5.388041776135559e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 82%|████████▏ | 82/100 [00:03<00:00, 20.83 it/sec, obj=-3.5e+3]
INFO - 13:06:57: 83%|████████▎ | 83/100 [00:03<00:00, 20.82 it/sec, obj=-3.08e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 1.3902672321401141e-05 is still above the tolerance 1e-06.
INFO - 13:06:57: 84%|████████▍ | 84/100 [00:04<00:00, 20.81 it/sec, obj=-3.79e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 8.258646891354083e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 85%|████████▌ | 85/100 [00:04<00:00, 20.80 it/sec, obj=-3.67e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 1.0805763550512402e-05 is still above the tolerance 1e-06.
INFO - 13:06:57: 86%|████████▌ | 86/100 [00:04<00:00, 20.79 it/sec, obj=-3.87e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 2.9796750242748394e-06 is still above the tolerance 1e-06.
INFO - 13:06:57: 87%|████████▋ | 87/100 [00:04<00:00, 20.78 it/sec, obj=-3.38e+3]
INFO - 13:06:57: 88%|████████▊ | 88/100 [00:04<00:00, 20.80 it/sec, obj=-3.96e+3]
INFO - 13:06:57: 89%|████████▉ | 89/100 [00:04<00:00, 20.82 it/sec, obj=-3.94e+3]
INFO - 13:06:57: 90%|█████████ | 90/100 [00:04<00:00, 20.81 it/sec, obj=-3.96e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 1.7338183877226514e-05 is still above the tolerance 1e-06.
INFO - 13:06:57: 91%|█████████ | 91/100 [00:04<00:00, 20.75 it/sec, obj=-3.92e+3]
WARNING - 13:06:57: MDAJacobi has reached its maximum number of iterations but the normed residual 1.5198708905547502e-05 is still above the tolerance 1e-06.
INFO - 13:06:57: 92%|█████████▏| 92/100 [00:04<00:00, 20.74 it/sec, obj=-3.9e+3]
INFO - 13:06:57: 93%|█████████▎| 93/100 [00:04<00:00, 20.76 it/sec, obj=-3.96e+3]
INFO - 13:06:58: 94%|█████████▍| 94/100 [00:04<00:00, 20.78 it/sec, obj=-3.92e+3]
INFO - 13:06:58: 95%|█████████▌| 95/100 [00:04<00:00, 20.80 it/sec, obj=-3.96e+3]
INFO - 13:06:58: 96%|█████████▌| 96/100 [00:04<00:00, 20.81 it/sec, obj=-3.94e+3]
INFO - 13:06:58: 97%|█████████▋| 97/100 [00:04<00:00, 20.82 it/sec, obj=-3.92e+3]
INFO - 13:06:58: 98%|█████████▊| 98/100 [00:04<00:00, 20.85 it/sec, obj=-3.92e+3]
INFO - 13:06:58: 99%|█████████▉| 99/100 [00:04<00:00, 20.88 it/sec, obj=-3.91e+3]
WARNING - 13:06:58: MDAJacobi has reached its maximum number of iterations but the normed residual 1.842849391330206e-05 is still above the tolerance 1e-06.
INFO - 13:06:58: 100%|██████████| 100/100 [00:04<00:00, 20.86 it/sec, obj=-3.93e+3]
INFO - 13:06:58: Optimization result:
INFO - 13:06:58: Optimizer info:
INFO - 13:06:58: Status: None
INFO - 13:06:58: Message: Maximum number of iterations reached. GEMSEO stopped the driver.
INFO - 13:06:58: Number of calls to the objective function by the optimizer: 0
INFO - 13:06:58: Solution:
INFO - 13:06:58: The solution is feasible.
INFO - 13:06:58: Objective: -3963.3793053483255
INFO - 13:06:58: Standardized constraints:
INFO - 13:06:58: g_1 = [-0.01805093 -0.03333915 -0.04424381 -0.05182998 -0.05732217 -0.13720865
INFO - 13:06:58: -0.10279135]
INFO - 13:06:58: g_2 = 0.0
INFO - 13:06:58: g_3 = [-7.67185581e-01 -2.32814419e-01 -1.20219524e-06 -1.83255000e-01]
INFO - 13:06:58: Design space:
INFO - 13:06:58: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:58: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:58: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:58: | x_shared[0] | 0.01 | 0.05999999999999999 | 0.09 | float |
INFO - 13:06:58: | x_shared[1] | 30000 | 60000 | 60000 | float |
INFO - 13:06:58: | x_shared[2] | 1.4 | 1.4 | 1.8 | float |
INFO - 13:06:58: | x_shared[3] | 2.5 | 2.500000000000015 | 8.5 | float |
INFO - 13:06:58: | x_shared[4] | 40 | 70 | 70 | float |
INFO - 13:06:58: | x_shared[5] | 500 | 1500 | 1500 | float |
INFO - 13:06:58: | x_1[0] | 0.1 | 0.4 | 0.4 | float |
INFO - 13:06:58: | x_1[1] | 0.75 | 0.7500000000000009 | 1.25 | float |
INFO - 13:06:58: | x_2 | 0.75 | 0.7500000000000089 | 1.25 | float |
INFO - 13:06:58: | x_3 | 0.1 | 0.1562445578095981 | 1 | float |
INFO - 13:06:58: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:06:58: *** End MDOScenario execution (time: 0:00:04.803692) ***
Conclusion¶
JAX is about 4 times faster than NumPy in the case of an optimization loop with a Jacobi MDA.
MDF with MDAGaussSeidel¶
Solve the Sobieski's SSBJ problem with JAX¶
chain = JAXSobieskiChain()
mod_scenario = MDOScenario(
[chain],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
main_mda_settings={"inner_mda_name": "MDAGaussSeidel"},
)
mod_scenario.add_constraint("g_1", "ineq")
mod_scenario.add_constraint("g_2", "ineq")
mod_scenario.add_constraint("g_3", "ineq")
mod_scenario.execute(algo_name="NLOPT_COBYLA", max_iter=100)
Out:
INFO - 13:06:59: Compilation of the output function JAXSobieskiChain: 0:00:00.378075 seconds.
INFO - 13:06:59: Compilation of the Jacobian function JAXSobieskiChain: 0:00:01.202048 seconds.
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
INFO - 13:06:59: Variable y_14 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:59: Variable y_24 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:59: Variable y_34 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:59: Variable y_23 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:59: Variable y_21 was removed from the Design Space, it is not an input of any discipline.
INFO - 13:06:59:
INFO - 13:06:59: *** Start MDOScenario execution ***
INFO - 13:06:59: MDOScenario
INFO - 13:06:59: Disciplines: JAXSobieskiChain
INFO - 13:06:59: MDO formulation: MDF
INFO - 13:06:59: Optimization problem:
INFO - 13:06:59: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:06:59: with respect to x_1, x_2, x_3, x_shared
INFO - 13:06:59: subject to constraints:
INFO - 13:06:59: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:59: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:59: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:06:59: over the design space:
INFO - 13:06:59: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:59: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:06:59: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:59: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:06:59: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:06:59: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:06:59: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:06:59: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:06:59: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:06:59: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:06:59: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:06:59: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:06:59: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:06:59: +-------------+-------------+-------+-------------+-------+
INFO - 13:06:59: Solving optimization problem with algorithm NLOPT_COBYLA:
INFO - 13:06:59: 1%| | 1/100 [00:00<00:00, 255.17 it/sec, obj=-536]
INFO - 13:06:59: 2%|▏ | 2/100 [00:00<00:00, 194.90 it/sec, obj=-539]
INFO - 13:06:59: 3%|▎ | 3/100 [00:00<00:00, 194.46 it/sec, obj=-763]
INFO - 13:06:59: 4%|▍ | 4/100 [00:00<00:00, 194.04 it/sec, obj=-713]
INFO - 13:06:59: 5%|▌ | 5/100 [00:00<00:00, 191.35 it/sec, obj=-687]
INFO - 13:06:59: 6%|▌ | 6/100 [00:00<00:00, 190.13 it/sec, obj=-897]
INFO - 13:06:59: 7%|▋ | 7/100 [00:00<00:00, 187.16 it/sec, obj=-957]
INFO - 13:06:59: 8%|▊ | 8/100 [00:00<00:00, 185.44 it/sec, obj=-956]
INFO - 13:06:59: 9%|▉ | 9/100 [00:00<00:00, 177.89 it/sec, obj=-930]
INFO - 13:06:59: 10%|█ | 10/100 [00:00<00:00, 177.69 it/sec, obj=-943]
INFO - 13:06:59: 11%|█ | 11/100 [00:00<00:00, 177.20 it/sec, obj=-768]
INFO - 13:06:59: 12%|█▏ | 12/100 [00:00<00:00, 174.22 it/sec, obj=-1e+3]
INFO - 13:06:59: 13%|█▎ | 13/100 [00:00<00:00, 171.27 it/sec, obj=-1.34e+3]
INFO - 13:06:59: 14%|█▍ | 14/100 [00:00<00:00, 166.55 it/sec, obj=-1.85e+3]
WARNING - 13:06:59: MDAGaussSeidel has reached its maximum number of iterations but the normed residual 1.5897449643940727e-05 is still above the tolerance 1e-06.
INFO - 13:06:59: 15%|█▌ | 15/100 [00:00<00:00, 162.27 it/sec, obj=-1.87e+3]
WARNING - 13:07:00: MDAGaussSeidel has reached its maximum number of iterations but the normed residual 3.1764060178304437e-06 is still above the tolerance 1e-06.
INFO - 13:07:00: 16%|█▌ | 16/100 [00:00<00:00, 158.81 it/sec, obj=-1.99e+3]
WARNING - 13:07:00: MDAGaussSeidel has reached its maximum number of iterations but the normed residual 1.2161314217002324e-06 is still above the tolerance 1e-06.
INFO - 13:07:00: 17%|█▋ | 17/100 [00:00<00:00, 155.25 it/sec, obj=-2.18e+3]
INFO - 13:07:00: 18%|█▊ | 18/100 [00:00<00:00, 151.90 it/sec, obj=-2.51e+3]
INFO - 13:07:00: 19%|█▉ | 19/100 [00:00<00:00, 150.57 it/sec, obj=-2.92e+3]
INFO - 13:07:00: 20%|██ | 20/100 [00:00<00:00, 149.72 it/sec, obj=-3.03e+3]
INFO - 13:07:00: 21%|██ | 21/100 [00:00<00:00, 150.57 it/sec, obj=-3.16e+3]
INFO - 13:07:00: 22%|██▏ | 22/100 [00:00<00:00, 148.54 it/sec, obj=-2.75e+3]
INFO - 13:07:00: 23%|██▎ | 23/100 [00:00<00:00, 148.33 it/sec, obj=-2.61e+3]
INFO - 13:07:00: 24%|██▍ | 24/100 [00:00<00:00, 148.19 it/sec, obj=-2.22e+3]
INFO - 13:07:00: 25%|██▌ | 25/100 [00:00<00:00, 148.79 it/sec, obj=-2.95e+3]
INFO - 13:07:00: 26%|██▌ | 26/100 [00:00<00:00, 149.96 it/sec, obj=-3.3e+3]
INFO - 13:07:00: 27%|██▋ | 27/100 [00:00<00:00, 151.22 it/sec, obj=-3.22e+3]
INFO - 13:07:00: 28%|██▊ | 28/100 [00:00<00:00, 150.97 it/sec, obj=-3.79e+3]
INFO - 13:07:00: 29%|██▉ | 29/100 [00:00<00:00, 150.77 it/sec, obj=-3.59e+3]
INFO - 13:07:00: 30%|███ | 30/100 [00:00<00:00, 150.55 it/sec, obj=-3.63e+3]
INFO - 13:07:00: 31%|███ | 31/100 [00:00<00:00, 150.15 it/sec, obj=-3.69e+3]
INFO - 13:07:00: 32%|███▏ | 32/100 [00:00<00:00, 150.10 it/sec, obj=-3.42e+3]
INFO - 13:07:00: 33%|███▎ | 33/100 [00:00<00:00, 150.63 it/sec, obj=-3.47e+3]
INFO - 13:07:00: 34%|███▍ | 34/100 [00:00<00:00, 150.63 it/sec, obj=-3.21e+3]
INFO - 13:07:00: 35%|███▌ | 35/100 [00:00<00:00, 150.21 it/sec, obj=-3.94e+3]
INFO - 13:07:00: 36%|███▌ | 36/100 [00:00<00:00, 149.88 it/sec, obj=-3.21e+3]
INFO - 13:07:00: 37%|███▋ | 37/100 [00:00<00:00, 149.47 it/sec, obj=-3.31e+3]
INFO - 13:07:00: 38%|███▊ | 38/100 [00:00<00:00, 148.84 it/sec, obj=-3.31e+3]
INFO - 13:07:00: 39%|███▉ | 39/100 [00:00<00:00, 148.38 it/sec, obj=-3.26e+3]
INFO - 13:07:00: 40%|████ | 40/100 [00:00<00:00, 148.26 it/sec, obj=-3.39e+3]
INFO - 13:07:00: 41%|████ | 41/100 [00:00<00:00, 147.94 it/sec, obj=-3.37e+3]
INFO - 13:07:00: 42%|████▏ | 42/100 [00:00<00:00, 147.71 it/sec, obj=-3.55e+3]
INFO - 13:07:00: 43%|████▎ | 43/100 [00:00<00:00, 147.25 it/sec, obj=-3.22e+3]
INFO - 13:07:00: 44%|████▍ | 44/100 [00:00<00:00, 147.17 it/sec, obj=-2.8e+3]
INFO - 13:07:00: 45%|████▌ | 45/100 [00:00<00:00, 147.17 it/sec, obj=-3.54e+3]
INFO - 13:07:00: 46%|████▌ | 46/100 [00:00<00:00, 147.15 it/sec, obj=-3.83e+3]
INFO - 13:07:00: 47%|████▋ | 47/100 [00:00<00:00, 146.89 it/sec, obj=-3.25e+3]
INFO - 13:07:00: 48%|████▊ | 48/100 [00:00<00:00, 146.47 it/sec, obj=-3.36e+3]
INFO - 13:07:00: 49%|████▉ | 49/100 [00:00<00:00, 146.01 it/sec, obj=-3.53e+3]
INFO - 13:07:00: 50%|█████ | 50/100 [00:00<00:00, 145.85 it/sec, obj=-3.5e+3]
INFO - 13:07:00: 51%|█████ | 51/100 [00:00<00:00, 145.77 it/sec, obj=-3.57e+3]
INFO - 13:07:00: 52%|█████▏ | 52/100 [00:00<00:00, 145.51 it/sec, obj=-3.94e+3]
INFO - 13:07:00: 53%|█████▎ | 53/100 [00:00<00:00, 145.40 it/sec, obj=-3.22e+3]
INFO - 13:07:00: 54%|█████▍ | 54/100 [00:00<00:00, 145.25 it/sec, obj=-3.94e+3]
INFO - 13:07:00: 55%|█████▌ | 55/100 [00:00<00:00, 145.14 it/sec, obj=-3.94e+3]
INFO - 13:07:00: 56%|█████▌ | 56/100 [00:00<00:00, 145.00 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 57%|█████▋ | 57/100 [00:00<00:00, 144.51 it/sec, obj=-3.52e+3]
INFO - 13:07:00: 58%|█████▊ | 58/100 [00:00<00:00, 144.34 it/sec, obj=-3.72e+3]
INFO - 13:07:00: 59%|█████▉ | 59/100 [00:00<00:00, 144.39 it/sec, obj=-3.34e+3]
INFO - 13:07:00: 60%|██████ | 60/100 [00:00<00:00, 144.41 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 61%|██████ | 61/100 [00:00<00:00, 144.47 it/sec, obj=-3.84e+3]
INFO - 13:07:00: 62%|██████▏ | 62/100 [00:00<00:00, 144.64 it/sec, obj=-4.29e+3]
INFO - 13:07:00: 63%|██████▎ | 63/100 [00:00<00:00, 144.79 it/sec, obj=-3.27e+3]
INFO - 13:07:00: 64%|██████▍ | 64/100 [00:00<00:00, 144.96 it/sec, obj=-4.07e+3]
INFO - 13:07:00: 65%|██████▌ | 65/100 [00:00<00:00, 145.05 it/sec, obj=-3.09e+3]
INFO - 13:07:00: 66%|██████▌ | 66/100 [00:00<00:00, 145.04 it/sec, obj=-4.22e+3]
INFO - 13:07:00: 67%|██████▋ | 67/100 [00:00<00:00, 145.07 it/sec, obj=-4e+3]
INFO - 13:07:00: 68%|██████▊ | 68/100 [00:00<00:00, 144.92 it/sec, obj=-3.53e+3]
INFO - 13:07:00: 69%|██████▉ | 69/100 [00:00<00:00, 145.02 it/sec, obj=-4.2e+3]
INFO - 13:07:00: 70%|███████ | 70/100 [00:00<00:00, 145.15 it/sec, obj=-3.67e+3]
INFO - 13:07:00: 71%|███████ | 71/100 [00:00<00:00, 145.10 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 72%|███████▏ | 72/100 [00:00<00:00, 145.10 it/sec, obj=-3.76e+3]
INFO - 13:07:00: 73%|███████▎ | 73/100 [00:00<00:00, 145.14 it/sec, obj=-3.77e+3]
INFO - 13:07:00: 74%|███████▍ | 74/100 [00:00<00:00, 145.18 it/sec, obj=-3.85e+3]
INFO - 13:07:00: 75%|███████▌ | 75/100 [00:00<00:00, 145.11 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 76%|███████▌ | 76/100 [00:00<00:00, 145.04 it/sec, obj=-3.76e+3]
INFO - 13:07:00: 77%|███████▋ | 77/100 [00:00<00:00, 144.98 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 78%|███████▊ | 78/100 [00:00<00:00, 144.91 it/sec, obj=-3.66e+3]
INFO - 13:07:00: 79%|███████▉ | 79/100 [00:00<00:00, 144.90 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 80%|████████ | 80/100 [00:00<00:00, 144.74 it/sec, obj=-3.65e+3]
INFO - 13:07:00: 81%|████████ | 81/100 [00:00<00:00, 144.80 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 82%|████████▏ | 82/100 [00:00<00:00, 144.86 it/sec, obj=-3.76e+3]
INFO - 13:07:00: 83%|████████▎ | 83/100 [00:00<00:00, 144.86 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 84%|████████▍ | 84/100 [00:00<00:00, 144.82 it/sec, obj=-3.58e+3]
INFO - 13:07:00: 85%|████████▌ | 85/100 [00:00<00:00, 144.85 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 86%|████████▌ | 86/100 [00:00<00:00, 144.91 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 87%|████████▋ | 87/100 [00:00<00:00, 145.06 it/sec, obj=-3.91e+3]
INFO - 13:07:00: 88%|████████▊ | 88/100 [00:00<00:00, 145.11 it/sec, obj=-3.93e+3]
INFO - 13:07:00: 89%|████████▉ | 89/100 [00:00<00:00, 144.73 it/sec, obj=-3.97e+3]
INFO - 13:07:00: 90%|█████████ | 90/100 [00:00<00:00, 144.73 it/sec, obj=-3.92e+3]
INFO - 13:07:00: 91%|█████████ | 91/100 [00:00<00:00, 144.80 it/sec, obj=-3.96e+3]
INFO - 13:07:00: 92%|█████████▏| 92/100 [00:00<00:00, 144.85 it/sec, obj=-3.95e+3]
INFO - 13:07:00: 93%|█████████▎| 93/100 [00:00<00:00, 144.91 it/sec, obj=-3.95e+3]
INFO - 13:07:00: 94%|█████████▍| 94/100 [00:00<00:00, 144.98 it/sec, obj=-3.95e+3]
INFO - 13:07:00: 95%|█████████▌| 95/100 [00:00<00:00, 145.08 it/sec, obj=-3.91e+3]
INFO - 13:07:00: 96%|█████████▌| 96/100 [00:00<00:00, 145.19 it/sec, obj=-3.96e+3]
INFO - 13:07:00: 97%|█████████▋| 97/100 [00:00<00:00, 145.26 it/sec, obj=-3.96e+3]
INFO - 13:07:00: 98%|█████████▊| 98/100 [00:00<00:00, 145.31 it/sec, obj=-3.96e+3]
INFO - 13:07:00: 99%|█████████▉| 99/100 [00:00<00:00, 145.27 it/sec, obj=-3.96e+3]
INFO - 13:07:00: 100%|██████████| 100/100 [00:00<00:00, 145.33 it/sec, obj=-3.96e+3]
INFO - 13:07:00: Optimization result:
INFO - 13:07:00: Optimizer info:
INFO - 13:07:00: Status: None
INFO - 13:07:00: Message: Maximum number of iterations reached. GEMSEO stopped the driver.
INFO - 13:07:00: Number of calls to the objective function by the optimizer: 0
INFO - 13:07:00: Solution:
INFO - 13:07:00: The solution is feasible.
INFO - 13:07:00: Objective: -3960.4216625697427
INFO - 13:07:00: Standardized constraints:
INFO - 13:07:00: g_1 = [-0.05722668 -0.06051502 -0.06502273 -0.06864369 -0.07143946 -0.10339509
INFO - 13:07:00: -0.13660491]
INFO - 13:07:00: g_2 = -2.220446049250313e-16
INFO - 13:07:00: g_3 = [-7.67261040e-01 -2.32738960e-01 -7.20534743e-14 -1.83255000e-01]
INFO - 13:07:00: Design space:
INFO - 13:07:00: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:07:00: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:07:00: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:07:00: | x_shared[0] | 0.01 | 0.05999999999999997 | 0.09 | float |
INFO - 13:07:00: | x_shared[1] | 30000 | 60000 | 60000 | float |
INFO - 13:07:00: | x_shared[2] | 1.4 | 1.4 | 1.8 | float |
INFO - 13:07:00: | x_shared[3] | 2.5 | 2.5 | 8.5 | float |
INFO - 13:07:00: | x_shared[4] | 40 | 70 | 70 | float |
INFO - 13:07:00: | x_shared[5] | 500 | 1500 | 1500 | float |
INFO - 13:07:00: | x_1[0] | 0.1 | 0.2198966756241587 | 0.4 | float |
INFO - 13:07:00: | x_1[1] | 0.75 | 0.75 | 1.25 | float |
INFO - 13:07:00: | x_2 | 0.75 | 0.75 | 1.25 | float |
INFO - 13:07:00: | x_3 | 0.1 | 0.1562447456462762 | 1 | float |
INFO - 13:07:00: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:07:00: *** End MDOScenario execution (time: 0:00:00.697733) ***
Solve the Sobieski's SSBJ problem with NumPy¶
mod_scenario = MDOScenario(
[
SobieskiStructure(),
SobieskiAerodynamics(),
SobieskiPropulsion(),
SobieskiMission(),
],
"y_4",
SobieskiDesignSpace(),
maximize_objective=True,
formulation_name="MDF",
main_mda_settings={"inner_mda_name": "MDAGaussSeidel"},
)
mod_scenario.add_constraint("g_1", "ineq")
mod_scenario.add_constraint("g_2", "ineq")
mod_scenario.add_constraint("g_3", "ineq")
mod_scenario.execute(algo_name="NLOPT_COBYLA", max_iter=100)
Out:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/pydantic/main.py:209: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
WARNING - 13:07:00: Unsupported feature 'minItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
WARNING - 13:07:00: Unsupported feature 'maxItems' in JSONGrammar 'SobieskiMission_discipline_output' for property 'y_4' in conversion to SimpleGrammar.
INFO - 13:07:00:
INFO - 13:07:00: *** Start MDOScenario execution ***
INFO - 13:07:00: MDOScenario
INFO - 13:07:00: Disciplines: SobieskiAerodynamics SobieskiMission SobieskiPropulsion SobieskiStructure
INFO - 13:07:00: MDO formulation: MDF
INFO - 13:07:00: Optimization problem:
INFO - 13:07:00: minimize -y_4(x_shared, x_1, x_2, x_3)
INFO - 13:07:00: with respect to x_1, x_2, x_3, x_shared
INFO - 13:07:00: subject to constraints:
INFO - 13:07:00: g_1(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:07:00: g_2(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:07:00: g_3(x_shared, x_1, x_2, x_3) <= 0
INFO - 13:07:00: over the design space:
INFO - 13:07:00: +-------------+-------------+-------+-------------+-------+
INFO - 13:07:00: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:07:00: +-------------+-------------+-------+-------------+-------+
INFO - 13:07:00: | x_shared[0] | 0.01 | 0.05 | 0.09 | float |
INFO - 13:07:00: | x_shared[1] | 30000 | 45000 | 60000 | float |
INFO - 13:07:00: | x_shared[2] | 1.4 | 1.6 | 1.8 | float |
INFO - 13:07:00: | x_shared[3] | 2.5 | 5.5 | 8.5 | float |
INFO - 13:07:00: | x_shared[4] | 40 | 55 | 70 | float |
INFO - 13:07:00: | x_shared[5] | 500 | 1000 | 1500 | float |
INFO - 13:07:00: | x_1[0] | 0.1 | 0.25 | 0.4 | float |
INFO - 13:07:00: | x_1[1] | 0.75 | 1 | 1.25 | float |
INFO - 13:07:00: | x_2 | 0.75 | 1 | 1.25 | float |
INFO - 13:07:00: | x_3 | 0.1 | 0.5 | 1 | float |
INFO - 13:07:00: +-------------+-------------+-------+-------------+-------+
INFO - 13:07:00: Solving optimization problem with algorithm NLOPT_COBYLA:
/builds/gemseo/dev/gemseo-jax/.tox/doc/lib64/python3.9/site-packages/gemseo/problems/mdo/sobieski/core/utils.py:225: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)
ai_coeff[index] = -(f_bound[2] - f_bound[0]) / (2 * mtx_shifted[0, 1])
INFO - 13:07:00: 1%| | 1/100 [00:00<00:00, 99.17 it/sec, obj=-536]
INFO - 13:07:00: 2%|▏ | 2/100 [00:00<00:01, 76.91 it/sec, obj=-539]
INFO - 13:07:00: 3%|▎ | 3/100 [00:00<00:01, 74.64 it/sec, obj=-763]
INFO - 13:07:00: 4%|▍ | 4/100 [00:00<00:01, 73.46 it/sec, obj=-713]
INFO - 13:07:00: 5%|▌ | 5/100 [00:00<00:01, 73.00 it/sec, obj=-687]
INFO - 13:07:00: 6%|▌ | 6/100 [00:00<00:01, 71.46 it/sec, obj=-897]
INFO - 13:07:00: 7%|▋ | 7/100 [00:00<00:01, 69.56 it/sec, obj=-957]
INFO - 13:07:00: 8%|▊ | 8/100 [00:00<00:01, 67.93 it/sec, obj=-956]
INFO - 13:07:00: 9%|▉ | 9/100 [00:00<00:01, 64.56 it/sec, obj=-930]
INFO - 13:07:00: 10%|█ | 10/100 [00:00<00:01, 64.05 it/sec, obj=-943]
INFO - 13:07:00: 11%|█ | 11/100 [00:00<00:01, 63.70 it/sec, obj=-768]
INFO - 13:07:00: 12%|█▏ | 12/100 [00:00<00:01, 62.95 it/sec, obj=-1e+3]
INFO - 13:07:00: 13%|█▎ | 13/100 [00:00<00:01, 61.52 it/sec, obj=-1.34e+3]
INFO - 13:07:00: 14%|█▍ | 14/100 [00:00<00:01, 60.02 it/sec, obj=-1.85e+3]
WARNING - 13:07:00: MDAGaussSeidel has reached its maximum number of iterations but the normed residual 1.0691449634588397e-05 is still above the tolerance 1e-06.
INFO - 13:07:00: 15%|█▌ | 15/100 [00:00<00:01, 58.57 it/sec, obj=-1.87e+3]
WARNING - 13:07:00: MDAGaussSeidel has reached its maximum number of iterations but the normed residual 1.6881473826143826e-06 is still above the tolerance 1e-06.
INFO - 13:07:00: 16%|█▌ | 16/100 [00:00<00:01, 57.29 it/sec, obj=-1.99e+3]
INFO - 13:07:00: 17%|█▋ | 17/100 [00:00<00:01, 56.25 it/sec, obj=-2.18e+3]
INFO - 13:07:00: 18%|█▊ | 18/100 [00:00<00:01, 55.51 it/sec, obj=-2.51e+3]
INFO - 13:07:00: 19%|█▉ | 19/100 [00:00<00:01, 55.48 it/sec, obj=-2.31e+3]
INFO - 13:07:00: 20%|██ | 20/100 [00:00<00:01, 55.01 it/sec, obj=-2.06e+3]
INFO - 13:07:01: 21%|██ | 21/100 [00:00<00:01, 54.99 it/sec, obj=-2.7e+3]
INFO - 13:07:01: 22%|██▏ | 22/100 [00:00<00:01, 55.41 it/sec, obj=-2.83e+3]
INFO - 13:07:01: 23%|██▎ | 23/100 [00:00<00:01, 55.94 it/sec, obj=-3.41e+3]
INFO - 13:07:01: 24%|██▍ | 24/100 [00:00<00:01, 56.72 it/sec, obj=-3.34e+3]
INFO - 13:07:01: 25%|██▌ | 25/100 [00:00<00:01, 57.17 it/sec, obj=-3.11e+3]
INFO - 13:07:01: 26%|██▌ | 26/100 [00:00<00:01, 57.06 it/sec, obj=-3.07e+3]
INFO - 13:07:01: 27%|██▋ | 27/100 [00:00<00:01, 57.50 it/sec, obj=-3.14e+3]
INFO - 13:07:01: 28%|██▊ | 28/100 [00:00<00:01, 57.77 it/sec, obj=-3e+3]
INFO - 13:07:01: 29%|██▉ | 29/100 [00:00<00:01, 58.14 it/sec, obj=-3.16e+3]
INFO - 13:07:01: 30%|███ | 30/100 [00:00<00:01, 58.19 it/sec, obj=-3.34e+3]
INFO - 13:07:01: 31%|███ | 31/100 [00:00<00:01, 58.35 it/sec, obj=-3.11e+3]
INFO - 13:07:01: 32%|███▏ | 32/100 [00:00<00:01, 58.36 it/sec, obj=-2.79e+3]
INFO - 13:07:01: 33%|███▎ | 33/100 [00:00<00:01, 58.43 it/sec, obj=-3.65e+3]
INFO - 13:07:01: 34%|███▍ | 34/100 [00:00<00:01, 58.74 it/sec, obj=-3.52e+3]
INFO - 13:07:01: 35%|███▌ | 35/100 [00:00<00:01, 58.74 it/sec, obj=-3.08e+3]
INFO - 13:07:01: 36%|███▌ | 36/100 [00:00<00:01, 58.84 it/sec, obj=-4.17e+3]
INFO - 13:07:01: 37%|███▋ | 37/100 [00:00<00:01, 58.81 it/sec, obj=-3.66e+3]
INFO - 13:07:01: 38%|███▊ | 38/100 [00:00<00:01, 58.87 it/sec, obj=-3.49e+3]
INFO - 13:07:01: 39%|███▉ | 39/100 [00:00<00:01, 59.13 it/sec, obj=-3.49e+3]
INFO - 13:07:01: 40%|████ | 40/100 [00:00<00:01, 59.29 it/sec, obj=-4.15e+3]
INFO - 13:07:01: 41%|████ | 41/100 [00:00<00:00, 59.40 it/sec, obj=-4.27e+3]
INFO - 13:07:01: 42%|████▏ | 42/100 [00:00<00:00, 59.39 it/sec, obj=-4e+3]
INFO - 13:07:01: 43%|████▎ | 43/100 [00:00<00:00, 59.35 it/sec, obj=-3.53e+3]
INFO - 13:07:01: 44%|████▍ | 44/100 [00:00<00:00, 59.49 it/sec, obj=-4.36e+3]
INFO - 13:07:01: 45%|████▌ | 45/100 [00:00<00:00, 59.64 it/sec, obj=-4.35e+3]
INFO - 13:07:01: 46%|████▌ | 46/100 [00:00<00:00, 59.69 it/sec, obj=-3.65e+3]
INFO - 13:07:01: 47%|████▋ | 47/100 [00:00<00:00, 59.74 it/sec, obj=-2.99e+3]
INFO - 13:07:01: 48%|████▊ | 48/100 [00:00<00:00, 59.77 it/sec, obj=-3.39e+3]
INFO - 13:07:01: 49%|████▉ | 49/100 [00:00<00:00, 59.88 it/sec, obj=-4.45e+3]
INFO - 13:07:01: 50%|█████ | 50/100 [00:00<00:00, 59.98 it/sec, obj=-4.08e+3]
INFO - 13:07:01: 51%|█████ | 51/100 [00:00<00:00, 59.96 it/sec, obj=-3.68e+3]
INFO - 13:07:01: 52%|█████▏ | 52/100 [00:00<00:00, 60.05 it/sec, obj=-4.42e+3]
INFO - 13:07:01: 53%|█████▎ | 53/100 [00:00<00:00, 60.24 it/sec, obj=-4.59e+3]
INFO - 13:07:01: 54%|█████▍ | 54/100 [00:00<00:00, 60.34 it/sec, obj=-4.35e+3]
INFO - 13:07:01: 55%|█████▌ | 55/100 [00:00<00:00, 60.37 it/sec, obj=-3.93e+3]
INFO - 13:07:01: 56%|█████▌ | 56/100 [00:00<00:00, 60.47 it/sec, obj=-4.43e+3]
INFO - 13:07:01: 57%|█████▋ | 57/100 [00:00<00:00, 60.49 it/sec, obj=-3.73e+3]
INFO - 13:07:01: 58%|█████▊ | 58/100 [00:00<00:00, 60.56 it/sec, obj=-4.43e+3]
INFO - 13:07:01: 59%|█████▉ | 59/100 [00:00<00:00, 60.65 it/sec, obj=-3.68e+3]
INFO - 13:07:01: 60%|██████ | 60/100 [00:00<00:00, 60.74 it/sec, obj=-4.42e+3]
INFO - 13:07:01: 61%|██████ | 61/100 [00:01<00:00, 60.70 it/sec, obj=-3.8e+3]
INFO - 13:07:01: 62%|██████▏ | 62/100 [00:01<00:00, 60.78 it/sec, obj=-4.42e+3]
INFO - 13:07:01: 63%|██████▎ | 63/100 [00:01<00:00, 60.90 it/sec, obj=-3.76e+3]
INFO - 13:07:01: 64%|██████▍ | 64/100 [00:01<00:00, 60.98 it/sec, obj=-4.42e+3]
INFO - 13:07:01: 65%|██████▌ | 65/100 [00:01<00:00, 61.11 it/sec, obj=-4.52e+3]
INFO - 13:07:01: 66%|██████▌ | 66/100 [00:01<00:00, 61.18 it/sec, obj=-4.43e+3]
INFO - 13:07:01: 67%|██████▋ | 67/100 [00:01<00:00, 61.30 it/sec, obj=-3.69e+3]
INFO - 13:07:01: 68%|██████▊ | 68/100 [00:01<00:00, 61.36 it/sec, obj=-4.42e+3]
INFO - 13:07:01: 69%|██████▉ | 69/100 [00:01<00:00, 61.48 it/sec, obj=-3.73e+3]
INFO - 13:07:01: 70%|███████ | 70/100 [00:01<00:00, 61.54 it/sec, obj=-4.42e+3]
INFO - 13:07:01: 71%|███████ | 71/100 [00:01<00:00, 61.65 it/sec, obj=-4.49e+3]
INFO - 13:07:01: 72%|███████▏ | 72/100 [00:01<00:00, 61.71 it/sec, obj=-4.43e+3]
INFO - 13:07:01: 73%|███████▎ | 73/100 [00:01<00:00, 61.76 it/sec, obj=-4.5e+3]
INFO - 13:07:01: 74%|███████▍ | 74/100 [00:01<00:00, 61.82 it/sec, obj=-4.5e+3]
INFO - 13:07:01: 75%|███████▌ | 75/100 [00:01<00:00, 61.83 it/sec, obj=-4.25e+3]
INFO - 13:07:01: 76%|███████▌ | 76/100 [00:01<00:00, 61.88 it/sec, obj=-4.49e+3]
INFO - 13:07:01: 77%|███████▋ | 77/100 [00:01<00:00, 61.93 it/sec, obj=-4.28e+3]
INFO - 13:07:01: 78%|███████▊ | 78/100 [00:01<00:00, 61.90 it/sec, obj=-3.92e+3]
INFO - 13:07:01: 79%|███████▉ | 79/100 [00:01<00:00, 61.84 it/sec, obj=-3.96e+3]
INFO - 13:07:01: 80%|████████ | 80/100 [00:01<00:00, 61.83 it/sec, obj=-4.38e+3]
INFO - 13:07:01: 81%|████████ | 81/100 [00:01<00:00, 61.86 it/sec, obj=-4.29e+3]
INFO - 13:07:01: 82%|████████▏ | 82/100 [00:01<00:00, 61.90 it/sec, obj=-4.49e+3]
INFO - 13:07:01: 83%|████████▎ | 83/100 [00:01<00:00, 61.94 it/sec, obj=-4.34e+3]
INFO - 13:07:01: 84%|████████▍ | 84/100 [00:01<00:00, 61.99 it/sec, obj=-4.49e+3]
INFO - 13:07:01: 85%|████████▌ | 85/100 [00:01<00:00, 62.05 it/sec, obj=-4.22e+3]
INFO - 13:07:02: 86%|████████▌ | 86/100 [00:01<00:00, 62.09 it/sec, obj=-4.49e+3]
INFO - 13:07:02: 87%|████████▋ | 87/100 [00:01<00:00, 62.12 it/sec, obj=-4.33e+3]
INFO - 13:07:02: 88%|████████▊ | 88/100 [00:01<00:00, 62.17 it/sec, obj=-4.49e+3]
INFO - 13:07:02: 89%|████████▉ | 89/100 [00:01<00:00, 62.20 it/sec, obj=-4.31e+3]
INFO - 13:07:02: 90%|█████████ | 90/100 [00:01<00:00, 62.24 it/sec, obj=-4.49e+3]
INFO - 13:07:02: 91%|█████████ | 91/100 [00:01<00:00, 62.28 it/sec, obj=-4.27e+3]
INFO - 13:07:02: 92%|█████████▏| 92/100 [00:01<00:00, 62.25 it/sec, obj=-4.31e+3]
INFO - 13:07:02: 93%|█████████▎| 93/100 [00:01<00:00, 62.27 it/sec, obj=-4.32e+3]
INFO - 13:07:02: 94%|█████████▍| 94/100 [00:01<00:00, 62.30 it/sec, obj=-4.49e+3]
INFO - 13:07:02: 95%|█████████▌| 95/100 [00:01<00:00, 62.34 it/sec, obj=-4.21e+3]
INFO - 13:07:02: 96%|█████████▌| 96/100 [00:01<00:00, 62.33 it/sec, obj=-4.49e+3]
INFO - 13:07:02: 97%|█████████▋| 97/100 [00:01<00:00, 62.36 it/sec, obj=-4.19e+3]
INFO - 13:07:02: 98%|█████████▊| 98/100 [00:01<00:00, 62.39 it/sec, obj=-4.49e+3]
INFO - 13:07:02: 99%|█████████▉| 99/100 [00:01<00:00, 62.36 it/sec, obj=-4.13e+3]
INFO - 13:07:02: 100%|██████████| 100/100 [00:01<00:00, 62.35 it/sec, obj=-4.49e+3]
INFO - 13:07:02: Optimization result:
INFO - 13:07:02: Optimizer info:
INFO - 13:07:02: Status: None
INFO - 13:07:02: Message: Maximum number of iterations reached. GEMSEO stopped the driver.
INFO - 13:07:02: Number of calls to the objective function by the optimizer: 0
INFO - 13:07:02: Solution:
INFO - 13:07:02: The solution is feasible.
INFO - 13:07:02: Objective: -3003.8995230595424
INFO - 13:07:02: Standardized constraints:
INFO - 13:07:02: g_1 = [-0.18177087 -0.15303684 -0.13797373 -0.12871311 -0.12244655 -0.02429768
INFO - 13:07:02: -0.21570232]
INFO - 13:07:02: g_2 = -0.002615771711972803
INFO - 13:07:02: g_3 = [-0.78613294 -0.21386706 -0.07631583 -0.17779628]
INFO - 13:07:02: Design space:
INFO - 13:07:02: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:07:02: | Name | Lower bound | Value | Upper bound | Type |
INFO - 13:07:02: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:07:02: | x_shared[0] | 0.01 | 0.05934605707200682 | 0.09 | float |
INFO - 13:07:02: | x_shared[1] | 30000 | 60000 | 60000 | float |
INFO - 13:07:02: | x_shared[2] | 1.4 | 1.440947137798596 | 1.8 | float |
INFO - 13:07:02: | x_shared[3] | 2.5 | 2.682168463995586 | 8.5 | float |
INFO - 13:07:02: | x_shared[4] | 40 | 70 | 70 | float |
INFO - 13:07:02: | x_shared[5] | 500 | 1315.825005558175 | 1500 | float |
INFO - 13:07:02: | x_1[0] | 0.1 | 0.1000000000000001 | 0.4 | float |
INFO - 13:07:02: | x_1[1] | 0.75 | 0.9200062439484883 | 1.25 | float |
INFO - 13:07:02: | x_2 | 0.75 | 0.8112680369735645 | 1.25 | float |
INFO - 13:07:02: | x_3 | 0.1 | 0.1498242691956934 | 1 | float |
INFO - 13:07:02: +-------------+-------------+---------------------+-------------+-------+
INFO - 13:07:02: *** End MDOScenario execution (time: 0:00:01.614032) ***
Conclusion¶
JAX is about 3 times faster than NumPy in the case of an optimization loop with a Gauss-Seidel MDA.
Total running time of the script: ( 0 minutes 25.580 seconds)
Download Python source code: plot_sobieski_mdf.py