Skip to content

Commit

Permalink
Built site for gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
Quarto GHA Workflow Runner committed Feb 25, 2025
1 parent 1f61f6d commit 281a702
Show file tree
Hide file tree
Showing 10 changed files with 4,530 additions and 4,457 deletions.
2 changes: 1 addition & 1 deletion .nojekyll
Original file line number Diff line number Diff line change
@@ -1 +1 @@
043c65f1
21ab98fd
274 changes: 137 additions & 137 deletions cont_numerical_indirect.html

Large diffs are not rendered by default.

1,388 changes: 694 additions & 694 deletions discr_indir_LQR_fin_horizon.html

Large diffs are not rendered by default.

101 changes: 63 additions & 38 deletions opt_algo_constrained.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,27 @@
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
/* CSS for citations */
div.csl-bib-body { }
div.csl-entry {
clear: both;
margin-bottom: 0em;
}
.hanging-indent div.csl-entry {
margin-left:2em;
text-indent:-2em;
}
div.csl-left-margin {
min-width:2em;
float:left;
}
div.csl-right-inline {
margin-left:2em;
padding-left:1em;
}
div.csl-indent {
margin-left: 2em;
}</style>


<script src="site_libs/quarto-nav/quarto-nav.js"></script>
Expand Down Expand Up @@ -930,15 +950,17 @@
<h2 id="toc-title">On this page</h2>

<ul>
<li><a href="#primal-methods" id="toc-primal-methods" class="nav-link active" data-scroll-target="#primal-methods">Primal methods</a>
<li><a href="#quadratic-programming" id="toc-quadratic-programming" class="nav-link active" data-scroll-target="#quadratic-programming">Quadratic programming</a>
<ul class="collapse">
<li><a href="#projected-gradient-method" id="toc-projected-gradient-method" class="nav-link" data-scroll-target="#projected-gradient-method">Projected gradient method</a></li>
<li><a href="#active-set-methods" id="toc-active-set-methods" class="nav-link" data-scroll-target="#active-set-methods">Active set methods</a></li>
<li><a href="#interior-point-methods" id="toc-interior-point-methods" class="nav-link" data-scroll-target="#interior-point-methods">Interior point methods</a></li>
<li><a href="#first-order-methods" id="toc-first-order-methods" class="nav-link" data-scroll-target="#first-order-methods">First-order methods</a></li>
</ul></li>
<li><a href="#nonlinear-programming" id="toc-nonlinear-programming" class="nav-link" data-scroll-target="#nonlinear-programming">Nonlinear programming</a>
<ul class="collapse">
<li><a href="#sequential-quadratic-programming-sqp" id="toc-sequential-quadratic-programming-sqp" class="nav-link" data-scroll-target="#sequential-quadratic-programming-sqp">Sequential quadratic programming (SQP)</a></li>
<li><a href="#interior-point-methods-1" id="toc-interior-point-methods-1" class="nav-link" data-scroll-target="#interior-point-methods-1">Interior point methods</a></li>
</ul></li>
<li><a href="#penalty-and-barrier-methods" id="toc-penalty-and-barrier-methods" class="nav-link" data-scroll-target="#penalty-and-barrier-methods">Penalty and barrier methods</a></li>
<li><a href="#dual-methods" id="toc-dual-methods" class="nav-link" data-scroll-target="#dual-methods">Dual methods</a></li>
<li><a href="#primal-dual-methods" id="toc-primal-dual-methods" class="nav-link" data-scroll-target="#primal-dual-methods">Primal-dual methods</a></li>
</ul>
<div class="toc-actions"><ul><li><a href="https://github.com/hurak/orr/issues/new" class="toc-action"><i class="bi bi-github"></i>Report an issue</a></li></ul></div></nav>
</div>
Expand All @@ -964,52 +986,55 @@ <h1 class="title">Algorithms for constrained optimization</h1>
</header>


<p>We keep adhering to our previous decision to focus on the algorithms that use derivatives. But even then the number of derivative-based algorithms for constrained optimization – and we consider both equality and inequality constraints – is large. They can be classified in many ways.</p>
<p>One way to classify the derivative-based algorithms for constrained optimization is based on is to based on the dimension of the space in which they work. For an optimization problem with <span class="math inline">n</span> variables and <span class="math inline">m</span> constraints, we have the following possibilities: <span class="math inline">n-m</span>, <span class="math inline">n</span>, <span class="math inline">m</span>, and <span class="math inline">n+m</span>.</p>
<p>We keep adhering to our previous decision to focus on the algorithms that use derivatives. But even then the number of derivative-based algorithms for constrained optimization – considering both equality and inequality constraints – is huge. They can be classified in many ways. Here we choose the very pragmatic point of view of the immediate use within our course, and within the discipline of optimal control in general. It is certainly a bit narrow point of view, but it will get us going… In this viewpoint we admit inspiration by the overview paper <span class="citation" data-cites="ferreauEmbeddedOptimizationMethods2017"><a href="#ref-ferreauEmbeddedOptimizationMethods2017" role="doc-biblioref">[1]</a></span>. And there is a wealth of literature providing a more rigorous classification, which we give references to.</p>
<p>There are essentially two types of optimization problems (aka mathematical programms) that dominate the discipline of optimal control:</p>
<ul>
<li>primal methods</li>
<li>dual methods</li>
<li>primal-dual methods</li>
<li>quadratic programming (QP),</li>
<li>nonlinear programming (NLP).</li>
</ul>
<section id="primal-methods" class="level2">
<h2 class="anchored" data-anchor-id="primal-methods">Primal methods</h2>
<ul>
<li>With <span class="math inline">m</span> equality constraints, they work in the space of dimension <span class="math inline">n-m</span>.</li>
<li>Three advantages
<ul>
<li>each point generated by the iterative algoritm is feasible – if terminated early, such point is feaible.</li>
<li>if they generate a converging sequence, it typically converges at least to a local constrained minimum.</li>
<li>it does not rely on a special structure of the problem, it can be even nonconvex.</li>
</ul></li>
<li>but it needs a feasible initial point.</li>
<li>They may fail for inequality constraints.</li>
</ul>
<p>They are particularly useful for linear/affine constraints or simple nonlinear constraints (norm balls or ellipsoids).</p>
<section id="projected-gradient-method" class="level3">
<h3 class="anchored" data-anchor-id="projected-gradient-method">Projected gradient method</h3>
</section>
<p>We will therefore focus our discussion of methods to these two.</p>
<section id="quadratic-programming" class="level2">
<h2 class="anchored" data-anchor-id="quadratic-programming">Quadratic programming</h2>
<p>We consider the problem</p>
<p><span class="math display">
\begin{aligned}
\operatorname*{minimize}_{\bm x \in \mathbb{R}^n} &amp;\quad \frac{1}{2}\bm{x}^\top\mathbf{Q}\bm{x} + \mathbf{r}^\top\bm{x}\\
\text{subject to} &amp;\quad \mathbf A \bm x = \mathbf b = \mathbf 0.
\end{aligned}
</span></p>
<section id="active-set-methods" class="level3">
<h3 class="anchored" data-anchor-id="active-set-methods">Active set methods</h3>
</section>
<section id="interior-point-methods" class="level3">
<h3 class="anchored" data-anchor-id="interior-point-methods">Interior point methods</h3>
</section>
<section id="first-order-methods" class="level3">
<h3 class="anchored" data-anchor-id="first-order-methods">First-order methods</h3>
<section id="projected-gradient-method" class="level4">
<h4 class="anchored" data-anchor-id="projected-gradient-method">Projected gradient method</h4>
</section>
</section>
</section>
<section id="nonlinear-programming" class="level2">
<h2 class="anchored" data-anchor-id="nonlinear-programming">Nonlinear programming</h2>
<section id="sequential-quadratic-programming-sqp" class="level3">
<h3 class="anchored" data-anchor-id="sequential-quadratic-programming-sqp">Sequential quadratic programming (SQP)</h3>
<p>KKT conditions for a nonlinear program with equality constraints solved by Newton’s method.</p>
<p>Interpretation: at each iteration, we solve a quadratic program (QP) with linear constraints.</p>
</section>
</section>
<section id="penalty-and-barrier-methods" class="level2">
<h2 class="anchored" data-anchor-id="penalty-and-barrier-methods">Penalty and barrier methods</h2>
</section>
<section id="dual-methods" class="level2">
<h2 class="anchored" data-anchor-id="dual-methods">Dual methods</h2>
</section>
<section id="primal-dual-methods" class="level2">
<h2 class="anchored" data-anchor-id="primal-dual-methods">Primal-dual methods</h2>
<section id="interior-point-methods-1" class="level3">




</section>
</section>

<a onclick="window.scrollTo(0, 0); return false;" role="button" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Back to top</a></main> <!-- /main -->
<a onclick="window.scrollTo(0, 0); return false;" role="button" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Back to top</a><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" role="doc-bibliography" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">Interior point methods</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0" role="list">
<div id="ref-ferreauEmbeddedOptimizationMethods2017" class="csl-entry" role="listitem">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">H. J. Ferreau <em>et al.</em>, <span>“Embedded <span>Optimization Methods</span> for <span>Industrial Automatic Control</span>,”</span> <em>IFAC-PapersOnLine</em>, vol. 50, no. 1, pp. 13194–13209, Jul. 2017, doi: <a href="https://doi.org/10.1016/j.ifacol.2017.08.1946">10.1016/j.ifacol.2017.08.1946</a>.</div>
</div>
</div></section></div></main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
Expand Down
52 changes: 26 additions & 26 deletions opt_algo_derivatives.html

Large diffs are not rendered by default.

Loading

0 comments on commit 281a702

Please sign in to comment.