常用求解器安装

news2025/1/1 22:41:04

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
    请添加图片描述
    请添加图片描述

  • 下载64位msi,然后安装

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

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

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

    请添加图片描述

  • 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

    请添加图片描述

    请添加图片描述

  • 新建系统变量:

    • 变量名: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]))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔试强训选择题

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻Day7 👉&#x…

抖音seo源码开发部署市场分析及注意事项分享---SaaS开源

抖音seo源码开发部署市场背景分析 对于抖音SEO源码开发部署的背景分析,可以从以下几个方面来展开: 抖音平台的发展和趋势:随着移动互联网的快速发展,抖音作为短视频领域的领军企业,其用户规模和市场规模也在不断扩大。…

2023年中国电容炭受益于超级电容器需求及进口替代双重驱动,行业呈快速增长态势[图]

电容炭是目前在超级电容器领域实现商业化应用的最为主要的电极材料。电容炭具有“三高三低”的优势,即高比表面积、高孔容、高电导率、低灰分、低金属离子、低粒径,是超级电容电极的核心材料。 电容炭是超级电容器的电极材料。电容炭指标关系着超级电容器…

Vue 识别移动设备还是PC设备跳转相应的路由

1. 先在router/index.js文件中配置好不同端口跳转的路由 import Vue from vue import VueRouter from vue-router// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单报错问题 const originalPush VueRouter.prototype.push VueRouter.prototype.push function pu…

GitHub要求开启2FA,否则不让用了。

背景 其实大概在一个多月前,在 GitHub 网页端以及邮箱里都被提示:要求开启 2FA ,即双因子认证;但是当时由于拖延症和侥幸心理作祟,直接忽略了相关信息,毕竟“又不是不能用”。。 只到今天发现 GitHub 直接…

超越日历的智慧:探索节日节气、宜忌和星座生肖等信息的万年历API

引言 当今社会,人们对时间的需求不仅仅是简单地知道日期,更多地是追求个性化、文化化和精确化的时间信息。在这个背景下,万年历API变得越来越重要,因为它可以提供超越传统日历的智慧,为我们带来了丰富的日期信息&…

JVM篇---第十篇

系列文章目录 文章目录 系列文章目录一、对象头具体都包含哪些内容?二、你知道哪些JVM调优参数?三、说一下 JVM 有哪些垃圾回收器?一、对象头具体都包含哪些内容? 在我们常用的Hotspot虚拟机中,对象在内存中布局实际包含3个部分: 对象头实例数据对齐填充 而对象头包含两…

ESD门禁闸机的使用说明

ESD门禁闸机是一种用于控制静电敏感区域人员出入的门禁设备,具有防静电和防电磁干扰的功能。以下是ESD门禁闸机的使用方法: 门禁卡或密码的获取:员工需要在公司或部门领取门禁卡或设置个人密码,方可进入静电敏感区域。 门禁卡或…

2023年中国CEM-3型覆铜板市场供需现状、销售收入及行业趋势分析[图]

CEM-3指覆铜板的一种,以玻纤布半固化片与玻纤粘半固化片层压铜箔达到固化形成的板材,属于复合型基材,CEM-3由于其良好的加工性能主要用于FR-4中厚板的替代,有着良好的发展前景。 随着CEM-3覆铜板品质的不断改进和提高,…

如何领取京东优惠券用微信支付还是用支付宝支付购买商品?

京东用微信支付还是用支付宝支付? 京东商城购物不支持支付宝支付,现京东商城支持的支付方式包括:京东支付、银行卡、信用卡、微信支付、云闪付等; 京东如何领取优惠券用微信支付购物? 1、打开京东APP,挑选…

程序员副业大揭秘:如何利用技术优势实现财富自由?

文章目录 为什么考虑副业?1. 多样化的收入来源2. 财务自由3. 技能提升4. 创业机会 如何选择适合的副业?1. 利用技术优势2. 兴趣和激情3. 市场需求4. 时间管理 实际操作:从副业想法到实际项目1. 制定计划2. 学习和发展技能3. 建立在线存在4. 寻…

Spring在业务中常见的使用方式

目录 通过IOC实现策略模式 通过AOP实现拦截 通过Event异步解耦 通过Spring管理事务 通过IOC实现策略模式 很多时候,我们需要对不同的场景进行不同的业务逻辑处理举个例子,譬如不同的场景需要不同支付方式,普通的逻辑是使用if-else&#x…

获取西华大学新闻网站信息(爬虫样例)

利用python的爬虫功能进行信息爬取,关键在于源码分析,代码相对简单。 1 源代码分析 访问网站,按下F12,进行元素查找分析。 2 代码实现 from requests import get from bs4 import BeautifulSoupdef getXhuNews(pageNum1):&qu…

一个好用的k8s代理工具——KtConnect

介绍 KtConnect实现了开发者本地运行的服务与Kubernetes集群中的服务之间的双向互通。 核心功能 本地直接访问Kubernetes集群内网 通过KtConnect可以直接连接Kubernetes集群内部网络,在不修改代码的情况下完成本地联调测试 本地解析Kubernetes服务内网域名 直…

【postgresql】ERROR: integer out of range

查询文章都类似,只是类型没有对应上,根据实际情况处理。 前情 使用postgresql数据库数据库ID类型int4实体类代码private Long id; 异常 ### Cause: org.postgresql.util.PSQLException: ERROR: integer out of range ; ERROR: integer out of range;…

【Acwing187】导弹防御系统(LIS+剪枝+贪心+dfs+迭代加深)

题目描述 看本文需要准备的知识 1.最长上升子序列(lis)的算法思想和算法模板 2.acwing1010拦截导弹(lis贪心)题解 本题题解,需要知道这种贪心算法 3.简单了解dfs暴力搜索、剪枝、搜索树等概念 思路讲解 dfs求最…

VuePress实现自动获取文章侧边栏目录功能

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…

微信小程序之本地生活(九宫格)

文章目录 一.创建项目二.配置修改json三.编写WXML四.编写WXSS五.最终效果 一.创建项目 创建新的项目&#xff0c;名称为&#xff1a;本地生活 二.配置修改json 在app.json中删除其他页面 将index改为grid 自动生成新的文件 添加自己的轮播图片 源代码&#xff1a; <!--…

Spark Streaming与流处理

1.流处理 1.1 静态数据处理 在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop 采用 HDFS 进行数据存储,采用 MapReduce 进行数据查询或分析,这就是典型的静态数据处理架构。…

c++视觉---使用轨迹条设置图片的对比度,亮度

轨迹条&#xff1a;cv::createTrackbar cv::createTrackbar 是OpenCV库中的一个函数&#xff0c;用于创建一个图形用户界面 (GUI) 中的滑动条控件&#xff0c;允许用户在应用程序运行时调整特定参数的值。这个函数的调用方式如下&#xff1a; int cv::createTrackbar(const s…