排版具有众多约束的优化问题

排版具有众多约束的优化问题

我正在编写一个包含 50 个约束的优化问题。我的代码如下。

\begin{equation*}
\begin{aligned}
{\underset{x_{i}}{\textnormal{minimise}}} \quad  
&800\left(\sum_{i=1}^{89}x_i\right)+99\left(x_{34}+x_{81}\right)  \\
\mathllap{\text{subject to} \quad} 
&x_{11}+x{12}\geq 1 \\
&x_{13}+x{14}\geq 1 \\
&x_{18}+x{19}\geq 1 \\
....
\end{aligned}
\end{equation*}

为了方便起见,我用省略号“...”表示剩余的约束。出于某种原因,一旦约束到达现有页面的底部,整个优化问题就会在新页面上开始。不仅如此,而且不适合此单个页面的约束也不会显示。

有没有办法智能地格式化这个优化问题?

编辑

我正在使用

\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

%% Sets page size and margins
\usepackage[a4paper,top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm,marginparwidth=1.75cm]{geometry}

\usepackage{amsmath}
\usepackage{amsfonts} 
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}

答案1

\allowdisplaybreaks该软件包提供的命令amsmath应该允许在多行显示的方程式内进行分页。但是,正如软件包用户指南第 3.9 节“多行显示中的垂直间距和分页符”中所述,它amsmath不适\allowdisplaybreaks用于splitalignedgatheredalignedat环境的内容。

为了解决这个问题,我建议您将所有方程式放在一个align*环境中,而不是将一个aligned环境嵌套在另一个equation*环境中。

在此处输入图片描述

\documentclass{article} % choose a suitable document class
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

%% Sets page size and margins
\usepackage[a4paper,
    %top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm,
    margin=2.5cm,
    marginparwidth=1.75cm]{geometry}

%\usepackage{amsmath}  % is loaded automatically by 'mathtools'
%\usepackage{amsfonts} % is loaded automatically by 'amssymb'
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
% \usepackage[framed,numbered,autolinebreaks,useliterate]{mcode} % I don't have this package

\begin{document}
\allowdisplaybreaks

\begin{align*}
\underset{x_{i}}{\textnormal{minimise}}\quad  
&800\biggl(\,\sum_{i=1}^{89}x_i\biggr)+99(x_{34}+x_{81})  \\
\textnormal{subject to} \quad
&x_{11}+x_{12}\geq 1 \\
&x_{13}+x_{14}\geq 1 \\
&x_{18}+x_{19}\geq 1 \\
&\dots
\end{align*}

\end{document}

答案2

让我提一下,有一个专门的包:optidef,它定义了几个优化环境,具有各种布局,它们接受一个<b>可选参数来跨页面打破环境。以下是使用该mini*环境的代码:

\documentclass{article}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=2.5cm, marginparwidth=1.75cm]{geometry}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{optidef} % dedicated package

\begin{document}

\begin{mini*}<b>
{x_{i}}{800\biggl(\,\sum_{i=1}^{89}x_i\biggr)+99(x_{34}+x_{81})}
  {}{}
\addConstraint{x_{11}+x_{12}\geq 1}
\addConstraint{x_{13}+x_{14}\geq 1}
\addConstraint{x_{18}+x_{19}\geq 1}
\addConstraint{\dots\dots\dots\dots}
\end{mini*}

\end{document}

在此处输入图片描述

相关内容