【问题标题】:How to print variable names in SCIP?如何在 SCIP 中打印变量名?
【发布时间】:2020-06-08 09:56:26
【问题描述】:

我正在尝试打印出变量名称及其可靠的伪成本分数。这是因为我正在尝试使用所有候选变量的可靠伪成本分数作为另一种算法的初始化。我的输入是一个 .cnf 文件,我使用 SCIP 的默认设置,以便调用可靠的伪成本分支。

在 branch_relpscost.c 的第 1113 到 1121 行的代码块中,我尝试添加

printf("Candidate %i has score of %f \n", c, pscostscore);pscostscore = SCIPgetVarPseudocostScore(scip, branchcands[c], branchcandssol[c]); 之后

这打印成功,但是我认为这并没有给我候选名称,而只是用于遍历数据的计数器 c。

我对 SCIP 中可靠伪成本代码的理解是,在第 1012 行,搜索最佳伪成本候选者是在此之后完成的,同时在排序缓冲区中记住不可靠的候选者。因此,Candidate 1 has a score of 0.11342 的打印输出不一定意味着变量 x1 的得分为 0.11342。

接下来,我尝试添加

printf("Candidate %i has score of %f \n", branchcands[c], pscostscore);

但代码无法编译。

我也尝试使用SCIPdebugMsg 代替printf,但它也不起作用。

是否有正确的命令或方法来执行此操作?感谢您的帮助。

【问题讨论】:

    标签: scip


    【解决方案1】:

    你可以很容易地做到这一点: - 使用SCIPvarGetName 获取变量名 - 使用格式字符串中的 %s 打印它。

    你可以自己找到类似的东西。所有涉及变量的公共函数都可以在pub_var.hscip_var.h 中找到。这同样适用于所有其他 SCIP 数据结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      相关资源
      最近更新 更多