首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决错误: SCIP C++中的SCIP阶段<10>无效

如何解决错误: SCIP C++中的SCIP阶段<10>无效
EN

Stack Overflow用户
提问于 2020-02-21 18:01:04
回答 1查看 111关注 0票数 1

我觉得我错过了一些非常简单和直接的东西。我试图在求解LP之后添加一个约束(使用最优LP解决方案作为设计此约束的机制)。我是通过这段代码添加它的

代码语言:javascript
复制
432 SCIP_CONS * cons = nullptr;
433 namebuf.str("");
434 namebuf<<"cut_3_OR1";
435  SCIP_CALL(SCIPcreateConsLinear(scip, &cons, namebuf.str().c_str(), 0, nullptr, nullptr, -SCIPinfinity(scip), 1.0,   /* <= 1.0 constraint */
436                                    true,  /* initial  <= 0 */
437                                    false, /* separate */
438                                    true,  /* enforce */
439                                    true,  /* check */
440                                    true,  /* propagate */
441                                    false, /* local */
442                                    true,  /* modifiable */
443                                    false, /* dynamic */
444                                    false, /* removable */
445                                    false  /* stickingatnode */));

代码编译得很好,但是在运行代码时,我收到以下错误消息

代码语言:javascript
复制
[src/scip/scip_cons.c:991] ERROR: invalid SCIP stage <10>
[src/scip/cons_linear.c:17695] ERROR: Error <-8> in function call
[src/Solver.h:445] ERROR: Error <-8> in function call
make: *** [run] Error 1

当我删除此约束添加时,代码将编译并运行。

有人能告诉我出了什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-21 18:29:51

阶段10是SCIP_STAGE_SOLVED。在问题解决到最优状态后,您可以尝试添加约束。是否需要添加要添加的约束?然后,您可能必须实现一个约束处理程序,并在处理程序的sepalp-callback中添加您的约束。作为示例,您可以查看SCIP文档中的TSP示例(它有一个子回路消除约束处理程序)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60336204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档