常用求解器安装

1 建模语言pyomo

Pyomo是一个Python建模语言,用于数学优化建模。它可以与不同的求解器(如Gurobi,CPLEX,GLPK,SCIP等)集成使用,以求解各种数学优化问题。可以使用Pyomo建立数学优化模型,并将其发送到求解器来求解。要使用SCIP求解器,您需要安装SCIP软件包并将其配置为Pyomo的求解器之一。然后,您可以在Pyomo中指定SCIP作为您的求解器,并使用Pyomo接口将模型发送到SCIP以求解。

另外,Pyomo可以使用启发式算法来求解优化问题。Pyomo提供了一个插件pyomo.contrib.hybrid,它允许用户将Pyomo模型与任何启发式算法集成。您可以使用以下步骤在Pyomo中调用启发式算法:

(1)安装所需的启发式算法库,例如Particle Swarm Optimization(PSO),Simulated Annealing(SA)或Tabu Search(TS)。
(2)在Pyomo模型中定义目标函数和约束条件。
(3)使用pyomo.contrib.hybrid插件将Pyomo模型转换为适合启发式算法求解的问题。
(4)使用所选的启发式算法库来求解转换后的问题。

pyomo教程:

  • https://jckantor.github.io/ND-Pyomo-Cookbook/notebooks/04.01-Introduction_to_Disjunctive_Programming.html

2 求解器安装

cplex安装

商用求解器

进入https://www.ibm.com/cn-zh/products/ilog-cplex-optimization-studio?utm_content=SRCWW&p1=Search&p4=43700074800244505&p5=2&gclid=CMa2nZ7KooEDFXNDwgUd1t0KIg&gclsrc=ds 下载试用版

https://blog.csdn.net/weixin_46034036/article/details/126813229?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169443599016800211562125%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=169443599016800211562125&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-126813229-null-null.142v93control&utm_term=cplex%20python&spm=1018.2226.3001.4187

  • cplex22.1.1
    打开anaconda cmd
conda create -n cplexEnv python=3.9.16
activate cplexEnv
D:
cd D:\Program Files\IBM\ILOG\CPLEX_Studio_Community2211\python
python setup.py install

这里直接安装在了base环境(python3.9),安装后,测试一下

from docplex.mp.model import Model
m = Model(name='single variable')
x = m.continuous_var(name="x", lb=0)
c1 = m.add_constraint(x >= 2, ctname="const1")
m.set_objective("min", 3*x)
m.print_information()
m.solve()
m.print_solution()

gurobi安装

商用求解器

reference:https://blog.csdn.net/weixin_41596280/article/details/89112302

  • 打开https://www.gurobi.com/downloads/,注册账号后,下载Gurobi Optimizer
    常用求解器安装_第1张图片
    常用求解器安装_第2张图片

  • 下载64位msi,然后安装

  • 注册Gurobi 获取注册码 学术的是免费的,由于申请时会识别ip地址,所以需要连接校园网。免ip申请方式:

    如果您是学生,需要申请学术许可,请去 http://www.gurobi.cn/NewsView1.Asp?id=4 网站按照步骤提示,提交资料申请一个免IP 验证学术许可。

    如果您是企业人士,需要申请商业试用许可,或者商业资料,请去 http://www.gurobi.cn/NewsView1.Asp?id=9 , 填写表格后从公司邮箱发给我们。

    常用求解器安装_第3张图片

  • python安装Gurobi

    打开anaconda cmd

    conda create -n gurobiEnv python=3.9.16
    activate gurobiEnv
    D:
    cd D:\gurobi1002\win64
    python setup.py install
    

glpk安装

reference:https://pyomo.readthedocs.io/en/stable/installation.html

conda install -c conda-forge ipopt glpk

SCIP安装

reference:

https://mp.weixin.qq.com/s/d92ds2wryk0T1lb2uPu_PA

http://www.taodudu.cc/news/show-3777585.html?action=onClick

https://github.com/scipopt/PySCIPOpt/blob/master/INSTALL.md

  • 打开https://scipopt.org/index.php#download,下载64位exe,然后一路往下点,改存储文件夹。

  • 还需要下载visual C++的一个东西:https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2013-vc-120

    常用求解器安装_第4张图片

    常用求解器安装_第5张图片

  • 新建系统变量:

    • 变量名:SCIPOPTDIR
    • 变量值:D:\Program Files\SCIPOptSuite 8.0.4
  • 在系统变量的path中添加“%SCIPOPTDIR%\bin”,“%SCIPOPTDIR%\include”,“%SCIPOPTDIR%\lib”

  • 在用户变量的path中添加“%SCIPOPTDIR%\bin”

  • 看看自己添加成功否,win+R打开 cmd,输入 scip.exe,如果可以打开,说明变量成功添加到路径里了。

  • activate opt
    python -m pip install pyscipopt==4.3.0 # python-V=3.9.16
    

SCIP小例子

min ⁡ x + y 2 x − y 2 ≥ 0 x ≥ 0 , y ∈ Z \min x+y\\ 2x - y^2\geq 0\\ x\geq 0,y\in \Z minx+y2xy20x0,yZ

import pyscipopt
from pyscipopt import Model

"""
min x+y
2x - y^2 >=0
x>=0, y\in \Z

"""


if __name__ == '__main__':
    model = Model("Example")
    x = model.addVar("x")
    y = model.addVar("y", vtype="INTEGER")
    model.setObjective(x + y)
    model.addCons(2*x - y*y >= 0)
    model.optimize()
    sol = model.getBestSol()
    print("x: {}".format(sol[x]))
    print("y: {}".format(sol[y]))

你可能感兴趣的:(scip,gurobi)