Null space algorithm for nonlinear constrained optimization
pip install nullspace-optimizer==1.2.3
nullspace_optimizer
is a package implementing the null space algorithm for nonlinear constrained
optimization.
Please cite the following references when using this source:
FEPPON, Florian, ALLAIRE, Grégoire, et DAPOGNY, Charles. Null space gradient flows for constrained optimization with applications to shape optimization. 2019. HAL preprint hal-01972915.
FEPPON, Florian. Shape and topology optimization of multiphysics systems. 2019. Université Paris-Saclay. Thèse préparée à l'École polytechnique.
# Light version
pip install nullspace_optimizer
# Full dependencies including colored output and plotting features
pip install nullspace_optimizer[colored,matplotlib]
Add the package to the PYTHONPATH
environment variable.
A few examples of 2-d inequality constrained optimization are available in the `examples' folder. They can be run from command line with
python -m nullspace_optimizer.examples.ex0
python -m nullspace_optimizer.examples.ex1
python -m nullspace_optimizer.examples.ex2
and so on.
For instance, example ex1
solves the following optimization problem:
\newcommand{\<}{\leq}
\begin{aligned} \min_{(x_0,x_1)\in\mathbb{R}^2} & \quad (x_0+1)^2+(x_1+1)^2 \\
s.t. &\quad \left\{ \begin{aligned} x_0^2+x_1^2-1 & \< 0\\
x_0+x_1-1 & \< 0 \\
-x_1-0.7 & \<0.
\end{aligned}\right.
\end{aligned}
Running python -m nullspace_optimizer.examples.ex1
should produce the following figure:
Runs with python 3.6 and the following libraries:
Optional dependencies: