Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Constrained optimization episode 2: revenge of the slack variables #303

Closed
wants to merge 40 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
034f2cf
Add constraints and parsing tests
timholy Nov 4, 2016
0c7a70f
Add pretty-printing of ConstraintBounds
timholy Nov 5, 2016
8b1e03b
Implement barrier function and equality-constraints
timholy Nov 5, 2016
1ba0abf
Fixes for julia-0.4
timholy Nov 5, 2016
7d2ac1e
Add interior point Newton method state, setup of Newton update equation
timholy Nov 6, 2016
6441534
Add interior-point Newton step update and backtracking linesearch
timholy Nov 8, 2016
50b1582
Add a principled initialization for μ and λ
timholy Nov 8, 2016
7102957
Add optimize for interior-point methods
timholy Nov 8, 2016
11b0470
Add BaseTestNext to test/REQUIRE
timholy Nov 8, 2016
2cf1421
Fix state bugs in linesearch and initialization
timholy Nov 10, 2016
f4bb08a
Add isfeasible and isinterior
timholy Nov 11, 2016
4f55399
Add more utilities and record more variables with extended_trace
timholy Nov 12, 2016
0e84777
Adopt exact updating of slack terms and λI during linesearch
timholy Nov 12, 2016
b4683be
Update f_x_previous; use safer inversion
timholy Nov 12, 2016
cada264
Skip solve_active_inequalities; it shouldn't be necessary now.
timholy Nov 12, 2016
16d7ac0
Restrict one-sided function-value convergence to monotonic methods
timholy Nov 13, 2016
2eb3e63
More robust isinterior/isfeasible
timholy Nov 14, 2016
b536638
Check finiteness in linesearch and eliminate eps component
timholy Nov 15, 2016
c3ca54b
Allow mu decrement based on sufficient gradient decrease or lack of p…
timholy Nov 15, 2016
c374b81
Trace alpha too
timholy Nov 16, 2016
5c0241c
Support manually-supplied mu0 and fix a bug in initialization
timholy Nov 15, 2016
61d68a1
Improve initialization of μ, λ
timholy Nov 16, 2016
11234bc
Use Lagrangian val/grad rather than objective val/grad in assessing c…
timholy Nov 16, 2016
a3bbf90
Switch to primal-dual and clean up architecture
timholy Nov 18, 2016
dcfe788
Start Optim.ConstrainedProblems
timholy Nov 19, 2016
fd8f0d0
Trace the total equality violation
timholy Nov 20, 2016
9715589
Store less state for IPNewton update
timholy Nov 20, 2016
3772033
Implement some convert methods needed to leverage ForwardDiff
timholy Nov 21, 2016
d627e36
Support multi-parameter α in linesearch, check slope during linesearc…
timholy Nov 21, 2016
b91eac6
Check that solution has enough precision to count
timholy Nov 21, 2016
69bd212
Add the Beale unconstrained problem
timholy Nov 22, 2016
d4e5192
WIP
timholy Nov 22, 2016
0aee515
ipnewton linesearch: switch to one-sided tests
timholy Nov 23, 2016
3b5d08b
Add option to show linesearch progress
timholy Nov 23, 2016
b250e77
Switch back to single-component alpha in linesearch
timholy Nov 23, 2016
5bade65
Adopt an adaptive barrier penalty based on complementarity
timholy Nov 23, 2016
39eb001
Introduce a primal-dual guard condition
timholy Nov 23, 2016
e79a3c7
Switch to a predictor algorithm for computing μ
timholy Nov 23, 2016
ad06e8a
Fix tests
timholy Nov 23, 2016
1cbad48
Fix ambiguities, tests on julia 0.4
timholy Nov 23, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion src/Optim.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ module Optim
Base.setindex!

export optimize,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason ContraintBounds are not exported?

isfeasible,
isinterior,
nconstraints,
DifferentiableFunction,
TwiceDifferentiableFunction,
DifferentiableConstraintsFunction,
TwiceDifferentiableConstraintsFunction,
OptimizationOptions,
OptimizationState,
OptimizationTrace,
Expand All @@ -30,6 +35,7 @@ module Optim
Fminbox,
GoldenSection,
GradientDescent,
IPNewton,
LBFGS,
MomentumGradientDescent,
NelderMead,
Expand Down Expand Up @@ -76,6 +82,9 @@ module Optim

# Constrained optimization
include("fminbox.jl")
include("iplinesearch.jl")
include("interior.jl")
include("ipnewton.jl")

# trust region methods
include("levenberg_marquardt.jl")
Expand All @@ -102,8 +111,9 @@ module Optim
include("utilities/trace.jl")

# Examples for testing
include(joinpath("problems", "unconstrained.jl"))
include(joinpath("problems", "multivariate.jl"))
include(joinpath("problems", "univariate.jl"))
using .MultivariateProblems

cgdescent(args...) = error("API has changed. Please use cg.")
end
6 changes: 6 additions & 0 deletions src/deprecate.jl
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@ end
@deprecate interpolating_linesearch! LineSearches.strongwolfe!
@deprecate backtracking_linesearch! LineSearches.backtracking!
@deprecate interpbacktracking_linesearch! LineSearches.interpbacktracking!

if VERSION >= v"0.5.0"
view5(A, i, j) = view(A, i, j)
else
view5(A, i, j) = A[i,j]
end
Loading