Skip to contents

L_A = f(x) + sum_i lambda_i g_i(x) + (mu/2) sum_i g_i(x)^2, with the first-order multiplier update lambda <- lambda + mu g(x).

Usage

Auglag(f, g, x, lam = NULL, mu = 1)

Arguments

f

Objective, a function of x returning a scalar.

g

Constraint map, returning the vector g(x).

x

Point at which to evaluate.

lam

Current multipliers; NULL starts them at zero.

mu

Penalty parameter, strictly positive.

Value

List with value, objective, linear, penalty, violation, lambda, mu, m.

References

Hestenes (1969), JOTA 4(5), 303-320; Powell (1969), in Fletcher (ed.), Optimization, 283-298. Standard published form; neither source is in the local corpus and neither was read.

Examples

f <- function(x) sum(x^2)
g <- function(x) sum(x) - 1
Auglag(f, g, x = c(0.5, 0.5))
#> $value
#> [1] 0.5
#> 
#> $objective
#> [1] 0.5
#> 
#> $linear
#> [1] 0
#> 
#> $penalty
#> [1] 0
#> 
#> $violation
#> [1] 0
#> 
#> $lambda
#> [1] 0
#> 
#> $mu
#> [1] 1
#> 
#> $m
#> [1] 1
#> 
#> $method
#> [1] "Augmented Lagrangian (Hestenes 1969; Powell 1969)"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"