optidef 中的“中断目标”命令失败

optidef 中的“中断目标”命令失败

当我使用 break objective 命令时,它给出了此错误:

Undefined control sequence.
\BODY -> \breakObjective 

我可以在 latex 中重现这一点(这是 optidef 包说明中的一个示例)

\documentclass{article}
\usepackage{optidef}
\begin{document}
\begin{mini*}
  {w,u}{f(w)+ R(w+6x)+ H(100w-x*w/500)}{}{}
  \addConstraint{g(w_k)+h(w_k)}{=0,}{k=0,\ldots,N-1}
  \addConstraint{l(w_k)}{=5u,\quad}{k=0,\ldots,N-1}
\end{mini*}
\end{document}

它工作正常,但是当我使用如下的 break objective 命令(它也是指令中的一个示例)时,它给出了错误:

\documentclass{article}
\usepackage{optidef}
\begin{document}
\begin{mini}
  {w,u}{f(w)+ R(w+6x)+ H(100w-x*w/500)}{}{}
  \breakObjective{-g(w^3-x^2*200+10000*w^5)}
  \addConstraint{g(w_k)+h(w_k)}{=0,}{k=0,\ldots,N-1}
  \addConstraint{l(w_k)}{=5u,\quad}{k=0,\ldots,N-1}
\end{mini}

\end{document}

有人知道为什么会发生这种情况以及我该如何解决这个问题吗?或者你能给我介绍一个我可以像 optidef 一样轻松地编写优化问题的包吗?

答案1

正如 David Charlisle 提到的,中断目标函数在最新的系统上运行正常。日志显示:

 Package: optidef 2017/06/21 - version=2.5,
 Package for defining optimization problems

由于我使用的是 OVERLEAF,它不支持 2017 版本的软件包,所以我的日志显示:

Package: optidef 2016/08/07 - version=2.0

BreakObjective 命令仅适用于最新版本的 optidef。解决方案:我从 overleaf 下载了整个项目并将其上传到 Sharelatex!它支持最新版本的软件包,问题已解决。

感谢大家的帮助。

相关内容