栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【笔记】安装CPLEX+pycharm,测试cplex和gurobi

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【笔记】安装CPLEX+pycharm,测试cplex和gurobi

最新最易上手IntelliJ IDEA配置CPLEX详细步骤_寒冢人家的博客-CSDN博客_cplex1263本站上关于Java IDE进行线性规划求解问题的文章非常少,对于CPLEX求解器的安装和使用也很难找到保姆级步骤说明,鉴于此,笔者在探索java求解线性规划问题的准备阶段,也遇到了一些问题,在此将安装成功的经验介绍如下:一、CPLEX安装1.CPLEX安装包下载由于IBM公司的ILOG CPLEX Optimization Studio是收费的,即使在官网上下载免费的学术版也需要使用你单位(或学校)的邮箱,而且你的你的单位必须在IBM上注册过域名,否则也无法下载,所以这里给出笔者千辛万苦下好的1https://blog.csdn.net/weixin_52459924/article/details/123615165?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165280109516781683993822%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165280109516781683993822&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-22-123615165-null-null.142%5Ev10%5Epc_search_result_control_group,157%5Ev4%5Econtrol&utm_term=ilog+cplex+optimization&spm=1018.2226.3001.4187cplex python安装及入门_VickyVivan的博客-CSDN博客_cplex python安装cplex python安装及入门1. cplex安装2. cplex学习资源3. 百度网盘资源笔者最近学习cplex,从安装到入门走了不少弯路,现在提供一个相对全面的cplex学习博文。1. cplex安装可以参考这篇博文DOcplex系列(二)——怎样成功安装和调用学术版DOcplex里面介绍了学术版cplex的安装以及在python下的调用。学术版cplex12.8网盘资源将在文末提供该文仅介绍了在python下的安装。因为anaconda统一管理包更方便,而pycharm直接使用这些包即https://blog.csdn.net/VickyVivan/article/details/116430220?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165280134916782390513169%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165280134916782390513169&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-116430220-null-null.142%5Ev10%5Epc_search_result_control_group,157%5Ev4%5Econtrol&utm_term=ilog+cplex+optimization%2Bpycharm&spm=1018.2226.3001.4187

 cplex:链接:https://pan.baidu.com/s/1g0fmMdpgk4fP-px8sG8eKg
提取码:kr85

测试gurobipy

from gurobipy import *

try:

    # Create a new model
    m = Model("mip1")

    # Create variables
    x = m.addVar(vtype=GRB.BINARY, name="x")
    y = m.addVar(vtype=GRB.BINARY, name="y")
    z = m.addVar(vtype=GRB.BINARY, name="z")

    # Set objective
    m.setObjective(x + y + 2 * z, GRB.MAXIMIZE)

    # Add constraint: x + 2 y + 3 z <= 4
    m.addConstr(x + 2 * y + 3 * z <= 4, "c0")

    # Add constraint: x + y >= 1
    m.addConstr(x + y >= 1, "c1")

    m.optimize()

    for v in m.getVars():
        print(v.varName, v.x)

    print('Obj:', m.objVal)

except GurobiError:
    print('Error reported')

测试cplex

 

# -*- coding: utf-8 -*-
# The MIP problem solved in this example is:
#
#   Maximize  x1 + 2 x2 + 3 x3 + x4
#   Subject to
#      - x1 +   x2 + x3 + 10 x4 <= 20
#        x1 - 3 x2 + x3         <= 30
#               x2      - 3.5x4  = 0
#   Bounds
#        0 <= x1 <= 40
#        0 <= x2
#        0 <= x3
#        2 <= x4 <= 3
#   Integers
#       x4

import cplex
from cplex.exceptions import CplexError

# data common to all populateby functions
my_obj = [1.0, 2.0, 3.0, 1.0]
my_ub = [40.0, cplex.infinity, cplex.infinity, 3.0]
my_lb = [0.0, 0.0, 0.0, 2.0]
my_ctype = "CCCI"
my_colnames = ["x1", "x2", "x3", "x4"]
my_rhs = [20.0, 30.0, 0.0]
my_rownames = ["r1", "r2", "r3"]
my_sense = "LLE"


def populatebyrow(prob):
    prob.objective.set_sense(prob.objective.sense.maximize)

    prob.variables.add(obj=my_obj, lb=my_lb, ub=my_ub, types=my_ctype,
                       names=my_colnames)

    rows = [[["x1", "x2", "x3", "x4"], [-1.0, 1.0, 1.0, 10.0]],
            [["x1", "x2", "x3"], [1.0, -3.0, 1.0]],
            [["x2", "x4"], [1.0, -3.5]]]

    prob.linear_constraints.add(lin_expr=rows, senses=my_sense,
                                rhs=my_rhs, names=my_rownames)


try:
    my_prob = cplex.Cplex()
    handle = populatebyrow(my_prob)
    my_prob.solve()

except CplexError as exc:
    print(exc)

print()
# solution.get_status() returns an integer code
print("Solution status = ", my_prob.solution.get_status(), ":", end=' ')
# the following line prints the corresponding string
print(my_prob.solution.status[my_prob.solution.get_status()])
print("Solution value  = ", my_prob.solution.get_objective_value())

numcols = my_prob.variables.get_num()
numrows = my_prob.linear_constraints.get_num()

slack = my_prob.solution.get_linear_slacks()
x = my_prob.solution.get_values()

print('x: ')
print(x)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915979.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号