Discussion:
[SciPy-Dev] SciPy-Dev Digest, Vol 161, Issue 12
Antonio Ribeiro
2017-03-11 19:41:39 UTC
Permalink
I would like to start by thanking both Matt Haberland and Nikolay Mayorov for making
themselves avaliable for mentoring me. I would like very much to have the opportunity
to be mentored by one or even both of you.

About the questions raised about the project:

- To have a wrapper for “ipopt” in scipy would be nice and, if the owners give permission,
it could be one of the items of the proposal. Nevertheless, the implementation
of a solver in native Python/Cython still have it advantages and should not be discarded:
i) the code in python is much more readable, furthermore native code make it easier for scipy collaborators
to add new features and maintain it; ii) Using the proper Numpy and LAPACK functions
for expensive operations and using Cython when needed, our implementation can be as
fast as C or FORTRAN implementations; iii) It is easier to maintain coherence of interface
with other scipy methods using a native implementation.
- About the Nikolay question about the interface to use: my plan is to try to implement the
solver inside the “minimize” interface in scipy. If needed I can move to a new interface
that gives me more freedom.

About what to implement and in what order of priority:

1) Nikolay idea implement a set of benchmarks from the beginning is very good,
it would allow to compare my method with other already implemented solvers
and to assess the quality of my solver during its development.
2) After having a set of benchmarks my idea is to implement an interior points method.
In my opinion interior points methods should be the priority because they are able to
handle a large range of problems reasonably well. They are very powerful algorithms
for large-scale problems and usually are able to deal with medium/small
problems reasonably well too.
3) After that I would like to include different possibilities of Hessian approximation to
the method (BFGS, L-BFGS, approximated by finite-differences or provided by the user…)
4) And, if I have time, I would like to also implement a SQP solver. It would probably not be the
same as the one used in SLSQP.

There are several variations of interior points methods and I am still deciding which
one to implement among the several available options. I have seen both
line-search and trust-region methods being used in literature and in implemented solvers
(for instance "ipopt” uses a line-search approach while “KNITRO” uses a trust-region approach).
I have found a good reference about trust-region interior point methods in the
Conn, Gould and Toint “Trust-Region methods” book; Nocedal and Wright book also have
a small chapter about nonlinear interior point methods that can be useful. Furthermore,
I am looking into papers and surveys about the subject. I would much appreciate
any recommendation or reference about the subject. Same thing with SQP methods.

Best regards,
Antônio
Send SciPy-Dev mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
https://mail.scipy.org/mailman/listinfo/scipy-dev
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of SciPy-Dev digest..."
1. Re: SciPy-Dev Digest, Vol 161, Issue 11 (Denis Akhiyarov)
2. Re: SciPy-Dev Digest, Vol 161, Issue 11 (Matt Haberland)
----------------------------------------------------------------------
Message: 1
Date: Sat, 11 Mar 2017 09:08:17 -0600
Subject: Re: [SciPy-Dev] SciPy-Dev Digest, Vol 161, Issue 11
Content-Type: text/plain; charset="utf-8"
I used ipopt for interior-point method from python, are you trying to add
something similar to scipy? if yes, why not just add a wrapper for ipopt,
since the license looks not restrictive?
Send SciPy-Dev mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
https://mail.scipy.org/mailman/listinfo/scipy-dev
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of SciPy-Dev digest..."
1. Re: GSoC2017: Constrained Optimisation in Scipy (Matt Haberland)
2. Re: GSoC2017: Constrained Optimisation in Scipy (Nikolay Mayorov)
----------------------------------------------------------------------
Message: 1
Date: Fri, 10 Mar 2017 10:01:32 -0800
Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy
mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
The choice of nonlinear optimization algorithm can have a dramatic impact
on the speed and quality of the solution, and the best choice for a
particular problem can be difficult to determine a priori, so it is
important to have multiple options available.
My work in optimal control leads to problems with (almost entirely)
nonlinear constraints, and the use of derivative information is essential
for reasonable performance, leaving SLSQP as the only option in SciPy right
now. However, the problems are also huge and very sparse with a specific
structure, so SLSQP is not very effective, and not nearly as effective as a
nonlinear optimization routine could be. So despite SciPy boasting 14
options for minimization of a nonlinear objective, it wasn't suitable for
this work (without the use of an external solver).
I think SciPy is in need of at least one solver designed to handle large,
fully nonlinear problems, and having two would be much better. Interior
point and SQP are good, complementary options.
Hello, my name is Antonio and I am a Brazilian electrical engineer
currently pursuing my master degree. I have contributed to scipy.optimize
and scipy.signal implementing functions "iirnotch", "irrpeak"
<https://github.com/scipy/scipy/pull/6404>and the method
"trust-region-exact" <https://github.com/scipy/scipy/pull/6919> (under
revision). I am interested in applying for the Google Summer of Code 2017
to work with the Scipy optimisation package.
My proposal is to improve scipy.optimize adding optimisation methods that
are able to deal with non-linear constraints. Currently the only
implemented methods able to deal with non-linear constraints are the
FORTRAN wrappers SLSQP and COBYLA.
SLSQP is a sequential quadratic programming method and COBYLA is a
SLSQP is not able to deal with sparse
hessians and jacobians and is unfit for large-scale problems and COBYLA,
as other derivative-free methods, is a good choice for optimise noisy
objective functions, however usually presents a poorer performance then
derivative-based methods when the derivatives are available (or even when
they are computed by automatic differentiation or finite differences).
My proposal is to implement in Scipy one or more state-of-the-art solvers
(interior point and SQP methods) for constrained optimisation problems. I
would like to get some feedback about this, discuss the relevance of it
for
Scipy and get some suggestions of possible mentors.
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
--
Matt Haberland
Assistant Adjunct Professor in the Program in Computing
Department of Mathematics
7620E Math Sciences Building, UCLA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.scipy.org/pipermail/scipy-dev/
attachments/20170310/00ea2b5d/attachment-0001.html>
------------------------------
Message: 2
Date: Sat, 11 Mar 2017 00:40:00 +0500
Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy
Content-Type: text/plain; charset="utf-8"
Hi, Antonio!
I too think that moving towards more modern algorithms and their
implementations is good for scipy. I would be happy to mentor this project,
and most likely I will be able to.
1. Have you figured what is done in SLSQP (especially "least squares"
part)? Do you plan to use a similar approach or another approach to SQP? (I
figured there are several somewhat different approaches.) Setting on a
literature reference (or most likely several of them) is essential.
2. I think it is not wrong to focus on a single solver if you feel that it
will likely take the whole time. Or maybe you can prioritize: do this first
for sure and then have alternatives, plan a) to switch to another solver or
plan b) to improve\add something more minor.
3. Consider whether to fit a new solver into minimize or make it as a new
separate solver. The latter approach gives a freedom to implement things
exactly as you want (and not to depend on old suboptimal choices) , but I
guess it can be considered as impractical/inconsistent by some people.
Maybe it can be decided along the way.
4. I think it is important to start to think about benchmark problems
early, maybe even start with them. It's hard to develop a complicated
optimization algorithm without ability to see how efficiently it works
right away.
---- On Fri, 10 Mar 2017 23:01:32 +0500 Matt Haberland &
The choice of nonlinear optimization algorithm can have a dramatic impact
on the speed and quality of the solution, and the best choice for a
particular problem can be difficult to determine a priori, so it is
important to have multiple options available.
My work in optimal control leads to problems with (almost entirely)
nonlinear constraints, and the use of derivative information is essential
for reasonable performance, leaving SLSQP as the only option in SciPy right
now. However, the problems are also huge and very sparse with a specific
structure, so SLSQP is not very effective, and not nearly as effective as a
nonlinear optimization routine could be. So despite SciPy boasting 14
options for minimization of a nonlinear objective, it wasn't suitable for
this work (without the use of an external solver).
I think SciPy is in need of at least one solver designed to handle large,
fully nonlinear problems, and having two would be much better. Interior
point and SQP are good, complementary options.
--
Matt Haberland
Assistant Adjunct Professor in the Program in Computing
Department of Mathematics
7620E Math Sciences Building, UCLA
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
Hello, my name is Antonio and I am a Brazilian electrical engineer
currently pursuing my master degree. I have contributed to scipy.optimize
and scipy.signal implementing functions "iirnotch", "irrpeak"and the method
"trust-region-exact" (under revision). I am interested in applying for the
Google Summer of Code 2017 to work with the Scipy optimisation package.
My proposal is to improve scipy.optimize adding optimisation methods that
are able to deal with non-linear constraints. Currently the only
implemented methods able to deal with non-linear constraints are the
FORTRAN wrappers SLSQP and COBYLA.
SLSQP is a sequential quadratic programming method and COBYLA is a
derivative-free optimisation method, they both have its limitations: SLSQP
is not able to deal with sparse
hessians and jacobians and is unfit for large-scale problems and COBYLA,
as other derivative-free methods, is a good choice for optimise noisy
objective functions, however usually presents a poorer performance then
derivative-based methods when the derivatives are available (or even when
they are computed by automatic differentiation or finite differences).
My proposal is to implement in Scipy one or more state-of-the-art solvers
(interior point and SQP methods) for constrained optimisation problems. I
would like to get some feedback about this, discuss the relevance of it for
Scipy and get some suggestions of possible mentors.
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.scipy.org/pipermail/scipy-dev/
attachments/20170311/3bd6e920/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
------------------------------
End of SciPy-Dev Digest, Vol 161, Issue 11
******************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.scipy.org/pipermail/scipy-dev/attachments/20170311/098a8651/attachment-0001.html>
------------------------------
Message: 2
Date: Sat, 11 Mar 2017 09:01:40 -0800
Subject: Re: [SciPy-Dev] SciPy-Dev Digest, Vol 161, Issue 11
Content-Type: text/plain; charset="utf-8"
*Does the EPL allow me to take the Source Code for a Program licensed under
it and include all or part of it in another program licensed under the GNU
General Public License (GPL), Berkeley Software Distribution (BSD) license
or other Open Source license?*
No. Only the owner of software can decide whether and how to license it to
others. Contributors to a Program licensed under the EPL understand that
source code for the Program will be made available under the terms of the
EPL. Unless you are the owner of the software or have received permission
from the owner, you are not authorized to apply the terms of another
license to the Program by including it in a program licensed under another
Open Source license.
It might be worth asking the contributors, but their permission would be
necessary.
I used ipopt for interior-point method from python, are you trying to add
something similar to scipy? if yes, why not just add a wrapper for ipopt,
since the license looks not restrictive?
Send SciPy-Dev mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
https://mail.scipy.org/mailman/listinfo/scipy-dev
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of SciPy-Dev digest..."
1. Re: GSoC2017: Constrained Optimisation in Scipy (Matt Haberland)
2. Re: GSoC2017: Constrained Optimisation in Scipy (Nikolay Mayorov)
----------------------------------------------------------------------
Message: 1
Date: Fri, 10 Mar 2017 10:01:32 -0800
Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy
gmail.com>
Content-Type: text/plain; charset="utf-8"
The choice of nonlinear optimization algorithm can have a dramatic impact
on the speed and quality of the solution, and the best choice for a
particular problem can be difficult to determine a priori, so it is
important to have multiple options available.
My work in optimal control leads to problems with (almost entirely)
nonlinear constraints, and the use of derivative information is essential
for reasonable performance, leaving SLSQP as the only option in SciPy
right
now. However, the problems are also huge and very sparse with a specific
structure, so SLSQP is not very effective, and not nearly as effective as
a
nonlinear optimization routine could be. So despite SciPy boasting 14
options for minimization of a nonlinear objective, it wasn't suitable for
this work (without the use of an external solver).
I think SciPy is in need of at least one solver designed to handle large,
fully nonlinear problems, and having two would be much better. Interior
point and SQP are good, complementary options.
Hello, my name is Antonio and I am a Brazilian electrical engineer
currently pursuing my master degree. I have contributed to
scipy.optimize
and scipy.signal implementing functions "iirnotch", "irrpeak"
<https://github.com/scipy/scipy/pull/6404>and the method
"trust-region-exact" <https://github.com/scipy/scipy/pull/6919> (under
revision). I am interested in applying for the Google Summer of Code
2017
to work with the Scipy optimisation package.
My proposal is to improve scipy.optimize adding optimisation methods
that
are able to deal with non-linear constraints. Currently the only
implemented methods able to deal with non-linear constraints are the
FORTRAN wrappers SLSQP and COBYLA.
SLSQP is a sequential quadratic programming method and COBYLA is a
SLSQP is not able to deal with sparse
hessians and jacobians and is unfit for large-scale problems and COBYLA,
as other derivative-free methods, is a good choice for optimise noisy
objective functions, however usually presents a poorer performance then
derivative-based methods when the derivatives are available (or even
when
they are computed by automatic differentiation or finite differences).
My proposal is to implement in Scipy one or more state-of-the-art
solvers
(interior point and SQP methods) for constrained optimisation problems.
I
would like to get some feedback about this, discuss the relevance of it
for
Scipy and get some suggestions of possible mentors.
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
--
Matt Haberland
Assistant Adjunct Professor in the Program in Computing
Department of Mathematics
7620E Math Sciences Building, UCLA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.scipy.org/pipermail/scipy-dev/attachments/
20170310/00ea2b5d/attachment-0001.html>
------------------------------
Message: 2
Date: Sat, 11 Mar 2017 00:40:00 +0500
Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy
Content-Type: text/plain; charset="utf-8"
Hi, Antonio!
I too think that moving towards more modern algorithms and their
implementations is good for scipy. I would be happy to mentor this project,
and most likely I will be able to.
1. Have you figured what is done in SLSQP (especially "least squares"
part)? Do you plan to use a similar approach or another approach to SQP? (I
figured there are several somewhat different approaches.) Setting on a
literature reference (or most likely several of them) is essential.
2. I think it is not wrong to focus on a single solver if you feel that
it will likely take the whole time. Or maybe you can prioritize: do this
first for sure and then have alternatives, plan a) to switch to another
solver or plan b) to improve\add something more minor.
3. Consider whether to fit a new solver into minimize or make it as a new
separate solver. The latter approach gives a freedom to implement things
exactly as you want (and not to depend on old suboptimal choices) , but I
guess it can be considered as impractical/inconsistent by some people.
Maybe it can be decided along the way.
4. I think it is important to start to think about benchmark problems
early, maybe even start with them. It's hard to develop a complicated
optimization algorithm without ability to see how efficiently it works
right away.
---- On Fri, 10 Mar 2017 23:01:32 +0500 Matt Haberland &
The choice of nonlinear optimization algorithm can have a dramatic impact
on the speed and quality of the solution, and the best choice for a
particular problem can be difficult to determine a priori, so it is
important to have multiple options available.
My work in optimal control leads to problems with (almost entirely)
nonlinear constraints, and the use of derivative information is essential
for reasonable performance, leaving SLSQP as the only option in SciPy right
now. However, the problems are also huge and very sparse with a specific
structure, so SLSQP is not very effective, and not nearly as effective as a
nonlinear optimization routine could be. So despite SciPy boasting 14
options for minimization of a nonlinear objective, it wasn't suitable for
this work (without the use of an external solver).
I think SciPy is in need of at least one solver designed to handle large,
fully nonlinear problems, and having two would be much better. Interior
point and SQP are good, complementary options.
--
Matt Haberland
Assistant Adjunct Professor in the Program in Computing
Department of Mathematics
7620E Math Sciences Building, UCLA
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
Hello, my name is Antonio and I am a Brazilian electrical engineer
currently pursuing my master degree. I have contributed to scipy.optimize
and scipy.signal implementing functions "iirnotch", "irrpeak"and the method
"trust-region-exact" (under revision). I am interested in applying for the
Google Summer of Code 2017 to work with the Scipy optimisation package.
My proposal is to improve scipy.optimize adding optimisation methods that
are able to deal with non-linear constraints. Currently the only
implemented methods able to deal with non-linear constraints are the
FORTRAN wrappers SLSQP and COBYLA.
SLSQP is a sequential quadratic programming method and COBYLA is a
derivative-free optimisation method, they both have its limitations: SLSQP
is not able to deal with sparse
hessians and jacobians and is unfit for large-scale problems and COBYLA,
as other derivative-free methods, is a good choice for optimise noisy
objective functions, however usually presents a poorer performance then
derivative-based methods when the derivatives are available (or even when
they are computed by automatic differentiation or finite differences).
My proposal is to implement in Scipy one or more state-of-the-art solvers
(interior point and SQP methods) for constrained optimisation problems. I
would like to get some feedback about this, discuss the relevance of it for
Scipy and get some suggestions of possible mentors.
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.scipy.org/pipermail/scipy-dev/attachments/
20170311/3bd6e920/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
------------------------------
End of SciPy-Dev Digest, Vol 161, Issue 11
******************************************
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.scipy.org/pipermail/scipy-dev/attachments/20170311/1fe49fd7/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
SciPy-Dev mailing list
https://mail.scipy.org/mailman/listinfo/scipy-dev
------------------------------
End of SciPy-Dev Digest, Vol 161, Issue 12
******************************************
Nikolay Mayorov
2017-03-12 19:49:19 UTC
Permalink
Nevertheless, the implementation

of a solver in native Python/Cython still have it advantages and should not be discarded:





Totally support this. Having "inhouse" implementation has the advantages listed by Antonio and additionally it adds substance to scipy project, such that it is not just a collection of wrappers. Obviously some balance between the two approaches should be maintained. I think GSoC is the most proper place to write new mathematical/algorithmic code. I would even suggest not to include any wrapper considerations in your proposal (for this particular GSoC case), but it's only my opinion here.




- About the Nikolay question about the interface to use: my plan is to try to implement the

solver inside the “minimize” interface in scipy. If needed I can move to a new interface

that gives me more freedom.





I think fitting it into "minimize" would be optimal, but if something very annoying/inconvenient/inconsistent will pop up it can be reconsidered I guess.



After having a set of benchmarks my idea is to implement an interior points method.





It sound interesting, especially because it will be completely new for scipy.




3) After that I would like to include different possibilities of Hessian approximation to

the method (BFGS, L-BFGS, approximated by finite-differences or provided by the user
)




And what is the "default" method for point 2 would be?


4) And, if I have time, I would like to also implement a SQP solver. It would probably not be the


same as the one used in SLSQP.




If you develop good intuition to the problem and code base during the first 3 points it might be possible to do it rather quickly, I believe.




There are several variations of interior points methods and I am still deciding which

one to implement among the several available options. I have seen both

line-search and trust-region methods being used in literature and in implemented solvers




My intuition (not necessary correct) that trust-region methods are somewhat more powerful / advanced that line-search methods + you already started to study / implement trust-region methods in your PR + there is a very solid and detailed book on trust-region methods you mentioned + me too have some experience with trust-region methods + there is some code for solving trust-region subproblems (like your exact method or I wrote a 2-by-2 method for subspace approach). I would maybe suggest to look into trust-region approach more closely based on all that.



As for the references I suggest to scan MATLAB manual https://www.mathworks.com/help/optim/ug/constrained-nonlinear-optimization-algorithms.html#brnpd5f it contains good references to papers (but you probably found them already).





---- On Sun, 12 Mar 2017 00:41:39 +0500 Antonio Ribeiro &lt;***@gmail.com&gt; wrote ----




I would like to start by thanking both Matt Haberland and Nikolay Mayorov for making

themselves avaliable for mentoring me. I would like very much to have the opportunity

to be mentored by one or even both of you.



About the questions raised about the project:



- To have a wrapper for “ipopt” in scipy would be nice and, if the owners give permission,

it could be one of the items of the proposal. Nevertheless, the implementation

of a solver in native Python/Cython still have it advantages and should not be discarded:

i) the code in python is much more readable, furthermore native code make it easier for scipy collaborators

to add new features and maintain it; ii) Using the proper Numpy and LAPACK functions

for expensive operations and using Cython when needed, our implementation can be as

fast as C or FORTRAN implementations; iii) It is easier to maintain coherence of interface

with other scipy methods using a native implementation.

- About the Nikolay question about the interface to use: my plan is to try to implement the

solver inside the “minimize” interface in scipy. If needed I can move to a new interface

that gives me more freedom.



About what to implement and in what order of priority:



1) Nikolay idea implement a set of benchmarks from the beginning is very good,

it would allow to compare my method with other already implemented solvers

and to assess the quality of my solver during its development.

2) After having a set of benchmarks my idea is to implement an interior points method.

In my opinion interior points methods should be the priority because they are able to

handle a large range of problems reasonably well. They are very powerful algorithms

for large-scale problems and usually are able to deal with medium/small

problems reasonably well too.

3) After that I would like to include different possibilities of Hessian approximation to

the method (BFGS, L-BFGS, approximated by finite-differences or provided by the user
)

4) And, if I have time, I would like to also implement a SQP solver. It would probably not be the

same as the one used in SLSQP.



There are several variations of interior points methods and I am still deciding which

one to implement among the several available options. I have seen both

line-search and trust-region methods being used in literature and in implemented solvers

(for instance "ipopt” uses a line-search approach while “KNITRO” uses a trust-region approach).

I have found a good reference about trust-region interior point methods in the

Conn, Gould and Toint “Trust-Region methods” book; Nocedal and Wright book also have

a small chapter about nonlinear interior point methods that can be useful. Furthermore,

I am looking into papers and surveys about the subject. I would much appreciate

any recommendation or reference about the subject. Same thing with SQP methods.



Best regards,

AntÃŽnio

























&gt; On Mar 11, 2017, at 14:01, scipy-dev-***@scipy.org wrote:

&gt;

&gt; Send SciPy-Dev mailing list submissions to

&gt; scipy-***@scipy.org

&gt;

&gt; To subscribe or unsubscribe via the World Wide Web, visit

&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt; or, via email, send a message with subject or body 'help' to

&gt; scipy-dev-***@scipy.org

&gt;

&gt; You can reach the person managing the list at

&gt; scipy-dev-***@scipy.org

&gt;

&gt; When replying, please edit your Subject line so it is more specific

&gt; than "Re: Contents of SciPy-Dev digest..."

&gt;

&gt;

&gt; Today's Topics:

&gt;

&gt; 1. Re: SciPy-Dev Digest, Vol 161, Issue 11 (Denis Akhiyarov)

&gt; 2. Re: SciPy-Dev Digest, Vol 161, Issue 11 (Matt Haberland)

&gt;

&gt;

&gt; ----------------------------------------------------------------------

&gt;

&gt; Message: 1

&gt; Date: Sat, 11 Mar 2017 09:08:17 -0600

&gt; From: Denis Akhiyarov &lt;***@gmail.com&gt;

&gt; To: scipy-***@scipy.org

&gt; Subject: Re: [SciPy-Dev] SciPy-Dev Digest, Vol 161, Issue 11

&gt; Message-ID:

&gt; &lt;CALxxJLQhh-e-tM5u0EijBbWaC0etaChxkLt61LEy=EPg0A-J-***@mail.gmail.com&gt;

&gt; Content-Type: text/plain; charset="utf-8"

&gt;

&gt; I used ipopt for interior-point method from python, are you trying to add

&gt; something similar to scipy? if yes, why not just add a wrapper for ipopt,

&gt; since the license looks not restrictive?

&gt;

&gt; On Fri, Mar 10, 2017 at 1:40 PM, &lt;scipy-dev-***@scipy.org&gt; wrote:

&gt;

&gt;&gt; Send SciPy-Dev mailing list submissions to

&gt;&gt; scipy-***@scipy.org

&gt;&gt;

&gt;&gt; To subscribe or unsubscribe via the World Wide Web, visit

&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt; or, via email, send a message with subject or body 'help' to

&gt;&gt; scipy-dev-***@scipy.org

&gt;&gt;

&gt;&gt; You can reach the person managing the list at

&gt;&gt; scipy-dev-***@scipy.org

&gt;&gt;

&gt;&gt; When replying, please edit your Subject line so it is more specific

&gt;&gt; than "Re: Contents of SciPy-Dev digest..."

&gt;&gt;

&gt;&gt;

&gt;&gt; Today's Topics:

&gt;&gt;

&gt;&gt; 1. Re: GSoC2017: Constrained Optimisation in Scipy (Matt Haberland)

&gt;&gt; 2. Re: GSoC2017: Constrained Optimisation in Scipy (Nikolay Mayorov)

&gt;&gt;

&gt;&gt;

&gt;&gt; ----------------------------------------------------------------------

&gt;&gt;

&gt;&gt; Message: 1

&gt;&gt; Date: Fri, 10 Mar 2017 10:01:32 -0800

&gt;&gt; From: Matt Haberland &lt;***@ucla.edu&gt;

&gt;&gt; To: SciPy Developers List &lt;scipy-***@scipy.org&gt;

&gt;&gt; Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy

&gt;&gt; Message-ID:

&gt;&gt; &lt;CADuxUiyK_d3BvjinikmG_k8LTh8JczMFPwboNaSerdnsWFp=yQ@

&gt;&gt; mail.gmail.com&gt;

&gt;&gt; Content-Type: text/plain; charset="utf-8"

&gt;&gt;

&gt;&gt; The choice of nonlinear optimization algorithm can have a dramatic impact

&gt;&gt; on the speed and quality of the solution, and the best choice for a

&gt;&gt; particular problem can be difficult to determine a priori, so it is

&gt;&gt; important to have multiple options available.

&gt;&gt;

&gt;&gt; My work in optimal control leads to problems with (almost entirely)

&gt;&gt; nonlinear constraints, and the use of derivative information is essential

&gt;&gt; for reasonable performance, leaving SLSQP as the only option in SciPy right

&gt;&gt; now. However, the problems are also huge and very sparse with a specific

&gt;&gt; structure, so SLSQP is not very effective, and not nearly as effective as a

&gt;&gt; nonlinear optimization routine could be. So despite SciPy boasting 14

&gt;&gt; options for minimization of a nonlinear objective, it wasn't suitable for

&gt;&gt; this work (without the use of an external solver).

&gt;&gt;

&gt;&gt; I think SciPy is in need of at least one solver designed to handle large,

&gt;&gt; fully nonlinear problems, and having two would be much better. Interior

&gt;&gt; point and SQP are good, complementary options.

&gt;&gt;

&gt;&gt; On Thu, Mar 9, 2017 at 2:38 PM, Antonio Ribeiro &lt;***@gmail.com&gt;

&gt;&gt; wrote:

&gt;&gt;

&gt;&gt;&gt; Hello, my name is Antonio and I am a Brazilian electrical engineer

&gt;&gt;&gt; currently pursuing my master degree. I have contributed to scipy.optimize

&gt;&gt;&gt; and scipy.signal implementing functions "iirnotch", "irrpeak"

&gt;&gt;&gt; &lt;https://github.com/scipy/scipy/pull/6404&gt;and the method

&gt;&gt;&gt; "trust-region-exact" &lt;https://github.com/scipy/scipy/pull/6919&gt; (under

&gt;&gt;&gt; revision). I am interested in applying for the Google Summer of Code 2017

&gt;&gt;&gt; to work with the Scipy optimisation package.

&gt;&gt;&gt;

&gt;&gt;&gt; My proposal is to improve scipy.optimize adding optimisation methods that

&gt;&gt;&gt; are able to deal with non-linear constraints. Currently the only

&gt;&gt;&gt; implemented methods able to deal with non-linear constraints are the

&gt;&gt;&gt; FORTRAN wrappers SLSQP and COBYLA.

&gt;&gt;&gt;

&gt;&gt;&gt; SLSQP is a sequential quadratic programming method and COBYLA is a

&gt;&gt;&gt; derivative-free optimisation method, they both have its limitations:

&gt;&gt;&gt; SLSQP is not able to deal with sparse

&gt;&gt;&gt; hessians and jacobians and is unfit for large-scale problems and COBYLA,

&gt;&gt;&gt; as other derivative-free methods, is a good choice for optimise noisy

&gt;&gt;&gt; objective functions, however usually presents a poorer performance then

&gt;&gt;&gt; derivative-based methods when the derivatives are available (or even when

&gt;&gt;&gt; they are computed by automatic differentiation or finite differences).

&gt;&gt;&gt;

&gt;&gt;&gt; My proposal is to implement in Scipy one or more state-of-the-art solvers

&gt;&gt;&gt; (interior point and SQP methods) for constrained optimisation problems. I

&gt;&gt;&gt; would like to get some feedback about this, discuss the relevance of it

&gt;&gt; for

&gt;&gt;&gt; Scipy and get some suggestions of possible mentors.

&gt;&gt;&gt;

&gt;&gt;&gt; _______________________________________________

&gt;&gt;&gt; SciPy-Dev mailing list

&gt;&gt;&gt; SciPy-***@scipy.org

&gt;&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; --

&gt;&gt; Matt Haberland

&gt;&gt; Assistant Adjunct Professor in the Program in Computing

&gt;&gt; Department of Mathematics

&gt;&gt; 7620E Math Sciences Building, UCLA

&gt;&gt; -------------- next part --------------

&gt;&gt; An HTML attachment was scrubbed...

&gt;&gt; URL: &lt;https://mail.scipy.org/pipermail/scipy-dev/

&gt;&gt; attachments/20170310/00ea2b5d/attachment-0001.html&gt;

&gt;&gt;

&gt;&gt; ------------------------------

&gt;&gt;

&gt;&gt; Message: 2

&gt;&gt; Date: Sat, 11 Mar 2017 00:40:00 +0500

&gt;&gt; From: Nikolay Mayorov &lt;***@zoho.com&gt;

&gt;&gt; To: "SciPy Developers List" &lt;scipy-***@scipy.org&gt;

&gt;&gt; Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy

&gt;&gt; Message-ID: &lt;***@zoho.com&gt;

&gt;&gt; Content-Type: text/plain; charset="utf-8"

&gt;&gt;

&gt;&gt; Hi, Antonio!

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; I too think that moving towards more modern algorithms and their

&gt;&gt; implementations is good for scipy. I would be happy to mentor this project,

&gt;&gt; and most likely I will be able to.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; Some current thoughts and questions:

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; 1. Have you figured what is done in SLSQP (especially "least squares"

&gt;&gt; part)? Do you plan to use a similar approach or another approach to SQP? (I

&gt;&gt; figured there are several somewhat different approaches.) Setting on a

&gt;&gt; literature reference (or most likely several of them) is essential.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; 2. I think it is not wrong to focus on a single solver if you feel that it

&gt;&gt; will likely take the whole time. Or maybe you can prioritize: do this first

&gt;&gt; for sure and then have alternatives, plan a) to switch to another solver or

&gt;&gt; plan b) to improve\add something more minor.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; 3. Consider whether to fit a new solver into minimize or make it as a new

&gt;&gt; separate solver. The latter approach gives a freedom to implement things

&gt;&gt; exactly as you want (and not to depend on old suboptimal choices) , but I

&gt;&gt; guess it can be considered as impractical/inconsistent by some people.

&gt;&gt; Maybe it can be decided along the way.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; 4. I think it is important to start to think about benchmark problems

&gt;&gt; early, maybe even start with them. It's hard to develop a complicated

&gt;&gt; optimization algorithm without ability to see how efficiently it works

&gt;&gt; right away.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; ---- On Fri, 10 Mar 2017 23:01:32 +0500 Matt Haberland &amp;

&gt;&gt; lt;***@ucla.edu&amp;gt; wrote ----

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; The choice of nonlinear optimization algorithm can have a dramatic impact

&gt;&gt; on the speed and quality of the solution, and the best choice for a

&gt;&gt; particular problem can be difficult to determine a priori, so it is

&gt;&gt; important to have multiple options available.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; My work in optimal control leads to problems with (almost entirely)

&gt;&gt; nonlinear constraints, and the use of derivative information is essential

&gt;&gt; for reasonable performance, leaving SLSQP as the only option in SciPy right

&gt;&gt; now. However, the problems are also huge and very sparse with a specific

&gt;&gt; structure, so SLSQP is not very effective, and not nearly as effective as a

&gt;&gt; nonlinear optimization routine could be. So despite SciPy boasting 14

&gt;&gt; options for minimization of a nonlinear objective, it wasn't suitable for

&gt;&gt; this work (without the use of an external solver).

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; I think SciPy is in need of at least one solver designed to handle large,

&gt;&gt; fully nonlinear problems, and having two would be much better. Interior

&gt;&gt; point and SQP are good, complementary options.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; On Thu, Mar 9, 2017 at 2:38 PM, Antonio Ribeiro &amp;lt;***@gmail.com&amp;gt;

&gt;&gt; wrote:

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; --

&gt;&gt;

&gt;&gt; Matt Haberland

&gt;&gt;

&gt;&gt; Assistant Adjunct Professor in the Program in Computing

&gt;&gt;

&gt;&gt; Department of Mathematics

&gt;&gt;

&gt;&gt; 7620E Math Sciences Building, UCLA

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; _______________________________________________

&gt;&gt;

&gt;&gt; SciPy-Dev mailing list

&gt;&gt;

&gt;&gt; SciPy-***@scipy.org

&gt;&gt;

&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;

&gt;&gt;

&gt;&gt; Hello, my name is Antonio and I am a Brazilian electrical engineer

&gt;&gt; currently pursuing my master degree. I have contributed to scipy.optimize

&gt;&gt; and scipy.signal implementing functions "iirnotch", "irrpeak"and the method

&gt;&gt; "trust-region-exact" (under revision). I am interested in applying for the

&gt;&gt; Google Summer of Code 2017 to work with the Scipy optimisation package.

&gt;&gt;

&gt;&gt; My proposal is to improve scipy.optimize adding optimisation methods that

&gt;&gt; are able to deal with non-linear constraints. Currently the only

&gt;&gt; implemented methods able to deal with non-linear constraints are the

&gt;&gt; FORTRAN wrappers SLSQP and COBYLA.

&gt;&gt;

&gt;&gt; SLSQP is a sequential quadratic programming method and COBYLA is a

&gt;&gt; derivative-free optimisation method, they both have its limitations: SLSQP

&gt;&gt; is not able to deal with sparse

&gt;&gt; hessians and jacobians and is unfit for large-scale problems and COBYLA,

&gt;&gt; as other derivative-free methods, is a good choice for optimise noisy

&gt;&gt; objective functions, however usually presents a poorer performance then

&gt;&gt; derivative-based methods when the derivatives are available (or even when

&gt;&gt; they are computed by automatic differentiation or finite differences).

&gt;&gt; My proposal is to implement in Scipy one or more state-of-the-art solvers

&gt;&gt; (interior point and SQP methods) for constrained optimisation problems. I

&gt;&gt; would like to get some feedback about this, discuss the relevance of it for

&gt;&gt; Scipy and get some suggestions of possible mentors.

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; _______________________________________________

&gt;&gt;

&gt;&gt; SciPy-Dev mailing list

&gt;&gt;

&gt;&gt; SciPy-***@scipy.org

&gt;&gt;

&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; -------------- next part --------------

&gt;&gt; An HTML attachment was scrubbed...

&gt;&gt; URL: &lt;https://mail.scipy.org/pipermail/scipy-dev/

&gt;&gt; attachments/20170311/3bd6e920/attachment.html&gt;

&gt;&gt;

&gt;&gt; ------------------------------

&gt;&gt;

&gt;&gt; Subject: Digest Footer

&gt;&gt;

&gt;&gt; _______________________________________________

&gt;&gt; SciPy-Dev mailing list

&gt;&gt; SciPy-***@scipy.org

&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;

&gt;&gt;

&gt;&gt; ------------------------------

&gt;&gt;

&gt;&gt; End of SciPy-Dev Digest, Vol 161, Issue 11

&gt;&gt; ******************************************

&gt;&gt;

&gt; -------------- next part --------------

&gt; An HTML attachment was scrubbed...

&gt; URL: &lt;https://mail.scipy.org/pipermail/scipy-dev/attachments/20170311/098a8651/attachment-0001.html&gt;

&gt;

&gt; ------------------------------

&gt;

&gt; Message: 2

&gt; Date: Sat, 11 Mar 2017 09:01:40 -0800

&gt; From: Matt Haberland &lt;***@ucla.edu&gt;

&gt; To: SciPy Developers List &lt;scipy-***@scipy.org&gt;

&gt; Subject: Re: [SciPy-Dev] SciPy-Dev Digest, Vol 161, Issue 11

&gt; Message-ID:

&gt; &lt;CADuxUiyT==+J_5tPjPw_q=LfAKwv1t+e+6wVsF8sHASVO+***@mail.gmail.com&gt;

&gt; Content-Type: text/plain; charset="utf-8"

&gt;

&gt; IPOPT is under EPL. From the FAQ:

&gt;

&gt; *Does the EPL allow me to take the Source Code for a Program licensed under

&gt; it and include all or part of it in another program licensed under the GNU

&gt; General Public License (GPL), Berkeley Software Distribution (BSD) license

&gt; or other Open Source license?*

&gt; No. Only the owner of software can decide whether and how to license it to

&gt; others. Contributors to a Program licensed under the EPL understand that

&gt; source code for the Program will be made available under the terms of the

&gt; EPL. Unless you are the owner of the software or have received permission

&gt; from the owner, you are not authorized to apply the terms of another

&gt; license to the Program by including it in a program licensed under another

&gt; Open Source license.

&gt;

&gt; It might be worth asking the contributors, but their permission would be

&gt; necessary.

&gt;

&gt;

&gt; On Mar 11, 2017 7:09 AM, "Denis Akhiyarov" &lt;***@gmail.com&gt;

&gt; wrote:

&gt;

&gt;&gt; I used ipopt for interior-point method from python, are you trying to add

&gt;&gt; something similar to scipy? if yes, why not just add a wrapper for ipopt,

&gt;&gt; since the license looks not restrictive?

&gt;&gt;

&gt;&gt; On Fri, Mar 10, 2017 at 1:40 PM, &lt;scipy-dev-***@scipy.org&gt; wrote:

&gt;&gt;

&gt;&gt;&gt; Send SciPy-Dev mailing list submissions to

&gt;&gt;&gt; scipy-***@scipy.org

&gt;&gt;&gt;

&gt;&gt;&gt; To subscribe or unsubscribe via the World Wide Web, visit

&gt;&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;&gt; or, via email, send a message with subject or body 'help' to

&gt;&gt;&gt; scipy-dev-***@scipy.org

&gt;&gt;&gt;

&gt;&gt;&gt; You can reach the person managing the list at

&gt;&gt;&gt; scipy-dev-***@scipy.org

&gt;&gt;&gt;

&gt;&gt;&gt; When replying, please edit your Subject line so it is more specific

&gt;&gt;&gt; than "Re: Contents of SciPy-Dev digest..."

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; Today's Topics:

&gt;&gt;&gt;

&gt;&gt;&gt; 1. Re: GSoC2017: Constrained Optimisation in Scipy (Matt Haberland)

&gt;&gt;&gt; 2. Re: GSoC2017: Constrained Optimisation in Scipy (Nikolay Mayorov)

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; ----------------------------------------------------------------------

&gt;&gt;&gt;

&gt;&gt;&gt; Message: 1

&gt;&gt;&gt; Date: Fri, 10 Mar 2017 10:01:32 -0800

&gt;&gt;&gt; From: Matt Haberland &lt;***@ucla.edu&gt;

&gt;&gt;&gt; To: SciPy Developers List &lt;scipy-***@scipy.org&gt;

&gt;&gt;&gt; Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy

&gt;&gt;&gt; Message-ID:

&gt;&gt;&gt; &lt;CADuxUiyK_d3BvjinikmG_k8LTh8JczMFPwboNaSerdnsWFp=***@mail.

&gt;&gt;&gt; gmail.com&gt;

&gt;&gt;&gt; Content-Type: text/plain; charset="utf-8"

&gt;&gt;&gt;

&gt;&gt;&gt; The choice of nonlinear optimization algorithm can have a dramatic impact

&gt;&gt;&gt; on the speed and quality of the solution, and the best choice for a

&gt;&gt;&gt; particular problem can be difficult to determine a priori, so it is

&gt;&gt;&gt; important to have multiple options available.

&gt;&gt;&gt;

&gt;&gt;&gt; My work in optimal control leads to problems with (almost entirely)

&gt;&gt;&gt; nonlinear constraints, and the use of derivative information is essential

&gt;&gt;&gt; for reasonable performance, leaving SLSQP as the only option in SciPy

&gt;&gt;&gt; right

&gt;&gt;&gt; now. However, the problems are also huge and very sparse with a specific

&gt;&gt;&gt; structure, so SLSQP is not very effective, and not nearly as effective as

&gt;&gt;&gt; a

&gt;&gt;&gt; nonlinear optimization routine could be. So despite SciPy boasting 14

&gt;&gt;&gt; options for minimization of a nonlinear objective, it wasn't suitable for

&gt;&gt;&gt; this work (without the use of an external solver).

&gt;&gt;&gt;

&gt;&gt;&gt; I think SciPy is in need of at least one solver designed to handle large,

&gt;&gt;&gt; fully nonlinear problems, and having two would be much better. Interior

&gt;&gt;&gt; point and SQP are good, complementary options.

&gt;&gt;&gt;

&gt;&gt;&gt; On Thu, Mar 9, 2017 at 2:38 PM, Antonio Ribeiro &lt;***@gmail.com&gt;

&gt;&gt;&gt; wrote:

&gt;&gt;&gt;

&gt;&gt;&gt;&gt; Hello, my name is Antonio and I am a Brazilian electrical engineer

&gt;&gt;&gt;&gt; currently pursuing my master degree. I have contributed to

&gt;&gt;&gt; scipy.optimize

&gt;&gt;&gt;&gt; and scipy.signal implementing functions "iirnotch", "irrpeak"

&gt;&gt;&gt;&gt; &lt;https://github.com/scipy/scipy/pull/6404&gt;and the method

&gt;&gt;&gt;&gt; "trust-region-exact" &lt;https://github.com/scipy/scipy/pull/6919&gt; (under

&gt;&gt;&gt;&gt; revision). I am interested in applying for the Google Summer of Code

&gt;&gt;&gt; 2017

&gt;&gt;&gt;&gt; to work with the Scipy optimisation package.

&gt;&gt;&gt;&gt;

&gt;&gt;&gt;&gt; My proposal is to improve scipy.optimize adding optimisation methods

&gt;&gt;&gt; that

&gt;&gt;&gt;&gt; are able to deal with non-linear constraints. Currently the only

&gt;&gt;&gt;&gt; implemented methods able to deal with non-linear constraints are the

&gt;&gt;&gt;&gt; FORTRAN wrappers SLSQP and COBYLA.

&gt;&gt;&gt;&gt;

&gt;&gt;&gt;&gt; SLSQP is a sequential quadratic programming method and COBYLA is a

&gt;&gt;&gt;&gt; derivative-free optimisation method, they both have its limitations:

&gt;&gt;&gt;&gt; SLSQP is not able to deal with sparse

&gt;&gt;&gt;&gt; hessians and jacobians and is unfit for large-scale problems and COBYLA,

&gt;&gt;&gt;&gt; as other derivative-free methods, is a good choice for optimise noisy

&gt;&gt;&gt;&gt; objective functions, however usually presents a poorer performance then

&gt;&gt;&gt;&gt; derivative-based methods when the derivatives are available (or even

&gt;&gt;&gt; when

&gt;&gt;&gt;&gt; they are computed by automatic differentiation or finite differences).

&gt;&gt;&gt;&gt;

&gt;&gt;&gt;&gt; My proposal is to implement in Scipy one or more state-of-the-art

&gt;&gt;&gt; solvers

&gt;&gt;&gt;&gt; (interior point and SQP methods) for constrained optimisation problems.

&gt;&gt;&gt; I

&gt;&gt;&gt;&gt; would like to get some feedback about this, discuss the relevance of it

&gt;&gt;&gt; for

&gt;&gt;&gt;&gt; Scipy and get some suggestions of possible mentors.

&gt;&gt;&gt;&gt;

&gt;&gt;&gt;&gt; _______________________________________________

&gt;&gt;&gt;&gt; SciPy-Dev mailing list

&gt;&gt;&gt;&gt; SciPy-***@scipy.org

&gt;&gt;&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;&gt;&gt;

&gt;&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; --

&gt;&gt;&gt; Matt Haberland

&gt;&gt;&gt; Assistant Adjunct Professor in the Program in Computing

&gt;&gt;&gt; Department of Mathematics

&gt;&gt;&gt; 7620E Math Sciences Building, UCLA

&gt;&gt;&gt; -------------- next part --------------

&gt;&gt;&gt; An HTML attachment was scrubbed...

&gt;&gt;&gt; URL: &lt;https://mail.scipy.org/pipermail/scipy-dev/attachments/

&gt;&gt;&gt; 20170310/00ea2b5d/attachment-0001.html&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; ------------------------------

&gt;&gt;&gt;

&gt;&gt;&gt; Message: 2

&gt;&gt;&gt; Date: Sat, 11 Mar 2017 00:40:00 +0500

&gt;&gt;&gt; From: Nikolay Mayorov &lt;***@zoho.com&gt;

&gt;&gt;&gt; To: "SciPy Developers List" &lt;scipy-***@scipy.org&gt;

&gt;&gt;&gt; Subject: Re: [SciPy-Dev] GSoC2017: Constrained Optimisation in Scipy

&gt;&gt;&gt; Message-ID: &lt;***@zoho.com&gt;

&gt;&gt;&gt; Content-Type: text/plain; charset="utf-8"

&gt;&gt;&gt;

&gt;&gt;&gt; Hi, Antonio!

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; I too think that moving towards more modern algorithms and their

&gt;&gt;&gt; implementations is good for scipy. I would be happy to mentor this project,

&gt;&gt;&gt; and most likely I will be able to.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; Some current thoughts and questions:

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; 1. Have you figured what is done in SLSQP (especially "least squares"

&gt;&gt;&gt; part)? Do you plan to use a similar approach or another approach to SQP? (I

&gt;&gt;&gt; figured there are several somewhat different approaches.) Setting on a

&gt;&gt;&gt; literature reference (or most likely several of them) is essential.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; 2. I think it is not wrong to focus on a single solver if you feel that

&gt;&gt;&gt; it will likely take the whole time. Or maybe you can prioritize: do this

&gt;&gt;&gt; first for sure and then have alternatives, plan a) to switch to another

&gt;&gt;&gt; solver or plan b) to improve\add something more minor.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; 3. Consider whether to fit a new solver into minimize or make it as a new

&gt;&gt;&gt; separate solver. The latter approach gives a freedom to implement things

&gt;&gt;&gt; exactly as you want (and not to depend on old suboptimal choices) , but I

&gt;&gt;&gt; guess it can be considered as impractical/inconsistent by some people.

&gt;&gt;&gt; Maybe it can be decided along the way.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; 4. I think it is important to start to think about benchmark problems

&gt;&gt;&gt; early, maybe even start with them. It's hard to develop a complicated

&gt;&gt;&gt; optimization algorithm without ability to see how efficiently it works

&gt;&gt;&gt; right away.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; ---- On Fri, 10 Mar 2017 23:01:32 +0500 Matt Haberland &amp;

&gt;&gt;&gt; lt;***@ucla.edu&amp;gt; wrote ----

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; The choice of nonlinear optimization algorithm can have a dramatic impact

&gt;&gt;&gt; on the speed and quality of the solution, and the best choice for a

&gt;&gt;&gt; particular problem can be difficult to determine a priori, so it is

&gt;&gt;&gt; important to have multiple options available.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; My work in optimal control leads to problems with (almost entirely)

&gt;&gt;&gt; nonlinear constraints, and the use of derivative information is essential

&gt;&gt;&gt; for reasonable performance, leaving SLSQP as the only option in SciPy right

&gt;&gt;&gt; now. However, the problems are also huge and very sparse with a specific

&gt;&gt;&gt; structure, so SLSQP is not very effective, and not nearly as effective as a

&gt;&gt;&gt; nonlinear optimization routine could be. So despite SciPy boasting 14

&gt;&gt;&gt; options for minimization of a nonlinear objective, it wasn't suitable for

&gt;&gt;&gt; this work (without the use of an external solver).

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; I think SciPy is in need of at least one solver designed to handle large,

&gt;&gt;&gt; fully nonlinear problems, and having two would be much better. Interior

&gt;&gt;&gt; point and SQP are good, complementary options.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; On Thu, Mar 9, 2017 at 2:38 PM, Antonio Ribeiro &amp;lt;***@gmail.com&amp;gt;

&gt;&gt;&gt; wrote:

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; --

&gt;&gt;&gt;

&gt;&gt;&gt; Matt Haberland

&gt;&gt;&gt;

&gt;&gt;&gt; Assistant Adjunct Professor in the Program in Computing

&gt;&gt;&gt;

&gt;&gt;&gt; Department of Mathematics

&gt;&gt;&gt;

&gt;&gt;&gt; 7620E Math Sciences Building, UCLA

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; _______________________________________________

&gt;&gt;&gt;

&gt;&gt;&gt; SciPy-Dev mailing list

&gt;&gt;&gt;

&gt;&gt;&gt; SciPy-***@scipy.org

&gt;&gt;&gt;

&gt;&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; Hello, my name is Antonio and I am a Brazilian electrical engineer

&gt;&gt;&gt; currently pursuing my master degree. I have contributed to scipy.optimize

&gt;&gt;&gt; and scipy.signal implementing functions "iirnotch", "irrpeak"and the method

&gt;&gt;&gt; "trust-region-exact" (under revision). I am interested in applying for the

&gt;&gt;&gt; Google Summer of Code 2017 to work with the Scipy optimisation package.

&gt;&gt;&gt;

&gt;&gt;&gt; My proposal is to improve scipy.optimize adding optimisation methods that

&gt;&gt;&gt; are able to deal with non-linear constraints. Currently the only

&gt;&gt;&gt; implemented methods able to deal with non-linear constraints are the

&gt;&gt;&gt; FORTRAN wrappers SLSQP and COBYLA.

&gt;&gt;&gt;

&gt;&gt;&gt; SLSQP is a sequential quadratic programming method and COBYLA is a

&gt;&gt;&gt; derivative-free optimisation method, they both have its limitations: SLSQP

&gt;&gt;&gt; is not able to deal with sparse

&gt;&gt;&gt; hessians and jacobians and is unfit for large-scale problems and COBYLA,

&gt;&gt;&gt; as other derivative-free methods, is a good choice for optimise noisy

&gt;&gt;&gt; objective functions, however usually presents a poorer performance then

&gt;&gt;&gt; derivative-based methods when the derivatives are available (or even when

&gt;&gt;&gt; they are computed by automatic differentiation or finite differences).

&gt;&gt;&gt; My proposal is to implement in Scipy one or more state-of-the-art solvers

&gt;&gt;&gt; (interior point and SQP methods) for constrained optimisation problems. I

&gt;&gt;&gt; would like to get some feedback about this, discuss the relevance of it for

&gt;&gt;&gt; Scipy and get some suggestions of possible mentors.

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; _______________________________________________

&gt;&gt;&gt;

&gt;&gt;&gt; SciPy-Dev mailing list

&gt;&gt;&gt;

&gt;&gt;&gt; SciPy-***@scipy.org

&gt;&gt;&gt;

&gt;&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; -------------- next part --------------

&gt;&gt;&gt; An HTML attachment was scrubbed...

&gt;&gt;&gt; URL: &lt;https://mail.scipy.org/pipermail/scipy-dev/attachments/

&gt;&gt;&gt; 20170311/3bd6e920/attachment.html&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; ------------------------------

&gt;&gt;&gt;

&gt;&gt;&gt; Subject: Digest Footer

&gt;&gt;&gt;

&gt;&gt;&gt; _______________________________________________

&gt;&gt;&gt; SciPy-Dev mailing list

&gt;&gt;&gt; SciPy-***@scipy.org

&gt;&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;&gt;

&gt;&gt;&gt;

&gt;&gt;&gt; ------------------------------

&gt;&gt;&gt;

&gt;&gt;&gt; End of SciPy-Dev Digest, Vol 161, Issue 11

&gt;&gt;&gt; ******************************************

&gt;&gt;&gt;

&gt;&gt;

&gt;&gt;

&gt;&gt; _______________________________________________

&gt;&gt; SciPy-Dev mailing list

&gt;&gt; SciPy-***@scipy.org

&gt;&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;&gt;

&gt;&gt;

&gt; -------------- next part --------------

&gt; An HTML attachment was scrubbed...

&gt; URL: &lt;https://mail.scipy.org/pipermail/scipy-dev/attachments/20170311/1fe49fd7/attachment.html&gt;

&gt;

&gt; ------------------------------

&gt;

&gt; Subject: Digest Footer

&gt;

&gt; _______________________________________________

&gt; SciPy-Dev mailing list

&gt; SciPy-***@scipy.org

&gt; https://mail.scipy.org/mailman/listinfo/scipy-dev

&gt;

&gt;

&gt; ------------------------------

&gt;

&gt; End of SciPy-Dev Digest, Vol 161, Issue 12

&gt; ******************************************



_______________________________________________

SciPy-Dev mailing list

SciPy-***@scipy.org

https://mail.scipy.org/mailman/listinfo/scipy-dev

Loading...