
运筹优化求解器
文章平均质量分 82
OR-Tools 是谷歌开发的用于组合优化的开源软件,为寻求相关数学问题的解决方案,如车辆路线、流程、整数和线性规划等。
莫聽穿林打叶聲
Code is cheap, show me the prompt.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python调用Gurobi求解器日志解析
【代码】Python调用Gurobi求解器日志解析。原创 2025-06-05 15:21:00 · 344 阅读 · 0 评论 -
指示约束与Big-M法线性化的Gurobi语法与常见报错
>>是 Gurobi 中用于定义条件约束的关键操作符。它通过二元变量的取值动态激活/禁用约束,非常适合建模具有逻辑分支的优化问题(如你的库存平衡方程)。使用时需确保二元变量和约束的线性性符合要求。原创 2025-04-02 14:01:12 · 498 阅读 · 0 评论 -
使用Gurobi优化求解器查看数学模型冲突约束
使用生成.ilp文件,查看最小不可行子系统。使用放松约束,找到需要调整的约束或变量。手动检查模型设置,确保变量和约束合理。查看日志和调试工具的输出,辅助诊断问题。通过这些方法,可以快速定位模型不可行的原因并修复问题。原创 2025-02-13 20:58:25 · 1256 阅读 · 0 评论 -
Gurobi学术版集成Anaconda环境配置步骤(win11)
step1:获得学术许可,点击网址进入https://support.gurobi.com/hc/en-us/articles/13210193318033-What-is-an-Academic-WLS-license,点击红框链接,用学校邮箱注册账号。注意:在anaconda虚拟环境中安装gurobi库是不需要在本地下载gurobi这个软件的,只需要。然后就得到了grbgetkey,记住这个key,后面会用到,至此学术许可申请成功。step2:激活某一虚拟环境step3:执行。step7:安装结束。原创 2024-11-13 21:43:24 · 1690 阅读 · 0 评论 -
列式建模&列生成的求解器API语法使用
列式建模(Column-wise Modeling)的概念来源于数学规划问题的矩阵观。从一个只有行但没有列的(退化的)约束矩阵开始,通过向其添加列来填充它。约束矩阵的列对应于变量。原创 2021-04-01 10:25:13 · 658 阅读 · 0 评论 -
基于列生成算法的切料问题建模求解
列生成广泛应用于大规模整数规划问题的求解中,尤其在装箱和切割问题、并行机调度问题、车辆路线问题的相关研究中。另外列生成算法也被用于乘务员调度、通信网络中的信道分配、多商品流等问题的研究中。(Gilmore and Gomory,1961年)首次将列生成技术用于求解一维切割问题(Cutting Stock Problem);(Desrosiers et al,1984)将列生成与分支定界结合以求解带时间窗的车辆路径问题;事实上,列生成得以广泛应用在于其求解(混合)整数规划问题所表现的卓越性能。原创 2021-04-29 13:15:44 · 1111 阅读 · 1 评论 -
OR-Tools求解器(CBC,Coin-or branch and cut)日志解读
表示求解器找到了一个整数解,目标函数值为 9.1208831e+08(即 912088310)。0 iterations:表示求解器在找到整数解之前没有进行任何迭代。0 nodes:表示求解器在找到整数解之前没有探索任何节点。求解器通常会在整数间隙小于某个阈值时停止求解,因为此时认为已经找到了足够接近最优解的解。扰动是求解器在处理数值稳定性问题时常用的一种技术,通过对问题的系数进行微小的调整来避免数值不稳定性。括号中的数字表示不满足的约束数量。表示求解器找到了一个最优解,目标函数值为 24123912。原创 2024-06-08 00:09:20 · 1949 阅读 · 0 评论 -
OR-Tools求解器参数控制
相对MIP间隙(Relative MIP Gap):相对 MIP 间隙是指当前最优整数解(可行解)与当前最优松弛解(忽略整数约束的解)之间的相对差距。∣∣∣−∣相对 MIP 间隙的值通常是一个百分比,用来衡量当前解与最优解之间的相对差距。求解器会在相对 MIP 间隙小于设定的阈值时停止求解。绝对 MIP 间隙(Absolute MIP Gap):绝对 MIP 间隙是指当前最优整数解与当前最优松弛解之间的绝对差距。∣−∣。原创 2024-06-07 23:30:03 · 1329 阅读 · 0 评论 -
二次规划&二次约束规划建模求解
二次规划问题 QP 是解决在目标函数内部有如 x 平方以及 xy 等二次项的这样的问题。二次规划问题最早在金融领域提出,用来做投资组合优化。二次约束规划问题 QCP 则是在问题约束之内有二次项。原创 2024-03-13 23:16:23 · 4705 阅读 · 0 评论 -
使用Java调用Cplex求解带时间窗的车辆路径问题
在使用大M法的时候,务必注意M的取值:不能取太小,也不能取太大!取太小可能导致出现不可行解,取太大可能会因为计算机的精度问题导致约束失效。待优化的问题即为,如何决策车辆访问客户的路径,使得在满足一定约束的条件下,实现最小化总成本的目标。如果尝试减去数据类型的最大可能值,则这将导致一些计算问题。表示了车站与客户之间,以及客户之间的有向连接。所有车辆通常是同质化的,每辆车都存在容量上限。所有节点的集合可表示为。会导致求解出现问题,得不到最优解。个点组成,其中客户由。,时间可以包括在弧上。都有需要被满足的需求。原创 2024-02-21 21:29:28 · 1079 阅读 · 0 评论 -
基于Cplex的VRPTW问题建模求解(JavaAPI)
【代码】基于Cplex的VRPTW问题建模求解(JavaAPI)原创 2021-04-28 22:19:49 · 1155 阅读 · 0 评论 -
基于OR-Tools的装箱问题模型求解(PythonAPI)
装箱问题(packing problem)的描述是要将一组给定尺寸的物品放置到具有固定容量的容器中,一般情况下由于容器有容量限制,不可能放入所有物品,那么装箱问题的目标是要找到限定约束下使得总价值最大或总花费最小的装箱方法。原创 2023-11-02 22:15:11 · 1309 阅读 · 0 评论 -
基于OR-Tools的指派问题建模求解(PythonAPI)
指派问题(又称为分配问题,assignment problem)可以抽象概括为:将n个任务(或物品)分配给m个员工(或背包)的问题。其中,最简单的平衡指派模型是指任务数量和员工数量相等的情形。然而,现实生活中的问题大多是任务数量大于员工数量且员工能力有限的广义指派问题(generalized assignment problem,GAP)。GAP是经典的组合优化问题,许多领域的容量约束问题都可以被抽象为GAP进行求解,如机器调度问题、有容量约束的设施选址问题、供应链问题及车辆路径问题等。原创 2023-10-28 15:26:50 · 1099 阅读 · 0 评论 -
基于OR-Tools的整数规划问题求解
整数线性规划中如果所有的变量都限制为(非负)整数,就称为纯整数线性规划(pureinteger linear programming)或称为全整数线性规划(all integer linear programming);如 果仅一部分变量限制为整数,则称为混合整数线性规划(mixed integer linearprogramming)。整数线性规划的一种特殊情形是0—1规划,它的变量取值仅限于0或1。本章最后讲到的指派问题就是一个0—1规划问题。在遵循以下限制条件的情况下,x + 10y 最大化:x +原创 2023-10-26 14:24:56 · 830 阅读 · 0 评论 -
基于OR-Tools的线性规划问题求解
画出可行域如图所示:声明线性规划求解器MPsolver is a wrapper for several different solvers, including Glop. The code below declares the GLOP solver.原创 2023-10-25 22:46:13 · 885 阅读 · 0 评论 -
IntelliJ IDEA配置ortools详细步骤及失败解决方案
crlt+alt+s快捷键调出Repositories查看发现https://repo.maven.apache.org/maven2报错。原创 2023-09-19 23:15:25 · 764 阅读 · 0 评论 -
基于OR-Tools的人员排班问题建模求解(JavaAPI)
使用Java调用or-tools实现了阿里mindopt求解器的案例(https://opt.aliyun.com/platform/case)人员排班问题。原创 2023-10-02 11:25:04 · 2210 阅读 · 0 评论 -
IntelliJ IDEA配置Cplex详细步骤
由于IBM公司的ILOG CPLEX Optimization Studio是收费的,即使在官网上下载免费的学术版也需要使用你单位(或学校)的邮箱,而且你的单位必须在IBM上注册过域名,否则也无法下载,所以这里直接给出12.6.3版本的CPLEX Studio软件安装包(已破解好,源自华中科技秦虎教授团队数据魔术师公众号),希望能帮到大家:cplex12.6 链接: https://pan.baidu.com/s/1E9x1RtY9pqoJM62qeG4PAQ 提取码: 131i原创 2023-09-30 18:39:20 · 1411 阅读 · 0 评论 -
运筹优化算法常用求解器
运筹学从形成到发展,在此过程中积累的大量理论和方法在国防、能源、制造、交通、金融、通信等各个领域发挥着越来越重要的作用。我们在生产生活中遇到的很多实际问题,都可以通过运筹学所涉及的优化方法对其进行数学建模,表示为数学问题,而为了解决这些数学问题,求解器应运而生。目前市面上的主流优化求解器主要分为商用求解器(比如Gurobi、IBM Cplex等)、开源求解器(比如SCIP等)两大类。原创 2023-10-01 19:18:48 · 6644 阅读 · 3 评论 -
基于Cplex的人员排班问题建模求解(Java)
使用Java调用Cplex实现了阿里mindopt求解器的案例(https://opt.aliyun.com/platform/case)人员排班问题。原创 2023-10-02 00:28:41 · 1418 阅读 · 0 评论 -
基于or-tools的护士排班问题建模求解(PythonAPI)
护士排班问题(Nurse Rostering Problem,NRP)或护士排程问题( nurse scheduling problem,NSP)是员工调度问题(Employee Scheduling)的一种。医院需要反复为护理人员制作值班表,通常情况下,护理人员要花费大量的时间来编制值班表,特别是在有许多工作人员提出要求的情况下,而且在处理对当前值班表的临时更改时可能会花费更多的时间。例题2相比于例题1,增加了特定班次的护士需求,目标函数为最大化护士需求满足的人数(尽可能满足护士需求)。原创 2023-09-24 13:33:16 · 1976 阅读 · 0 评论 -
基于Cplex求解器的JavaAPI语法使用
通过"// 定义一个浮点型的决策变量lb:lower bound,变量的下届ub:upper bound,变量的上届变量类型::连续变量“x”:变量的名字,可选择的项整形变量通过// 写法1:定义一个整型的决策变量// 写法2:以上写法等价于如下写法,从源码来看,model.intVar()方法内部还是调用了model.numVar()方法,因此两种写法等价,但此时不在需要传参IloNumVarType.Int:0-1变量通过进行定义:还有另一种简单写法,即。原创 2023-05-22 00:04:25 · 2108 阅读 · 0 评论 -
使用Java调用Cplex求解线性规划问题
Cplex是求解线性/整数规划问题的常用求解器之一(商用),而Java是应用非常广泛的程序开发语言。本文力争通过两个优化实例,描述清楚在Java语言下,如何调用Cplex高效求解线性/整数规划问题。原创 2023-05-22 20:10:22 · 2028 阅读 · 0 评论