当我使用 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!它支持最新版本的软件包,问题已解决。
感谢大家的帮助。