.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/optimization_problem/plot_simple_opt_2.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_optimization_problem_plot_simple_opt_2.py: Analytical test case # 2 ======================== .. GENERATED FROM PYTHON SOURCE LINES 26-31 In this example, we consider a simple optimization problem to illustrate algorithms interfaces and optimization libraries integration. Imports ------- .. GENERATED FROM PYTHON SOURCE LINES 31-45 .. code-block:: default from __future__ import division, unicode_literals from numpy import cos, exp, ones, sin from gemseo.algos.design_space import DesignSpace from gemseo.algos.doe.doe_factory import DOEFactory from gemseo.algos.opt.opt_factory import OptimizersFactory from gemseo.algos.opt_problem import OptimizationProblem from gemseo.api import configure_logger, execute_post from gemseo.core.mdofunctions.mdo_function import MDOFunction configure_logger() .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 46-50 Define the objective function ----------------------------- We define the objective function :math:`f(x)=sin(x)-exp(x)` using a :class:`.MDOFunction` defined by the sum of :class:`.MDOFunction` objects. .. GENERATED FROM PYTHON SOURCE LINES 50-54 .. code-block:: default f_1 = MDOFunction(sin, name="f_1", jac=cos, expr="sin(x)") f_2 = MDOFunction(exp, name="f_2", jac=exp, expr="exp(x)") objective = f_1 - f_2 .. GENERATED FROM PYTHON SOURCE LINES 55-63 .. seealso:: The following operators are implemented: addition, subtraction and multiplication. The minus operator is also defined. Define the design space ----------------------- Then, we define the :class:`.DesignSpace` with |g|. .. GENERATED FROM PYTHON SOURCE LINES 63-66 .. code-block:: default design_space = DesignSpace() design_space.add_variable("x", 1, l_b=-2.0, u_b=2.0, value=-0.5 * ones(1)) .. GENERATED FROM PYTHON SOURCE LINES 67-70 Define the optimization problem ------------------------------- Then, we define the :class:`.OptimizationProblem` with |g|. .. GENERATED FROM PYTHON SOURCE LINES 70-73 .. code-block:: default problem = OptimizationProblem(design_space) problem.objective = objective .. GENERATED FROM PYTHON SOURCE LINES 74-80 Solve the optimization problem using an optimization algorithm -------------------------------------------------------------- Finally, we solve the optimization problems with |g| interface. Solve the problem ^^^^^^^^^^^^^^^^^ .. GENERATED FROM PYTHON SOURCE LINES 80-84 .. code-block:: default opt = OptimizersFactory().execute(problem, "L-BFGS-B", normalize_design_space=True) print("Optimum = ", opt) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none INFO - 12:57:10: Optimization problem: INFO - 12:57:10: Minimize: f_1-f_2 = sin(x)-exp(x) INFO - 12:57:10: With respect to: x INFO - 12:57:10: Design space: INFO - 12:57:10: +------+-------------+-------+-------------+-------+ INFO - 12:57:10: | name | lower_bound | value | upper_bound | type | INFO - 12:57:10: +------+-------------+-------+-------------+-------+ INFO - 12:57:10: | x | -2 | -0.5 | 2 | float | INFO - 12:57:10: +------+-------------+-------+-------------+-------+ INFO - 12:57:10: Optimization: 0%| | 0/999 [00:00 .. GENERATED FROM PYTHON SOURCE LINES 101-105 .. note:: We can also save this plot using the arguments :code:`save=False` and :code:`file_path='file_path'`. .. GENERATED FROM PYTHON SOURCE LINES 107-111 Solve the optimization problem using a DOE algorithm ---------------------------------------------------- We can also see this optimization problem as a trade-off and solve it by means of a design of experiments (DOE). .. GENERATED FROM PYTHON SOURCE LINES 111-113 .. code-block:: default opt = DOEFactory().execute(problem, "lhs", n_samples=10, normalize_design_space=True) print("Optimum = ", opt) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none WARNING - 12:57:10: Driver lhs has no option normalize_design_space, option is ignored. INFO - 12:57:10: Optimization problem: INFO - 12:57:10: Minimize: f_1-f_2 = sin(x)-exp(x) INFO - 12:57:10: With respect to: x INFO - 12:57:10: DOE sampling: 0%| | 0/10 [00:00` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_simple_opt_2.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_