
Ich verwende die Align-Umgebung, um ein ILP-Modell zu schreiben. Die Nummerierung funktioniert nicht: Anstatt dass jede Nummer auf die jeweilige Einschränkung folgt, habe ich alle Einschränkungen und dann alle Nummern am Ende. Wenn ich denselben Code in einem anderen Dokument verwende, funktioniert er ordnungsgemäß. Was könnte das Problem sein?
\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}\\
\\
Antwort1
Ich schlage vor, dass Sie eine alignat{2}
Umgebung in eine gather*
Umgebung einbetten. Beide Umgebungen werden vom amsmath
Paket bereitgestellt, das automatisch vom mathtools
Paket geladen wird. Ich würde außerdem das \smashoperator
Makro (vom mathtools
Paket bereitgestellt) verwenden, um das Material unter einigen der \sum
Anweisungen kompakter zu setzen.
\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}
Nachtrag: Ein großer Teil dessen, was das Aufschreiben dieser Gleichungen mühsam macht – und sie für den Leser auch nicht leicht zu erfassen macht – ist das Vorhandensein der 4-Tupel in den Summenindexpositionen. Wenn es in Ordnung ist, Abkürzungen für diese Tupel zu erstellen – sagen wir \tau_1
bis \tau_4
– und die Doppelsummennotation zu verwenden, könnte man die Gleichungen wie folgt umschreiben:
\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}