news 2026/8/23 11:23:46

数学建模实战:疫情物资配送的选址-路径优化模型与算法详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数学建模实战:疫情物资配送的选址-路径优化模型与算法详解

1. 项目概述:从赛题到现实问题的映射

看到“COVID-19疫情期间生活物资的科学管理问题”这个题目,很多参加过数学建模竞赛的朋友可能会心一笑,这确实是2022年研赛F题的经典再现。这道题之所以让人印象深刻,是因为它完美地将一个全球性的公共卫生危机,转化成了一个极具现实意义和挑战性的运筹优化问题。它问的不仅仅是“如何建模”,更是“在极端不确定性和资源硬约束下,如何通过数学工具实现有限资源的最优配置,以保障最基本的社会运行”。

简单来说,这道题模拟了疫情封控背景下,一个区域(比如一个大型社区、一个行政区)的生活物资保障场景。核心矛盾点非常突出:一方面,居民对粮食、蔬菜、药品等基本物资的需求是刚性且迫切的;另一方面,物资的供应、仓储、分拣和配送能力在封控条件下受到严重限制(如运力不足、人员短缺、通行管制)。题目要求参赛者构建数学模型,来科学地回答一系列问题:需要设置多少个物资分发点?它们应该分布在哪里?每天需要调配多少物资到每个点?如何规划配送路线才能在最短时间内、用最少资源满足最大需求?这本质上是一个融合了需求预测、设施选址、库存管理和车辆路径规划的复杂系统优化问题。

对于参赛者而言,这道题的魅力在于其极强的“落地感”。你写的每一行代码、推导的每一个公式,都可能对应着现实中一次更有效率的物资发放、一辆配送车少跑的几公里路、一个家庭早几个小时拿到急需的药品。它考察的不仅仅是数学和编程能力,更是将抽象模型与现实约束相结合的系统思维。接下来,我将以一名多次参与并指导此类赛事的“老手”视角,拆解这道题的解题思路、核心模型、算法实现以及那些在论文里不会写的“踩坑”经验。

2. 核心思路拆解:构建多层级的决策优化框架

面对这样一个复杂问题,切忌一上来就埋头建一个大而全的“巨无霸”模型。合理的做法是采用分而治之、层层递进的策略,将整个物资管理体系分解为几个相对独立又相互关联的决策层级。这是解决大多数运筹学综合问题的通用心法。

2.1 问题分解与核心决策变量识别

首先,我们需要明确要“决定”什么。根据题目描述,通常可以梳理出以下几类核心决策变量:

  1. 设施选址决策:物资分发点(或前置仓)设在哪些位置?这是一个0-1决策变量,例如,( x_j = 1 ) 表示在第 ( j ) 个候选位置设立分发点。
  2. 需求分配决策:每个居民小区(需求点)由哪个分发点负责服务?这建立了需求点与供应点之间的隶属关系。
  3. 库存决策:每个分发点每天应储备多少各类物资?这决定了初始库存水平和补货策略。
  4. 路径规划决策:配送车辆从中心仓库出发,访问一系列分发点进行补货,最终返回仓库,所形成的具体行驶路线。这涉及到车辆与分发点的匹配、访问顺序等。

这些决策相互耦合。选址影响分配和路径,分配方案又决定了各点的库存需求。因此,一个完整的模型需要将它们有机整合。

2.2 经典模型选型与融合思路

针对上述决策,我们可以从经典运筹学模型中汲取灵感:

  • 对于设施选址-需求分配:最直接的模型是设施选址问题(Facility Location Problem, FLP),特别是带容量限制的设施选址问题(Capacitated FLP, CFLP)。其目标是,在满足所有需求点需求、且每个设施服务能力(容量)有限的前提下,最小化设施建设(开设)成本和从设施到需求点的运输成本之和。这完美对应了“设立分发点”和“分配需求”两个决策。

    • 目标函数:( \min \sum_{j} f_j x_j + \sum_{i} \sum_{j} c_{ij} d_i y_{ij} )
    • 关键约束
      1. 每个需求点的需求必须被满足:( \sum_{j} y_{ij} = 1, \quad \forall i )
      2. 需求只能分配给已开设的设施:( y_{ij} \leq x_j, \quad \forall i,j )
      3. 设施服务总量不能超过其容量:( \sum_{i} d_i y_{ij} \leq C_j x_j, \quad \forall j ) 其中,( f_j )是开设设施j的固定成本,( c_{ij} )是单位物资从j到i的运输成本(通常与距离成正比),( d_i )是需求点i的需求量,( y_{ij} )是分配比例(0-1变量或连续变量),( C_j )是设施j的容量。
  • 对于车辆路径规划:这显然是车辆路径问题(Vehicle Routing Problem, VRP)的范畴。在本题中,很可能是从一个中心仓库向多个分发点(设施)配送物资,这属于多点配送VRP。如果考虑车辆容量、配送时间窗(如某个分发点需要在上午10点前补货),则模型进化为带容量约束的车辆路径问题(CVRP)带时间窗的车辆路径问题(VRPTW)

    • 核心决策变量:( z_{ijk} = 1 ) 表示车辆k从点i行驶到点j。
    • 关键约束
      1. 流量守恒:车辆到达一个点就必须离开该点(起点和终点除外)。
      2. 容量约束:一辆车访问的所有点的需求量之和不超过车辆载重。
      3. 消除子回路:确保每条路径是一条从仓库出发、访问若干点后返回仓库的简单回路。

如何融合?一个典型的建模框架是两阶段法

  1. 第一阶段(战略层):使用CFLP模型确定分发点的位置和各需求点的归属。这个阶段忽略了车辆路径的细节,只用一个简化的运输成本(如直线距离乘以需求量)来近似。
  2. 第二阶段(战术层):基于第一阶段确定的、需要补货的分发点集合,将其作为VRP模型中的“客户点”,规划从中心仓库到这些点的具体配送路线。

更高级的建模思路是建立选址-路径问题(Location-Routing Problem, LRP)的集成模型,一次性同时决定选址和路径。但这通常导致模型非常复杂,求解困难,在竞赛有限时间内,两阶段法是更务实、更常见的选择。

2.3 疫情特殊约束的量化处理

本题的“疫情”背景不是摆设,它引入了关键的特殊约束,必须在模型中体现:

  1. 时间紧迫性:物资需要快速送达。这可以通过在目标函数中最小化总配送时间,或在VRP模型中添加严格的时间窗约束来实现。例如,设定每个分发点要求物资在设立后H小时内到位。
  2. 运力与人力限制:封控下车辆和司机有限。这直接体现为VRP模型中的车辆数约束,即最多只有K辆车可用。
  3. 需求的不确定性:疫情中居民需求可能发生波动。一种处理方法是采用鲁棒优化随机规划的思路,考虑需求在一定区间内波动(如增加20%)的最坏情况,确保方案在多种情景下都可行。更简单实用的方法是,在预测需求的基础上,设置一个安全库存系数(例如,按预测需求的120%进行准备)。
  4. 公平性与覆盖度:方案需要尽可能覆盖所有区域,避免遗漏。在选址模型中,可以增加约束,要求每个需求点在一定距离(如1公里)内至少有一个分发点,或者将“未被覆盖的需求量”作为惩罚项加入目标函数。

注意:在竞赛中,不必追求将所有复杂因素都塞进一个模型。关键在于识别出最关键的一两个特殊约束,将其清晰、准确地建模,并说明其他因素是如何被简化或考虑的。这比构建一个面面俱到却无法求解的模型要高明得多。

3. 模型构建与求解的详细实现

思路清晰后,我们来具体看看如何“搭积木”,把模型构建出来,并找到求解的方法。这里我以一个基于两阶段法的简化版实现为例,展示核心步骤。

3.1 第一阶段:带容量限制的设施选址模型(CFLP)

假设与数据准备

  • 我们有 ( I ) 个居民小区(需求点),位置已知,每个点日需求量为 ( d_i )(可通过人口数据估算)。
  • 有 ( J ) 个候选分发点位置,每个点若开设,固定成本为 ( f_j )(可包含场地、人员搭建成本),最大服务容量为 ( C_j )。
  • 从候选点 ( j ) 到需求点 ( i ) 的单位距离运输成本为 ( c_{ij} ),通常 ( c_{ij} = \alpha \cdot dist(i,j) ),( \alpha ) 是单位距离单位物资的运费。

数学模型(混合整数线性规划,MILP)

目标:最小化总成本 = 设施开设成本 + 运输成本 Minimize: Σ(j∈J) f_j * x_j + Σ(i∈I) Σ(j∈J) c_ij * d_i * y_ij 约束条件: 1. 每个需求点必须被完全服务: Σ(j∈J) y_ij = 1, ∀i∈I 2. 需求只能分配给已开设的设施: y_ij ≤ x_j, ∀i∈I, ∀j∈J 3. 设施服务总量不超过其容量: Σ(i∈I) d_i * y_ij ≤ C_j * x_j, ∀j∈J 4. 变量类型: x_j ∈ {0, 1}, y_ij ≥ 0 (通常也设为0-1变量,表示独家服务;或连续变量表示比例分配)

求解方法: 这是一个标准的MILP问题。对于规模不大(如需求点和候选点各几十个)的情况,可以直接使用优化求解器求解。

  • 工具推荐:Python的PuLPortools库,或gurobipymip库。MATLAB的intlinprog函数也可以。
  • 代码片段示意(使用PuLP)
    import pulp # 假设 distances, demands, capacities, fixed_costs 已定义 prob = pulp.LpProblem('CFLP', pulp.LpMinimize) # 定义变量 x = pulp.LpVariable.dicts('x', candidate_sites, cat='Binary') y = pulp.LpVariable.dicts('y', [(i,j) for i in demand_points for j in candidate_sites], lowBound=0, upBound=1) # 目标函数 prob += pulp.lpSum(fixed_costs[j] * x[j] for j in candidate_sites) + \ pulp.lpSum(distances[i][j] * demands[i] * y[(i,j)] for i in demand_points for j in candidate_sites) # 约束条件 for i in demand_points: prob += pulp.lpSum(y[(i,j)] for j in candidate_sites) == 1 for i in demand_points: for j in candidate_sites: prob += y[(i,j)] <= x[j] for j in candidate_sites: prob += pulp.lpSum(demands[i] * y[(i,j)] for i in demand_points) <= capacities[j] * x[j] # 求解 prob.solve(pulp.PULP_CBC_CMD(msg=False)) # 输出结果 opened_sites = [j for j in candidate_sites if pulp.value(x[j]) > 0.5]

求解后,我们得到一组开设的分发点集合opened_sites,以及每个需求点i对应服务的分发点j

3.2 第二阶段:带容量约束的车辆路径问题(CVRP)

输入:第一阶段确定的需要补货的分发点集合(每个点有其物资需求量,即其服务的所有需求点需求之和),以及中心仓库的位置。目标:安排若干辆容量为 ( Q ) 的车辆,从仓库出发,服务所有分发点后返回仓库,使得总行驶距离(或时间)最短。

数学模型: VRP的精确模型形式较多,常用基于流的三下标模型。这里给出一个概念性描述:

  • 决策变量:( z_{ijk} = 1 ) 如果车辆k从点i行驶到点j。
  • 目标:最小化总行驶距离 ( \sum_{k} \sum_{i} \sum_{j} dist_{ij} z_{ijk} )。
  • 关键约束
    1. 每辆车从仓库出发并返回仓库。
    2. 每个分发点只被一辆车访问一次。
    3. 每辆车的载货量不超过其容量 ( Q )。
    4. 消除子回路约束(Subtour Elimination Constraints, SECs),这是VRP建模的难点和核心。

求解方法: 精确求解VRP(特别是带SECs)对于稍大规模问题非常困难。在数模竞赛中,更实际的是采用启发式或元启发式算法来获得高质量可行解。

  • 经典启发式节约算法(Clarke-Wright Savings Algorithm)。思路直接,实现简单,适合快速得到一个不错的初始解。
  • 元启发式遗传算法(GA)模拟退火(SA)禁忌搜索(TS)。这些算法能在更长时间内搜索到更优解。
  • 使用现成工具:Python的ortools库提供了非常强大的VRP求解模块,基于局部搜索的启发式方法,性能优异且易于调用。

代码片段示意(使用ortools)

from ortools.constraint_solver import routing_enums_pb2 from ortools.constraint_solver import pywrapcp def create_data_model(): """创建问题数据。""" data = {} data['distance_matrix'] = [...] # 仓库+所有分发点之间的距离矩阵 data['demands'] = [0] + [...] # 仓库需求为0,后面是各分发点需求量 data['vehicle_capacities'] = [Q, Q, ...] # 每辆车的容量,假设相同 data['num_vehicles'] = K # 车辆数 data['depot'] = 0 # 仓库索引 return data def main(): data = create_data_model() manager = pywrapcp.RoutingIndexManager(len(data['distance_matrix']), data['num_vehicles'], data['depot']) routing = pywrapcp.RoutingModel(manager) # 定义距离回调函数 def distance_callback(from_index, to_index): from_node = manager.IndexToNode(from_index) to_node = manager.IndexToNode(to_index) return data['distance_matrix'][from_node][to_node] transit_callback_index = routing.RegisterTransitCallback(distance_callback) routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index) # 添加容量约束 def demand_callback(from_index): from_node = manager.IndexToNode(from_index) return data['demands'][from_node] demand_callback_index = routing.RegisterUnaryTransitCallback(demand_callback) routing.AddDimensionWithVehicleCapacity( demand_callback_index, 0, # null capacity slack data['vehicle_capacities'], # vehicle maximum capacities True, # start cumul to zero 'Capacity' ) # 设置搜索策略和求解 search_parameters = pywrapcp.DefaultRoutingSearchParameters() search_parameters.first_solution_strategy = (routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC) search_parameters.local_search_metaheuristic = (routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH) search_parameters.time_limit.seconds = 30 # 设置求解时间 solution = routing.SolveWithParameters(search_parameters) # 后续处理,输出路径...

3.3 模型间的衔接与迭代优化

两阶段法的一个潜在问题是,第一阶段选址时使用的简化运输成本(直线距离×需求量)可能与第二阶段的实际车辆路径成本有较大出入。这可能导致整体方案并非全局最优。

一种改进策略是迭代反馈

  1. 用第一阶段模型得到初始选址。
  2. 用第二阶段VRP求解实际配送路径和成本。
  3. 将第二阶段的实际路径成本(平均到每个需求点)作为一种更精确的“运输成本”,反馈回第一阶段的模型参数中(更新 ( c_{ij} ) )。
  4. 用更新的成本重新求解第一阶段模型,得到新的选址。
  5. 重复2-4步,直到选址方案不再变化或变化很小。

这种方法虽然计算量更大,但能显著提升方案的整体质量,在论文中作为模型优化部分阐述,是重要的加分项。

4. 关键环节的深度剖析与实操技巧

掌握了整体框架和模型,我们还需要深入一些关键细节,这些地方往往是区分论文质量高下的关键。

4.1 需求预测:模型可靠性的基石

所有优化模型都建立在需求数据之上。题目可能给出历史数据或需要自己估算。常用方法:

  • 基于人口统计的估算某小区日物资需求 = 小区户数 × 户均人口 × 人均日消耗量 × 保障系数。其中,人均日消耗量可参考膳食指南,保障系数(>1)用于应对不确定性和特殊需求。
  • 时间序列预测:如果给了历史需求数据,可以用移动平均法指数平滑法甚至简单的ARIMA模型进行预测。对于数模竞赛,使用移动平均或指数平滑并说明理由即可,不必过于复杂。
  • 分类需求处理:将物资分为几大类(如粮食、蔬菜、肉蛋、药品),每类设定不同的需求权重和配送优先级。药品需求可能总量小但点位分散、时效要求极高,可以考虑单独建模或用“虚拟高成本”来保证优先配送。

实操心得:需求预测部分一定要给出明确的、可复现的计算公式和参数来源(即使是假设的)。例如,“参考《中国居民膳食指南》,成年人日均蔬菜摄入量按300克计算,考虑存储损耗,保障系数取1.2”。这体现了建模的严谨性。

4.2 距离矩阵的计算:效率与精度的权衡

模型中到处都需要点对点之间的距离。在城区环境中,直线欧氏距离往往不准确。

  • 曼哈顿距离:适用于规则网格状道路的城市,计算公式为 |x1-x2| + |y1-y2| ,比欧氏距离更贴合实际。
  • 调用地图API:最准确但可能受限于竞赛环境(无网络或API调用次数限制)。如果允许,可以简要说明此方法更优。
  • 简化处理:在论文中,可以声明“为简化计算,本文采用欧氏距离,但模型框架支持替换为任何形式的距离矩阵”。这是一种务实的策略。

计算效率:对于成百上千个点,提前计算好所有点对之间的距离矩阵是必须的。注意使用向量化操作(NumPy)以提高效率。

4.3 算法选择与求解策略

  • CFLP求解:对于中小规模问题,直接使用求解器(如COIN-OR CBC, Gurobi)求精确解。如果问题规模很大(候选点>100),可以考虑使用拉格朗日松弛法启发式算法(如贪婪算法、模拟退火)先获得一个可行解,再用求解器在有限时间内优化。
  • VRP求解:如前所述,优先推荐使用ortools。如果自己实现算法,遗传算法(GA)是一个表现均衡的选择:
    • 编码:用一条染色体表示所有点的访问顺序(需处理多辆车和容量约束)。
    • 解码:设计一个“贪婪解码”函数,沿着染色体顺序,在不超过车容量的情况下将点分配给当前车辆,容量满了则换下一辆车。
    • 交叉与变异:采用顺序交叉(OX)、部分映射交叉(PMX)和交换变异、倒位变异等。
    • 优点:框架通用,易于融入各种特殊约束(如时间窗)。
    • 缺点:参数调优(种群大小、迭代次数、交叉变异概率)需要时间。

注意事项:自己实现复杂算法时,务必预留充足的调试时间。一个稳妥的策略是:用ortools快速得到基准解,再尝试用自己的算法去改进或对比,这样即使自研算法未达最优,也有一个保底的高质量解。

4.4 可视化:让结果一目了然

一张好的图胜过千言万语。必须将结果可视化:

  1. 选址-分配图:在地图背景上,用不同图标标记仓库、候选点、已选分发点、居民小区。用连线或颜色区块表示每个分发点的服务范围。
  2. 车辆路径图:用不同颜色的线条画出每辆车的行驶路径,形成清晰的配送网络。
  3. 指标对比图:如果用不同参数(如分发点数量、车辆数)做了多次实验,可以用柱状图或折线图展示总成本、平均服务距离、覆盖率等关键指标的变化趋势。

使用Python的matplotlibfolium(生成交互式地图)或networkx(用于网络图)可以轻松实现。

5. 常见问题与实战排坑指南

基于以往的经验,队伍在解决这类问题时最容易在以下几个地方“翻车”。

5.1 模型假设过于理想化或模糊不清

  • 问题:假设“运输成本与距离成正比”,但未说明比例系数如何确定;假设“每个分发点容量相同”,但未给出具体数值及依据。
  • 解决:对每一个重要假设,都必须给出合理解释或估算方法。例如,“根据本市物流行业平均数据,小型货车每公里运输成本约为2元,故设单位距离单位重量成本系数α=2”。即使数据是假设的,也要让它看起来合理、有据。

5.2 模型规模失控,无法求解

  • 问题:一开始就试图对成百上千个小区和候选点建模,导致变量太多,求解器跑几个小时也没结果。
  • 解决
    1. 数据聚合:将地理位置临近的多个小区合并为一个“超级需求点”,其需求为各小区之和。这是降低问题规模的经典方法。
    2. 候选点预筛选:不要在所有可能位置设候选点。可以先用聚类算法(如K-Means)对需求点聚类,将聚类中心作为候选点,或者只选择主要社区中心、超市等现实中的合理位置。
    3. 分阶段-分区域求解:将整个大区域划分为几个子区域,分别建模求解,最后再协调边界问题。

5.3 算法陷入局部最优或耗时过长

  • 问题:自己编写的遗传算法很快收敛到一个不太好的解,或者迭代几千次还没有明显改善。
  • 解决
    • 调整算法参数:增大种群规模、提高变异概率有助于跳出局部最优。可以设计一个简单的参数实验来找寻较优组合。
    • 改进初始解:不要完全随机生成初始种群。可以先用贪婪算法(如最近邻法)或节约算法生成一个较好的解放入初始种群,引导进化方向。
    • 设置合理的停止准则:除了最大迭代次数,可以增加“连续N代最优解未改进”则停止的条件。
    • 考虑简化模型:如果时间紧迫,优先保证得到一个可行的、逻辑清晰的解,而不是一个“最优的”解。在论文中清晰阐述模型和算法,并展示一个中等规模算例的完整求解过程,比提交一个未完成的大规模问题求解尝试要强得多。

5.4 结果分析与灵敏度分析流于形式

  • 问题:只给出了最终方案和几个数字,没有深入分析方案的特点、优势和潜在风险。
  • 解决
    • 多方案对比:至少提供2-3个不同参数下的方案(例如,设立5个、7个、9个分发点),对比其总成本、平均服务距离、最大服务距离等指标。用图表清晰展示,并分析“性价比”,给出推荐方案。
    • 灵敏度分析:这是体现模型稳健性的关键。选择1-2个关键参数(如需求波动范围、车辆容量、单位运输成本),观察它们在一定范围内变化时,目标函数值或最优方案结构的变化情况。例如,“当所有小区需求同时增加15%时,总成本上升约12%,但最优选址方案保持不变,说明该方案对需求波动具有一定的鲁棒性。”
    • 方案解读:不要只扔出一张路径图。要解释:“如图3所示,1号车辆负责西北区域的三个点,因其需求品类相似且路径顺直;2号车辆绕行至最远的东南点,虽然距离长,但该点药品需求紧急,故单独配送以保证时效。”这样的解读让方案有了灵魂。

5.5 论文写作重模型轻描述

  • 问题:论文通篇是公式和代码,缺乏对问题背景、建模思路、模型实际含义的文字描述。
  • 解决:记住,评委可能不是你这个细分方向的专家。要用文字把故事讲好:
    1. 引言:清晰阐述疫情下物资配送的难点和建模的价值。
    2. 问题分析:用框图或流程图展示你对问题的分解过程。
    3. 模型假设与符号说明:表格形式呈现,一目了然。
    4. 模型建立:先文字描述“我们要做什么”,再给出公式。对每个约束条件,都用一句话解释其现实含义。
    5. 求解方法:说明为什么选择这个算法,其流程是怎样的(可以配流程图)。
    6. 结果分析:结合图表进行深入讨论,完成灵敏度分析。
    7. 模型评价与推广:客观评价自己模型的优点(考虑全面、求解高效)和缺点(未考虑交通拥堵、需求预测误差较大),并提出几个可行的改进方向。

最后,关于参考代码,我的建议是:不要追求一个包罗万象的“万能代码”。代码应该是为你的模型和算法服务的。将核心部分,如CFLP的求解、距离矩阵计算、遗传算法的主循环、结果可视化函数等,清晰、注释完整地呈现在附录中。代码的可读性与论文描述的一致性比炫技更重要。确保评委能根据你的论文描述,大致看懂你的代码逻辑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 11:23:11

HACS 默认仓库完整指南:Home Assistant 社区扩展装什么、怎么装

HACS 默认仓库完整指南&#xff1a;Home Assistant 社区扩展装什么、怎么装 【免费下载链接】default The home of the default HACS repositories. 项目地址: https://gitcode.com/gh_mirrors/def/default HACS 是 Home Assistant 的“应用商店”&#xff0c;而这个默认…

作者头像 李华
网站建设 2026/8/23 11:22:58

离散优化实战指南:从0-1规划到VRP的建模与求解

1. 项目概述&#xff1a;从“离散”二字说起看到“离散优化”这个词&#xff0c;很多刚接触数学建模的同学可能会有点发怵&#xff0c;觉得它比连续优化更抽象、更复杂。其实恰恰相反&#xff0c;离散优化处理的问题&#xff0c;恰恰是我们日常生活中最常遇到的那一类&#xff…

作者头像 李华
网站建设 2026/8/23 11:22:20

46个现成Dify工作流:导入即可运行,省掉搭节点的功夫

46个现成Dify工作流&#xff1a;导入即可运行&#xff0c;省掉搭节点的功夫 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程&#xff0c;自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awes…

作者头像 李华
网站建设 2026/8/23 11:18:59

Pandas TA 入门教程:三分钟跑通 130+ 技术指标计算

Pandas TA 入门教程&#xff1a;三分钟跑通 130 技术指标计算 【免费下载链接】pandas-ta Technical Analysis Indicators - Pandas TA is an easy to use Python 3 Pandas Extension with 130 Indicators 项目地址: https://gitcode.com/gh_mirrors/pa/pandas-ta Panda…

作者头像 李华
网站建设 2026/8/23 11:18:21

AI时代招聘变革:从技能考核到交付能力评估

1. 招聘市场变革&#xff1a;从技能考核到AI交付能力 2026年的春招季已经悄然拉开帷幕&#xff0c;但今年的招聘风向标发生了根本性转变。作为连续五年参与校招面试的技术负责人&#xff0c;我明显感受到企业评估候选人的标准正在从传统的"你会什么编程语言/框架"转向…

作者头像 李华