
Я использую среду Align для написания модели ILP, нумерация идет не так: вместо того, чтобы каждое число следовало за его ограничением, у меня есть все ограничения, а затем все числа в конце. Если я использую тот же код в другом документе, он работает правильно. В чем может быть проблема?
\begin{align}
\mbox{min.} \quad & \sum_{p \in P} \sum_{(t_{1},v_{1},t_{2},v_{2}) \in WT} c_{v_{1},v_{2}}x^p_{t_{1},v_{1},t_{2},v_{2}} \notag \\
\mbox{s.t.} \quad
& \sum_{(t_{2},v_{2},t_{1},v_{1}) \in BS(t_{1},v_{1})} x^p_{t_{2},v_{2},t_{1},v_{1}} - \sum_{(t_{1},v_{1},t_{2},v_{2}) \in FS(t_{1},v_{1})} x^p_{t_{1},v_{1},t_{2},v_{2}}\; = \; 0\qquad \forall p \in P,(v_{1},t_{1}) \in VT \\
& - \sum_{(p,o,t_{2},v_{2}) \in FS(p,o)} x^p_{p,o,t_{2},v_{2}}\; = \; - d_p \qquad \forall p \in P\\
& \sum_{(t_{1},v_{1},p,w) \in BS(p,w)} x^p_{t_{1},v_{1},p,w} \; = \; + d_p \qquad \forall p \in P\\
& \sum_{p \in P} \sum_{(t_{2},v_{2},t_{1},v_{1}) \in BS(t_{1},v_{1})} x^p_{t_{2},v_{2},t_{1},v_{1}} \; \leq \; Q \qquad\qquad\qquad\qquad\qquad\qquad\qquad\forall (v_{1},t_{1}) \in VT \\
& x^p_{t_{1},v_{1},t_{2},v_{2}} \in Z \qquad \qquad \qquad \qquad \qquad \quad \forall p \in P, \forall (t_{1},v_{1},t_{2},v_{2}) \in WT
\end{align}\\
\\
решение1
Предлагаю вам встроить alignat{2}
среду в gather*
среду. Обе среды предоставляются пакетом amsmath
, который автоматически загружается пакетом mathtools
. Я бы также использовал \smashoperator
макрос (предоставляемый пакетом ) для более компактного mathtools
оформления материала ниже некоторых директив.\sum
\documentclass{article} % or some other suitable document class
\usepackage[letterpaper,margin=1in]{geometry} % set page parameters as needed
\usepackage{mathtools} % for '\smashoperator' macro
\newcommand\vn[1]{\mathit{#1}}
\begin{document}
\begin{gather*}
\min \sum_{p \in P\mathstrut} \
\smashoperator[r]{\sum_{(t_{1},v_{1},t_{2},v_{2}) \in \vn{\vn{WT}}} }
c_{v_{1},v_{2}}x^p_{t_{1},v_{1},t_{2},v_{2}} \\
\shortintertext{such that}
\begin{alignat}{2}
\smashoperator{\sum_{(t_{2},v_{2},t_{1},v_{1}) \in \vn{BS}(t_{1},v_{1})}}
x^p_{t_{2},v_{2},t_{1},v_{1}}
\quad-\quad
\smashoperator{\sum_{(t_{1},v_{1},t_{2},v_{2}) \in \vn{FS}(t_{1},v_{1})}}
x^p_{t_{1},v_{1},t_{2},v_{2}}
&= 0
&\qquad&\forall p \in P,\ \forall(v_{1},t_{1}) \in \vn{VT} \\
-\smashoperator{\sum_{(p,o,t_{2},v_{2}) \in \vn{FS}(p,o)}}
x^p_{p,o,t_{2},v_{2}}
&= -d_p
&&\forall p \in P \\
\smashoperator{\sum_{(t_{1},v_{1},p,w) \in \vn{BS}(p,w)}}
x^p_{t_{1},v_{1},p,w}
&= + d_p
&&\forall p \in P\\
\sum_{p \in P\mathstrut} \
\smashoperator[r]{\sum_{(t_{2},v_{2},t_{1},v_{1}) \in \vn{BS}(t_{1},v_{1})}}
x^p_{t_{2},v_{2},t_{1},v_{1}}
&\leq Q
&&\forall (v_{1},t_{1}) \in \vn{VT} \\
x^p_{t_{1},v_{1},t_{2},v_{2}} &\in Z
&& \forall p \in P,\
\forall (t_{1},v_{1},t_{2},v_{2}) \in \vn{WT}
\end{alignat}
\end{gather*}
\end{document}
Приложение: Большая часть того, что делает эти уравнения утомительными для записи, а также совсем не простыми для восприятия читателем, — это наличие 4-кортежей в позициях суммы-индекса. Если можно создать сокращения для этих кортежей, скажем, \tau_1
thru \tau_4
, и использовать обозначение двойной суммы, можно переписать уравнения следующим образом:
\documentclass{article}
\usepackage{mathtools} % for '\smashoperator' macro
\newcommand\vn[1]{\mathit{#1}}
\newcommand\doublesum{\mathop{\sum\sum}}
\begin{document}
\begin{gather*}
\min \smashoperator{\doublesum_{p \in P,\;\tau_1\in\vn{WT}}}
c^{}_{v_{1},v_{2}}x^p_{\tau_1} \\
\intertext{such that}
\begin{alignat}{2}
\smashoperator{\sum_{\tau_1\in\vn{FS}(\tau)}}
x^p_{\tau_1}
&=
\smashoperator[r]{\sum_{\tau_2\in\vn{BS}(\tau)}}
x^p_{\tau_2}
&\quad&
\forall p \in P,\ \forall\tau\in\vn{VT} \\
-\smashoperator{\sum_{\tau_3\in\vn{FS}(p,o)}}
x^p_{\tau_3}
&= -d_p
&&\forall p \in P \\
\smashoperator{\sum_{\tau_4\in\vn{BS}(p,w)}}
x^p_{\tau_4}
&= +d_p
&&\forall p \in P \\
\smashoperator{\doublesum_{p \in P,\;\tau_2\in\vn{BS}(\tau)}}
x^p_{\tau_2}
&\leq Q
&&\forall \tau\in\vn{VT} \\
x^p_{\tau_1} &\in Z
&& \forall p \in P,\ \forall \tau_1\in\vn{WT}
\end{alignat}
\end{gather*}
where $\tau\equiv(t_{1},v_{1})$,
$\tau_1\equiv(t_{1},v_{1},t_{2},v_{2})$,
$\tau_2\equiv(t_{2},v_{2},t_{1},v_{1})$,
$\tau_3\equiv(p,o,t_{2},v_{2})$, and
$\tau_4\equiv(t_{1},v_{1},p,w)$.
\end{document}