Como podemos especificar um problema de otimização de dois níveis usando optidef? Eu gostaria de especificar um (verequações 6 e 7 na parte inferior e superior das páginas 4 e 5, respectivamente). Até agora eu faço assim
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm,optidef,amsfonts}
\begin{document}
\begin{mini}
{L,V}{L_V\left(V,W \right) ||\mathbf{X}_{1}-\mathbf{X}_{0} ||^{2}_{\mathbf{V}} \quad \forall \: t \in T_0 \label{eq:scbi}}{}{}
\addConstraint {W\left(V \right) \in \Psi \left(V \right) \coloneqq \underset{W \in \mathcal{W}}{\text{argmin }} L_W\left(V,W \right) ||\mathbf{X}_{1}-\mathbf{X}_{0}W ||^{2}_{\mathbf{V}}, V \in \mathcal{V}}
\end{mini}
\end{document}
Defino o segundo problema de otimização manualmente usando underset, mas fiquei curioso para saber se existe uma maneira de definir um problema de nível inferior e um problema de nível superior, talvez usando duas instâncias de optidef. Como posso fazer isso?
Responder1
Remova o inútil \left
e \right
; também ||
deveria ser \|
ou, melhor ainda, \lVert
para abrir e \rVert
fechar.
Não é fácil entender por que optidef
parece ignorar a largura, mas adicionar \mbox{}
a última parte funciona.
Defina um operador matemático adequado para “argmin”.
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{optidef}
\usepackage{showframe}
\DeclareMathOperator*{\argmin}{argmin}
\begin{document}
\begin{mini}[constraintFormat=3]
{L,V}{
L_V(V,W) \|\mathbf{X}_{1}-\mathbf{X}_{0} \|^{2}_{\mathbf{V}} \quad \forall \: t \in T_0
\label{eq:scbi}
}{}{}
\addConstraint{W(V) \in \Psi(V)}{\coloneqq
\argmin_{W \in \mathcal{W}} L_W(V,W) \|\mathbf{X}_{1}-\mathbf{X}_{0}W \|^{2}_{\mathbf{V}},
V \in \mathcal{V}}{\mbox{}}
\end{mini}
\end{document}
As regras pesadas mostram as margens, cortesia de showframe
. Remova a chamada do pacote na versão de produção.