-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Documenter.jl
committed
Dec 10, 2023
1 parent
a7fabfb
commit e7228dd
Showing
39 changed files
with
1,320 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v2.1.2 | ||
v2.1.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v2.1.2 | ||
v2.1.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v2.1.2 | ||
v2.1.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2023-12-10T23:25:01","documenter_version":"1.2.1"}} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Augmented Lagrangian algorithm in pure Julia · Nonconvex.jl</title><meta name="title" content="Augmented Lagrangian algorithm in pure Julia · Nonconvex.jl"/><meta property="og:title" content="Augmented Lagrangian algorithm in pure Julia · Nonconvex.jl"/><meta property="twitter:title" content="Augmented Lagrangian algorithm in pure Julia · Nonconvex.jl"/><meta name="description" content="Documentation for Nonconvex.jl."/><meta property="og:description" content="Documentation for Nonconvex.jl."/><meta property="twitter:description" content="Documentation for Nonconvex.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../../">Nonconvex.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Getting started</a></li><li><span class="tocitem">Problem definition</span><ul><li><a class="tocitem" href="../../problem/problem/">Overview</a></li><li><a class="tocitem" href="../../problem/model/"><code>Model</code> definition</a></li><li><a class="tocitem" href="../../problem/dict_model/"><code>DictModel</code> definition</a></li><li><a class="tocitem" href="../../problem/queries/">Querying models</a></li></ul></li><li><span class="tocitem">Gradients, Jacobians and Hessians</span><ul><li><a class="tocitem" href="../../gradients/gradients/">Overview</a></li><li><a class="tocitem" href="../../gradients/user_defined/">User-defined gradient, Jacobian or Hessian</a></li><li><a class="tocitem" href="../../gradients/other_ad/">Using other AD packages</a></li><li><a class="tocitem" href="../../gradients/chainrules_fd/">Using ChainRules in ForwardDiff</a></li><li><a class="tocitem" href="../../gradients/sparse/">Sparse Jacobian or Hessian</a></li><li><a class="tocitem" href="../../gradients/symbolic/">Symbolic differentiation</a></li><li><a class="tocitem" href="../../gradients/implicit/">Implicit differentiation</a></li><li><a class="tocitem" href="../../gradients/history/">Storing history of gradients</a></li></ul></li><li><span class="tocitem">Algorithms</span><ul><li><a class="tocitem" href="../algorithms/">Overview</a></li><li><a class="tocitem" href="../mma/">Method of moving asymptotes in pure Julia</a></li><li><a class="tocitem" href="../ipopt/">Interior point method using <code>Ipopt.jl</code></a></li><li><a class="tocitem" href="../nlopt/">Various optimization algorithms from <code>NLopt.jl</code></a></li><li class="is-active"><a class="tocitem" href>Augmented Lagrangian algorithm in pure Julia</a><ul class="internal"><li><a class="tocitem" href="#Description"><span>Description</span></a></li><li><a class="tocitem" href="#Quick-start"><span>Quick start</span></a></li><li><a class="tocitem" href="#Construct-an-instance"><span>Construct an instance</span></a></li><li><a class="tocitem" href="#Options"><span>Options</span></a></li></ul></li><li><a class="tocitem" href="../minlp/">First and second order mixed integer nonlinear programming algorithms</a></li><li><a class="tocitem" href="../hyperopt/">Multi-start and hyper-parameter optimization in pure Julia</a></li><li><a class="tocitem" href="../surrogate/">Surrogate-assisted continuous and discrete, constrained optimization</a></li><li><a class="tocitem" href="../mts/">Multi-trajectory search algorithm in pure Julia</a></li><li><a class="tocitem" href="../sdp/">Interior point meta-algorithm for handling nonlinear semidefinite constraints</a></li><li><a class="tocitem" href="../metaheuristics/">A collection of meta-heuristic algorithms in pure Julia</a></li><li><a class="tocitem" href="../nomad/">Nonlinear optimization with the MADS (NOMAD) algorithm for continuous and discrete, constrained optimization</a></li><li><a class="tocitem" href="../tobs/">Topology optimization of binary structures (TOBS), a nonlinear binary optimization heuristic</a></li></ul></li><li><a class="tocitem" href="../../result/">Optimization result</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Algorithms</a></li><li class="is-active"><a href>Augmented Lagrangian algorithm in pure Julia</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Augmented Lagrangian algorithm in pure Julia</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/JuliaNonconvex/Nonconvex.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/JuliaNonconvex/Nonconvex.jl/blob/master/docs/src/algorithms/auglag.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Augmented-Lagrangian-algorithm-in-pure-Julia"><a class="docs-heading-anchor" href="#Augmented-Lagrangian-algorithm-in-pure-Julia">Augmented Lagrangian algorithm in pure Julia</a><a id="Augmented-Lagrangian-algorithm-in-pure-Julia-1"></a><a class="docs-heading-anchor-permalink" href="#Augmented-Lagrangian-algorithm-in-pure-Julia" title="Permalink"></a></h1><h2 id="Description"><a class="docs-heading-anchor" href="#Description">Description</a><a id="Description-1"></a><a class="docs-heading-anchor-permalink" href="#Description" title="Permalink"></a></h2><p><a href="https://github.com/JuliaSmoothOptimizers/Percival.jl">Percival.jl</a> is a pure Julia implementation of the augmented Lagrangian algorithm. Both first and second order versions of the algorithm are available.</p><h2 id="Quick-start"><a class="docs-heading-anchor" href="#Quick-start">Quick start</a><a id="Quick-start-1"></a><a class="docs-heading-anchor-permalink" href="#Quick-start" title="Permalink"></a></h2><p>Given a model <code>model</code> and an initial solution <code>x0</code>, the following can be used to optimize the model using Percival.</p><pre><code class="language-julia hljs">using Nonconvex | ||
Nonconvex.@load Percival | ||
|
||
alg = AugLag() | ||
options = AugLagOptions() | ||
result = optimize(model, alg, x0, options = options)</code></pre><p>Percival is an optional dependency of Nonconvex so you need to import it in order to use it.</p><h2 id="Construct-an-instance"><a class="docs-heading-anchor" href="#Construct-an-instance">Construct an instance</a><a id="Construct-an-instance-1"></a><a class="docs-heading-anchor-permalink" href="#Construct-an-instance" title="Permalink"></a></h2><p>To construct an instance of the Ipopt algorithm, use:</p><pre><code class="language-julia hljs">alg = AugAlg()</code></pre><h2 id="Options"><a class="docs-heading-anchor" href="#Options">Options</a><a id="Options-1"></a><a class="docs-heading-anchor-permalink" href="#Options" title="Permalink"></a></h2><p>The options keyword argument to the <code>optimize</code> function shown above must be an instance of the <code>AugLagOptions</code> struct when the algorihm is an <code>AugLag</code>. To specify options use keyword arguments in the constructor of <code>AugLagOptions</code>, e.g:</p><pre><code class="language-julia hljs">options = AugLagOptions(first_order = false, rtol = 1e-4)</code></pre><p>The most important option is <code>first_order</code> which is <code>true</code> by default. When <code>first_order</code> is <code>true</code>, the first order augmented Lagrangian algorithm will be used. And when it is <code>false</code>, the second order augmented Lagrangian algorithm will be used. Other arguments include:</p><ul><li><code>atol</code>: absolute tolerance in the subproblem optimizer</li><li><code>rtol</code>: relative tolerance in the subproblem optimizer</li><li><code>ctol</code>: absolute feasibility tolerance</li><li><code>max_iter</code>: maximum number of iterations</li><li><code>max_time</code>: maximum time in seconds</li><li><code>max_eval</code>: maximum number of function evaluations</li></ul><p>When using the first order augmented Lagrangian and a block constraint (i.e. a constraint function that returns a vector), the use of reverse-mode AD will only require calling the adjoint operator of the block constraint function in order to compute the gradient of the augmented Lagrangian. This is particularly suitable for constraint functions whose Jacobians are expensive but the adjoint operator is relatively inexpensive.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../nlopt/">« Various optimization algorithms from <code>NLopt.jl</code></a><a class="docs-footer-nextpage" href="../minlp/">First and second order mixed integer nonlinear programming algorithms »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Sunday 10 December 2023 23:25">Sunday 10 December 2023</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> |
Oops, something went wrong.