1
+ module OptimizationAuglag
2
+
3
+ using Optimization
4
+ using OptimizationBase. SciMLBase: OptimizationProblem, OptimizationFunction, OptimizationStats
5
+ using OptimizationBase. LinearAlgebra: norm
6
+
1
7
@kwdef struct AugLag
2
8
inner:: Any
3
9
τ = 0.5
@@ -20,7 +26,7 @@ SciMLBase.requiresgradient(::AugLag) = true
20
26
SciMLBase. allowsconstraints (:: AugLag ) = true
21
27
SciMLBase. requiresconsjac (:: AugLag ) = true
22
28
23
- function __map_optimizer_args (cache:: Optimization .OptimizationCache , opt:: AugLag ;
29
+ function __map_optimizer_args (cache:: OptimizationBase .OptimizationCache , opt:: AugLag ;
24
30
callback = nothing ,
25
31
maxiters:: Union{Number, Nothing} = nothing ,
26
32
maxtime:: Union{Number, Nothing} = nothing ,
@@ -110,7 +116,7 @@ function SciMLBase.__solve(cache::OptimizationCache{
110
116
cache. f. cons (cons_tmp, θ)
111
117
cons_tmp[eq_inds] .= cons_tmp[eq_inds] - cache. lcons[eq_inds]
112
118
cons_tmp[ineq_inds] .= cons_tmp[ineq_inds] .- cache. ucons[ineq_inds]
113
- opt_state = Optimization. OptimizationState (u = θ, objective = x[1 ], p = p )
119
+ opt_state = Optimization. OptimizationState (u = θ, objective = x[1 ])
114
120
if cache. callback (opt_state, x... )
115
121
error (" Optimization halted by callback." )
116
122
end
@@ -176,10 +182,12 @@ function SciMLBase.__solve(cache::OptimizationCache{
176
182
break
177
183
end
178
184
end
179
- stats = Optimization . OptimizationStats (; iterations = maxiters,
185
+ stats = OptimizationStats (; iterations = maxiters,
180
186
time = 0.0 , fevals = maxiters, gevals = maxiters)
181
187
return SciMLBase. build_solution (
182
188
cache, cache. opt, θ, x,
183
189
stats = stats, retcode = opt_ret)
184
190
end
185
191
end
192
+
193
+ end
0 commit comments