编写最小成本覆盖公式的更好方法

编写最小成本覆盖公式的更好方法

我正在尝试重现以下最低成本覆盖模型:

在此处输入图片描述

我成功地做到了这一点:

\documentclass[10pt,a4paper]{article}
\usepackage{amssymb}
\usepackage{amsmath}

\begin{document}
    \begin{align*}
    \text{min}  & \sum_{i \in I} C_i x_i \\
        s.t.\\
                & \sum_{i \in I} A_{ij}x_i \ge D_j \qquad\qquad \forall j \in J\\
                & x_i \in \mathbb{R}_+ [ \mathbb{Z}_+ | \{0,1\} ]\qquad \forall i \in I
    \end{align*}
\end{document}

在此处输入图片描述

问题是,我觉得它不对。
我好像使用了错误的包或错误的环境来重做这段公式

答案1

看看,使用alignat环境是否能得到更好的结果:

\documentclass[10pt,a4paper]{article}
\usepackage{amssymb}
\usepackage{amsmath}

\begin{document}
    \begin{alignat*}{2}
\min\quad & \sum_{i \in I} C_i x_i \\
\text{s.t.}\quad        &   &   &\\
            & \sum_{i \in I} A_{ij}x_i \ge D_j               
                        & \forall j & \in J\\
            & x_i \in \mathbb{R}_+ [\mathbb{Z}_+ \mid \{0,1\} ] 
                \qquad  & \forall i & \in I
    \end{alignat*}
\end{document}

在此处输入图片描述

編輯: 您可能希望在\minand\text{s.t.}summ符号之间留出较少的空格。在这种情况下,您可以删除\quad& 符号前的 s:

\documentclass[10pt,a4paper]{article}
\usepackage{amssymb}
\usepackage{amsmath}

\begin{document}
    \begin{alignat*}{2}
\min        & \sum_{i \in I} C_i x_i \\
\text{s.t.} &   &   &\\
            & \sum_{i \in I} A_{ij}x_i \ge D_j
                        & \forall j & \in J\\
            & x_i \in \mathbb{R}_+ [\mathbb{Z}_+ \mid \{0,1\} ]
                \qquad  & \forall i & \in I
    \end{alignat*}
\end{document}

在此处输入图片描述

附录 @Sebastiano 在他的评论中建议的另一个解决方案(非常感谢 Sebastiano!)使用专用包optidef。你可能会喜欢它 :-) :

\documentclass[10pt,a4paper]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{optidef}

\begin{document}
\begin{mini}
{i}{\sum_{i\in I} C_i x_i}
{\label{eq:Example1}}{}
\addConstraint{\sum_{i \in I} A_{ij}x_i \ge D_j &\qquad}{\forall j \in J}
\addConstraint{x_i \in \mathbb{R}_+ [\mathbb{Z}_+ \mid \{0,1\})}{&\forall i  \in I.}
\end{mini}
\end{document}

在此处输入图片描述

相关内容