
類似上一個問題,我需要構造一個雙層優化。上一個問題收到了好答案除了我需要對每個方程式進行編號,甚至是嵌套aligned
區塊中的方程式。
修改下面的結構以支持所有方程式的數量的最簡單方法是什麼?如果變更為 ,巢狀aligned
區塊會產生編譯錯誤align
。
微量元素(基本結構由@sergei-golovan提供)
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\st}{s.t.}
\begin{document}
\begin{align}
\min \limits_{\mathbf{x}, \mathbf{y}} \quad & {-}2x_1^2 + x_2^2 - 6y_1 + y_2^2 \\
\st \quad & x_1^3 + 3x_2 - 10 \le 0 \\
& \begin{aligned}
\st \quad & {-}x_1 + 2x_1 - x_2^2 \le 0\\
& {-}x_1 + 2x_2 \le 0
\end{aligned}
\end{align}
\end{document}
答案1
該軟體包有兩種可能性optidef
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{optidef}
\DeclareMathOperator{\st}{s.t.}
\begin{document}
\begin{mini!}|s|
{\mathbf{x, y}}{-2x_1^2 + x_2^2 - 6y_1 + y_2^2}{\label{objective}}{}
\addConstraint{x_1^3 + 3x_2 - 10}{\le 0 \label{ineq:C1}}
\addConstraint{-x_1 + 2x_1 - x_2^2}{\le 0\label{ineq:C2}}
\addConstraint{-x_1 + 2x_2}{\le 0\label{ineq:C3}}
\end{mini!}
\begin{mini!}|s|[2]
{\mathbf{x, y}}{-2x_1^2 + x_2^2 - 6y_1 + y_2^2\tag{2}}{\label{objective}}{}
\addConstraint{x_1^3 + 3x_2 - 10}{\le 0 \label{ineq:C1}}
\addConstraint{{-x_1} + 2x_1 - x_2^2}{\le 0\label{ineq:C2}}
\addConstraint{{-x_1} + 2x_2}{\le 0\label{ineq:C3}}
\end{mini!}
\end{document}
編輯:兩級約束的解決方法:
\begin{mini!}|s|[2]
{\mathbf{x, y}}{-2x_1^2 + x_2^2 - 6y_1 + y_2^2\tag{2}}{\label{objective}}{}
\addConstraint{x_1^3 + 3x_2 - 10\tag{3}}{\le 0 \label{ineq:C1}}
\addConstraint{\st\quad}{{-x_1} + 2x_1 - x_2^2\le 0\label{ineq:C2}}
\addConstraint{\phantom{\st}\quad}{{-x_1} + 2x_2\le 0\label{ineq:C3}}
\end{mini!}
答案2
您可以使用另一個名為 optidef 的套件:https://www.ctan.org/pkg/optidef 這是你的問題:
\usepackage{optidef}
\begin{document}
\begin{mini!}|s|[2]<b>
{x,y}{-x^2_1+x^2_2-6y_1+y^2_2}
{}{}
\addConstraint{x^3+x_2-10}{\leq 0}{}
\addConstraint{-x_1+2x_1-x^2_2}{}
\addConstraint{-x_1+2x_2}{\leq 0}{}
\end{mini!}
\end{document}