当前位置: 首页 > news >正文

【析】一类动态车辆路径问题模型和两阶段算法

一类动态车辆路径问题模型和两阶段算法

在这里插入图片描述在这里插入图片描述

摘要

针对一类动态车辆路径问题,分析4种主要类型动态信息对传统车辆路径问题的本质影响,将动态车辆路径问题(Dynamic Vehicle Routing Problem, DVRP)转化为多个静态的多车型开放式车辆路径问题(The Fleet Size and Mixed Open Vehicle Routing Problem, FSMOVRP),并进一步转化为多个带能力约束车辆路径问题(Capacitated Vehicle Routing Problem, CVRP),基于CVRP模型建立了DVRP模型;然后,在分析DVRP问题特点基础上,提出两阶段算法,1️⃣第一阶段基于利用K-d trees对配送区域进行分割的策略,提出了复杂度仅为O(nlogn)的快速构建型算法,2️⃣第二阶段通过分析算法搜索解空间结构原理,设计混合局部搜索算法;最后,基于现有12个大规模CVRP标准算例,设计并求解36个DVRP算例.求解结果表明了模型和两阶段算法的有效性。

1. 引言

车辆路径问题(Vehicle Routing Problem, VRP)自1959年Dantzig等[1]提出以来一直受到人们的广泛关注,其研究意义毋庸置疑.随着移动通讯(Global System of Mobile communication, GSM)、电子商务(Electronic Commerce, EC)、全球定位系统(Global Positioning System, GPS)和智能交通系统(Intelligence Transport System, ITS)等技术的发展,物流配送企业能够方便地获取顾客状态、交通路况和任务车辆状态等实时信息.因此,基于传统VRP问题考虑配送中实时信息的动态车辆路径问题(Dynamic Vehicle Routing Problem, DVRP)成为热点研究问题.

由 于 DVRP 问 题 的 理 论 和 实 践 意 义 ,自Psaraftis[2,3]在1988年提出DVRP问题以来,很多学者在该领域做了广泛研究[4]

  • 如 Larsen 研究了DVRP 问题的动态程度特征指标的计算方法[5];
  • Brotcorne 等研究了急救车的动态调度问题,其主要考虑新客户的在线出现[6];
  • 随后研究考虑实时交通 信 息DVRP 学 者 还 有 Taniguchi[7] 和Fleischmann [8].Melachrinoudis 考虑了医疗服务的特殊环境对 DVRP 问题的影响,并构建了相应模型[9].
  • 在最近2年里,Khouadjia[10]和Ferrucci[11]分别研究了具有动态客户的 DVRP 问题,并提出了相应的求解策略;
  • Albareda-Sambola通过研究验证了将DVRP 按时段分割处理的可行性[12];
    Ghannadpour研究了多目标 DVRP 问题[13].

针对 DVRP 问题,部分国内学者也进行了较为广泛的研究,

  • 如郭耀煌等在综述当前DVRP研究现状的基础上[14],分别研究了DVRP问题的求解策略[15]和模型[16];
  • 刘霞[17]和Hong[18]研究了带时间窗的 DVRP 问题;
  • 陈久梅等研究了装卸一体化的 DVRP 问题,并提出了分区求解策略[19].葛显龙研究了联合配送的开放式DVRP问题[20]

综上所述,当前已有部分学者对 DVRP 研究做了较为深入的研究,但当前针对 DVRP 的研究鲜见分析与VRP的本质区别,并且现有求解算法设计强调求解质量,而对算法合并动态事件生成新方案的速度方面考虑较少[4]
.本文通过分析发现,DVRP问题能够转化为多车型开放式车辆路径问题(The Fleet Size and Mixed Open Vehicle RoutingProblem, FSMOVRP),并进一步转化为经典的能力约束 VRP 问题(Capacitated VRP, CVRP).首先,1️⃣基于经典的CVRP模型,建立了DVRP模型.然后,2️⃣基于模型提出一个有效的两阶段算法,3️⃣并通过设计和求解标准DVRP算例验证了本文模型与算法的有效性.

2 问题建模

2.1 问题分析

DVRP 与传统的静态 CVRP 问题的主要区别是,在配送过程中会出现新的信息,本文称为动态事件.动态事件主要存在4种类型,包括:
(1) 新顾客出现;
(2) 老顾客改变需求;
(3) 交通堵塞或中断;
(4) 配送车辆抛锚.

本文研究的 DVRP 问题除了经典 CVRP 中的假设外还包括:

(1️⃣) 如果是执行配送任务,设配送的货物为同质物品,每辆车均满载后开始执行任务;如果是回收任务,每辆车均空车开始执行任务.
(2️⃣) 仅考虑局部交通中断情况(即局部发生严重的交通堵塞或道路管制问题),不考虑大面积的交通瘫痪导致无可行方案的情况.
(3️⃣) 车辆在出现抛锚后,在配送周期内不能够完全修理好.

当任何动态事件发生后,基于原有信息所得到的方案在当前情况下可能质量非常低劣甚至不可行,所以需要结合当前信息,对方案重新优化以及时修正方案.求解该问题关键在于,此时已有部分车辆完成部分配送服务,所在位置已不在配送中心.对于这样的车辆重新优化配送路线,等价于起点(终点)不在配送中心的开放式 VRP(OpenVRP, OVRP)问题并且由于这些车辆已完成部分配送服务,此时服务能力为车辆所剩货物量,因此等 价 于 多 车 型 OVRP 问 题 (The Fleet Size andMixed OVRP, FSMOVRP).FSMOVRP 问题可以进一步转化为CVRP问题将不在配送中心的车辆起点或终点虚拟为一个顾客,且需求量为当前最大车载量 Q 与当前车型载量之差,并将该虚拟顾客设定为必须第一个(最后一个)接受服务的顾客.如图1(a)、图1 (b)所示为出现新顾客后的一个DVRP问题,转化为一个CVRP问题示意图.

在这里插入图片描述

a图是动态的车辆路径问题,b图是静态的有能力约束的车辆路径问题

在a图中,车辆1行驶到黑点的位置,并且经过(红线)了两个节点,按照原来的计划回经过(蓝线)后面两个节点,此时出现了新的请求(黄圈)。把这个问题改建为CVRP,如b图所示,

  1. 车辆经过的路线的改进
  • 将车辆位置抽象为一个虚拟客户,
  • 其需求量=车的最大容载量-当前车型的载量
  • 约定为第一个(或最后一个)
  1. 新客户的加入
  • 可能在原来的计划路线(蓝线)中直接添加客户
  • 可能对未服务的节点进行重新规划路线(车辆2计划中额外增加了3个节点,则新增车辆3,与车辆3一起)

同理,对于出现尚未服务的老顾客改变需求和车辆出现抛锚时,通过更新当前尚未服务的顾客可以做类似处理.而当出现交通中断时,相当于求解一个更新顾客间行驶成本后的CVRP问题,在此不再赘述.因此 DVRP 可以转化分解为多CVRP问题。

2.2 数学模型

在这里插入图片描述
在这里插入图片描述

由以上分析得到,DVRP 可以分解为 (s + 1) 个CVRP问题,可得 DVRP 在时刻点 EventTimei 下的数学规划模型为
在这里插入图片描述在这里插入图片描述

  • 式(1)为总行程最小目标;
  • 式(2)和式(3)为车载量与行驶距离约束;
  • 式(4)和式(5)为计划从配送中心派送车辆的载量与行驶距离约束;
  • 式(6)和式(7)表示每个客户恰好仅被 1 辆车服务;
  • 式(8)约束了所有车辆的起终点都在配送中心;
  • 式(9)表示每辆车行驶的路径轨迹恰好为一个简单圈;
  • 式(10)为变量含义和取值;
  • 式(11)约束每辆正在执行任务的车辆必须首先服务当前所在位置对应的虚拟顾客,以使配送的路径为简单圈从而由FSMOVRP转化为CVRP问题.
  • 式(12)表示动态事件发生的时刻点在配送周期之内,且呈时间序列状态.

3 两阶段算法

根据上述建模思想,求解该模型的最大挑战在于对算法速度有非常高的要求.因为,当动态事件发生的比较频繁时,就要求算法能够在短时间内求解问题.本文设计了一个两阶段算法:改进贪婪算法混合大邻域算法.采用该两阶段算法求解 DVRP的流程图,如图2所示,

在这里插入图片描述图2图 2 所示,本文求解 DVRP 问题基于“先完
成后完善”的思想.
1️⃣首先采用改进贪婪算法结合新的信息,快速生成一个质量满意的方案;
2️⃣然后充分利用下一个动态事件出现之前的这段时间,采用混合大邻域算法继续改进当前车辆的计划行驶路线;
3️⃣最后,当出现下一个动态事件后再重复这一过程,直到配送过程结束.

3.1 改进贪婪算法

经典贪婪算法(Greedy, GR)求解过程中初期效果非常好,但构造后期会导致质量迅速下降.另外,GR 要求对任意2个顾客形成的距离从小到大排序,那么相当于对 n(n - 1)/2 条边排序,根据排序算法 GR 算法的复杂度至少为 O(n2 log n) ,该复杂度会随着n的增加而迅速增加.本文提出2个分别提高 GR 求解质量和求解速度的策略,得到改进 GR (Improved GR, IMGR).

IMGR 提高质量策略的思想是让离配送中心较远的边更短,而离配送中心较近的边更长,从而GR将会优先连接离配送中心较远的点使贪婪算法构造后期质量改进从而提高整体算法的质量提高速度的策略是,据GR运算原理,其主要计算量为求最邻近点计算,并且实际物流配送中,两点间的路网距离和直线距离高度相关.在此,我们采用K-d trees(K-dimensional binary search trees)法近似求解区域中的最邻近点,本文将配送区域作为2维平面,因此 K = 2 ,其详细执行原理参照Bentley的文献[21].该算法的性能在求解大规模CVRP问题中已得到验证,结合K-d trees的IMGR的求解复杂度仅为 O(nlogn) ,并且求解世界上顾客数量达到20 000的规模最大标准算例的求解质量与理论最优解的偏差仅为5.18%[22]

3.2 混合大邻域算法

通 过 文 献 [23] 研 究 旅 行 商 问 题 (TravelingSalesman Problem, TSP)的求解算法发现,当算法搜索解空间结构(问题解空间中的可行解为节点,互为邻域的可行解之间存在边)类似于小世界网络时,其对应的算法求解质量更优,且只具有某一特定算法规则的算法,其解空间结构更类似于规则网络.

由于 TSPCVRP 的子问题,因此其上述结论对 CVRP 具有一定借鉴意义.根据复杂网络理论可知,多个规则网络混合后得到的网络会更类似于小世界网络[24].因此,多个特定算法规则进行合理混合,就可能得到有效的算法.基于该思想,本文采用改进 CVRP 问题解的 4 种车辆路径间基本规则(Swap、Exchange、Cross-Exchange 和 Inter-relocate)和4种车辆路径中规则(2-opt、Lin-Kernighan、Intrarelocate 和 Or- opt),设计了一个混合大邻域算法(Hybrid Large Neighborhood Algorithm, HLNA),其求解规则伪代码如图3所示.

在这里插入图片描述

4 算例设计与求解

4.1 算例设计

为了测试本文提出模型和算法的有效性,本文以当前世界上最大的12个CVRP算例[25]为数据基础,按照动态程度δ分别为0.25、0.50和0.75构造36个大规模动态车辆路径问题标准算例,算例中相关参数设定如表1所示.

在这里插入图片描述

需要注意的是本文设计的标准算例中只考虑了新顾客出现,其主要原因是
(1) 后 三 种 动 态 事 件 与 当 前 执 行 方 案 密切 相 关 ;
(2)后三种动态事件发生后,根据本文模型也均可以转化为CVRP问题,故在此设计的算例不影响测试本文算法的性能.

表1中设新顾客在整个配送周期中按标号升序方式均匀地出现.

4.2 算例求解

为了对比分析单独使用IMGR(参数α=0.70)和IMGR+HLNA(参数p=0.05)联合使用的效果,本文分别用该两种方式求解在4.1节设计的36大规模
动态车辆路径问题的标准算例,求解环境:StudioVisual C++6.0;CPU 为 Inter® core ™ Q9400,内存为 4.0G,主频为 2.66GHz,其求解质量如表 2所示,求解总耗时如表3所示,需要注意的是,求解质量为求解路径长度与对应静态算例已知最优解的偏差.

在这里插入图片描述
在这里插入图片描述

由求解结果可知,对于规模相同的算例,动态程度越大IMGR与IMGR+HLNA的求解质量会越差.并且相比较而言,IMGR+HLNA的求解质量要优于IMGR,通过对比表2所示的不同算例相邻动态事件间隔可以发现,动态事件发生的越频繁,IMGR+HLNA 的求解质量优势越不明显,这是因为用于HLNA进一步改进的时间非常紧迫.由上述求解质量结果可以得到以下启示:

  1. HLNA是元启发式算法,需要更充足的运行时间才能保证改进IMGR的求解结果,当运行时间非常有限时(不足 60 s),IMGR+HLNA 与 IMGR几乎有类似的求解结果.
  2. IMGR+HLNA 在时间紧迫的情况下对于有些算例的求解质量甚至略低于IMGR(如DVRPLi14400动态程度δ=0.75时),这说明在动态车辆路径算例中,当前更优的求解结果并不一定会导致最终形成的解质量更高.

表3所示的 IMGRIMGR+HLNA 的求解总时间可知,IMGR 远远少于 IMGR+HLNA 的求解时间.这是因为 IMGR+HLNA 为了在动态事件未出现时,充分利用 HLNA 不断优化当前未执行的计划配送路线,使 HLNA 在整个配送周期T=10 h=36 000 s中一直处于运行状态.

总体来说,IMGR能够快速地应对动态事件,生成新的方案,且当动态事件出现非常频繁时IMGR 与 IMGR+HLNA 有类似求解质量,但当动态事件出现时间间隔超过1 min时,IMGR+HLNA求解质量明显优于IMGR.

5 研究结论

本文分析了 DVRP 问题中 4 种主要不同类型动态事件对优化问题本质的影响,通过分析得到DVRP问题可以转化为多个FSMOVRP问题,并进一步转化为 CVRP 问题,基于分析结论建立了DVRP 模型.基于先完成后完善的思想,提出了一个由复杂度仅为 O(nlogn) 的 IMGRHLNA 构成的两阶段算法.为了验证本文提出的模型和算法的有效性,基于 12 个当前世界上最大的 CVRP 问题的标准算例,设计了36个DVRP算例,通过求解发现,本文提出的两阶段算法能够在合理时间内,求解动态程度较高的大规模的DVRP问题.

相关文章:

【析】一类动态车辆路径问题模型和两阶段算法

一类动态车辆路径问题模型和两阶段算法 摘要 针对一类动态车辆路径问题,分析4种主要类型动态信息对传统车辆路径问题的本质影响,将动态车辆路径问题(Dynamic Vehicle Routing Problem, DVRP)转化为多个静态的多车型开放式车辆路径问题(The Fleet Size a…...

从基础入门到学穿C++

前言知识 C简介 C是一门什么样的语言,它与C语言有着什么样的关系? C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解…...

代码随想录算法训练营第二十四天|leetcode78、90、93题

一、leetcode第93题 class Solution { public:vector<string> restoreIpAddresses(string s) {int n s.size();vector<string> res;function<void(string, int, int)> dfs [&](string ss, int idx, int t) -> void {// 终止条件&#xff0c;枚举完&…...

Java学习笔记NO.20

Java流程控制 1. 用户交互 Scanner Java中的Scanner类用于获取用户输入&#xff0c;可以从标准输入&#xff08;键盘&#xff09;读取各种类型的数据。 import java.util.Scanner; public class UserInputExample { public static void main(String[] args) { Scanner sc…...

关系型数据库mysql(1)基础认知和安装

目录 一.数据库的基本概念 1.1数据 1.2表 1.3数据库 1.4 DBMS 数据库管理系统 1.4.1基本功能 1.4.2优点 1.4.3DBMS的工作模式 二.数据库的发展历史 2.1发展的三个阶段 第一代数据库 第二代数据库 第三代数据库 2.2mysql发展历史 三.主流数据库 四.关系型数据库和…...

WanAndroid(鸿蒙版)开发的第三篇

前言 DevEco Studio版本&#xff1a;4.0.0.600 WanAndroid的API链接&#xff1a;玩Android 开放API-玩Android - wanandroid.com 其他篇文章参考&#xff1a; 1、WanAndroid(鸿蒙版)开发的第一篇 2、WanAndroid(鸿蒙版)开发的第二篇 3、WanAndroid(鸿蒙版)开发的第三篇 …...

全国农产品价格分析预测可视化系统设计与实现

全国农产品价格分析预测可视化系统设计与实现 【摘要】在当今信息化社会&#xff0c;数据的可视化已成为决策和分析的重要工具。尤其是在农业领域&#xff0c;了解和预测农产品价格趋势对于农民、政府和相关企业都至关重要。为了满足这一需求&#xff0c;设计并实现了全国农产…...

堆排序(数据结构)

本期讲解堆排序的实现 —————————————————————— 1. 堆排序 堆排序即利用堆的思想来进行排序&#xff0c;总共分为两个步骤&#xff1a; 1. 建堆 • 升序&#xff1a;建大堆 • 降序&#xff1a;建小堆 2. 利用堆删除思想来进行排序. 建堆和堆删…...

使用DMA方式控制串口

本身DMA没什么问题&#xff0c;但是最后用GPIOB点灯&#xff0c;就是点不亮。 回到原来GPIO点灯程序&#xff0c;使用GPIOB就是不亮&#xff0c;替换为GPIOA就可以&#xff0c;简单问题总是卡得很伤。...

ModbusTCP转Profinet网关高低字节交换切换

背景&#xff1a;在现场设备与设备通迅之间通常涉及到从一种字节序&#xff08;大端或小端&#xff09;转换到另一种字节序。大端字节序是指高位字节存储在高地址处&#xff0c;而小端字节序是指低位字节存储在低地址处。在不动原有程序而又不想或不能添加程序下可选用ModbusTC…...

OpenvSwitch VXLAN 隧道实验

OpenvSwitch VXLAN 隧道实验 最近在了解 openstack 网络&#xff0c;下面基于ubuntu虚拟机安装OpenvSwitch&#xff0c;测试vxlan的基本配置。 节点信息&#xff1a; 主机名IP地址OS网卡node1192.168.95.11Ubuntu 22.04ens33node2192.168.95.12Ubuntu 22.04ens33 网卡信息&…...

GPT能复制人类的决策和直觉吗?

GPT-3能否复制人类的决策和直觉&#xff1f; 近年来&#xff0c;像GPT-3这样的神经网络取得了显著进步&#xff0c;生成的文本几乎与人类写作内容难以区分。令人惊讶的是&#xff0c;GPT-3在解决数学问题和编程任务方面也表现出色。这一显著进步引发了一个问题&#xff1a;GPT…...

权限设计种类【RBAC、ABAC】

ACL 模型&#xff1a;访问控制列表 DAC 模型&#xff1a;自主访问控制 MAC 模型&#xff1a;强制访问控制 ABAC 模型&#xff1a;基于属性的访问控制 RBAC 模型&#xff1a;基于角色的权限访问控制 一、简介前三种模型&#xff1a; 1.1 ACL&#xff08;Access Control L…...

C语言经典面试题目(十九)

1、什么是C语言&#xff1f;简要介绍一下其历史和特点。 C语言是一种通用的高级计算机编程语言&#xff0c;最初由贝尔实验室的Dennis Ritchie在1972年至1973年间设计和实现。C语言被广泛应用于系统编程、应用程序开发、嵌入式系统和操作系统等领域。它具有高效、灵活、可移植…...

VSCode 远程调试C++程序打开/dev/tty设备失败的问题记录

概述 因为需要协助同事调试rtklib中的rtkrcv程序&#xff0c;一直调试程序都是用了vscode&#xff0c;这次也不例外&#xff0c;但是在调试过程中&#xff0c;发现程序在打开当前终端(/dev/tty)的时候&#xff0c;总是打开失败&#xff0c;返回的错误原因是“No such device o…...

亮相AWE 2024,日立中央空调打造定制空气新体验

日立中央空调于3月14日携旗下空气定制全新成果&#xff0c;亮相2024中国家电及消费电子博览会&#xff08;简称AWE 2024&#xff09;现场&#xff0c;围绕“科创先行 智引未来”这一主题&#xff0c;通过技术与产品向行业与消费者&#xff0c;展现自身对于家居空气的理解。 展会…...

KY61 放苹果(用Java实现)

描述 把 M 个同样的苹果放在 N 个同样的盘子里&#xff0c;允许有的盘子空着不放&#xff0c;问共有多少种不同的分法&#xff1f; 注意&#xff1a;5、1、1 和 1、5、1 是同一种分法&#xff0c;即顺序无关。 输入描述&#xff1a; 输入包含多组数据。 每组数据包含两个正整…...

原型模式(Clone)——创建型模式

原型模式(clone)——创建型模式 什么是原型模式&#xff1f; 原型模式是一种创建型设计模式&#xff0c; 使你能够复制已有对象&#xff0c; 而又无需依赖它们所属的类。 总结&#xff1a;需要在继承体系下&#xff0c;实现一个clone接口&#xff0c;在这个方法中以本身作为拷…...

<.Net>VisaulStudio2022下用VB.net实现socket与汇川PLC进行通讯案例(Eazy521)

前言 此前&#xff0c;我写过一个VB.net环境下与西门子PLC通讯案例的博文&#xff1a; VisaulStudio2022下用VB.net实现socket与西门子PLC进行通讯案例&#xff08;优化版&#xff09; 最近项目上会用到汇川PLC比较多&#xff0c;正好有个项目有上位机通讯需求&#xff0c;于是…...

漫途桥梁结构安全监测方案,护航桥梁安全!

桥梁作为城市生命线的重要组成部分&#xff0c;承载着城市交通、物流输送、应急救援等重要职能。然而&#xff0c;随着我国社会经济的飞速发展&#xff0c;桥梁所承载的交通流量逐年增长&#xff0c;其安全性所面临的挑战亦日益严峻。例如恶劣的外部环境、沉重的荷载以及长期使…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...