背景介绍

      公司最近有算法项目(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. 语言选择

       输入: 1(English)回车(经测试两种语言都可以)

  1. 介绍

       输入: 回车

  1. 接受协议

       输入: 回车

  1. 填写安装的绝对路径

       输入: /root/cplex/cplex(此处根据自己的需求进行更改) 回车 ,接下来还有几个需要 回车 需要确认安装,此处需要注意的是安装需要的空间大概为2G左右,必须保证磁盘空间足够大。

  1. Installing the engines in your Python environment(安装引擎到python环境)

       输入: python /root/cplex/cplex/python/setup.py install
(安装引擎到python环境,此步骤也可以不输入) 回车

  1. Improve the product(用户信息反馈)

       输入: NO 回车

  1. 安装成功确认退出

       输入: 回车

配置环境变量

打开.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

如果出现以下结果表示安装成功:

centos7中atq与ps的区别_python

pyhon测试代码测试

  1. requirements.txt
numpy
pandas
pyomo
pyutilib
  1. 安装依赖
pip3 install  --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple -r requirements.txt
  1. 修改solver_path路径
    根据上文的测试demo,修改其中的solver_path的路径为:
/root/cplex/cplex/cplex/bin/x86-64_linux/cplex
  1. python命令
python3 cplex_text.py

如果得到以下结果说明安装成功:

centos7中atq与ps的区别_linux_02