GUROBI之数学启发式算法Matheuristics

参考运小筹的帖子:优化求解器 | Gurobi 数学启发式算法:参数类型与案例实现 - 知乎 (zhihu.com)

      简言之,数学启发式是算法就是数学规划和启发式算法的融合,与元启发式算法相比,数学启发式算法具有更强的理论性。

       在GUROBI求解器中,整体算法框架依然是数学规划算法,只是在其中的某些环节采用了启发式算法以更快获得可行解来加速算法收敛。

GUROBI求解MIP问题默认的框架是branch and cut,但是在 branch and cut tree 的探索中,在每个节点处,会调用30多种启发式算法,用于快速获得高质量的整数可行解,进而加速上界(min 问题)的更新Gap的收敛。此外,每个节点上也会调用二十多种 cutting plane 算法来生成割平面,收紧模型,逼近该节点的可行域的凸包,收紧下界。

以一个MIP问题的求解日志来说明GUROBI中的数学启发式算法:使用默认的求解方式,得到的求解日志如下:

presolve:代表在正式求解前对模型进行预处理,对模型进行简化

Incument:当前找到的最好的可行解

H 标注的代表使用启发式算法找到了新的可行整数解:红色框的一栏表示使用启发式算法找到了初始可行解462.2,此时算法找到的下界是357.53333,因此此时的gap为22.5%,求解历时1秒

* 标注的代表使用经典割平面法且找到了新的可行整数解

可见,GUROBI默认的求解过程中多次使用了数学启发式算法。

通过设置求解参数,我们也可以改变GUROBI求解过程中的一些细节:

model = read("VRPTW_r102_20_5.mps")
model.optimize()   #  不设置参数,默认方式求解


model = read("VRPTW_r102_20_5.mps")
model.setParam("MIPFocus", 1)   #  设置MIPFocus参数,具体含义见原帖
model.optimize()


model = read("VRPTW_r102_20_5.mps")
model.setParam("Heuristics", 0)  # 设置Heuristics参数
model.optimize()


model = read("VRPTW_r102_20_5.mps")
model.setParam("ZeroObjNodes",100)
model.optimize()

model = read("VRPTW_r102_20_5.mps")
model.setParam("PumpPasses",1000)
model.optimize()

model = read("VRPTW_r102_20_5.mps")
model.setParam("RINS",1000)
model.optimize()

总结:个人感觉针对不同的问题可能适合不同的参数设置,但更多的可能依靠的是经验值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++初阶

1.缺省参数 给缺省参数的时候,不能声明,定义同时给,只能声明的时候给缺省参数,同时给程序报错; 2.函数重载 C语言不允许同名函数的存在,函数名不能相同,C引入函数重载,函数名可以…

SOLIDWORKS 2024新版价格 SOLIDWORKS2024专业版白金版多少钱?

达索 SOLIDWORKS 一直以来都致力于让每位设计师和工程师的设计都触手可及。SOLIDWORKS贯彻的使命就是通过功能强大且易于使用的产品开发解决方案,在创造、协作和提供创新的产品体验方面助您一臂之力。SOLIDWORKS 2024延续了这一期望,同时开启了强化使用S…

Altium Designer快速入门及项目实战教程之PCB设计(四)

一、引言 在我们的Altium Designer系列教程中,我们已经一起走过了软件界面的初识、原理图的绘制,以及元件库的建立。今天,我们将进入这一系列教程的高潮部分——PCB设计。 PCB设计不仅是电子产品开发过程中的核心,也是检验一个电…

Maven项目添加依赖

maven仓库:Maven Repository: Search/Browse/Explore (mvnrepository.com) 1.在maven仓库中搜素自己想要的依赖,选择合适的版本号,复制以下内容(依赖坐标)。 2.在pom.xml中把复制的粘贴进去。刷新。(注意内容要放在dependencies双…

修改表结构

目录 修改表结构 创建数据表插入数据 修改已有列 修改 member 表的 name 列的定义 为表增加列 增加一个 address 列,这个列上不设置默认值 增加一个 sex 列,这个列上设置默认值 删除表中的列 删除 sex 列 Oracle从入门到总裁:​​​​​​https…

西门子PLCS7-1200位逻辑指令的使用

1.LAD触点 常开触点的位值为1时,常开触点将闭合(ON)。位值为0时,常开触点将闭合(OFF)。 常闭触点的位值为1时,常闭触点将闭合(OFF)。位值为0时,常闭触点将闭…

一文掌握mysql中的查询语句

目录 1. 聚合查询1.1 聚合函数1.2 GROUP BY子句1.3 HAVING 2. 联合查询2.1 内连接2.2 外连接2.3 自连接2.4 子查询2.5 合并查询 1. 聚合查询 1.1 聚合函数 常见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有: 函…

从0到1:如何用AI完成高质量的科研论文写作?

人工智能革命:如何让聊天机器人更懂你 人工智能正在以其强大的数据处理和语言生成能力改变世界。在学术界,大语言模型(LLM)为科学交流带来了一种新的工具。我们旨在有效地将AI工具与学术写作相结合,以更有效和更有影响…

关于图在推荐系统中的研究

业界最新的论文 Intent-aware Recommendation via Disentangled Graph Contrastive Learning 作者:Yuling Wang, Xiao Wang, Xiangzhou Huang, Yanhua Yu, Haoyang Li, Mengdi Zhang, Zirui Guo, Wei Wu 地址:https://arxiv.org/abs/2403.03714 论文…

Java毕业设计-基于spring boot开发的实习管理系统-毕业论文+答辩ppt(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、前台功能模块2、后台功能模块2.1 管理员功能2.2 教师功能2.3 学生功能2.4 实习单位功能 四、毕设内容和源代码获取总结 Java毕业设…

Ps:清理

清理 Purge命令位于“编辑”菜单下,它主要用于释放 Photoshop 使用的内存资源,有助于提高系统的性能。 通过使用“清理”命令,用户可以有效管理 Photoshop 的资源使用,特别是在处理大型文件或进行长时间编辑会话时。 定期清理可以…

科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法

知网链接 一种修正评分偏差并精细聚类中心的协同过滤推荐算法 - 中国知网 (cnki.net) 摘要 协同过滤作为国内外学者普遍关注的推荐算法之一,受评分失真和数据稀疏等问题影响,算法推荐效果不尽如人意。为解决上述问题,本文提出了一种改进的聚类…

web项目的搭建

使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm,可能会导致原本的idea失效,注册码过期 3、taobao的npm过期,导致npm is sass执行不成功,需…

openAI key 与ChatGPTPlus的关系,如何升级ChatGPTPLus

一、前言 先详细介绍一下Plus会员和Open API之间的区别: 实际上,这两者是相互独立的。举例来说,虽然您开通了Plus会员,并不意味着您就可以使用4.0版本的API。尽管这两个账户可以是同一个,但它们是完全独立的平台。 …

Linux信号机制(二)

目录 一、信号的阻塞 二、信号集操作函数 三、sigprocmask函数 四、pause函数 五、sigsuspend函数 一、信号的阻塞 有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。…

媒体单位专用小记者报名及各类活动报名系统介绍

媒体单位专用小记者报名及各类活动报名系统介绍 小记者活动鼓励孩子们关注生活和社会,丰富成长体验,开启心智,淬砺思想。这不仅有助于提高他们的理性思辨力,还能培养他们的社会责任感和公民意识。小记者活动为学生提供了一个全新…

[密码学]OpenSSL实践篇

背景 最近在写Android abl阶段fastboot工具,需要我在Android代码中实现一些鉴权加解密相关的fastboot命令,里面用到了OpenSSL。我们先来实践一下OpenSSL在Linux系统中的指令。 OpenSSL官方网站:OpenSSL 中文手册 | OpenSSL 中文网 1. 查看…

VMware下创建虚拟机

Centos7是比较常用的一个Linux发行版本,在国内的使用比例比较高 安装完VMware一定要检查虚拟网卡有没有安装成功,如果没有VMnet1和VMnet8 虚拟机是无法上网的,就需要卸载重启电脑重新安装 控制面板—网络和Internet—网络连接 快捷方式打开&a…

【原创】[新增]ARCGIS之土地报备Txt、征地Xls格式批量导出Por旗舰版

一、软件简介 2024年新增旗舰版软件,本软件全新界面开发,保留原有软件功能及一些使用习惯,并集成了现已有的所有定制格式的支持,并增加自定义格式的导出;做到1N2(即为1种通用版本N种定制格式导出txt、Xls&a…

牛客Highway

题目大意 在ICPCCamp中,有n个方便编号的城镇,编号为1,2,...,n,它们之间通过(n-1)条道路相连。连接第i个城镇a_i和b_i的道路的长度为c_i。保证任意两座城市之间只能通过道路到达。 Bobo希望修建(n-1&#…