背景介绍
公司最近有算法项目(python3.6)需要部署在centos7服务器上,经过跟算法工程师沟通发现,部署算法项目有一个特别重要的东西就是求解器,本项目中用到了两个求解器cplex和scip,scip已经在另一篇博客中已经介绍 ,本文重点介绍cplex安装。
安装求解器算法工程师给了一个测试求解器demo如下:
# encoding=utf-8
import numpy as np
import pandas as pd
from pyomo.environ import *
import pyutilib.subprocess.GlobalData
pyutilib.subprocess.GlobalData.DEFINE_SIGNAL_HANDLERS_DEFAULT = False
def object_func(model):
return model.x + model.y
def constraint_01(model):
return model.x * model.y >= 10
model = ConcreteModel(name="cplex_test")
model.x = Var(bounds=(1,5),within=NonNegativeReals,initialize=1)
model.y = Var(bounds=(1,5),within=NonNegativeReals,initialize=1)
model.cons = ConstraintList()
model.cons.add(constraint_01(model))
model.obj = Objective(rule=object_func, sense=maximize)
#求解器路径(此处为windows下求解器路径,linux环境下安装好以后需要修改此路径)
solver_path = 'D:\\software\\solvers\\cplex\\cplex'
opt = SolverFactory('cplex', executable=solver_path)
results = opt.solve(model, tee=True)
results.write()
print(model.x.value)
print(model.y.value)
下载地址
此处简单说明一下 ,由于cplex属于收费软件,本人在网上找了一个cplex_studio1210.linux-x86-64.bin 安装包(此安装包属于学术版)并且上传到CSDN下载里,有需要的可以去下面链接进行下载
安装jdk
cplex求解器需要java环境,所以安装cplex之前需要先安装jdk,安装jdk网上资料特别多,经过测试通过源码安装或者通过命令安装openjdk都可以。
安装jre:
yum install java-1.8.0-openjdk
安装jdk:
yum install java-1.8.0-openjdk-devel
合并命令:
yum -y install java-1.8.0-openjdk*
创建目录修改权限
#创建目录cplex并上传安装包
mkdir cplex
#修改权限
chmod u=rwx,g=rwx,o=rx cplex_studio1210.linux-x86-64.bin
安装cplex
./cplex_studio1210.linux-x86-64.bin
安装过程中会出现提示,这里简单介绍下
- 语言选择
输入: 1(English)回车(经测试两种语言都可以)
- 介绍
输入: 回车
- 接受协议
输入: 回车
- 填写安装的绝对路径
输入: /root/cplex/cplex(此处根据自己的需求进行更改) 回车 ,接下来还有几个需要 回车 需要确认安装,此处需要注意的是安装需要的空间大概为2G左右,必须保证磁盘空间足够大。
- Installing the engines in your Python environment(安装引擎到python环境)
输入: python /root/cplex/cplex/python/setup.py install
(安装引擎到python环境,此步骤也可以不输入) 回车
- Improve the product(用户信息反馈)
输入: NO 回车
- 安装成功确认退出
输入: 回车
配置环境变量
打开.bashrc文件
vi ~/.bashrc
在文件中添加环境变量 :
export PATH=$PATH:/root/cplex/cplex/cplex/bin/x86-64_linux/:/root/cplex/cplex/cpoptimizer/bin/x86-64_linux/
保存退出
刷新环境变量配置配置:
source ~/.bashrc
测试
命令行测试
# 我的安装路径为/root/cplex/cplex
cplex -c read /root/cplex/cplex/cplex/examples/data/afiro.mps
如果出现以下结果表示安装成功:
pyhon测试代码测试
- requirements.txt
numpy
pandas
pyomo
pyutilib
- 安装依赖
pip3 install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple -r requirements.txt
- 修改solver_path路径
根据上文的测试demo,修改其中的solver_path的路径为:
/root/cplex/cplex/cplex/bin/x86-64_linux/cplex
- python命令
python3 cplex_text.py
如果得到以下结果说明安装成功: