运筹优化
文章平均质量分 88
运筹优化
362976923
Talk is cheap, show me the code.
展开
-
使用粒子群算法求解约束优化问题
为了保证解的逼近质量,无约束优化问题的目标函数为原约束优化问题的目标函数加上与约束函数有关的惩罚项。例如梯度法中沿着负梯度方向下降所得的点未必是可行点,要寻找的最优解处目标函数的梯度也不是零向量,这使得约束优化问题比无约束优化问题要复杂许多。二次罚函数的特点如下:对于非可行点而言,当σ变大时,惩罚项在罚函数中的权重加大,对罚函数求极小,相当于迫使其极小点向可行域靠近;的可行点,这显然不是我们需要的,必须对原有二次罚函数进行改造来得到新的二次罚函数,它应该具有如下特点:仅仅惩罚。原创 2024-03-18 15:28:01 · 1427 阅读 · 0 评论 -
粒子群算法求解无约束优化问题Rastrigin函数
Rastrigin函数的极小值,Rastrigin函数是一个典型的非线性多峰函数,在搜索区域内存在许多极大值和极小值,导致寻找全局最小值比较困难,常用来测试寻优算法的性能。其中全局最小值点为(0,0),最小值为0。原创 2023-01-13 16:24:15 · 2625 阅读 · 0 评论 -
车辆路径优化问题(VRP)变体及数学模型
带容量约束的车辆路径优化问题,CVRP,对一系列装卸货点进行适当的路径规划,在满足约束条件(客户需求、车辆载重和容积、车型、车辆行驶里程、配送中心数量等限制)和目标最优化(路程最短、成本最低、使用车辆数最少、配送时间最快等)下,将客户的配送需求从配送中心送达客户点,或从客户点送回配送中心。车辆路径优化问题是一种非常常见的优化问题,在给定一组客户点、车辆容量、车辆数量、起始点和终点,目标是找到使得所有客户点都被访问一次的最短路径方案。算法输出:每辆车的行驶路径,经过的客户点,以及总成本。原创 2024-03-13 23:43:06 · 3304 阅读 · 0 评论 -
二次规划&二次约束规划建模求解
二次规划问题 QP 是解决在目标函数内部有如 x 平方以及 xy 等二次项的这样的问题。二次规划问题最早在金融领域提出,用来做投资组合优化。二次约束规划问题 QCP 则是在问题约束之内有二次项。原创 2024-03-13 23:16:23 · 1583 阅读 · 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 · 1199 阅读 · 0 评论 -
使用Java读取VRP问题标准测试集:C101.txt
JavaIO读取C101.txt文件:# 一、split分割带空格的字符串(四种方法及其区别)# 二、使用trim()方法删除字符串的头尾空白符# 三、使用JDK1.5的Scanner类读取C101.txt原创 2024-02-10 16:31:26 · 330 阅读 · 0 评论 -
基于集合的粒子群算法(S-PSO)求解车辆路径优化问题
为了缓解现有离散PSO算法的不足,为在离散空间中使用PSO算法开发一个更通用和灵活的框架,Chen等提出了一套为基础的PSO (S-PSO)框架。离散变量天然可以用集合进行表示,S-PSO在集合空间中重新定义了PSO。原创 2024-01-31 14:22:49 · 1238 阅读 · 0 评论 -
基于自适应遗传算法的TSP问题建模求解(Java)
普通遗传算法(Sample Genetic Algorithm, SGA)存在着严重的缺点,它的Pc和Pm的值是固定的,本文采用自适应遗传算法进行求解TSP问题。不管是优良个体还是劣质个体都经过了相同概率的交叉和变异操作。原创 2023-04-14 23:55:04 · 1298 阅读 · 6 评论 -
基于蚁群算法的TSP问题建模求解(Python)
蚁群系统(Ant System或Ant Colony System(是由意大利学者Dorigo、Maniezzo等人于20世纪90年代(1992年)首先提出来的。他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的行为比较简单,但是蚁群整体却可以体现一些智能的行为。例如蚁群可以在不同的环境下,寻找最短到达食物源的路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。后又经进一步研究发现,蚂蚁会在其经过的路径上释放一种可以称之为“信息素”的物质,蚁群内的蚂蚁对“信息素”具有感知能力,它们会沿着“信息素”浓度较高原创 2024-01-12 09:32:26 · 1547 阅读 · 0 评论 -
最短路径问题相关算法、原理及适用场景
比较有效的算法之一是马丁斯(Martins)在1999年提出的MPS算法,其特点是简化了偏离路径的长度计算,在生成候选边时不像Yen算法那样计算每条候选路径的长度,而是要求更新每条弧上的减少长度,只选择长度减少最小的弧作为最短偏离路径,该算法在一般情况下可以提高运行速度,但是在最差的情况下与Yen算法的时间复杂度一样。Dijkstra算法和Floyd算法均为动态规划算法且是一种贪心算法,即进行无方向性的搜索,每一步转移都由计算机选择当前的最优解并生成新的状态,一直到达目标状态为止。原创 2024-01-08 15:55:27 · 1296 阅读 · 0 评论 -
基于A*的最短路径问题求解
A*搜索算法(A star algorithm)是用于寻路和图遍历的最佳和流行的技术之一。A*搜索算法,不像其他传统算法,它有“大脑”,是一个真正的智能算法将它与其他传统算法区分开来,A*算法作为Dijkstra算法和BFS的结合算法,其与这两种算法的区别就是采用了启发函数,这也是这个算法的核心。许多游戏和基于web的地图都使用这种算法来非常有效地找到最短路径(近似)。为了在现实生活中接近最短路径,比如在地图中,有很多障碍的游戏中。原创 2023-12-01 23:11:09 · 1433 阅读 · 0 评论 -
基于scipy的线性规划问题求解
Scipy.optimize是Scipy中一个用于解决数学模型中优化类模型的子包,该子包中又包含了多个子功能模块见下表,不同方法不同条件求解最优化模型。本节介绍linprog对线性规划问题的模型建立与求解。原创 2023-11-09 17:28:41 · 196 阅读 · 0 评论 -
基于Cplex的VRPTW问题建模求解(JavaAPI)
【代码】基于Cplex的VRPTW问题建模求解(JavaAPI)原创 2021-04-28 22:19:49 · 896 阅读 · 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 · 923 阅读 · 0 评论 -
多式联运路径优化问题:基于拓扑排序的遗传算法染色体编码
在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。【注】:有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说。例如,下面这个图,它是一个 DAG 图,那么如何写出它的拓扑排序呢?原创 2023-11-04 12:59:08 · 302 阅读 · 0 评论 -
基于Networkx的最短路径
networkx是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。networkx支持创建简单无向图、有向图和多重图(multigraph);内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。原创 2023-11-04 10:59:25 · 551 阅读 · 0 评论