
运筹优化
文章平均质量分 88
运筹优化
莫聽穿林打叶聲
这个作者很懒,什么都没留下…
展开
-
用牛顿法求解无约束极值问题
梯度下降:简单、通用,适合大规模问题,但收敛慢。牛顿法:计算复杂,但收敛极快,适合小规模精确优化。实际应用:深度学习(参数多)→ 梯度下降或其变种(如 Adam)。数值优化(参数少)→ 牛顿法或拟牛顿法(如 BFGS)。原创 2025-04-16 11:14:18 · 726 阅读 · 0 评论 -
泰勒展开式与函数逼近
设函数fxf(x)fx在点aaa处无限可导,则fxf(x)fx在aaafx∑n0∞fnan!fnax−anfnaf^{(n)}(a)fna是fff在aaa点的nnn阶导数,n!n!n!是nnn的阶乘,x−an(x-a)^nx−an是x−a(x-a)x−a的nnn次幂。导数是线性逼近。原创 2025-04-16 10:22:04 · 1125 阅读 · 0 评论 -
使用Floyd算法求解两点间最短距离
Floyd算法又称为Floyd-Warshell算法,其实Warshell算法是离散数学中求传递闭包的算法,两者的思想是一致的。Floyd算法是求解多源最短路时通常选用的算法,经过一次算法即可求出任意两点之间的最短距离,并且可以处理有负权边的情况(但无法处理负权环),算法的时间复杂度是On3,空间复杂度是On2。原创 2024-08-03 10:11:06 · 360 阅读 · 0 评论 -
蒙特卡罗方法在不确定性问题中的应用
蒙特卡洛方法(Monte Carlo Method)是一大类随机算法的总称,是一种数值计算技术,其思想是其思想是通过随机样本来估计真实值:从问题的概率分布中生成大量随机样本,对每个样本进行模拟和计算,然后对所有样本的结果进行统计分析,以估计复杂系统的行为或特性。它广泛应用于积分计算、随机过程模拟、金融风险分析、物理系统模拟和优化问题等领域,依赖于大数定律和中心极限定理来确保结果的准确性和可靠性。原创 2024-08-01 15:22:27 · 2051 阅读 · 0 评论 -
数学建模中的辅助变量、中间变量、指示变量
在数学建模中,除了决策变量外,还有一些其他类型的变量,如中间变量、辅助变量和指示变量。每种变量在模型中都有特定的用途和意义。原创 2024-07-13 21:23:31 · 3554 阅读 · 0 评论 -
基于CVXPY的优化问题建模求解
定义一个标量变量 x# 定义一个长度为 n 的向量变量 xn = 5# 定义一个 m 行 n 列的矩阵变量 Xm = 3n = 4# 定义一个非负的标量变量 x# 定义一个非负的向量变量 xn = 5# 定义一个对称矩阵变量 Xm = 3# 定义一个整数标量变量 x# 定义一个整数向量变量 xn = 5# 定义一个布尔标量变量 x# 定义一个布尔向量变量 xn = 5CVXPY 来定义和求解一个优化问题:目标是最小化x−12y−22x−12。原创 2024-07-05 08:09:43 · 1846 阅读 · 0 评论 -
OR-Tools求解器(CBC,Coin-or branch and cut)日志解读
表示求解器找到了一个整数解,目标函数值为 9.1208831e+08(即 912088310)。0 iterations:表示求解器在找到整数解之前没有进行任何迭代。0 nodes:表示求解器在找到整数解之前没有探索任何节点。求解器通常会在整数间隙小于某个阈值时停止求解,因为此时认为已经找到了足够接近最优解的解。扰动是求解器在处理数值稳定性问题时常用的一种技术,通过对问题的系数进行微小的调整来避免数值不稳定性。括号中的数字表示不满足的约束数量。表示求解器找到了一个最优解,目标函数值为 24123912。原创 2024-06-08 00:09:20 · 1671 阅读 · 0 评论 -
OR-Tools求解器参数控制
相对MIP间隙(Relative MIP Gap):相对 MIP 间隙是指当前最优整数解(可行解)与当前最优松弛解(忽略整数约束的解)之间的相对差距。∣∣∣−∣相对 MIP 间隙的值通常是一个百分比,用来衡量当前解与最优解之间的相对差距。求解器会在相对 MIP 间隙小于设定的阈值时停止求解。绝对 MIP 间隙(Absolute MIP Gap):绝对 MIP 间隙是指当前最优整数解与当前最优松弛解之间的绝对差距。∣−∣。原创 2024-06-07 23:30:03 · 1197 阅读 · 0 评论 -
使用粒子群算法求解约束优化问题
为了保证解的逼近质量,无约束优化问题的目标函数为原约束优化问题的目标函数加上与约束函数有关的惩罚项。例如梯度法中沿着负梯度方向下降所得的点未必是可行点,要寻找的最优解处目标函数的梯度也不是零向量,这使得约束优化问题比无约束优化问题要复杂许多。二次罚函数的特点如下:对于非可行点而言,当σ变大时,惩罚项在罚函数中的权重加大,对罚函数求极小,相当于迫使其极小点向可行域靠近;的可行点,这显然不是我们需要的,必须对原有二次罚函数进行改造来得到新的二次罚函数,它应该具有如下特点:仅仅惩罚。原创 2024-03-18 15:28:01 · 3189 阅读 · 1 评论 -
车辆路径优化问题(VRP)变体及数学模型
带容量约束的车辆路径优化问题,CVRP,对一系列装卸货点进行适当的路径规划,在满足约束条件(客户需求、车辆载重和容积、车型、车辆行驶里程、配送中心数量等限制)和目标最优化(路程最短、成本最低、使用车辆数最少、配送时间最快等)下,将客户的配送需求从配送中心送达客户点,或从客户点送回配送中心。车辆路径优化问题是一种非常常见的优化问题,在给定一组客户点、车辆容量、车辆数量、起始点和终点,目标是找到使得所有客户点都被访问一次的最短路径方案。算法输出:每辆车的行驶路径,经过的客户点,以及总成本。原创 2024-03-13 23:43:06 · 9781 阅读 · 0 评论 -
二次规划&二次约束规划建模求解
二次规划问题 QP 是解决在目标函数内部有如 x 平方以及 xy 等二次项的这样的问题。二次规划问题最早在金融领域提出,用来做投资组合优化。二次约束规划问题 QCP 则是在问题约束之内有二次项。原创 2024-03-13 23:16:23 · 4399 阅读 · 0 评论 -
带时间窗的取送货问题(Pickup and Delivery Problem with Time Windows)
广义取送货问题(General Pickup and Delivery Problems,GPDP)可以分为两类:Backhauls,VRPB:从配送中心(depot)取货运输货物到客户点,再从客户点取货运输至配送中心交付(backhoul)。,VRPPD:货物在取货点和送货点之间流转。原创 2024-03-02 22:05:24 · 2486 阅读 · 0 评论 -
使用Java读取VRP问题标准测试集:C101.txt
JavaIO读取C101.txt文件:# 一、split分割带空格的字符串(四种方法及其区别)# 二、使用trim()方法删除字符串的头尾空白符# 三、使用JDK1.5的Scanner类读取C101.txt原创 2024-02-10 16:31:26 · 418 阅读 · 0 评论 -
基于集合的粒子群算法(S-PSO)求解车辆路径优化问题
为了缓解现有离散PSO算法的不足,为在离散空间中使用PSO算法开发一个更通用和灵活的框架,Chen等提出了一套为基础的PSO (S-PSO)框架。离散变量天然可以用集合进行表示,S-PSO在集合空间中重新定义了PSO。原创 2024-01-31 14:22:49 · 2275 阅读 · 0 评论 -
基于蚁群算法的TSP问题建模求解(Python)
蚁群系统(Ant System或Ant Colony System(是由意大利学者Dorigo、Maniezzo等人于20世纪90年代(1992年)首先提出来的。他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的行为比较简单,但是蚁群整体却可以体现一些智能的行为。例如蚁群可以在不同的环境下,寻找最短到达食物源的路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。后又经进一步研究发现,蚂蚁会在其经过的路径上释放一种可以称之为“信息素”的物质,蚁群内的蚂蚁对“信息素”具有感知能力,它们会沿着“信息素”浓度较高原创 2024-01-12 09:32:26 · 1986 阅读 · 0 评论 -
最短路径问题相关算法、原理及适用场景
比较有效的算法之一是马丁斯(Martins)在1999年提出的MPS算法,其特点是简化了偏离路径的长度计算,在生成候选边时不像Yen算法那样计算每条候选路径的长度,而是要求更新每条弧上的减少长度,只选择长度减少最小的弧作为最短偏离路径,该算法在一般情况下可以提高运行速度,但是在最差的情况下与Yen算法的时间复杂度一样。Dijkstra算法和Floyd算法均为动态规划算法且是一种贪心算法,即进行无方向性的搜索,每一步转移都由计算机选择当前的最优解并生成新的状态,一直到达目标状态为止。原创 2024-01-08 15:55:27 · 3260 阅读 · 0 评论 -
基于A*的最短路径问题求解
A*搜索算法(A star algorithm)是用于寻路和图遍历的最佳和流行的技术之一。A*搜索算法,不像其他传统算法,它有“大脑”,是一个真正的智能算法将它与其他传统算法区分开来,A*算法作为Dijkstra算法和BFS的结合算法,其与这两种算法的区别就是采用了启发函数,这也是这个算法的核心。许多游戏和基于web的地图都使用这种算法来非常有效地找到最短路径(近似)。为了在现实生活中接近最短路径,比如在地图中,有很多障碍的游戏中。原创 2023-12-01 23:11:09 · 2392 阅读 · 2 评论 -
基于scipy的线性规划问题求解
Scipy.optimize是Scipy中一个用于解决数学模型中优化类模型的子包,该子包中又包含了多个子功能模块见下表,不同方法不同条件求解最优化模型。本节介绍linprog对线性规划问题的模型建立与求解。原创 2023-11-09 17:28:41 · 299 阅读 · 0 评论 -
多式联运路径优化问题:基于拓扑排序的遗传算法染色体编码
在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。【注】:有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说。例如,下面这个图,它是一个 DAG 图,那么如何写出它的拓扑排序呢?原创 2023-11-04 12:59:08 · 576 阅读 · 0 评论 -
基于Networkx的最短路径
networkx是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。原创 2023-11-04 10:59:25 · 1084 阅读 · 0 评论 -
基于梯度下降算法的无约束函数极值问题求解
导数(Derivative),也叫。又名,是微积分中的重要基础概念。。如果函数的自变量和取值都是实数的话,函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率。。例如在运动学中,物体的位移对于时间的导数就是物体的瞬时速度。对于一条直线来说,求该直线的斜率就是找到该直线上两个点x1y1和x2y2,分别求出两点在y和x上的增量。因此斜率就是y的改变量比上x的改变量,即ktanθΔyΔxx2−x1y2−y1。原创 2023-07-06 00:21:09 · 1597 阅读 · 0 评论 -
基于自适应遗传算法的TSP问题建模求解(Java)
普通遗传算法(Sample Genetic Algorithm, SGA)存在着严重的缺点,它的Pc和Pm的值是固定的,本文采用自适应遗传算法进行求解TSP问题。不管是优良个体还是劣质个体都经过了相同概率的交叉和变异操作。原创 2023-04-14 23:55:04 · 3321 阅读 · 8 评论 -
粒子群算法求解无约束优化问题Rastrigin函数
Rastrigin函数的极小值,Rastrigin函数是一个典型的非线性多峰函数,在搜索区域内存在许多极大值和极小值,导致寻找全局最小值比较困难,常用来测试寻优算法的性能。其中全局最小值点为(0,0),最小值为0。原创 2023-01-13 16:24:15 · 4875 阅读 · 0 评论 -
基于Dijkstra算法的最短路问题求解
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先遍历思想),直到扩展到终点为止。P的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而T则是记录还未求出最短路径的顶点(以及该顶点到起点V_0的距离)结果:[[A=0], [B=5], [C=3], [D=6], [E=7], [F=9]]step1:初始化:所有元素入优先级队列,如图3。更新邻居标号,如图5。更新邻居标号,如图7。原创 2021-11-02 10:36:28 · 1521 阅读 · 0 评论 -
集合包装、覆盖和划分模型
若把一个集合A分成若干个叫做分块的非空子集,使得A中的每个元素至少属于一个分块,那么这些分块的全体构成的集合叫做A的一个。如果A中的每个元素属于且仅属于一个分块,那么这些分块的全体构成的集合叫做A的一个。给定A为非空集合,SS1S2,⋅⋅⋅,Sm,其中Si⊆ASi∅i1,⋅⋅⋅,m且∪i1mSiA,则集合S为称作集合A的覆盖。若除以上条件外,另有Si∩Sj∅,则称S是A。原创 2021-10-24 12:52:28 · 6259 阅读 · 2 评论 -
表上作业法-运输问题(Java)
设计Java程序使用表上作业法求解产销平衡运输问题。最小元素法确定初始基可行解(最小元素法本质贪婪算法)。位势法求解检验数。闭回路调整法调整初始基可行解,获得最优解。其中闭回路使用深度优先搜索寻找。若对以上方法、概念不熟悉请自行补充。原创 2021-07-04 15:36:36 · 2192 阅读 · 1 评论 -
基于Cplex的VRPTW问题建模求解(JavaAPI)
【代码】基于Cplex的VRPTW问题建模求解(JavaAPI)原创 2021-04-28 22:19:49 · 1136 阅读 · 0 评论