2수준 최적화 문제에서 모든 방정식에 번호 매기기

2수준 최적화 문제에서 모든 방정식에 번호 매기기

와 유사하다이전 질문, 이중 수준 최적화를 구성해야 합니다. 이전 질문은좋은 대답단, 중첩된 블록에 있는 방정식에도 각 방정식에 번호를 매겨야 합니다 aligned.

모든 방정식의 수를 지원하기 위해 아래 구조를 수정하는 가장 간단한 방법은 무엇입니까? 중첩된 aligned블록을 로 변경하면 컴파일 오류가 발생합니다 align.

MWE(기본 구조 제공: @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}

여기에 이미지 설명을 입력하세요

편집하다: 2단계 제약 조건에 대한 해결 방법:

\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}  

여기에 이미지 설명을 입력하세요

관련 정보