![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
运筹学
文章平均质量分 82
WhyNot?
道阻且长,行则将至。
展开
-
优化基础(四):如何找到极值点?
在上一篇文章中我们提到,边界点里有一种特殊的点叫极值点,它们拥有一些很好的性质:局部最大/小值或全局最大/小值,将会在这些极值点中诞生。回忆一下单纯形法(想不起来的小伙伴可以参考我的文章),它的几何意义就是在极值点之间跳跃寻找最优解。那么如何找到这些极值点呢?本文通过一个例子来探讨一下。原创 2024-06-06 09:46:18 · 1047 阅读 · 2 评论 -
优化基础(三):内部点、边界点、极值点、外部点
从边界点来看,凸集的边界点一定也可以找到超平面(supporting hyperplane)把它撑(分离开)到某一边去。非凸的在某些点找不到一个平面可以把它撑起来(分离)。一个开集(一个不包含边界的子集),而任何足够小的邻域(即这个点周围的任意小的区域)都包含集合内的点和集合外的点。更数学的表述方式是,极值点不能表示为集合中其他点的凸组合。如下图所示,A点是极值点,B点是普通的边界点。能够使得我们画的这个球里的所有点,都仍然属于。B点位于它旁边两个点的连线上,但A点不是。的内部点,当且仅当存在一个。原创 2024-06-03 09:58:01 · 445 阅读 · 0 评论 -
优化基础(二):线性组合、仿射组合、锥组合、凸组合、线性集合、仿射集合、锥集合、凸集合的理解
组合侧重于描述由一些基点生成新的点,强调的是不同点的权重和几何位置。集合侧重于描述许多个点形成的形状,强调的是完整性和连通性。原创 2024-05-31 19:40:38 · 1102 阅读 · 0 评论 -
优化基础(一):hyperplane, half space, normal vector, polyhedron set, polyhedron, polytype的含义
在看一些进阶的运筹知识时,会有一些专业术语涌上来。以前我的心态是,这种能绕开就绕开,看着头大,大多数博客和书籍一堆公式直接把我这个小弱鸡劝退了,这次在B站学习方述诚老师的《introduction to linear programming》课程时,终于把一些术语听懂了。歪个题,方老师的课讲的真的很棒,建议运筹的小伙伴们都能系统的去刷一遍。原创 2024-05-30 15:06:14 · 1017 阅读 · 0 评论 -
线性化技巧:绝对值变量的线性化
运筹建模中绝对值变量的线性化技巧。原创 2024-05-27 20:54:02 · 679 阅读 · 0 评论 -
运筹学基础(七):拉格朗日松弛(Lagrangian relaxation)
如果问题具有linked constraints,那么拉格朗日松弛后可以使问题能够被分解,进而可以降低问题的复杂度;拉格朗日松弛后得到的问题的下界要大于等于直接将01整数变量松弛为[0,1]连续变量的下界;采用拉格朗日松弛后我们会得到拉格朗日乘子,它反应了对偶的信息,可以做很多事情。假设约束(1.1)是难处理的约束,约束(1.3)是容易处理的约束。该问题等同于:怎么求解拉格朗日松弛问题的对偶问题,常用的方法是。即松弛问题是原问题的一个下界,对偶问题是原问题最大的下界。其本质是在松弛问题的基础上,原创 2024-04-19 16:28:30 · 1450 阅读 · 0 评论 -
运筹学基础(六):列生成算法(Column generation)
学习列生成之前,有一些前置基础需要理解,不然就没法继续往下学了。所以为了写这篇文章,我提前铺垫了3篇文章帮助自己把基础捡起来!运筹学基础(一)求解线性规划的单纯形法详解运筹学基础(四):单纯形法中检验数(reduced cost)的理解运筹学基础(五):对偶问题及其性质今天终于可以进入正题了!原创 2024-04-08 13:08:28 · 896 阅读 · 0 评论 -
运筹学基础(五):对偶问题及其性质
注意:例题1里面的原问题是maxmaxmax,对偶问题是minminmin,例题2反过来了。对偶问题max约束的符号,与原问题变量的符号相反(=和无约束互反);对偶问题max变量的符号,与原问题约束的符号相同。maxz′5y14y26y3y12y2≥2y1y3≤3−3y12y2y3≤−5y1−y2y31y1≥0y2≤0y3无约束。原创 2024-04-07 16:47:36 · 1785 阅读 · 0 评论 -
运筹学基础(四):单纯形法中检验数(reduced cost)的理解
在前文运筹学基础(一)求解线性规划的单纯形法详解中,我们直观的理解了单纯形法其实是在可行域的顶点上搜索的过程。(这篇文章没有通过列单纯形表来讲述,而是选择了一种更符合直觉的方式,我觉得这对于初学者而言是更好理解的。单纯形表感觉还是有点绕…)提到单纯形法,就不得不提一下检验数了,前文一带而过了,这篇文章单独拎出来聊一下。因为未来的学习中,很多更高阶的内容还会涉及到检验数的概念。原创 2024-04-07 14:46:04 · 2084 阅读 · 0 评论 -
运筹学经典问题(八):CVRP和VRP-TW
给定一个图,图上的点代表客户,边代表客户之间的路线,边的权重代表客户之间的距离,点上的数字代表每个用户的需求量。如果只是上面的模型,可能会出现下图这种解,: 假设我们的问题是车辆去客户那里取货,需要一个约束去消除这种不包含仓库的子环。这也是VRP建模的一个略难的约束。会有图上的哪些边被选中,形成。没有约束车辆的容量限制!原创 2024-04-01 15:40:29 · 1186 阅读 · 0 评论 -
运筹学基础(三):求解整数规划的切平面法(cutting plane method)
先将整数规划问题松弛为线性规划问题,然后割掉线性规划问题可行域的一部分(),使得线性规划问题的最优解在原整数规划问题的。(如果有小伙伴和我一样一时间没有想起来什么是。因此,割平面法的核心问题在于。(切割方程不是唯一的)。原创 2024-03-30 17:30:40 · 591 阅读 · 0 评论 -
运筹学基础(二):求解整数规划的分支定界法(branch and bound)
先将整数规划问题松弛成线性规划问题,并求出最优解;原创 2024-03-30 16:14:26 · 1428 阅读 · 0 评论 -
运筹学基础(一)求解线性规划的单纯形法详解
大学的《运筹学》课程中,手算单纯形法是期末的必考题了!(记得期末考试前一周,几个经常逃课的同学来我宿舍楼下,叫了辆车载我去星巴克给他们讲解这个算法,活活讲了一个多小时他们才听懂,不知道最后及格了没哈哈!)当时已经觉得是信手拈来了,但是时间久了+计算过程本身也比较繁琐,慢慢就忘了。后面为了应付面试,又拾起过,但是面完试细节又给忘了,只记得是在可行域的顶点上来回搜索。这次想完整的梳理一篇文章(本文是跟着某位大佬的博客。原创 2024-03-28 09:18:22 · 1589 阅读 · 0 评论 -
启发式算法分类
简单启发式算法、元启发式算法、超启发式算法原创 2024-03-19 11:29:28 · 389 阅读 · 0 评论 -
运筹学经典问题(七):旅行商问题(TSP)
给定一系列城市和每对城市之间的距离,求解访问每座城市一次并回到起始城市的最短回路。原创 2023-12-14 14:16:05 · 1385 阅读 · 0 评论 -
运筹学经典问题(六):设施选址问题
以物流业的航空站点选址为例,如果航空站点开通的很多,客户的服务质量会变好(更多的航空件可以保障更好的时效),但是显然企业的成本会上升。反之,如果开通的航空站点太少,虽然企业成本下降了,但客户服务质量会变差。因此,该问题本质上是在做。原创 2023-12-14 11:17:31 · 938 阅读 · 0 评论 -
运筹学经典问题(五):多商品流运输问题
前面介绍了(MCNF)问题,今天要介绍的多商品流运输问题(Mulit-commodity Transportation Problem, MCTP)与MCNF的唯一差异别:MCTP要求商品直接从供应商运送到客户,没有中间流转的路径。原创 2023-12-14 10:36:27 · 505 阅读 · 0 评论 -
运筹学经典问题(四):多商品网络流问题
多商品网络流问题(Multicommodity Network Flow, MCNF)是指在一个图网络中,多个商品从各自起点运输到各自终点的问题。更具体的,给定一个图网络GVAK:表示商品的集合;sktkdk:表示商品k的起点、终点和需求量;uij:弧段ij∈A的容量;cijk:商品k在弧段ij∈A上流动的单位成本。MCNF问题的目标就是在图网络中,找到一条使得总运输成本最低,且能满足各个商品需求量的路径。原创 2023-12-13 10:11:31 · 952 阅读 · 0 评论 -
运筹学经典问题(三):最大流问题
给定一个图网络GVE,网络中连边的权重代表,在这个图中找出从起点到终点流量最大的路径。原创 2023-12-12 10:04:26 · 693 阅读 · 0 评论 -
运筹学经典问题(二):最短路问题
给定一个图(有向图或无向图)GVEV是图中点的集合,E是图中边的集合,图中每条边ij∈E都对应一个权重cij(距离或者运输成本等),给定一个起点u和一个终点z,最段路问题就是寻找一条从s出发,到达z的距离最短或者成本最低的路径。原创 2023-12-12 09:22:18 · 1482 阅读 · 0 评论 -
运筹学经典问题(一):指派问题
有N个任务,需要N个人去完成,每个人只能完成一项工作。每个人完成不同工作的效率不同(或者资源、收益等等),需要怎么分配使得整体的效率最高(成本最低等等)呢?这就是经典的指派问题啦!原创 2023-12-11 09:49:28 · 1107 阅读 · 0 评论 -
如何选择合适的运筹优化求解器?
求解器对于运筹算法工程师而言,常常像一个黑盒,我们扔进去输入数据和数学模型,求解器给我们吐出一个解出来。这种状态在面临规模小、形式简单的数学模型是还可以应付的,但一旦问题难度上来,原本用着舒服的求解器可能求解你的问题太慢了,又或者根本无法给到符合预期的解,这时就会面临到底选择哪个求解器更合适的问题?这里的合适代表既准又快自己的问题类型是什么?线性规划?整数规划?二次规划?这里可以参考我的文章运筹学算法分类快速判断;不同求解器适用的问题类型;开源还是商用?2和3都会在接下来的梳理中体现。原创 2023-12-08 17:19:11 · 729 阅读 · 0 评论 -
Pyomo调用IPOPT:0-1变量给出小数解
这几天搭建了一个纯整数规划模型,因为规模太大,测试时发现用Pyomo调用SCIP求解太慢了。于是“机灵”的换成了IPOPT求解,惊喜的发现速度快了很多,以为问题解决了,但是高兴的太早了…在测试某个case时,模型求出了一个我百思不得其解的方案,排查了半天发现是我定义的binary variable,模型竟然算出了一个小数解!而且非常巧妙的满足了我给的约束条件…一开始就是向GPT发问,说是我initialize=0不对,一本正经的胡说八道… 然后谷歌到有人遇到和我一样的问题:PYOMO:Binary vari原创 2023-12-08 10:31:15 · 230 阅读 · 0 评论 -
Python搭建运筹模型的代码框架
刚踏入职场用python写运筹模型时,基本是一个个函数堆砌,中间会出现非常多的重复数据操作,只能怪自己当初代码能力和结构思维都太弱(捶胸口)。好在身边还是有能行的同事的,某一天看了工程出身的算法同事的模型代码,有一种“相见恨晚”的感觉,后面我基本都是参照他这个框架,在搭建运筹模型啦!原创 2023-11-29 10:00:12 · 157 阅读 · 0 评论 -
运筹学(零):运筹知识体系
运筹学习知识框架原创 2023-10-10 19:29:51 · 558 阅读 · 0 评论