我有一个优化问题,它有一个很长的约束。所以,我想把它拆分。显然,我搜索了如何拆分长方程,但我没有找到答案,因为这个问题与我如何格式化我的优化问题有关。特别是,我根据答案在这里我之前的问题。下面我给出代码:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{newtxtext,newtxmath}
\newcommand{\maximize}{%
\mathopen{}\operatorname*{maximize}%
}
\newcommand{\subjto}{\textup{subject to}}
\newcounter{problem}
\newcounter{save@equation}
\newcounter{save@problem}
\makeatletter
\newenvironment{problem}
{\setcounter{problem}{\value{save@problem}}%
\setcounter{save@equation}{\value{equation}}%
\let\c@equation\c@problem
\renewcommand{\theequation}{P\arabic{equation}}%
\subequations
}
{\endsubequations
\setcounter{save@problem}{\value{equation}}%
\setcounter{equation}{\value{save@equation}}%
}
\begin{document}
\begin{problem}\label{pb:2}
\begin{alignat}{2}
& \maximize_{\mathbf{x}}
&\qquad & \sum_{i=1}^nv_ix_i\label{obj:2}\\
& \text{subject to}
& & \sum_{i=1}^nw_ix_{i}\leqslant W,\label{c:1}\\
& & & \left(c_1+c_2+\ldots+c_n\right)x_ix_j\leqslant C,\forall i\in\{1,\ldots,n\}, j\in\{1,\ldots,n\},\label{c:2}\\
& & & x_{ i }\in\{0, 1\}, \forall i=1\ldots,n.\label{c:3}
\end{alignat}
\end{problem}
\end{document}
其结果如下:
现在,约束 (P1c) 很长(因为我实际上使用的是双栏纸)。我想在 之后将其拆分C,
。我问如何根据我的代码进行拆分?我应该将 改为alignat
还是split
其他什么?
我尝试这样做:
\\
。这里我得到了一些丑陋的东西,例如:& & & \left(c_1+c_2+\ldots+c_n\right)x_ix_j\leqslant C,\\ \forall i\in\{1,\ldots,n\}, j\in\{1,\ldots,n\},\label{c:2}\\
\\ & & &
和\quad
。这里好一些但还不够,例如:& & & \left(c_1+c_2+\ldots+c_n\right)x_ix_j\leqslant C,\\ & & &\quad\quad\quad\quad \forall i\in\{1,\ldots,n\}, j\in\{1,\ldots,n\},\label{c:2}\\
但当我添加更多时,这不再起作用
\quad
。
谢谢。
答案1
如果我很清楚你想要什么的话,这里有一个解决方案:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{mathtools}
\usepackage{newtxtext,newtxmath}
\newcommand{\maximize}{%
\mathopen{}\operatorname*{maximize}%
}
\newcommand{\subjto}{\textup{subject to}}
\newcounter{problem}
\newcounter{save@equation}
\newcounter{save@problem}
\makeatletter
\newenvironment{problem}
{\setcounter{problem}{\value{save@problem}}%
\setcounter{save@equation}{\value{equation}}%
\let\c@equation\c@problem
\renewcommand{\theequation}{P\arabic{equation}}%
\subequations
}
{\endsubequations
\setcounter{save@problem}{\value{equation}}%
\setcounter{equation}{\value{save@equation}}%
}
\begin{document}
\begin{problem}\label{pb:2}
\begin{alignat}{2}
& \maximize_{\mathbf{x}}
&\qquad & \sum_{i=1}^nv_ix_i\label{obj:2}\\
& \text{subject to}
& & \sum_{i=1}^nw_ix_{i}\leqslant W,\label{c:1}\\
& & &\!\begin{aligned} (c_1 +c_2 +\dots+c_n&)x_ix_j\leqslant C,\\ & \forall i\in\{1,\ldots,n\}, j\in\{1,\ldots,n\},
\end{aligned}\label{c:2}\\
& & & x_{ i }\in\{0, 1\},\; \forall i=1\ldots,n.\label{c:3}
\end{alignat}
\end{problem}
\end{document}