自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 数据实验部分结果展示的角度

(2)算法各阶段去掉后的结果对比,如原算法包含ABC三个模块,对比的维度可以是A,A+B,A+C,A+B+C。以此来表示各模块的必要性。在论文的结果展示部分,需要多维度地展示本文的工作(丰富内容)。(1)不同的算例规模,比如n*m的不同规模,汇总同一n不同m,同一m不同n。(3)多目标优化中衡量解维度的指标,如DI_R和ρ_L。(1)找到最优解算例个数(未找到最优解的算例个数)(3)灵敏度分析中,不同参数的差异对比。(3)gap值,可行解与松弛解的差距。(1)均值,最大值,最小值。(2)多目标的不同结果。

2024-04-24 17:28:47 161

原创 逻辑benders分解

benders分解是指把问题分解为主问题和子问题。主问题松弛后得到的信息输入到子问题中,求解中去。加入的割可以提升主问题的下界(主问题提供的解),继续反馈给子问题后,降低了上界(子问题提供的解),直到上下界相等,求解完成。经典的benders分解,指的是子问题是线性规划问题;基于整数的benders分解,指的是子问题是整数规划;而基于逻辑的benders分解,指的是子问题返给主问题的割是根据逻辑得到的割。对于调度问题,通常有以下几种。

2024-04-12 21:00:59 1190 2

原创 gurobi不同版本切换

新版本是大的迭代更新,求解问题的效率和精度都会提升。官方人员一般会建议我们安装最新的版本,此外,写论文审稿专家也会建议我们使用较新的版本。参见我之前的文章,win+R输入regedit,然后把ProxyEnable的属性由1变0就可以了。但其实我们可以不卸载,在Anaconda Prompt的界面直接切换。切换的是gurobipy的版本。从我们现装的版本切换到新版本。我以往的做法是卸载,卸载完后一般系统会提示电脑重启。可以看到,我们安装了10.0.2版本。可以看到,已成功卸载11.0.1版本。

2024-04-10 20:02:04 420

原创 公式里的花体/空心字体

在26个英文字母不够用的情况下,可以采用花体,空心字体。在mathtype中改变格式就可以了。具体可以参见这篇文章。模型表示时,最好用单字母。

2024-03-10 14:15:18 361

原创 gurobi求解过程中修改参数是不起作用的

我做了一个试验,批量求解模型。在求解模型时,改变某一参数取值,发现后续模型求解时用的还是之前设定的参数。也就是说,参数没修改过来,还用的是老参数。3.设置参数(参数设置方法,以及参数取值,意义可以去翻gurobi官方指导手册refman.pdf,写得非常详细);4.构建变量,约束,求解。

2024-03-05 16:25:23 319

原创 latex直接去除标记的颜色\usepackage[monochrome]{color}

在论文返修投稿时,有的期刊要求Revised Manuscript (Clean version),就是去除标记的颜色。本质是只使用一种颜色,只加载单色选项的color或xcolor包。注意,代码放在\begin{document}之前。

2024-02-05 20:46:31 570

原创 正交试验DOE

举个例子,比如遗传算法中的种群数pop,交叉概率pr,变异概率pm,以及迭代次数N,每个参数我们初始定为3个值,那么想要确定最优的参数组合需要设计3^4=81次试验,才能确定下来。这样的试验规模太大了,采用正交试验的方法只需要进行L27=L3^4(3水平4因子),27次试验就可以确定出最优的参数组合。一开始举的例子中,因子数是4个,分别是pop,pr,pm,以及N。如,下面这张图,可以确定最终的参数组合取值,N为第3水平,R为第三水平,Limit为第三水平,β1&β2&γ都为第三水平。

2023-11-13 14:43:01 963

原创 Pandoc超级强大的转换工具

我这边运行出了点小问题,记录下来。提醒自己下次怎么用,也帮助有缘人少走弯路。1.windows版本 安装(1)进入上面链接,或者直接进:进行下载msi格式。(2)直接运行安装,advance选择安装路径,自动安装。2.测试我直接进入安装界面运行pandoc.exe,没反应,,,所以我的方法是这样的。(1)cmd进入命令行(2)cd进入自己的安装目录,然后运行命令行进行测试然后我看到安装目录里出现test.html命令,这就说明我的安装是没问题的。页眉和页脚。

2023-11-03 09:26:38 329

原创 优化模型的关键:ARR

Principle ARR – Shu-Cherng Fang• Approximation – “accept good-enough” to make problem easy• Reformulation – “change view” to make the problem clear and simple• Relaxation – “drop difficulties” to get a bound of the problem• Decomposition – “reduce dime

2023-11-02 11:16:49 170

原创 求解器求解过程中gap没有太大变化怎么办?

探测节点很快,节点所在的支被切掉(整数解,更差的非整数解,或不可行三种情形之一),此时求解会很快,反应在求解器的输出日志上就是,需要备探测的节点在减少。求解器用的是分支定界框架,准确的说用的是分支切割算法,在分支定界的框架中不断自动添加各种割cut,直到“所有”节点探测完毕。从公式上可以看出,当gap下降很快,要么是上界在降低(更好的整数解),要么是下界在提升(更好的下界)。gap下降很快,这种情况要么是找到了更好的上界,更小的整数解(最小化问题),要么是更好的下界,gap体现了目前求解的状态,直观的说,

2023-10-26 10:34:29 1104

原创 完成比写得好更重要,先完成初稿再说

记得当时捧着python大厚本学习,看得云里雾里,不成体系,后面工作了开始上手就慢慢学会了;latex也是一样,捧着大厚书一页页看很低效甚至没用,不如去排版,给论文排过几次版,大多数功能就会了。于是,经常做到一半跑去看文献,然后陷入文献中觉得这个比自己好,那个比自己好。于是,暂时中断手边工作,最后进度被推迟,甚至啥也没做出来。初稿非常重要,在写初稿的时候不要去考虑表达,不要去考虑语法,不要给自己使绊子。只去写,一直写,一直写就好。这是第一念,只要上手,就会慢慢拓展,自行获取知识,且这是主动的过程。

2023-10-25 22:11:56 270

原创 两个连续变量乘积线性化——McCormick envelope近似

没有完全等价的线性化方法)。要说明的是这是一种近似线性化,并不是完全等价,存在一定的误差。(McCormick envelope的形式),也叫McCormick包络。假如是两个变量z=xy,x和y是连续变量,

2023-10-12 09:24:02 3018 1

原创 设计分支定界算法关键步骤

性质是最优解中会出现的性质,那么没有出现这些性质的,不会是最优解(或者说别的解已经包含这些特征了,这个点是无用的),我们说这个点被支配,会进行砍枝操作。在研究的过程中,需要根据问题属性设计出节点的下界。对于调度问题来说,就是部分调度PS下最好的解是多少,即LB。这两点是我们设计出定制的分支定界算法的核心,是我们的工作量体现,更是影响算法表现效果的关键。推导出下界,最好是比较紧的下界,对于后续分支树有巨大好处。不同于经典分支定界的线性松弛法,即线性松弛解为下界。

2023-10-10 16:09:04 180

原创 支配规则的作用及应用——以分支定界和有效不等式为例

支配规则的作用是删去一系列被支配的节点,也就是我们说的剪支。大白话理解就是这个节点的信息太差,有比它更好的,已经包含了相应的信息,所以它没什么作用了,这样一来,剪支后的分支树叶子节点变少,我们探索就容易了。线性松弛的解大于等于UB,该枝不可能产生更好的整数解了,因为该枝的整数解比线性松弛的解还大,得到的整数解不会更新UB。对更新UB无用,所以剪支。支配规则需要我们来进行推导,也是体现我们工作量创新点,以及体现我们对问题的理解,定制化算法的关键。πx≤π0,证明左边的π更大,或者是右边的π0更小。

2023-10-10 11:27:21 238

原创 Gurobi设置初始可行解

我们可以要么改写模型,写一个更紧一点的模型,本质是探测节点找到可行解。但也可以通过启发式算法传入可行解。

2023-10-04 12:11:22 1669

原创 优化思考二

(2)启发式算法也挺重要的,但是怎么选择表现好的,是个问题;而且我们不是纯计算机出身,怎么发挥长处需要多想想;(1)建模很重要,建模是把现实问题抽象为数学模型的能力,是业务到算法的摆渡车,依旧重要,是核心竞争力。,这是学术喜欢用的一条路,因为好复现,又是精确解不容置疑,又体现了学术能力,也可以多学学。(2)建的模型有好坏之分,怎么建立更紧的更好的模型,是很重要的。(3)求解器不是黑箱,可以定制一些cut,优化是其中最重要的一环。翻到了两年前写文章,有了不一样的观点。,才能建好模型,表征模型;

2023-10-03 21:08:57 165

原创 分支定界、分支切割、分支定价的区别

(1)分支定界:是(本质上(2)分支切割:是。比如VRP问题中的k-paths割,即若干顾客的需求量至少需要的车辆数。(3)分支定价:将原问题重写,如VRP问题中将x_{ijk}的3-index模型改写为路径y_{r}的1-index模型(RMP);然后根据子问题的检验数不断添加新的路径,再次求解RMP,若是非整数解则分支。需要改写模型;而且需要求解子问题(设计出有效的算法,比如标签算法,支配规则等)。别的与前两者区别不大。

2023-10-03 16:48:20 1667 1

原创 MIP精确算法的关键——确定界

MIP精确算法包含,分支定界、分支切割、分支定价还有benders分解等等。前者是以分支定界为框架的一类算法;后者是以分解为框架的一类算法。甚至还包括拉格朗日松弛等等,我觉得除了算法细则需要搞清楚外,更关键的是弄懂界。因为拉格朗日算法目前不熟,所以下面我具体总结分支定界的一类算法和benders分解算法界的确定原则。本篇以min问题为例。

2023-10-03 11:46:43 451 2

原创 gurobi属性:构造目标函数,构造列

但如果是x=m.addVar(lb=0, float(’inf’), obj=2, vtype=GRB.CONTINUOUS),那么目标函数中会出现z=2x一项。我们常见的目标函数写法通常是定义好式子z=f(x,y,...),然后用m.setObjective(z, GRB。如果obj=0,即该变量不出现在目标函数中,也是默认的形式,我们见得最多。添加的时候用addTerm(),删除的时候用remove()。(2)但还有一种写法,是在定义变量的时候来构造目标函数。此处的obj是变量在目标函数中的系数。

2023-10-01 17:50:01 470

原创 pip安装报错解决办法

试了很多网上的办法,不管用,依旧报错。这些方法包括,添加镜像源,更改镜像源,添加全局镜像源host;下面是成功安装的截图。

2023-08-31 15:01:50 827 2

原创 论文格式总结备忘:emf,eps 等矢量图最清晰

emf,eps 等矢量图最清晰,不会因为缩放损失分辨率,而jpeg,bmp 等点阵图就不行了。tif格式也不太清晰。

2023-07-27 14:21:48 735

原创 拉格朗日松弛与拉格朗日分解 lagrangian relaxation

拉格朗日松弛 lagrangian relaxation首先介绍下拉格朗日松弛的出发点,以及该方法所属的门类;再介绍下拉格朗日松弛法需要处理的难点和注意事项。

2023-05-27 20:59:39 4114 1

原创 benders分解算法 逻辑思路整理(加星)

一般我们经常可以看到的是经典的benders,此处我也结合经典的benders梳理下思路。

2023-05-25 12:40:11 4310 2

原创 matlab生成出色背景

坐标轴背景设为无色,这条更重要,通常图形背景的白色实际为坐标轴背景色。Figure->粘贴到要粘贴的地方(比如PPT里边),就可以得到背景是透明的图片。打开.fig文件,在command中运行上面三行命令 Edit->Copy。输入代码(默认生成的最新图片句柄)

2023-05-04 20:04:45 1774

原创 latex投稿出错,可以把latex文件当成补充材料上传

(注意不是latex补充材料,是普通的补充材料)上传,此时系统不会自动编译。——这是没办法的办法,是最后一种办法。LaTex中常见的文件格式有.tex, .bib, .cls, .sty, .bbl等,我们一般是直接上传latex,cls,bib,eps等。但有的时候,期刊系统编译会出问题,你打开pdf确认的时候发现是乱码的。是使用bibligraphy方式导入参考文献时,写参考文献的文档,这个时候可以把latex,cls,bib,eps当做。是包文件,通常使用\usepackage导入,

2023-04-27 14:41:50 1673

原创 latex数字引用参考文献

与一种正文引用对应,若是采用姓名(年份)的样式,后面参考文献是按照首字母排的,直接参考文献编译,就可以了。(3)用记事本打开bbl文档,复制里头的东西,粘贴到latex文末,然后参考文献编译,全文编译即可。latex在正文中引用参考文献可以分为两种样式,一种是“姓名(年份)”,另一种是“[1]”。在文档最末引用参考文献的地方加上下述代码,即文末按照数字从小到大显示。latex引用参考文献,分为正文里,和文末显示参考文献两部分。这个比较简单,关键的是文末显示,只有文末正常了,正文才能正常。

2023-04-26 21:02:26 5865

原创 有效不等式valid inequality和割平面cuts的区别,以及与强有效不等式的区别

一般来讲,valid inequality在模型未求解之前,就可以全部列举出来;而cuts,一般是模型求解过程中,随着迭代,才可以生成的。(我自己使用的感觉是,添加了有效不等式,与不加有效不等式相比,一开始的效果会非常明显。但是之后进程提升的效果并不明显。有效不等式valid inequality和割平面cuts是不同的两个东西。但是cuts会在之后的进程中起到作用,一点点切割可行域。个人感觉是两者都需要,关键在于对问题本身的了解和研究。但是其实,这两者的概念,也没有说分得那么清楚。

2023-04-06 16:50:43 1573

转载 Gurobi 不可行问题的冲突溯源

如果是无界的,那么可以检查变量和约束的上下界设置,是否有可能出现无界情况。feasRelaxS() 和 feasRelax() 函数的功能,是在用户原有模型基础上,为变量和约束添加松弛变量,让松弛模型变得可行,然后通过最小化松弛量来获得一个最小违反变量和约束限制的模型。这种情况下,用户可以将原模型中的变量边界和约束的 Force 属性设定为1,然后运行ComputeIIS(),那么Gurobi 只会专注在新增加的约束和变量边界上,不但溯源的时间会更短,而且提供的信息可以更容易让用户发现问题。

2023-04-06 16:39:50 1811

原创 gurobi松弛模型求解

如原来的MIP模型为model,则松弛后的求解方式可以为下述:

2023-03-19 16:07:32 564 2

原创 gurobi中callback函数的使用整理

但其实不是的。model.optimize()的完整形式是model.optimize(callback=none),既我们没有赋予括号中任何信息。但其实callback功能十分强大,在后期实现分支定价,分支切割算法的时候经常用。callback可以实现监视,干预,也就是部分程度和gurobi求解器实现交流交互,管理gurobi的优化进程。更多callback的分析可以看gurobi自带的参考资料,即refman.pdf文件。

2023-01-08 11:01:44 3370 2

原创 VRP和调度问题的主流精确算法和启发式算法

也就是说解决大规模问题,现在的主流的精确算法是BCP,与之比较的是ALNS,自适应大邻域搜索(别的什么遗传算法,粒子群等等,根本不能与之比)。BCP和ALNS的特点是用局部搜索来逼近全局搜索最优点。换句话说,开发大规模的精确算法,可以与之一比的是ALNS,别的启发式算法不要比

2022-11-26 17:10:47 2472 2

原创 从 Yalmip 中输出Gurobi 识别的 LP/MPS 文件

通过 Yalmip 调用 Gurobi 时

2022-10-29 20:14:59 1755

原创 浏览器打不开解决方式

如果有网络,但是浏览器打不开,比如wx聊天,腾讯会议都没问题,但是浏览器包括微信自带的浏览器都打不开。那么有两种方式可以解决。

2022-10-29 09:29:35 4445 1

原创 python安装包方式汇总

python安装包方式汇总

2022-09-20 20:28:12 9916

原创 Opt算法:2-opt,3-opt,Or-opt,k-opt

Opt是局部搜索local search的方法,而局部搜索算法是在一组可行解的基础上,在当前解的领域内进行局部搜索产生新的可行解的过程。用在TSP和VRP问题中比较多。常见的有2-opt,3-opt,Or-opt,k-opt算法。可以分为2-opt&k-opt、Or-opt、3-opt三类。其中,2-opt是最基本的,用得也最多。K-opt是建立在2-opt基础上的。Or-opt是Or1976年博士论文设计的opt。而3-opt也是比较常见和常用的opt算法。

2022-09-18 17:41:56 10293

转载 pycharm创建虚拟环境

虚拟环境的目的是同时拥有多个python版本,不必要来回下载。只需要切换到合适的版本就可以了。

2022-08-26 09:18:14 524

转载 pycharm的类,class

默认参数不必一次次传,可以通关定义“类”来实现。类包含“属性”和“方法”两个信息,属性就是默认的值了,如果在一开始就已经定义了,那后续就是默认的,不必要传入了;方法就是def函数了。然后类需要实例化才能用,实例化对象就是函数的调用。...

2022-08-25 20:22:54 1737

原创 列生成算法column generation求解思路总结篇2——CW分解

CW分解是类似的思路,也是让子问题不断生成新列添加到松弛主问题中,让松弛的主问题不断逼近一开始的原问题,直到不能改进时,可以认为松弛的主问题等价于原始问题了。

2022-07-23 16:05:46 1361

原创 元启发式算法(智能算法)的思考

启发式算法一般是指“基于规则”的方法,能够直接给出一个解。我们平时说的【智能算法】有的人也叫它启发式算法,其实不太对;或者说为了与前一种区分,通常叫做“元”启发式算法,meta-heuristics。这种通常是改进型算法,也就是通过种群或者邻域不断迭代予以改进。像邻域搜索,蚁群,蜂群等等都属于这一类。......

2022-07-02 16:15:31 2668 2

原创 gurobi解的状态及其属性获取

在gurobi中,可以通过提取状态,知道模型状态。也就是利用对偶理论可以知道当前模型解的可能情况。

2022-05-31 16:35:35 7445

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除