pulp.apis 求解器接口

class pulp.apis.CHOCO_CMD(path=None, keepFiles=False, mip=True, msg=True, options=None, timeLimit=None)[源代码]

基类:LpSolver_CMD

CHOCO_CMD 求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • options (list) – 传递给求解器的附加选项列表

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name = 'CHOCO_CMD'
static readsol(filename)[源代码]

读取 Choco 解决方案文件

pulp.apis.COIN

COIN_CMD 的别名

class pulp.apis.COINMP_DLL(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

COIN_MP LP MIP 求解器(通过 DLL 或 linux so)

参数:
  • timeLimit (float) – 在强制求解器退出之前等待的秒数

  • epgap – 分数 mip 容差

  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

classmethod available()[源代码]

如果求解器可用则为真

name = 'COINMP_DLL'
pulp.apis.COINMP_DLL_load_dll(path)[源代码]

加载 DLL 的函数,有助于调试安装问题

class pulp.apis.COIN_CMD(mip=True, msg=True, timeLimit=None, gapRel=None, gapAbs=None, presolve=None, cuts=None, strong=None, options=None, warmStart=False, keepFiles=False, path=None, threads=None, logPath=None, timeMode='elapsed', maxNodes=None)[源代码]

基类:LpSolver_CMD

COIN CLP/CBC LP 求解器现在仅使用 cbc

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • threads (int) – 设置最大线程数

  • options (list) – 传递给求解器的附加选项列表

  • warmStart (bool) – 如果为真,求解器将使用变量的当前值作为起点。

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

  • logPath (str) – 日志文件的路径

  • presolve (bool) – 如果为真,则添加预解。

  • cuts (bool) – 如果为真,则在探测时添加针对背包问题的 Gomory 割。

  • strong (bool) – 如果为真,则添加强调

  • timeMode (str) – “elapsed”: 计算墙钟时间到时间限制;”cpu”: 计算CPU时间

  • maxNodes (int) – 分支过程中的最大节点数。达到此数目时停止求解。

actualSolve(lp, **kwargs)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

copy()[源代码]

制作自身的副本

defaultPath()[源代码]
getOptions()[源代码]
get_status(filename)[源代码]
name = 'COIN_CMD'
readsol_LP(filename, lp, vs)[源代码]

读取从 lp 生成的 CBC 解决方案文件(良好名称)返回状态、值、缩减成本、影子价格、松弛量、解状态

readsol_MPS(filename, lp, vs, variablesNames, constraintsNames, objectiveName=None)[源代码]

读取从mps或lp文件生成的CBC解决方案文件(可能具有不同的名称)

solve_CBC(lp, use_mps=True)[源代码]

使用 CBC 解决 MIP 问题

writesol(filename, lp, vs, variablesNames, constraintsNames)[源代码]

从 mps / lp 文件(可能名称不同)生成的 CBC 解决方案文件,成功时返回 True

class pulp.apis.COPT(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

通过其Python接口的COPT优化器

COPT 变量在求解后可以在 var.solverVar 中获取,约束在 constraint.solverConstraint 中,模型在 prob.solverModel 中。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp, callback=None)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

name = 'COPT'
class pulp.apis.COPT_CMD(path=None, keepFiles=0, mip=True, msg=True, mip_start=False, warmStart=False, logfile=None, **params)[源代码]

基类:LpSolver_CMD

COPT 命令行求解器

初始化命令行求解器

actualSolve(lp)[源代码]

解决一个形式良好的线性规划问题

此函数借用了 CPLEX_CMD.actualSolve 和 GUROBI_CMD.actualSolve 的实现,并进行了一些修改。

available()[源代码]

如果 ‘copt_cmd’ 可用则为真

defaultPath()[源代码]

copt_cmd 的默认路径

name = 'COPT_CMD'
readsol(filename)[源代码]

读取COPT解文件

writemst(filename, lpvars)[源代码]

写入COPT MIP起始文件

class pulp.apis.COPT_DLL(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

COPT 动态库求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

err = TypeError('expected str, bytes or os.PathLike object, not NoneType')
name = 'COPT_DLL'
pulp.apis.COPT_DLL_loadlib()[源代码]

在所有支持的平台上加载COPT共享库

pulp.apis.CPLEX

CPLEX_CMD 的别名

class pulp.apis.CPLEX_CMD(mip=True, msg=True, timeLimit=None, gapRel=None, gapAbs=None, options=None, warmStart=False, keepFiles=False, path=None, threads=None, logPath=None, maxMemory=None, maxNodes=None)[源代码]

基类:LpSolver_CMD

CPLEX LP 求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • threads (int) – 设置最大线程数

  • options (list) – 传递给求解器的附加选项列表

  • warmStart (bool) – 如果为真,求解器将使用变量的当前值作为起点。

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

  • logPath (str) – 日志文件的路径

  • maxMemory (float) – 在求解过程中使用的最大内存。达到此限制时停止求解。

  • maxNodes (int) – 分支过程中的最大节点数。达到此数目时停止求解。

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
getOptions()[源代码]
name = 'CPLEX_CMD'
readsol(filename)[源代码]

读取 CPLEX 解决方案文件

writesol(filename, vs)[源代码]

写入一个 CPLEX 解决方案文件

class pulp.apis.CPLEX_PY(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

CPLEX LP/MIP 求解器(通过 Python 绑定)

此求解器封装了 CPLEX 的 Python API。它已经针对 CPLEX 12.3 进行了测试。对于此求解器中未封装的 API 函数,请使用基础 CPLEX 类。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

err = ModuleNotFoundError("No module named 'cplex'")
name = 'CPLEX_PY'
pulp.apis.FSCIP

FSCIP_CMD 的别名

class pulp.apis.FSCIP_CMD(path=None, mip=True, keepFiles=False, msg=True, options=None, timeLimit=None, gapRel=None, gapAbs=None, maxNodes=None, threads=None, logPath=None)[源代码]

基类:LpSolver_CMD

SCIP 优化求解器的多线程 FiberSCIP 版本

参数:
  • msg (bool) – 如果为 False,则不显示日志

  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • options (list) – 传递给求解器的附加选项列表

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • maxNodes (int) – 分支过程中的最大节点数。达到此数目时停止求解。

  • threads (int) – 设置最大线程数

  • logPath (str) – 日志文件的路径

FSCIP_STATUSES = {'Final Solution': 1, 'No Solution': 0}
NO_SOLUTION_STATUSES = {-2, -1, 0}
actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name = 'FSCIP_CMD'
static parse_objective(string: str) float | None[源代码]
static parse_status(string: str) int | None[源代码]
static parse_variable(string: str) Tuple[str, float] | None[源代码]
static readsol(filename)[源代码]

读取 FSCIP 解决方案文件

pulp.apis.GLPK

GLPK_CMD 的别名

class pulp.apis.GLPK_CMD(path=None, keepFiles=False, mip=True, msg=True, options=None, timeLimit=None)[源代码]

基类:LpSolver_CMD

GLPK LP 求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • options (list) – 传递给求解器的附加选项列表

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name = 'GLPK_CMD'
readsol(filename)[源代码]

读取 GLPK 解决方案文件

class pulp.apis.GUROBI(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

Gurobi LP/MIP 求解器(通过其 Python 接口)

Gurobi 变量在求解后可通过 var.solverVar 访问,约束在 constraint.solverConstraint 中,模型在 prob.solverModel 中。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp, callback=None)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

env = None
name = 'GUROBI'
class pulp.apis.GUROBI_CMD(mip=True, msg=True, timeLimit=None, gapRel=None, gapAbs=None, options=None, warmStart=False, keepFiles=False, path=None, threads=None, logPath=None, mip_start=False)[源代码]

基类:LpSolver_CMD

GUROBI_CMD 求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • threads (int) – 设置最大线程数

  • options (list) – 传递给求解器的附加选项列表

  • warmStart (bool) – 如果为真,求解器将使用变量的当前值作为起点。

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

  • logPath (str) – 日志文件的路径

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
getOptions()[源代码]
name = 'GUROBI_CMD'
readsol(filename)[源代码]

读取 Gurobi 解决方案文件

writesol(filename, vs)[源代码]

写入一个 GUROBI 解决方案文件

class pulp.apis.HiGHS(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp, callback=None)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

name = 'HiGHS'
class pulp.apis.HiGHS_CMD(path=None, keepFiles=False, mip=True, msg=True, options=None, timeLimit=None, gapRel=None, gapAbs=None, threads=None, logPath=None, warmStart=False)[源代码]

基类:LpSolver_CMD

HiGHS_CMD 求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • options (list[str]) – 传递给求解器的附加选项列表

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径(您可以从 https://github.com/JuliaBinaryWrappers/HiGHS_jll.jl/releases 获取适用于您平台的二进制文件,或者从源代码编译 - https://highs.dev

  • threads (int) – 设置最大线程数

  • logPath (str) – 日志文件的路径

  • warmStart (bool) – 如果为真,求解器将使用变量的当前值作为起点。

SOLUTION_STYLE: int = 0
actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name: str = 'HiGHS_CMD'
readsol(filename)[源代码]

读取 HiGHS 解决方案文件

writesol(filename, lp)[源代码]

写入一个 HiGHS 解决方案文件

class pulp.apis.LpSolver(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:object

一个通用的线性规划求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualResolve(lp, **kwargs)[源代码]

使用现有的问题信息并解决问题。如果未在求解器中实现,则再次求解。

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

copy()[源代码]

制作自身的副本

getCplexStyleArrays(lp, senseDict=None, LpVarCategories=None, LpObjSenses=None, infBound=1e+20)[源代码]

返回适合传递给 cdll Cplex 或其他类似求解器的数组

版权所有 (c) Stuart Mitchell 2007

name = 'LpSolver'
solve(lp)[源代码]

解决 lp 问题

toDict()[源代码]
toJson(filename, *args, **kwargs)[源代码]
to_dict()
to_json(filename, *args, **kwargs)
class pulp.apis.LpSolver_CMD(path=None, keepFiles=False, *args, **kwargs)[源代码]

基类:LpSolver

一个通用的命令行线性规划求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list) – 传递给求解器的附加选项列表(格式取决于求解器)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • path (str) – 求解器二进制文件的路径

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • args – 传递给 LpSolver 的参数

  • kwargs – 传递给 LpSolver 的参数

copy()[源代码]

制作自身的副本

create_tmp_files(name, *args)[源代码]
defaultPath()[源代码]
delete_tmp_files(*args)[源代码]
static executable(command)[源代码]

检查求解器命令是否可执行,并返回其真实路径。

static executableExtension(name)[源代码]
name = 'LpSolver_CMD'
setTmpDir()[源代码]

将 tmpDir 属性设置为一个合理的临时目录位置

silent_remove(file: str | bytes | PathLike) None[源代码]
class pulp.apis.MIPCL_CMD(path=None, keepFiles=False, mip=True, msg=True, options=None, timeLimit=None)[源代码]

基类:LpSolver_CMD

MIPCL_CMD 求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • options (list) – 传递给求解器的附加选项列表

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name = 'MIPCL_CMD'
static readsol(filename)[源代码]

读取 MIPCL 解决方案文件

class pulp.apis.MOSEK(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

Mosek lp 和 mip 求解器(通过 Mosek 优化器 API)。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp, callback=None)[源代码]

解决一个形式良好的线性规划问题。

available()[源代码]

如果 Mosek 可用则为 True。

name = 'MOSEK'
class pulp.apis.PULP_CBC_CMD(mip=True, msg=True, timeLimit=None, gapRel=None, gapAbs=None, presolve=None, cuts=None, strong=None, options=None, warmStart=False, keepFiles=False, path=None, threads=None, logPath=None, timeMode='elapsed', maxNodes=None)[源代码]

基类:COIN_CMD

此求解器使用随包提供的预编译版 cbc

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • threads (int) – 设置最大线程数

  • options (list) – 传递给求解器的附加选项列表

  • warmStart (bool) – 如果为真,求解器将使用变量的当前值作为起点。

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

  • logPath (str) – 日志文件的路径

  • presolve (bool) – 如果为真,则添加预解。

  • cuts (bool) – 如果为真,则在探测时添加针对背包问题的 Gomory 割。

  • strong (bool) – 如果为真,则添加强调

  • timeMode (str) – “elapsed”: 计算墙钟时间到时间限制;”cpu”: 计算CPU时间

  • maxNodes (int) – 分支过程中的最大节点数。达到此数目时停止求解。

name = 'PULP_CBC_CMD'
pulp_cbc_path = '/Users/cw/baidu/code/fin_tool/github/pulp/pulp/solverdir/cbc/osx/64/cbc'
class pulp.apis.PYGLPK(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

glpk LP/MIP 求解器(通过其 Python 接口)

版权所有 Christophe-Marie Duquesne 2012

glpk 变量在求解后可在 var.solverVar 中获取。glpk 约束可在 constraint.solverConstraint 中获取。模型在 prob.solverModel 中。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp, callback=None)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

name = 'PYGLPK'
pulp.apis.Parser

ConfigParser 的别名

exception pulp.apis.PulpSolverError[源代码]

基类:PulpError

Pulp 求解器相关的异常

pulp.apis.SCIP

SCIP_CMD 的别名

class pulp.apis.SCIP_CMD(path=None, mip=True, keepFiles=False, msg=True, options=None, timeLimit=None, gapRel=None, gapAbs=None, maxNodes=None, logPath=None, threads=None)[源代码]

基类:LpSolver_CMD

SCIP 优化求解器

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list) – 传递给求解器的附加选项列表

  • keepFiles (bool) – 如果为真,文件将保存在当前目录中,并且在求解后不会被删除

  • path (str) – 求解器二进制文件的路径

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • gapAbs (float) – 求解器的绝对间隙容差以停止

  • maxNodes (int) – 分支过程中的最大节点数。达到此数目时停止求解。

  • threads (int) – 设置最大线程数

  • logPath (str) – 日志文件的路径

NO_SOLUTION_STATUSES = {-2, -1, 0}
SCIP_STATUSES = {'gap limit reached': 1, 'infeasible': -1, 'infeasible or unbounded': 0, 'memory limit reached': 0, 'node limit reached': 0, 'optimal solution found': 1, 'restart limit reached': 0, 'solution improvement limit reached': 0, 'solution limit reached': 0, 'stall node limit reached': 0, 'time limit reached': 0, 'total node limit reached': 0, 'unbounded': -2, 'unknown': -3, 'user interrupt': 0}
actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name = 'SCIP_CMD'
static readsol(filename)[源代码]

读取一个 SCIP 解决方案文件

class pulp.apis.SCIP_PY(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

SCIP 优化套件(通过其 Python 接口)

在调用solve后,SCIP的内部结构可以通过以下方式访问: - 每个变量在 variable.solverVar 中 - 每个约束在 constraint.solverConstraint 中 - 模型在 problem.solverModel 中

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

name = 'SCIP_PY'
class pulp.apis.XPRESS(mip=True, msg=True, timeLimit=None, gapRel=None, options=None, keepFiles=False, path=None, heurFreq=None, heurStra=None, coverCuts=None, preSolve=None, warmStart=False)[源代码]

基类:LpSolver_CMD

使用子进程中的 XPRESS 命令行工具的 XPRESS LP 求解器

初始化 Xpress 求解器。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • heurFreq – 启发式方法在树搜索中使用的频率

  • heurStra – 启发式策略

  • coverCuts – 顶部节点提升覆盖不等式的轮数

  • preSolve – 是否应在主算法之前执行预解

  • options – 添加更多选项,例如 options = [“NODESELECTION=1”, “HEURDEPTH=5”] 更多关于 Xpress 选项和控制参数的信息请参见 https://www.fico.com/fico-xpress-optimization/docs/latest/solver/optimizer/HTML/chapter7.html

  • warmStart (bool) – 如果为真,则使用当前变量值作为起点

actualSolve(lp)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

defaultPath()[源代码]
name = 'XPRESS'
static quote_path(path)[源代码]

通过将路径用双引号括起来并转义以下字符,为 Xpress 优化器控制台引用路径,这些字符否则会被 Tcl shell 解释:$ “

static readsol(filename, attrfile)[源代码]

读取一个 XPRESS 解决方案文件

writeslxsol(name, *values)[源代码]

编写一个SLX格式的解决方案文件。该函数可以将多个解决方案写入同一个文件,每个解决方案必须以(名称,值)对的列表形式传递。解决方案按指定顺序写入,并命名为“solutionN”,其中N是解决方案在列表中的索引。

参数:
  • name (string) – 文件名

  • values (list) – 列表的列表,包含 (名称, 值) 对

pulp.apis.XPRESS_CMD

XPRESS 的别名

class pulp.apis.XPRESS_PY(mip=True, msg=True, timeLimit=None, gapRel=None, heurFreq=None, heurStra=None, coverCuts=None, preSolve=None, warmStart=None, export=None, options=None)[源代码]

基类:LpSolver

使用 XPRESS Python API 的 XPRESS LP 求解器

初始化 Xpress 求解器。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • gapRel (float) – 求解器的相对间隙容差以停止(以分数表示)

  • heurFreq – 启发式方法在树搜索中使用的频率

  • heurStra – 启发式策略

  • coverCuts – 顶部节点提升覆盖不等式的轮数

  • preSolve – 是否应在主算法之前执行预解

  • warmStart (bool) – 如果设置,则使用当前变量值作为热启动

  • export (string) – 如果设置,模型将在求解前导出到此文件

  • options – 添加更多选项。这是一个列表,其元素要么是 (名称, 值) 对,要么是字符串 “名称=值”。更多关于 Xpress 选项和控制参数的信息,请参见 https://www.fico.com/fico-xpress-optimization/docs/latest/solver/optimizer/HTML/chapter7.html

actualResolve(lp, prepare=None)[源代码]

解决一个之前由 actualSolve() 解决的问题。

actualSolve(lp, prepare=None)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

buildSolverModel(lp)[源代码]

将 pulp lp 模型转换为 xpress 模型

callSolver(lp, prepare=None)[源代码]

从 actualSolve() 或 actualResolve() 执行实际求解。

参数:

prepare – 一个以 lp 为参数的函数,允许在低级求解开始之前对 lp.solverModel 进行最后的调整。

findSolutionValues(lp)[源代码]
getAttribute(lp, which)[源代码]

使用 actualSolve() 方法解决模型后,获取任意属性。

name = 'XPRESS_PY'
class pulp.apis.YAPOSIB(mip=True, msg=True, options=None, timeLimit=None, *args, **kwargs)[源代码]

基类:LpSolver

COIN OSI (通过其Python接口)

版权所有 Christophe-Marie Duquesne 2012

yaposib 变量在求解后可在 var.solverVar 中获取。yaposib 约束可在 constraint.solverConstraint 中获取。模型在 prob.solverModel 中。

参数:
  • mip (bool) – 如果为 False,即使存在整数变量,也假设为 LP。

  • msg (bool) – 如果为 False,则不显示日志

  • options (list)

  • timeLimit (float) – 求解器的最大时间(以秒为单位)

  • args

  • kwargs – 传递给每个求解器的可选命名选项,例如 gapRel=0.1, gapAbs=10, logPath=””,

actualSolve(lp, callback=None)[源代码]

解决一个良好定义的线性规划问题

available()[源代码]

如果求解器可用则为真

name = 'YAPOSIB'
pulp.apis.byref(C instance[, offset=0]) byref-object

返回一个类似于指针的C实例,仅可用作函数参数

pulp.apis.clock()

monotonic() -> float

单调时钟,不能倒退。

pulp.apis.configSolvers()[源代码]

在命令行上配置求解器的路径

设计用于在安装后从命令行配置求解器的文件位置

pulp.apis.coptstr(x)
pulp.apis.ctypesArrayFill(myList, type=<class 'ctypes.c_double'>)[源代码]

从Python列表类型创建一个ctypes的C数组,C数组的类型是

pulp.apis.getSolver(solver, *args, **kwargs)[源代码]

从其名称实例化解算器

参数:
  • solver (str) – 创建的求解器名称

  • args – 求解器的附加参数

  • kwargs – 求解器的额外关键字参数

返回:

类型为 LpSolver 的求解器

pulp.apis.getSolverFromDict(data)[源代码]

从包含其数据的字典实例化一个求解器

参数:

data (dict) – 一个字典,至少包含一个“solver”键,其值为要创建的求解器的名称

返回:

类型为 LpSolver 的求解器

抛出:

PulpSolverError – 如果字典中没有“solver”键

返回类型:

LpSolver

pulp.apis.getSolverFromJson(filename)[源代码]

从包含其数据的json文件实例化解算器

参数:

filename (str) – 要读取的json文件的名称

返回:

类型为 LpSolver 的求解器

返回类型:

LpSolver

pulp.apis.initialize(filename, operating_system='linux', arch='64')[源代码]

读取配置文件以初始化模块

pulp.apis.listSolvers(onlyAvailable=False)[源代码]

列出 PuLP 中所有现有的求解器名称

参数:

onlyAvailable (bool) – 如果为真,仅显示可用的求解器

返回:

求解器名称列表

返回类型:

list

pulp.apis.mktemp(suffix='', prefix='tmp', dir=None)[源代码]

用户可调用的函数,用于返回一个唯一的临时文件名。文件不会被创建。

参数类似于 mkstemp,除了不接受 ‘text’ 参数,并且不支持 suffix=None、prefix=None 和字节文件名。

此函数不安全,不应使用。文件名可能指向某个时间点不存在的文件,但当你准备创建它时,可能已经有人抢先一步了。

pulp.apis.setConfigInformation(**keywords)[源代码]

在配置文件中设置数据目前只会编辑 [locations] 部分的内容,关键字值对来自关键字字典。

pulp.apis.to_string(_obj)
pulp.apis.uuid4()[源代码]

生成一个随机的UUID。