
最优化求解器(Gurobi+CPLEX+SCIP)
文章平均质量分 83
最优化求解器(Gurobi+CPLEX+SCIP)
刘兴禄
清华大学博士在读,研究方向为共享出行优化模型和算法,主要研究方法为整数规划,随机规划,鲁棒优化,强化学习和智能优化算法。
展开
-
优化| 割平面算法(2): Cover Cuts, Strengthening, Separation及其拓展(理论与实战详解)
本文主要来介绍一种基本的Cutting plane算法,即:Cover Cuts。原创 2023-05-06 18:39:23 · 2378 阅读 · 5 评论 -
【求解器】| Java调用CPLEX求解MIP设置初始解
Java调用CPLEX设置初始解。原创 2023-03-16 19:58:02 · 1109 阅读 · 0 评论 -
【优化】| proof MIP is NP-hard
MIP is NP-hard原创 2023-02-21 00:02:31 · 509 阅读 · 0 评论 -
【求解器-COPT】COPT的版本更新中,老版本不能覆盖的问题
问题:之前安装配置了COPT 4.0.2版本。现在更新了6.0.5版本。但是PyCharm还是识别是v4.0.2的版本,并且4.0.2的版本已经过期了,不能运行成功。这个问题如何解决?原创 2023-02-13 19:14:15 · 1069 阅读 · 0 评论 -
数学启发式算法 | 可行性泵 (Feasibility Pump)算法精讲:一份让您满意的【理论介绍+编程实现+数值实验】学习笔记(Python+Gurobi实现)
本文详细地介绍了数学启发式算法:可行性泵算法(Feasibility Pump)。包括其理论、具体案例和代码实现以及数值实验分析。本文可以帮助读者深入理解Feasibility Pump算法。原创 2022-11-16 01:36:30 · 2090 阅读 · 1 评论 -
手把手教你在C++中配置Gurobi
本文详细讲解了C++配置Gurobi,并给出了完整的视频教程。原创 2022-11-09 01:24:20 · 3577 阅读 · 3 评论 -
Two-stage RO: part 1
CCG原创 2022-06-26 23:23:27 · 1637 阅读 · 0 评论 -
优化求解器 | Gurobi的MVar类:矩阵建模利器、求解对偶问题的备选方案 (附详细案例+代码)
本文介绍了Gurobi的各种建模方式,包括按行建模、按列建模、按非零元素建模以及按矩阵形式建模。我们详细介绍了按矩阵形式建模的案例及其在快速完成对偶问题建模中的使用。原创 2022-06-20 18:25:20 · 5343 阅读 · 0 评论 -
【Gurobi】Gurobi的MVar或者矩阵形式的变量处理方法小例子
MVar的小例子原创 2022-06-03 23:32:18 · 1529 阅读 · 1 评论 -
【Java调用Gurobi配置】| Java调用Gurobi的环境配置
Java调用Gurobi环境配置原创 2022-06-01 21:59:14 · 1780 阅读 · 0 评论 -
求解器解的最优性 | cplex、gurobi和COPT求解器求解出来的一定是最优解吗?有理论证明吗?
求解器解的最优性 | cplex、gurobi和COPT求解器求解出来的一定是最优解吗?有理论证明吗?作者: 刘兴禄,清华大学,清华-伯克利深圳学院博士在读欢迎关注我们的微信公众号 运小筹之前有人在【运小筹读者2群】里问:cplex、gurobi和COPT求解器求解出来的一定是最优解吗?有理论证明什么的吗?首先,对于MIP,给足求解时间,设置MIPGap的容差为0,最后得到的一定是最优解。cplex、gurobi和COPT等求解器使用的是通用的branch and cut算法框架,该框架是精确算原创 2022-05-06 11:34:35 · 6024 阅读 · 7 评论 -
【Gurobi】| Gurobi中非线性约束的对偶值的获取:QCP、QCQP、SOCP
【Gurobi】| Gurobi中非线性约束的对偶值的获取:QCP、QCQP、SOCP作者:刘兴禄,清华大学,清华-伯克利深圳学院欢迎关注我们的微信公众号 运小筹Gurobi中非线性约束的对偶值是可以成功获取的,但是在求解模型之前,需要将参数QCPDual设置为1.注意:如果打开参数QCPDual的话,求解器一般会来求解KKT 方程组来获得QCP的对偶变量。下面是一个具体的例子。from gurobipy import * # Create a new modelm = Model("原创 2022-05-06 10:51:48 · 4060 阅读 · 0 评论 -
【Column Generation思考-02】|从对偶的角度理解Cutting Stock Problem【更新版本】
【Column Generation思考-01】|从对偶的角度理解Cutting Stock Problem简介Cutting Stock Problem的Column generation reformulationCutting Stock Problem的Lower Bound和Upper Bound列生成Cutting stock problemCutting stock的原问题和对偶问题的含义Cutting stock的原问题棒材VRP的Set partitioning的对偶问题Smart Pri原创 2022-05-02 11:38:40 · 1511 阅读 · 0 评论 -
ORers‘ Bling Chat | 【高光聊天记录集锦-02】:运小筹读者群里那些热烈的讨论
运小筹聊天记录精华整理1.关于退化解的讨论2.关于if约束线性化讨论3.GUROBI中取名的重要性4.实现决策变量方差最小5.招聘|会议注:为方便理解问题,整理过程中有筛选合并等,敬请谅解。1.关于退化解的讨论Discussant(按发言先后)X教授:某高校老师Z博士:运小筹主编L同学:某校研究生R同学:本次推文小编(打酱油的)Y同学:某校研究生L博士:运筹优化方向博士生X教授:大家可以讨论一下,矩阵乘法的意义是什么?矩阵乘向量是在干嘛?这个和单纯形法有撒关系?然后就能更好的理解原创 2022-03-17 20:39:54 · 718 阅读 · 1 评论 -
【大规模整数规划】| Benders Decomposition: 一份让你满意的【入门-编程实战-深入理解】的学习笔记
【大规模整数规划】| 优化算法 | Benders Decomposition: 一份让你满意的【入门-编程实战-深入理解】的学习笔记参考网址:https://www.youtube.com/watch?app=desktop&v=vQzpydNOWDY原创 2022-03-10 18:03:10 · 2241 阅读 · 1 评论 -
【鲁棒优化】| 补充证明:为什么最优解时一定有$y^{*} = |x^{*}|$ (论文笔记:The Price of Robustness)
【鲁棒优化】| 补充证明:为什么最优解时一定有$y^{*} = |x^{*}|$补充证明:为什么最优解时一定有y∗=∣x∗∣y^{*} = |x^{*}|y∗=∣x∗∣笔误更正:min cx→max cx\min \,cx \rightarrow \max \, cxmincx→maxcx作者:刘兴禄,清华大学,博士在读欢迎关注我们的微信公众号 运小筹上篇推文有一处证明我省略了,个别小伙伴觉得想不清楚,来问我了。我这里写个补充证明分享给大家。另外上篇推文也有几处小笔误,由于文章不能更改了,这里原创 2022-03-04 16:41:01 · 694 阅读 · 0 评论 -
【鲁棒优化】| 论文笔记:The Price of Robustness - 列不确定性部分的推导
【鲁棒优化】| 论文笔记:The Price of Robustness - 列不确定性部分的推导论文原文我自己的推导:所有详细步骤全部列举出来了参考文献作者:刘兴禄,清华大学,博士在读这个问题是来源于经典文献的。一个小伙伴问道了,我在这里给一个完整、详细的推导。确实单篇原文是无法推出来的,只有结合了另外两篇更先前的论文才能顺理成章的推出来。也感谢这位小伙伴提问。论文原文我自己的推导:所有详细步骤全部列举出来了max∑j∈Jcjxjs.t.∑j∈Jaijxj+∑j∈Jia^ijyj⩽原创 2022-03-03 21:07:34 · 3601 阅读 · 2 评论 -
【CPLEX】Java调用CPLEX的一些小笔记
【CPLEX】Java调用CPLEX的一些小笔记获得对偶变量获得对偶变量获得原问题的解: getValue()获得原问题的对偶变量: getDual()获得原问题极射线: getRay()获得对偶问题的极射线:dualFarkas原创 2022-03-02 16:06:36 · 1103 阅读 · 0 评论 -
【COPT】| Python调用COPT:Shortest Path Problem(最短路问题)及其对偶问题的一些探讨
Python调用COPT : 最短路问题及其对偶的探讨Python调用COPT:Shortest Path Problem及其对偶问题的一些探讨Shortest Path Problem : The ModelPython调用COPT求解SPPSPP的对偶问题Python调用COPT求解SPP的对偶问题SPP模型学术界的标准写法及其求解SPP模型学术界的标准写法SPP对偶问题的直观理解SPP模型学术界的标准形式的求解参考文献欢迎关注我们的微信公众号 运小筹文中涉及到参考文献的标注方法: https:原创 2022-02-26 16:10:04 · 2244 阅读 · 0 评论 -
优化| 手把手教你学会杉树求解器(COPT)的安装、配置与测试
@[TOC](优化| 手把手教你学会杉树求解器(COPT)的安装、配置与测试)作者: 刘兴禄,清华大学,清华伯克利深圳学院博士在读前言最近杉树求解器发布了4.0.2版本。著名的优化求解器benchmark测评的官网也更新了最近的榜单。网址如下:Benchmarks for Optimization Software - Hans Mittelmannhttp://plato.asu.edu/bench.html线性规划(LP)测试榜单–单纯形法: Benchmark of Simplex L原创 2022-02-25 23:34:47 · 14336 阅读 · 8 评论 -
优化 | 线性化:含绝对值的线性化
优化 | 线性化:含绝对值的线性化非线性整数规划模型Gurobi求解代码绝对值的线性化技巧利用上面的技巧进行线性化总结作者:刘兴禄, 清华大学清华-伯克利深圳学院,博士在读欢迎关注我们的微信公众号 运小筹非线性整数规划模型考虑下面的非线性整数规划max 2∣x1∣+∣x2∣s.t. 2x1+4∣x2∣⩽0−5⩽x1,x2⩽5\begin{aligned}\max \quad \,\,\,& 2|x_1| + |x_2| \\s.t. \quad \,\,\,&原创 2022-02-25 01:05:56 · 12848 阅读 · 7 评论 -
优化 | 线性化:0-1变量乘以连续变量的线性化
优化 | 线性化:0-1变量乘以连续变量的线性化非线性整数规划模型Gurobi求解代码线性化总结作者:刘兴禄, 清华大学清华-伯克利深圳学院,博士在读欢迎关注我们的微信公众号 运小筹非线性整数规划模型考虑下面的非线性整数规划max 3y+xzs.t. 2y+3z⩽12x+y⩽1x,y,∈{0,1},0⩽z⩽100\begin{aligned}\max \quad \,\,\,& 3y + xz \\s.t. \quad \,\,\,& 2y + 3z \leq原创 2022-02-24 02:47:42 · 11440 阅读 · 6 评论 -
优化 | 线性化:两个0-1变量相乘的线性化
优化 | 线性化:两个0-1变量相乘的线性化非线性整数规划模型Gurobi求解代码线性化作者:刘兴禄, 清华大学清华-伯克利深圳学院,博士在读欢迎关注我们的微信公众号 运小筹非线性整数规划模型考虑下面的非线性0-1整数规划maxy+xzs.t.2x+3y⩽3y+z⩽1x,y,z∈{0,1}\begin{aligned}\max \quad & y + xz \\s.t. \quad & 2x + 3y \leqslant 3 \\& y + z \leqs原创 2022-02-24 01:04:37 · 6400 阅读 · 2 评论 -
【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二)-正确版
【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二)投资组合的例子鲁棒优化模型的reformulation: 利用对偶进行reformulation利用对偶进行reformulationPython调用gurobi求解对偶reformulation后的模型鲁棒优化模型的reformulation: 利用上镜图reformulation利用上镜图reformulationPython调用gurobi求解reformulation后的模型小结参考文献** 作者:刘兴禄, 清华大学,清华-伯克利深圳原创 2022-02-04 16:01:25 · 2231 阅读 · 2 评论 -
【鲁棒优化笔记】Comment to: 以Coding入门鲁棒优化:以一个例子引入(二)
Comment to: 以Coding入门鲁棒优化:以一个例子引入(二)证明绝对值线性化的等价性** 作者:刘兴禄, 清华大学,清华-伯克利深圳学院,博士在读**证明绝对值线性化的等价性下面我们来证明一下绝对值转化的等价性:命题:z+=max{0,z} (1)z−=max{0,−z} (2)z^+=\max \left\{ 0,z \right\} \,\, \left( 1 \right) \\z^-=\max \left\{ 0,-z \right\} \,\原创 2022-02-03 20:31:26 · 1577 阅读 · 1 评论 -
【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二)-错误版
【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二)投资组合的例子鲁棒优化模型的reformulation: 上镜图reformulationReformulationPython调用gurobi求解reformulation后的模型鲁棒优化模型的reformulation: 对偶reformulation对偶reformulationPython调用gurobi求解对偶reformulation后的模型小结参考文献** 作者:刘兴禄, 清华大学,清华-伯克利深圳学院,博士在读**投资组合的原创 2022-02-03 01:31:04 · 4471 阅读 · 1 评论 -
【鲁棒优化笔记】基于ROME编程入门鲁棒优化:以一个例子引入(一)
鲁棒优化|基于ROME编程入门鲁棒优化:以一个例子引入(上)线性规划中的不确定性一个生产的例子Matlab+ROME求解鲁棒优化简单案例:一个投资组合的例子不确定回报率鲁棒优化模型Matlab调用ROME包求解Robust Counterpart参考文献鲁棒优化是处理数学规划中处理不确定性的重要方法论。这里我们以几个简单的例子来介绍鲁棒优化。同时,我们结合鲁棒优化工具包Robust Optimization Made Easy (ROME)来编程实现,方便读者理解和复现。线性规划中的不确定性在生产实际原创 2022-02-02 17:33:22 · 6039 阅读 · 11 评论 -
Anaconda + Gurobi配置详解(附详细图解)
文章目录Anaconda + Gurobi配置找到Gurobi安装目录下的对应python版本的`gurobipy`文件夹。将`gurobipy`文件夹拷贝到Anaconda的安装目录下Anaconda + Gurobi配置Anaconda配置Gurobi非常简单,只需要将Gurobi安装目录下的gurobipy文件夹拷贝到Anaconda安装目录下的Lib文件夹下即可。具体为:找到Gurobi安装目录下的对应python版本的gurobipy文件夹。我的Gurobi安装目录为D:\Develop原创 2020-10-30 22:57:14 · 14968 阅读 · 6 评论 -
初识随机规划:用一个小例子理解随机规划
文章目录初识随机规划:一个小小例子生产计划的例子参数的不确定性随机规划模型(Stochastic Programming)Python调用Gurobi求解随机规划模型初识随机规划:一个小小例子本文中的确定性问题的例子来源于《运筹学》第四版,运筹学编写组编著。生产计划的例子一个工厂生产2种产品AAA和BBB,AAA产品需要1个单位人工工时和4个单位的设备1的工时,BBB产品需要2个单位的人工工时和4个单位的设备2的工时。且该厂一共可提供人工工时、设备1工时和设备2的工时分别为8,16和12。且生产原创 2021-01-03 21:54:16 · 10787 阅读 · 10 评论 -
运筹学修炼日记:如何优雅地写出大规模线性规划的对偶
运筹学修炼日记:如何写出大规模线性规划的对偶问题运筹学修炼日记:如何写出大规模线性规划的对偶问题最短路问题多商品流问题`Multicommodity Network Flow Problem`借助`Excel`和`具体小算例`写出大规模LP的对偶Dual Problem :Shortest Path Problem(最短路问题)小算例`Excel`+`小算例`写出`SPP`的对偶问题将`Excel`中的`Dual tabular`转化成公式形式Dual Problem :Multicommodity Ne原创 2020-08-06 17:54:58 · 4132 阅读 · 2 评论 -
VRPTW算例测试结果
文章目录rc101rc101在服务器上跑了3天,没有找到可行解。原创 2020-10-31 22:13:16 · 1227 阅读 · 2 评论 -
无人机与卡车联合配送 - README
无人机与卡车联合配送-论文代码复现原博客链接 https://blog.csdn.net/HsinglukLiu/article/details/107871295Introduction本代码主要是复现了2015年发表在Transportation Research Part C: Emerging Technologies上的关于无人机与卡车联合配送的文章中的模型部分的求解器求解代码。论文题目为The flying sidekick traveling salesman problem: O原创 2020-12-15 15:05:31 · 6175 阅读 · 0 评论 -
运筹学修炼日记:TSP中两种不同消除子环路的方法及callback实现(Python调用Gurobi求解,附以王者荣耀视角解读callback的工作逻辑)
Python调用Gurobi实现列生成求解TSP运筹学修炼日记:Python调用Gurobi实现列生成求解TSP--两种不同消除子环路的方法TSP问题的一般模型TSP Model 1: `subtour-elimination` 消除子环路模型Python调用Gurobi实现的问题TSP Model 1 : MTZ约束消除子环路为什么`MTZ`约束可以消除子环路?Python+Gurobi: 用callback实现TSP的`subtour-elimination`Python+Gurobi: 实现TSP的`原创 2020-08-06 23:29:49 · 16759 阅读 · 27 评论 -
Java调用CPLEX报错:no cplex1280 in java.library.path或者try invoking java with java -Djava.library.path=..
Java调用CPLEX报错处理no cplex1280 in java.library.path或者try invoking java with java -Djava.library.path=...的处理Java调用CPLEX报错处理no cplex1280 in java.library.path或者try invoking java with java -Djava.library.path=...的处理首先找到`CPLEX`的安装目录修改`Run Configuration`中的Arguments原创 2020-08-06 10:36:35 · 1849 阅读 · 0 评论 -
随机规划案例:The value of the stochastic solution
随机规划案例:The value of the stochastic solution作者: 刘兴禄,清华大学,清华-伯克利深圳学院博士在读本文来解读打咯原创 2021-09-23 00:50:14 · 1845 阅读 · 2 评论 -
Gurobi处理非线性目标函数和约束的详细案例
Gurobi处理非线性目标函数和约束的详细案例非线性项举例`Quadratic Programming``Quadratically Constrained Programming``Quadratically Constrained Quadratic Programming``Second-Order Cone Programming`其他Gurobi可以求解的非线性形式Gurobi代码实现一些闲言简单讲解完整模型构建注意事项参考文献作者:刘兴禄,清华大学,清华伯克利深圳学院博士在读文中的图片(除原创 2021-09-09 18:23:55 · 21895 阅读 · 13 评论 -
初识随机规划 (2):两阶段随机规划(一个详细的例子)
文章目录初识随机规划 (2):两阶段随机规划模型两阶段随机规划模型生产计划的例子参数的不确定性随机规划模型(Stochastic Programming)Python调用Gurobi求解随机规划模型参考文献OlittleRer初识随机规划 (2):两阶段随机规划模型本文中的确定性问题的例子来源于《运筹学》第四版,运筹学编写组编著。两阶段随机规划模型上篇文章介绍了随机规划的一个小例子。文章链接: https://mp.weixin.qq.com/s/9RsWE6E00W_dz7bpThHInA原创 2021-01-17 22:39:30 · 20631 阅读 · 4 评论 -
Python调用Gurobi:Assignment Problem(指派问题)简单案例
Python调用Gurobi:简单案例Python调用Gurobi:简单案例Assignment ProblemPython调用Gurobi:简单案例Assignment Problemfrom gurobipy import *import pandas as pd import numpy as np import random原创 2020-08-06 10:37:38 · 4821 阅读 · 1 评论 -
Gurobi+Python做运筹优化环境搭建
Gurobi+Python做运筹优化环境搭建Gurobi+Python做运筹优化环境搭建Gurobi+Python环境搭建报错 `DLL load failed`一般原因Gurobi+Python做运筹优化环境搭建Python调用Gurobi需要注意下面几点:Gurobi的版本和Python的版本要一致,即都是64bit或者都是32bit,否则不能成功如果用Pydev,则需要eclipse,gurobi,python三个的版本是一样的,都是64bit或者32bit下面是配置Python+Gur原创 2020-08-05 17:54:39 · 1611 阅读 · 2 评论