Skip to content

Commit

Permalink
build based on 7549fce
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Dec 11, 2024
1 parent 1c6d2c1 commit 3ad9c2b
Show file tree
Hide file tree
Showing 46 changed files with 319 additions and 318 deletions.
2 changes: 1 addition & 1 deletion previews/PR2198/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-12-05T22:01:33","documenter_version":"1.8.0"}}
{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-12-11T08:31:27","documenter_version":"1.8.0"}}
Binary file modified previews/PR2198/MathOptInterface.pdf
Binary file not shown.
4 changes: 2 additions & 2 deletions previews/PR2198/background/duality/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
&A_1^Ty_1 + A_2^Ty_2 + A_3^Ty_3 & = -a_0\\
&& y_1 &\ge 0\\
&& y_2 &\le 0
\end{align}\]</p><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"><p>For the LP case, the signs of the feasible dual variables depend only on the sense of the corresponding primal inequality and not on the objective sense.</p></div></div><h2 id="Duality-and-scalar-product"><a class="docs-heading-anchor" href="#Duality-and-scalar-product">Duality and scalar product</a><a id="Duality-and-scalar-product-1"></a><a class="docs-heading-anchor-permalink" href="#Duality-and-scalar-product" title="Permalink"></a></h2><p>The scalar product is different from the canonical one for the sets <a href="../../reference/standard_form/#MathOptInterface.PositiveSemidefiniteConeTriangle"><code>PositiveSemidefiniteConeTriangle</code></a>, <a href="../../reference/standard_form/#MathOptInterface.LogDetConeTriangle"><code>LogDetConeTriangle</code></a>, <a href="../../reference/standard_form/#MathOptInterface.RootDetConeTriangle"><code>RootDetConeTriangle</code></a>, <a href="../../reference/standard_form/#MathOptInterface.SetDotProducts"><code>SetDotProducts</code></a> and <a href="../../reference/standard_form/#MathOptInterface.LinearCombinationInSet"><code>LinearCombinationInSet</code></a>.</p><p>If the set <span>$C_i$</span> of the section <a href="#Duality">Duality</a> is one of these three cones, then the rows of the matrix <span>$A_i$</span> corresponding to off-diagonal entries are twice the value of the <code>coefficients</code> field in the <a href="../../reference/standard_form/#MathOptInterface.VectorAffineFunction"><code>VectorAffineFunction</code></a> for the corresponding rows. See <a href="../../reference/standard_form/#MathOptInterface.PositiveSemidefiniteConeTriangle"><code>PositiveSemidefiniteConeTriangle</code></a> for details.</p><h2 id="Dual-for-problems-with-quadratic-functions"><a class="docs-heading-anchor" href="#Dual-for-problems-with-quadratic-functions">Dual for problems with quadratic functions</a><a id="Dual-for-problems-with-quadratic-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Dual-for-problems-with-quadratic-functions" title="Permalink"></a></h2><h3 id="Quadratic-Programs-(QPs)"><a class="docs-heading-anchor" href="#Quadratic-Programs-(QPs)">Quadratic Programs (QPs)</a><a id="Quadratic-Programs-(QPs)-1"></a><a class="docs-heading-anchor-permalink" href="#Quadratic-Programs-(QPs)" title="Permalink"></a></h3><p>For quadratic programs with only affine conic constraints,</p><p class="math-container">\[\begin{align*}
\end{align}\]</p><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"><p>For the LP case, the signs of the feasible dual variables depend only on the sense of the corresponding primal inequality and not on the objective sense.</p></div></div><h2 id="Duality-and-scalar-product"><a class="docs-heading-anchor" href="#Duality-and-scalar-product">Duality and scalar product</a><a id="Duality-and-scalar-product-1"></a><a class="docs-heading-anchor-permalink" href="#Duality-and-scalar-product" title="Permalink"></a></h2><p>The scalar product is different from the canonical one for the sets <a href="../../reference/standard_form/#MathOptInterface.PositiveSemidefiniteConeTriangle"><code>PositiveSemidefiniteConeTriangle</code></a>, <a href="../../reference/standard_form/#MathOptInterface.LogDetConeTriangle"><code>LogDetConeTriangle</code></a>, <a href="../../reference/standard_form/#MathOptInterface.RootDetConeTriangle"><code>RootDetConeTriangle</code></a>.</p><p>If the set <span>$C_i$</span> of the section <a href="#Duality">Duality</a> is one of these three cones, then the rows of the matrix <span>$A_i$</span> corresponding to off-diagonal entries are twice the value of the <code>coefficients</code> field in the <a href="../../reference/standard_form/#MathOptInterface.VectorAffineFunction"><code>VectorAffineFunction</code></a> for the corresponding rows. See <a href="../../reference/standard_form/#MathOptInterface.PositiveSemidefiniteConeTriangle"><code>PositiveSemidefiniteConeTriangle</code></a> for details.</p><h2 id="Dual-for-problems-with-quadratic-functions"><a class="docs-heading-anchor" href="#Dual-for-problems-with-quadratic-functions">Dual for problems with quadratic functions</a><a id="Dual-for-problems-with-quadratic-functions-1"></a><a class="docs-heading-anchor-permalink" href="#Dual-for-problems-with-quadratic-functions" title="Permalink"></a></h2><h3 id="Quadratic-Programs-(QPs)"><a class="docs-heading-anchor" href="#Quadratic-Programs-(QPs)">Quadratic Programs (QPs)</a><a id="Quadratic-Programs-(QPs)-1"></a><a class="docs-heading-anchor-permalink" href="#Quadratic-Programs-(QPs)" title="Permalink"></a></h3><p>For quadratic programs with only affine conic constraints,</p><p class="math-container">\[\begin{align*}
&amp; \min_{x \in \mathbb{R}^n} &amp; \frac{1}{2}x^TQ_0x + a_0^T x + b_0
\\
&amp; \;\;\text{s.t.} &amp; A_i x + b_i &amp; \in \mathcal{C}_i &amp; i = 1 \ldots m.
Expand Down Expand Up @@ -77,4 +77,4 @@
\max &amp; \sum b_k y_k \\
\text{s.t.} \;\; &amp; C+C^\top - \sum (A_k+A_k^\top) y_k \in \mathcal{S}_+ \\
&amp; C-C^\top - \sum(A_k-A_k^\top) y_k = 0
\end{align}\]</p><p>and we recover <span>$Z = X + X^\top$</span>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../manual/modification/">« Problem modification</a><a class="docs-footer-nextpage" href="../infeasibility_certificates/">Infeasibility certificates »</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="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Thursday 5 December 2024 22:01">Thursday 5 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
\end{align}\]</p><p>and we recover <span>$Z = X + X^\top$</span>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../manual/modification/">« Problem modification</a><a class="docs-footer-nextpage" href="../infeasibility_certificates/">Infeasibility certificates »</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="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 11 December 2024 08:31">Wednesday 11 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@
\end{align}\]</p><p>and:</p><p class="math-container">\[-\sum_{i=1}^m b_i^\top (y_i + \eta d_i) &gt; -\sum_{i=1}^m b_i^\top y_i,\]</p><p>for any feasible dual solution <span>$y$</span>. The latter simplifies to <span>$-\sum_{i=1}^m b_i^\top d_i &gt; 0$</span>. For a maximization problem, the inequality is <span>$\sum_{i=1}^m b_i^\top d_i &lt; 0$</span>. (Note that these are the same inequality, modulo a <code>-</code> sign.)</p><p>If the solver has found a certificate of primal infeasibility:</p><ul><li><a href="../../reference/models/#MathOptInterface.TerminationStatus"><code>TerminationStatus</code></a> must be <code>INFEASIBLE</code></li><li><a href="../../reference/models/#MathOptInterface.DualStatus"><code>DualStatus</code></a> must be <code>INFEASIBILITY_CERTIFICATE</code></li><li><a href="../../reference/constraints/#MathOptInterface.ConstraintDual"><code>ConstraintDual</code></a> must be the corresponding value of <span>$d$</span></li><li><a href="../../reference/models/#MathOptInterface.DualObjectiveValue"><code>DualObjectiveValue</code></a> must be the value <span>$-\sum_{i=1}^m b_i^\top d_i$</span> for minimization problems and <span>$\sum_{i=1}^m b_i^\top d_i$</span> for maximization problems.</li></ul><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>The choice of whether to scale the ray <span>$d$</span> to have magnitude <code>1</code> is left to the solver.</p></div></div><h3 id="Infeasibility-certificates-of-variable-bounds"><a class="docs-heading-anchor" href="#Infeasibility-certificates-of-variable-bounds">Infeasibility certificates of variable bounds</a><a id="Infeasibility-certificates-of-variable-bounds-1"></a><a class="docs-heading-anchor-permalink" href="#Infeasibility-certificates-of-variable-bounds" title="Permalink"></a></h3><p>Many linear solvers (for example, Gurobi) do not provide explicit access to the primal infeasibility certificate of a variable bound. However, given a set of linear constraints:</p><p class="math-container">\[\begin{align}
l_A \le A x \le u_A \\
l_x \le x \le u_x,
\end{align}\]</p><p>the primal certificate of the variable bounds can be computed using the primal certificate associated with the affine constraints, <span>$d$</span>. (Note that <span>$d$</span> will have one element for each row of the <span>$A$</span> matrix, and that some or all of the elements in the vectors <span>$l_A$</span> and <span>$u_A$</span> may be <span>$\pm \infty$</span>. If both <span>$l_A$</span> and <span>$u_A$</span> are finite for some row, the corresponding element in `<code>d</code> must be <code>0</code>.)</p><p>Given <span>$d$</span>, compute <span>$\bar{d} = d^\top A$</span>. If the bound is finite, a certificate for the lower variable bound of <span>$x_i$</span> is <span>$\max\{\bar{d}_i, 0\}$</span>, and a certificate for the upper variable bound is <span>$\min\{\bar{d}_i, 0\}$</span>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../duality/">« Duality</a><a class="docs-footer-nextpage" href="../naming_conventions/">Naming conventions »</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="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Thursday 5 December 2024 22:01">Thursday 5 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
\end{align}\]</p><p>the primal certificate of the variable bounds can be computed using the primal certificate associated with the affine constraints, <span>$d$</span>. (Note that <span>$d$</span> will have one element for each row of the <span>$A$</span> matrix, and that some or all of the elements in the vectors <span>$l_A$</span> and <span>$u_A$</span> may be <span>$\pm \infty$</span>. If both <span>$l_A$</span> and <span>$u_A$</span> are finite for some row, the corresponding element in `<code>d</code> must be <code>0</code>.)</p><p>Given <span>$d$</span>, compute <span>$\bar{d} = d^\top A$</span>. If the bound is finite, a certificate for the lower variable bound of <span>$x_i$</span> is <span>$\max\{\bar{d}_i, 0\}$</span>, and a certificate for the upper variable bound is <span>$\min\{\bar{d}_i, 0\}$</span>.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../duality/">« Duality</a><a class="docs-footer-nextpage" href="../naming_conventions/">Naming conventions »</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="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="catppuccin-latte">catppuccin-latte</option><option value="catppuccin-frappe">catppuccin-frappe</option><option value="catppuccin-macchiato">catppuccin-macchiato</option><option value="catppuccin-mocha">catppuccin-mocha</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.8.0 on <span class="colophon-date" title="Wednesday 11 December 2024 08:31">Wednesday 11 December 2024</span>. Using Julia version 1.9.4.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Loading

0 comments on commit 3ad9c2b

Please sign in to comment.