线性规划:调整非负约束

线性规划:调整非负约束

我正在尝试正确对齐一个简单的线性程序:现在我正在使用

\usepackage{amsmath}
\begin{document}
\begin{equation*}
\begin{array}{r r c r c r}
\displaystyle \min &x_1 &+&x_2\\
\text{s.t.} & 10x_1& +&10x_2 &\leq &0\\
&111x_1 &+&x_2 &\geq &0\\
& x_1& &,x_2 & \geq & 0
\end{array}
\end{equation*}
\end{document}

得到: 在此处输入图片描述

但我想以这样的方式“收集”最后一个约束,使其与所有其他“x_2”右对齐,但没有“x_1”和“,”之间的空格。有没有办法在不干扰其他约束的情况下省略空格?

答案1

我还会避免列之间有太大间隙。

\documentclass{article}
\usepackage{amsmath,array}


\begin{document}

\begin{equation*}
\setlength{\arraycolsep}{0pt}
\begin{array}{r @{\quad} r >{{}}c<{{}} r >{{}}c<{{}} r}
\min &x_1 &+&x_2\\
\text{s.t.} & 10x_1& +&10x_2 &\leq &0\\
&111x_1 &+&x_2 &\geq &0\\
\multicolumn{4}{r}{x_1,x_2} & \geq & 0
\end{array}
\end{equation*}

\end{document}

在此处输入图片描述

我们\setlength{\arraycolsep}{0pt}告诉 LaTeX 不要在列周围添加填充;我们用第一列和第二列之间覆盖它@{\quad};对于包​​含关系或操作符号的列,我使用

>{{}}c<{{}}

这意味着{}{}将被添加到实际的单元格条目周围;这样,我们得到,例如{}+{}这使得 TeX 在运算符号周围添加通常的空格;关系也是类似地。

答案2

您还可以使用专用包获得大量布局和引用optidef。这是基本的,语法非常简单:

\documentclass{article}
\usepackage[short]{optidef}

\begin{document}

\begin{mini*}{}{x_1 + x_2}
{}{}
\addConstraint{10x_1 + 10x_2}{\leq 0}
\addConstraint{111x_1 + 10x_2}{\geq 0}
\addConstraint{x_1,x_2}{\geq 0}
\end{mini*}

\end{document} 

在此处输入图片描述

相关内容