当前位置: 首页 > 知识库问答 >
问题:

纸浆-如何获得CPLEX解算器状态而不是LpStatus状态?

潘泳
2023-03-14

我正在使用Python中通过纸浆的CPLEX解算器。当我解决时间限制问题时,CPLEX会将代码107打印到屏幕上,这表示“超出了时间限制,但存在整数解决方案”。但是,如果我打印纸浆的状态。LpStatus[problem.status]我得到的是值1,根据纸浆的文档,这意味着找到了一个最佳解决方案,这实际上是错误的。

如何访问CPLEX状态代码而不是纸浆?

共有1个答案

廖夜洛
2023-03-14

可以直接访问CPLEX状态码和状态字符串。考虑以下示例:

>>> import pulp 
>>> prob = pulp.LpProblem("example", pulp.LpMinimize)
>>> x = pulp.LpVariable('x', lowBound=0, upBound=1)
>>> prob+= x <= -1

>

  • 示例1-超过时间限制

    >>> solver = pulp.CPLEX_PY(msg=0, timeLimit=0)
    >>> prob.setSolver(solver)
    >>> prob.solve()
    -3
    >>> solver.solverModel.solution.get_status()
    108
    >>> solver.solverModel.solution.get_status_string()
    'time limit exceeded, no integer solution'
    

    例2-不可行

    >>> solver = pulp.CPLEX_PY(msg=0)
    >>> prob.setSolver(solver)
    >>> prob.solve()
    -1
    >>> solver.solverModel.solution.get_status()
    103
    >>> solver.solverModel.solution.get_status_string()
    'integer infeasible'
    

  •  类似资料:
    • 3.2获得 CPU 寄存器状态 一个调试器必须能够在任何时候都搜集到 CPU 的各个寄存器的状态。当异常发生的时 候这能让我们确定栈的状态,目前正在执行的指令是什么,以及其他一些非常有用的信息。 要实现这个目的,首先要获取被调试目标内部的线程句柄,这个功能由 OpenThread()实现. 函数原型如下: HANDLE WINAPI OpenThread( DWORD dwDesired

    • 问题内容: 我想检查用户在程序启动时是否按下了 Shift 键。(这意味着在程序启动前先按 Shift 键)这是一个简单的控制台程序,与X无关。 这可能类似于Win32 函数。 我想知道我是否可以做到这一点以及如何做到,但是不知道直接访问终端有什么利弊。 问题答案: 你不能 该键不被视为字符键,因此,即使您直接访问终端,也将无法检测到该键。 也许您不必。例如,假设您使用的是美式键盘,其中第一行中的

    • 我试图读取一堆格式相同的word docx文件,并将数据提取到数据库中。我对文本没有任何问题,但我在与复选框作斗争。我需要说的是,我是docx4j的新手,但已经在这个问题上挣扎了四天了。我真的很重视一些帮助/帮助/建议。 结果是: 现在,我已经为包含一个难以捉摸的复选框的单元格添加了mainDocumentPart.getXML()的输出。我在那里看不到任何东西告诉我价值。谁能告诉我我错过了什么吗

    • 表的状态包含以下几种: 状态名 解释 createTime 创建时间 alterTime 最近修改时间 statTime 最近统计时间,表的状态不是实时更新,而是一定时间间隔后更新一次 size 表占用空间,单位是byte rowCount 表的行数 API示例 TableStatus tableStatus=adminClient.getTableStatus(tableName); long

    • 在执行测试之后,我将获得目录中的XML文件。在这里,我使用以下命令生成HTML报告: 在中,我有一个文件,它用于根据HTML报告的结果(例如:通过、中断、失败、...)对测试进行分类。我相信这种分类是由诱惑力完成的。 所以我想知道这种分类有什么诱惑力。

    • 问题内容: 有没有办法获取当前状态的先前状态? 例如,我想知道当前状态B之前的先前状态是什么(以前的状态本来是状态A)。 我无法在ui-router github文档页面中找到它。 问题答案: ui-router转换后不会跟踪以前的状态,但是会在状态更改时广播该事件。 您应该能够从该事件中捕获先前状态(即将离开的状态):