在这个优化问题中,如何分割一个长约束?

在这个优化问题中,如何分割一个长约束?

我有一个优化问题,它有一个很长的约束。所以,我想把它拆分。显然,我搜索了如何拆分长方程,但我没有找到答案,因为这个问题与我如何格式化我的优化问题有关。特别是,我根据答案在这里我之前的问题。下面我给出代码:

\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}

其结果如下:

enter image description here

现在,约束 (P1c) 很长(因为我实际上使用的是双栏纸)。我想在 之后将其拆分C,。我问如何根据我的代码进行拆分?我应该将 改为alignat还是split其他什么?

我尝试这样做:

  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}\\enter image description here

  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}\\enter image description here

    但当我添加更多时,这不再起作用\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}

enter image description here

相关内容