运筹优化
文章平均质量分 72
萝卜丝皮尔
统计学、管理科学与工程
展开
-
Particle Swarm Optimization
【代码】Particle Swarm Optimization。原创 2024-05-11 20:30:14 · 909 阅读 · 0 评论 -
Python3实现单级库存仿真,single echelon inventory assessment
参考代码的来源:https://github.com/anshul-musing/single-echelon-inventory-assessment/blob/master/src/simpy_3.0/simLostSales.py这段代码主要模拟单级供应链,所考虑的库存参数为在途库存、库存水平、服务水平。假设这个系统采用的是“一旦库存水平低于再订货点(固定),管理者立即下订单(固定)”的订货策略。假设当前未被满足的订单允许被后期的补货满足,基于订单有多晚被满足 ,计算服务水平。假设需求服从正原创 2024-04-15 17:10:37 · 480 阅读 · 0 评论 -
Yalmip学习笔记
这里写自定义目录标题基本用法变量定义关于大MBilevel programming注:这篇文章主要是留给自己查漏补缺的,所以从来没有使用过yalmip的读者看着会觉得跳来跳去。基本用法建模开始前,使用yalmip('clear')清空Yalmip的内部数据库。下面是一个完整的建模例子,包括定义决策变量、约束、目标函数,并求解。如果求解成功,那么输出最优解;否则,使用sol.info,yalmiperror(sol.problem)分析求解出错的原因。% It's good practice to原创 2024-01-30 16:30:00 · 945 阅读 · 0 评论 -
Dantzig-Wolfe分解
参考资料:Introduction to Linear Programming, Dimitris Bertsimas etc这篇博客是个人笔记的电子版(●ˇ∀ˇ●),希望之后的自己也能看懂吧在这本教材的Dantzig-Wolfe分解章节中,作者主要列举了两个小例子,结合坐标图,解释这种分解算法的过程,非常推荐看原书的讲解。大家小心,我要开始胡诌了……原创 2023-12-09 20:48:55 · 379 阅读 · 0 评论 -
随机规划——报童模型
由三个模块构成,分别是optimizer模块、simulator模块、main模块。optimizer.py定义了四种版本的报童模型、Demand类(由离散随机分布、抽样函数所构成)simulator.py定义了绘制数组的概率分布图、累计概率分布图等,计算利润的函数;main.py调用了optimizer.py和simulator.py两个模块的函数和类,具体地,定义了一个枚举类ProblemInstance,枚举了四种版本的报童模型。另外,这个枚举类定义了方法.solve。原创 2023-10-13 17:46:42 · 968 阅读 · 0 评论 -
【报童模型】随机优化问题&&二次规划
面对需求的不确定性,报童模型是做库存优化的常见模型。而标准报童模型假设价格是固定的,此时求解一个线性规划问题,可以得到最优订货量,这种模型存在局限性。因为现实世界中价格与需求存在一定的关系,本文假设需求q是价格p的线性函数,基于历史需求数据学习回归直线的参数并计算拟合残差,带入到报童模型中,此时的报童模型变成一个二次规划问题,其目标函数是关于价格p是二次的。原创 2023-08-13 17:23:28 · 2200 阅读 · 7 评论 -
【学习日志】2023.Aug.6,支持向量机的实现
参考了大佬的代码,但有些地方似乎还有改进的空间,我加了注释。原创 2023-08-06 13:47:11 · 796 阅读 · 0 评论 -
【遗传算法】p中值法选址问题 Java代码
问题:已知城市坐标和城市需求,从51个或76个候选城市中,选择pmedian个(这里是3个),作为物流中心。编码方式: 城市如果被选中,则标记为‘1’;否则标记为’0’。交叉变异算子,详细见方法,双方父母都是1的位置,子代也是1;其余位置子代随机放0或1;之后调整这个子代中的开放城市,直到达到开放城市数为pmedian。然后,以0.1的概率决定是否进行变异操作——从该个体的染色体中随机选一个1,一个0做交换。注意:注释中“开放城市”指的是“被选中做物流中心的城市”。原创 2023-07-20 15:39:40 · 564 阅读 · 0 评论 -
基于遗传算法求解CVRP问题(待修正)
【代码】基于遗传算法求解CVRP问题(待修正)原创 2023-07-14 20:17:14 · 427 阅读 · 0 评论 -
VRP启发式解法:局部搜索算法(relocation算子)、禁忌搜索算法(代码非原创)
代码的逻辑是:先找到最好的relocation(见函数 findBestRelocationMove ),然后将这个relocation作用到当前解上,并在末尾更新当前解(见函数 applyRelocationMove)。它是一种贪心搜索算法,从初始解出发,找到它所在邻域内更好的解,然后去到更优的解,继续搜索邻域中更好的解,直到邻域中没有更好的解(即局部最优解)时终止算法。在这套代码中,作者用最近邻算法构造初始可行解,然后用后面的局部搜索算法、禁忌搜索算法改善该初始可行解。我暂时还没看懂这个代码……原创 2023-06-29 14:15:01 · 853 阅读 · 0 评论 -
分支定价算法求解VRPTW问题(代码非原创)
参考文献:微信公众号“程序猿声”关于分支定价求解VRPTW的代码A tutorial on column generation and branch-and-price for vehicle routing problems框架对于VRPTW问题,先做线性松弛,调用列生成算法(一种解决大型线性规划问题的精确算法),得到最终RMP(Restricted master problem)。此时,如果得到的是整数解,那么结束算法;否则,更新上界、下界并分支,再在分支节点上重复上述步骤。列生成算法的具体步原创 2023-06-26 21:08:40 · 2466 阅读 · 2 评论 -
【SPPRC(ESPPRC)】带资源约束的(基本)最短路问题
参考资料:《运筹优化常用模型、算法及案例实战》、微信公众号“数据魔法师”,“程序猿声”给定起点和终点,希望在图上找到他们之间的最短路径。原创 2023-06-23 20:04:18 · 1390 阅读 · 0 评论 -
Java调用Cplex解VRPTW问题(代码非原创)
先设置问题的背景,数据的存放和组织,具体如:客户节点、车辆数、每个车辆的路径、访问客户的时间段和时刻,这些都在类Data中。实际读入数据之后(见 函数process_solomon),删除掉没用的边(有的边绕远路,有的端点组合的时间窗、距离明显不可搭配等等),这里所说“删除”是指data.arc[i][j]设为0,表示不可走。最后,输出解(要考虑把每个车辆要访问的客户按顺序记录到ArrayList中等等),见class Solution.下面的文件同上面的文件在同一个目录下。调用cplex解模型。原创 2023-06-17 10:40:19 · 428 阅读 · 1 评论