Mosel PREINTSOL 回调的语法?

Syntax for Mosel PREINTSOL callbacks?

在使用 CPLEX 一段时间后,我才开始接触 Xpress Mosel。我想在本地使用 Mosel 和 Xpress 中的回调解决车辆路径问题。

model VRPSPD
uses "mmxprs", "mmsystem", "mmsheet"   
forward procedure break_subtours(isheur:boolean,cutoff:real) 
!implementation VRP except subtours
setcallback(XPRS_CB_PREINTSOL, "break_subtours(false,0.01)") 
minimize(obj)
procedure break_subtours(isheur:boolean,cutoff:real)
!subtour separation
!insert cuts
end-procedure 

到目前为止,我收到错误消息:"Wrong procedure type for callback PREINTSOL"(但 https://www.fico.com/fico-xpress-optimization/docs/latest/mosel/mosel_lang/dhtml/setcallback.html 指定使用这个) 我发现有类似 cbsetcutoff 的东西,但我现在还不知道如何使用它。

我还没有找到任何使用 PREINTSOL 的代码示例。你能给我指出一个我可以使用的示例实现吗?

谢谢你:)

回调中使用的子例程需要 'public',因此在您的示例中:

前向public过程break_subtours(isheur:boolean,cutoff:real)

...

public 过程 break_subtours(isheur:boolean,cutoff:real)

您可以在此处找到几个实现剪辑生成回调的 Mosel 示例:

Xpress Examples Database - Mosel - Solving techniques ( https://examples.xpress.fico.com/example.pl#mosel_solv)