排版数学:优化问题(成本和约束)

排版数学:优化问题(成本和约束)

我真的很难为优化问题对齐方程组。一开始一切都很好,直到我开始添加约束。

到目前为止我已经获得了以下代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{aligned}
\text{minimize}\qquad && \parallel A^{\text{ind}} w \text{ diag}(x^{\text{ind}})\parallel\\
\text{subject to }\qquad && w=b-s+w^0\\
\phantom{\text{subject to }} & l^b &\le b &\le u^b\\
\phantom{\text{subject to }} & l^s &\le s &\le u^s\\
\phantom{\text{subject to }} & l^{\text{bukd}} &\phantom{\le}  t(b+s) &\le u^t\\
\phantom{\text{subject to }} & l^{\text{bukd}} &\le A^{\text{dur}} w \text{ diag}(x^{\text{buk}}) &\le u^{\text{bukd}}\\
\phantom{\text{subject to }} & l^{\text{curp}} &\le A^{\text{dur}} w \text{ diag}(x^{\text{cur}}) &\le u^{\text{curp}}\\
\end{aligned}
\]
\end{document}

在此处输入图片描述

可以看到,变量 'b' 和 's' 没有在中间对齐。此外,第一个小于或等于号也没有对齐,尽管它们前面都有一个符号 '&'。

是否有人可以帮助我将优化问题的所有约束都调整到中心位置?

答案1

好吧,您可以使用以下内容进行进一步改进(您可以删除\qquad,避免\parallel等),但它会逐渐变得更丑陋;

\documentclass{article}
\usepackage{mathtools}

\DeclarePairedDelimiter{\diagpars}{(}{)}
\newcommand{\diag}{\operatorname{diag}\diagpars}
\newcommand{\norm}[1]{\displaystyle \left\| #1 \right\|}

\begin{document}
\[
\begin{matrix}
\text{minimize} &&& \norm{A^{\text{ind}} w \diag{x^{\text{ind}}}}\\
\text{subject to } &&& w=b-s+w^0\\
& l^b             &\le &b                                             &\le &u^b\\
& l^s             &\le &s                                             &\le &u^s\\
& l^{\text{bukd}} &\le &t(b+s)                                        &\le &u^t\\
& l^{\text{bukd}} &\le &A^{\text{dur}} w \text{ diag}(x^{\text{buk}}) &\le &u^{\text{bukd}}\\
& l^{\text{curp}} &\le &A^{\text{dur}} w \text{ diag}(x^{\text{cur}}) &\le &u^{\text{curp}}\\
\end{matrix}
\]
\end{document}

在此处输入图片描述

相反,重新表述你的约束实际上的含义,例如b\in[l^b,u^b]等等。

答案2

以下内容可能接近您正在寻找的内容:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\diag}{diag}
\begin{document}
\[
\text{Minimize\quad} 
\| A^{\text{ind}} w \diag(x^{\text{ind}}) \| 
\]
\[ 
\begin{array}{r @{}c@{} c @{}c@{} l}
\text{subject to:\quad}w&{}={}&\multicolumn{1}{@{}l}{b-s+w^0}\\
l^b &\le& b &{}\le{}& u^b\\
l^s &\le& s &\le& u^s\\
l^{\text{bukd}} &\le&  t(b+s) &\le& u^t\\
l^{\text{bukd}}  &\le& A^{\text{dur}} w \diag(x^{\text{buk}}) 
   &\le& u^{\text{bukd}}\\
l^{\text{curp}}  &\le& A^{\text{dur}} w \diag(x^{\text{cur}}) 
   &\le& u^{\text{curp}}\\
\end{array}
\]
\end{document}

控制环境的语法array一开始可能看起来有点复杂,所以这里有一个快速指南:

  • 这两个@{}c@{}结构用于定位等号/不等号;该@{}指令抑制了正常的列间空白量,
  • rc指令l用于定位剩余的材料,
  • 在数组的第一行中,{}={}内容告知 LaTeX=应将符号视为关系运算符(通过在两侧插入一些空格);{}\le{}数组的第二行也是如此。(请注意,只需要指定额外的{}内容一次每列。
  • 在数组的第一行中,等式关系 RHS 上的材料通过语句强制左对齐\multicolumn{1}{@{}l}{...}。在@{}“l”之前,是为了抑制 LaTeX 默认行为,即(重新)插入额外的列间空格\arraycolsep

最后,我将“最小化”和“服从”组放入两个单独的 displaymath 环境中。这样可以插入更多空间,如果需要,还可以在两个组之间插入分页符。

答案3

一个简单的解决方案就是使用单个对齐字符来左对齐约束:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{aligned}
\text{minimize}\qquad & \| A^{\text{ind}} w \text{ diag}(x^{\text{ind}})\|\\
\text{subject to }\qquad & w=b-s+w^0\\
& l^b \le b \le u^b\\
& l^s \le s \le u^s\\
& l^{\text{bukd}} \phantom{\le}  t(b+s) \le u^t\\
& l^{\text{bukd}} \le A^{\text{dur}} w \text{ diag}(x^{\text{buk}}) \le u^{\text{bukd}}\\
& l^{\text{curp}} \le A^{\text{dur}} w \text{ diag}(x^{\text{cur}}) \le u^{\text{curp}}\\
\end{aligned}
\]
\end{document}

然后会产生以下内容:

输出

答案4

另一种可能性是,不等号垂直对齐,但保持成本和等式约束在左边:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\diag}{diag}
\begin{document}
\begin{align*}
\text{minimize}   \quad & \lVert A^{\text{ind}} w \text{ diag}(x^{\text{ind}})\rVert \\
\text{subject to} \quad & w=b-s+w^0 \\
                        & \hspace{-.3em} % this is for correcting a small offset of the array to the right
\begin{array}{lcccl}
    l^b                 & \leq  & b                                           & \leq  & u^b             \\
    l^s                 & \leq  & s                                           & \leq  & u^s             \\
    l^{\text{bukd}}     & \leq  & t(b+s)                                      & \leq  & u^t             \\
    l^{\text{bukd}}     & \leq  & A^{\text{dur}} w \diag (x^{\text{buk}})     & \leq  & u^{\text{bukd}} \\
    l^{\text{curp}}     & \leq  & A^{\text{dur}} w \diag (x^{\text{cur}})     & \leq  & u^{\text{curp}} \\
\end{array}
\end{align*}
\end{document}

相关内容