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

利用车联网中的 V2V 通信技术传播公平的紧急信息

与移动自组织网络 (MANET) 相比,车载自组织网络 (VANET) 的节点移动速度更快。网络连接的节点可以在自身内部或其他基础设施之间交换安全或非安全消息,例如车对车 (V2V) 或车对万物 (V2X)。在车载通信中,紧急消息对于安全至关重要,必须分发给所有节点,以提醒它们注意潜在问题。作为广播风暴缓解策略 (BSM) 的一部分,各种广播方法(例如单跳、多跳和泛洪)都用于传播这些消息。由于参与通信的节点拥挤,在城市场景中传播安全消息具有挑战性。主要问题是数据包广播风暴、数据包冲突和端到端延迟 (E2ED)。当多个节点重新广播同一条消息时,会出现数据包冗余,这会影响网络的性能和稳定性,尤其是在城市地区。本研究提出了一种安全消息传播 (SMD) 方法来应对这些广播风暴。该方法可以在单个传输范围内选择一个中继节点。选择离开时间最长、密度高且信号强度合适的节点作为中继节点。该方法确保将安全消息公平地传播到所有节点。此外,还使用城市移动仿真 (SUMO) 流量生成器生成了真实场景。此外,还分析了所提方法的性能,并与现有的标准算法(例如快速广播和有效的紧急消息传播方案 (EEMDS) 方法)进行了比较。结果表明,SMD 在 E2ED、丢包率 (PLR) 和数据包投递率 (PDR) 方面均优于所有标准算法。在不同仿真时间下,对于 20 个和 60 个节点,SMD 使 EED 提高了 0.54%,PLR 提高了 4%,PDR 提高了 17.5%。随着节点数量和仿真时间的增加,E2ED 和 PLR 成比例增加,而 PDR 则下降。

1. 简介

车载自组织网络 (VANET) 是一种不受中央控制器或基站控制的自组织网络 [ 1-3 []](https://onlinelibrary.wiley.com/doi/full/10.1155/sec/8882649#bib-0003) 。它以车辆和通信基础设施为节点,实现车对车 (V2V) 和车对万物 (V2X) 通信。VANET 也是一种无线移动网络,其新特点是移动节点列表速度快、方向明确、链路频繁断开、网络连接不稳定、通信场景复杂、外部设备众多。智能交通系统 (ITS) 已成为车载网络通信的主导技术 [ 1 ],控制着 VANET 的信息交换。当今时代,现代车辆都配备了嵌入式设备,使其能够连接到互联网并在自身或周围环境中交换消息。这些能够共享信息的现代车辆旨在改善交通系统。智能车辆正变得越来越自动化,无需人工干预,从而减少人为错误和人工投入。它们还能通过与万物交换信息来满足任何需求。智能汽车在车载通信技术方面的快速发展,源于避免道路危险的需求,从而挽救生命并保护基础设施免受损坏。此外,智能汽车还旨在增强信息娱乐的共享。

这种极具吸引力的车辆通信技术是通过车对车 (V2V)、车对基础设施 (V2I)、车对网络 (V2N)、车对基座 (V2P)、车对一切 (V2X) 和蜂窝车对一切 (C-V2X) 实现的。V2V 技术是当前的通信技术,它允许车辆之间传播消息,以告知道路周围的确切情况。它允许车辆之间发送和接收数据。为了在节点之间建立连接,已经使用了用于 V2V 的专用短距离通信 (DSRC) 或用于 V2X 通信技术的 C-V2X。这些技术专门用于 VANET 协议的物理层和 MAC 层。DSRC 技术嵌入在车载单元 (OBU) 和路侧单元 (RSU) 中,以提供完整的车辆通信功能。它允许通过 PC5 接口进行 V2V 通信。 PC5接口分为物理侧链路共享信道(PSSC)和物理侧链路控制信道(PSCC)。该单信道在逻辑上被划分为两个子信道,用于共享和控制共享信息。与C-V2X通信相比,DSRC更安全可靠,但覆盖范围较小。它提供事故预警、车道变换预警、十字路口预警、交通管理和车辆间信息娱乐传播等服务。然而,它容易受到非视距(NLOS)基础设施和隐藏节点的影响。第二种技术是C-V2X通信,它利用蜂窝网络在车辆之间连接和交换信息,例如V2V或V2X [ 2 ]。该技术由第三代合作伙伴计划(3GPP)提出,并发布了14和15版本,以满足5G技术的标准。C-V2X通信技术有两种模式:模式3,允许车辆通过UU接口与基站进行通信;模式4,允许车辆直接通过PC5接口进行通信。为了解决这些问题,提出了与 C-V2X 通信技术兼容的 5G-NR 技术 [ 3 ]。

由于车辆的运动,在节点之间公平地传播消息具有挑战性。它们的拓扑结构会在几微秒内发生变化,这使得管理网络区域内的连接属性变得困难。车联网的拓扑连接和断开是车辆通信的主要挑战,会导致网络不稳定和频繁的链路故障。由于节点高速移动,它们以毫秒而不是秒为单位建立和断开连接。一点延迟都是危险的,因为时间是车联网的一个关键属性,尤其对于安全消息传播 (SMD) 而言。要在车联网中明智地共享信息,需要一种能够无延迟地传播数据的方法。因此,现有文献中最适合的方法和推荐的方法是广播方法,而不是单播、任播或多播。所以,在车辆通信中,广播方法是公平、及时地共享信息的最佳技术,尤其是因为它被推荐用于安全消息传播 (SMD) [ 4 , 5 ]。在这方面,当许多节点相互转发信息时,可能会带来严重的流量拥塞、信道负载、广播风暴、碰撞以及节点的高计算负担。

由于每个节点都难以跟上处理大量消息的速度,这些消息可能会使通信通道不堪重负。当这种情况发生时,网络性能会严重下降。因此,在不忽略克服广播问题此类影响的推荐方法的情况下,最小化重播次数是一项令人兴奋的研究挑战,以便从邻居列表中选择性能最佳的转发器。因此,不同的作者采用了各种方法来解决由大量重播引起的道路上的 SMD。[ 4 ] 中的作者提出了一种方法,通过选择可以减少重播节点数量的转发节点来最大限度地减少道路上的数据包广播风暴和开销。许多其他作者[ 5-13 []](https://onlinelibrary.wiley.com/doi/full/10.1155/sec/8882649#bib-0005)提出了一种算法,通过选择可以减少重播量的转发节点来将安全消息传播到所有节点,该算法将碰撞、广播风暴和延迟最小化,重播量是上述问题的输入。随着人口和车辆数量的成比例增长,交通控制系统、数据传播和事故控制变得更具挑战性。当许多节点在同一传输范围内重新广播相同的信息时,显然会发生广播风暴和数据包冲突。关键在于如何在节点之间公平地传播消息,避免或减少数据包冲突。尽管许多研究人员已经考虑过这个问题,但仍然需要在同一传输范围内选择关键节点来防止广播风暴。许多研究人员尝试解决高速公路场景,而我们的案例则考虑了城市场景。因此,我们提出的解决方案侧重于防止城市场景(特别是在交叉路口)中由于许多节点重新广播消息而产生的广播风暴。

所提出的 SMD 算法结合基于优先级的消息转发和自适应广播技术,解决了城市车联网中的数据包碰撞和广播风暴问题。SMD 算法通过为安全关键消息分配更高的优先级并采用动态广播抑制机制,有效减少了冗余传输。该算法根据当前网络状况控制广播时间。这种优先级排序确保了重要的安全消息能够及时传播。同时,这种自适应方法降低了数据包碰撞的风险,最大限度地降低了发生广播风暴的可能性,从而提高了车联网的整体通信可靠性和效率。为了实现所提出的方法,我们采用了 SUMO 流量生成器和 NS2 网络仿真来最大限度地减少广播风暴的数量。

本文的创新贡献在于,通过最小化道路交叉口的转发节点数量,在车辆通信中公平地传播紧急消息。随着洪水的临近,数据包广播风暴将会发生,导致严重的拥堵问题(尤其是在交通密集的区域),并且在消息传播过程中发生数据包冲突的概率很高。此外,增加每个节点的计算任务会耗费时间,并可能导致延迟失败。为了克服这些挑战,不同的作者采用了不同的技术,但我们的主要贡献概括如下:

  • 车辆通信中公平传播紧急消息:

  • 所提出的 SMD 算法确保了在使用 V2V 技术的车辆通信中紧急消息的公平传播。该方法注重向所有节点传递及时准确的信息,从而提高道路安全性和网络可靠性。

  • 单个中继节点的选择:

  • 所提出的 SMD 方案基于节点密度、平均接收信号强度 (avr_rss) 和节点生存时间 (nodes_ttl)(在城市场景下)来选择单个中继节点。这些选择标准有助于保持高效通信并最大限度地减少冗余。

  • 处理数据包冲突和广播风暴:

  • 所提出的 SMD 解决了数据包碰撞和广播风暴问题,从而实现了公平的消息传播。该方法确保紧急消息能够有效分发,且不会造成网络过载,从而提升了性能和稳定性。

  • 绩效评估:

  • 所提出的SMD的性能通过端到端延迟(E2ED)、数据包投递率(PDR)和数据包丢失率(PLR)等指标进行评估。结果表明,所提出的算法有效地解决了及时性、可靠性和稳健性问题,而这些对于在车载网络中成功传播紧急消息至关重要。

2.相关工作

车辆连接可通过 DSRC 或 C-V2X 通信技术实现。DSRC 使用 PC5 接口实现直接 V2V 通信,而 C-V2X 通过空中接口支持车辆与蜂窝网络之间的数据交换 [ 11 ]。两种通信方式均支持 V2X 技术,其中 DSRC 采用 IEEE 802.11p 标准作为物理层和 MAC 层,而 C-V2X 则依赖于 3GPP 提出的长期演进 (LTE) 技术 [ 12 ]。V2X 通信支持车辆、基础设施和其他路侧元素之间的数据交换,从而增强了车载网络的整体可达性和连接性 [ 4,13 []](https://onlinelibrary.wiley.com/doi/full/10.1155/sec/8882649#bib-0013)。

[ 4 ]中的作者提出了一种通过选择转发节点来传播紧急消息的算法。他们使用车道 ID、距离和节点方向来选择节点作为转发器。该算法适用于单跳数据传播,并且紧急情况恰好发生在指定的车道上。当节点的车道 ID 与发送者的车道 ID 相同时,将选择转发节点。间接地,随着车道 ID 数量的增加,转发节点的数量也会成比例增加。当转发节点数量增加时,它们具有相同的消息重播机会,这将增加数据包碰撞和广播风暴。

[ 5 ]中的作者提出了轨迹传播 (TBD) 方法,该方法根据车辆从源到感兴趣区域 (ROI) 的密度,通过网络传输数据。该方法利用蜂窝网络将数据传播到 ROI。TBD 根据到达目的地的中继来传播消息。它计算中继节点之间传输消息所需的时间和长度。时间已到时,将根据计划进行检查并取消。

此外,在通信开始之前,应该确定ROI(感兴趣区域),因为区域外的消息会比较稀缺。指定用于转发消息的节点是通过使用Dijkstra算法计算最短路径来选择的。他们使用了定向传输方法来避免碰撞和不必要的传输,如下图所示。然而,它允许选择圆锥形状内的节点作为中继节点。许多节点被选为中继节点,由于它们需要重新传输消息,因此存在发生数据包碰撞和广播风暴的风险。

在[ 6 ]中,提出了基于转发器的数据传播方法,该方法利用距离、密度和离开传输范围的时间等参数来选择转发器。这些转发器分别与源节点保持较远的距离,这有利于覆盖;高密度节点易于向所有其他节点广播;以及先于其他节点离开通信范围的节点,以便将紧急消息发送到后续的通信范围。在所提出的系统中,单跳收集邻居节点的信息,并根据指定的参数分配最佳转发器。选定的转发器会重新广播消息,直到所有感兴趣的区域都接收到该消息。这是一种基于发送者的多跳传播方法。由于源节点需要计算并选择转发器节点,因此在高复杂性下,源节点可能会失败。该方法还允许同时满足长距离和高节点密度标准的节点。此时,将选择多个节点作为中继节点,以便稍后重新广播消息。

[ 7 ]中的作者提出了基于信噪比 (SNR) 的重播方法,以最大限度地减少预警信息传播过程中的碰撞和广播风暴。该方法主要关注接收节点的距离,并根据 SNR 分配重播消息的节点。如果节点位于环外,它将重播。该研究独立于邻居信息,无需信标交换以及中心站、基站或路侧单元 (RSU)。它仅根据 SNR 确定下一跳。重播的概率主要取决于源节点和转发节点之间的距离,因此优先考虑较远的距离。在选择转发节点时,他们还考虑了较大的抑制范围。

在 [ 8 ] 中,作者提出了一种适用于城市场景的有效紧急消息传播方案 (EEMDS),以最大限度地减少广播风暴、冲突和开销。他们考虑了链路稳定性,除了簇头之外,还选择了将转发紧急消息的中继节点。他们设置了一个精选簇头来控制簇成员并管理紧急消息的传播。源节点将向簇头进行广播,簇头将根据链路质量选择转发器以扩大覆盖范围。由于延迟会导致故障,该方法更适用于信息娱乐传播,而不适用于紧急情况。簇头还承担多项任务,例如管理簇成员、选择中继节点以及将从源节点接收的消息广播到选定的转发器。在相同的通信范围内,至少有两个节点(簇头和网关)将重新广播消息,从而增加数据包冲突、广播风暴和数据包开销。

[ 9 ]中的作者提出了一种算法,用于减少车载网络中广播风暴的数量,以便与目标区域进行选择性、可靠的通信。该算法将车辆分类为一组连通车辆 (CSV),这些车辆将根据阈值和时间戳传播消息,并消除一组车辆 (ESV),这些车辆将分别根据距离和阈值停止消息传播。但它们的可靠性均被认为属于 CSV 或 ESV。此外,基于阈值和时间戳值,他们将车辆聚类为簇头和簇成员,以将消息分发到感兴趣的区域。车联网是经常改变其拓扑连接的自组织网络 [ 10 ]。因此,许多作者提出了许多技术来在指定时间内公平地向所有节点传播任何消息。最重要的是在节点之间公平地传播消息,避免或减少数据包冲突、广播风暴、开销和冗余。基本上,为了在车辆作者的信念中传播公平的安全信息,需要尽量减少稍后重播的节点数量[ 12,13 ]。为此,所有车辆中的簇头、转发节点或网关节点的选择基于不同的参数。尽管各位作者已尽最大努力,但仍需处理这个问题。

[ 14 ]中的作者提出了一种通过动态簇头选择方法传播紧急消息。作者旨在根据最佳路径选择最佳转发器,以便无延迟地到达目的地。他们还采用了一种混合方法,将车辆通信与车辆和基础设施相结合。根据车辆的位置、方向和速度,选择车辆作为领导簇头、普通簇头、多点中继和簇成员。每辆车根据其通信范围与 eNodeB 通信。但是,将安全消息从源传播到目的地的聚类方法很耗时,因为消息从成员传输到簇头,然后到 RSU。每辆车都被归类到不同的簇下。当它们广播消息时,很有可能发生数据包冲突、广播风暴和开销。

[ 15 ]中的作者提出了一种有效的广播消息传播方法,以克服由于洪泛而带来的挑战,其算法源横向交叉线 (LCL) 根据车辆的位置选择中继节点。这些作者将数据传播技术描述为基于概率或机会主义、基于计时器/延迟、基于跨层、基于数字地图和基于网络拓扑的 [ 16 ]。车辆设置重播时间表,如果存在重复消息,则它们将取消重播。它还根据来自紧急情况发生位置所选择的北、西、东、南中继的方向来选择中继节点。节点将根据退避计时器进行自我分配。此时,单个节点有可能从两个不同的中继节点接收消息。因此,它增加了数据包冲突和广播风暴 [ 15 ]。

在 [

相关文章:

利用车联网中的 V2V 通信技术传播公平的紧急信息

与移动自组织网络 (MANET) 相比,车载自组织网络 (VANET) 的节点移动速度更快。网络连接的节点可以在自身内部或其他基础设施之间交换安全或非安全消息,例如车对车 (V2V) 或车对万物 (V2X)。在车载通信中,紧急消息对于安全至关重要,必须分发给所有节点,以提醒它们注意潜在问…...

Semantic Kernel也能充当MCP Client

背景 笔者之前,分别写过两篇关于Semantic Kernel(下简称SK)相关的博客,最近模型上下文协议(下称MCP)大火,实际上了解过SK的小伙伴,一看到 MCP的一些具体呈现,会发现&…...

assertEquals()

assertEquals() 是 JUnit 框架中用于进行断言操作的一个非常常用的方法,其主要目的是验证两个值是否相等。如果两个值不相等,测试就会失败,JUnit 会给出相应的错误信息,提示开发者测试未通过。下面为你详细介绍: 方法…...

【ESP32S3】 下载时遇到 libusb_open() failed 解决方案

之前写过一篇 《VSCode 开发环境搭建》 的文章,很多小伙伴反馈说在下载固件或者配置的时候会报错,提示大多是 libusb_open() failed ...... : 这其实是由于 USB 驱动不正确导致的,准确来说应该是与 ESP-IDF 中内置的 OpenOCD 需要…...

【Pandas】pandas DataFrame rsub

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

[C]基础13.深入理解指针(5)

博客主页:向不悔本篇专栏:[C]您的支持,是我的创作动力。 文章目录 0、总结1、sizeof和strlen的对比1.1 sizeof1.2 strlen1.3 sizeof和strlen的对比 2、数组和指针笔试题解析2.1 一维数组2.2 字符数组2.2.1 代码12.2.2 代码22.2.3 代码32.2.4 …...

巧记英语四级单词 Unit5-上【晓艳老师版】

count 数, counter n.计算器,柜台 a.相反的 数数的东西就是计算器,在哪数,在柜台里面数;你和售货员的关系就是相反的(一个买货,一个卖货account n.账户,账号 一再的数accountant n.会计 一再的…...

Linux系统中命令设定临时IP

1.查看ip ---ifconfig 进入指定的网络接口 ifconfig ens160 建立服务器临时IP ifconfig ens160 ip地址 network 系统进行重启后,临时IP将会消失 ip address add ip地址 dev 服务器 ---添加临时ip ip address delete ip地址 dev 服务器 ---删除临时ip 设置ip&a…...

13.ArkUI Navigation的介绍和使用

ArkUI Navigation 组件介绍与使用指南 什么是 Navigation 组件? Navigation 是 ArkUI 中的导航组件,用于管理页面间的导航和路由。它提供了页面栈管理、导航栏定制、页面切换动画等功能,是构建多页面应用的核心组件。 Navigation 的核心概…...

MYSQL 常用数值函数 和 条件函数 详解

一、数值函数 1、ROUND(num, decimals) 四舍五入到指定小数位。 SELECT ROUND(3.1415, 2); -- 输出 3.142、ABS(num) 取绝对值 SELECT ABS(-10); -- 输出 103、CEIL(num) / FLOOR(num) 向上/向下取整 SELECT CEIL(3.2), FLOOR(3.7); -- 输出 4 和 34、MOD(num1, num2) 取…...

CuML + Cudf (RAPIDS) 加速python数据分析脚本

如果有人在用Nvidia RAPIDS加速pandas和sklearn等库,请看我这个小示例,可以节省你大量时间。 1. 创建环境 请使用uv,而非conda/mamba。 # install uv if not yetcurl -LsSf https://astral.sh/uv/install.sh | shuv init data_gpucd data_g…...

c#操作excel表格

c#操作excel表格有很多方法,本文介绍的是基于Interop.Excel方式。该方式并不是winform操作excel的最好方法,本文介绍该方法主要是为一些仍有需求的小伙伴。建议有兴趣的小伙伴可以看一下miniexcel,该方法更简洁高效。 一、首先需要下载inter…...

【uniapp】vue2 搜索文字高亮显示

【uniapp】vue2 搜索文字高亮显示 我这里是把方法放在公共组件中使用 props: {// 帖子listpostList: {type: Array,required: true},// 搜索文本字体高亮highLightSearch: {type: String,required: false} }, watch: {// 监听 props 的变化postList: {immediate: true,handle…...

Android ActivityManagerService(AMS)深度解析

目录 ‌一、什么是AMS?‌ ‌二、AMS 的架构层次‌ ‌1. 客户端层‌ 2‌. 服务层‌ ‌3. 底层驱动‌ 三、AMS 的主要功能‌ ‌四、核心模块与工作流程‌ 1. ‌核心模块‌ 2. ‌Activity 启动流程 3. ‌进程启动流程 4. ‌广播分发流程 五、AMS 的启动流程‌ 1‌. S…...

C语言中操作字节的某一位

在C语言中&#xff0c;可以使用位操作来设置或清除一个字节中的特定位。以下是几种常见的方法&#xff1a; 设置某一位为1&#xff08;置位&#xff09; // 将字节byte的第n位&#xff08;从0开始计数&#xff09;设置为1 byte | (1 << n); 例如&#xff0c;将第3位置…...

【特殊场景应对8】LinkedIn式动态简历的利弊分析:在变革与风险间走钢丝

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

UOJ 228 基础数据结构练习题 Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;有 m m m 个操作分三种&#xff1a; add ⁡ ( l , r , k ) \operatorname{add}(l,r,k) add(l,r,k)&#xff1a;对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r] 执行 …...

工业相机——镜头篇【机器视觉,图像采集系统,成像原理,光学系统,成像光路,镜头光圈,镜头景深,远心镜头,分辨率,MTF曲线,焦距计算 ,子午弧矢】

文章目录 1 机器视觉&#xff0c;图像采集系统2 相机镜头&#xff0c;属于一种光学系统3 常规镜头 成像光路4 镜头光圈5 镜头的景深6 远心镜头 及 成像原理7 远心镜头种类 及 应用场景8 镜头分辨率10 镜头的对比度11 镜头的MTF曲线12 镜头的焦距 计算13 子午弧矢 图解 反差 工业…...

珍爱网:从降本增效到绿色低碳,数字化新基建价值凸显

2024年12月24日&#xff0c;法大大联合企业绿色发展研究院发布《2024签约减碳与低碳办公白皮书》&#xff0c;深入剖析电子签在推动企业绿色低碳转型中的关键作用&#xff0c;为企业实现环境、社会和治理&#xff08;ESG&#xff09;目标提供新思路。近期&#xff0c;法大大将陆…...

Java大师成长计划之第3天:Java中的异常处理机制

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4o-mini模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 在 Java 编程中&#xff0c;异常处理…...

主题模型三大基石:Unigram、LSA、PLSA详解与对比

&#x1f31f; 主题模型演进图谱 文本建模三阶段&#xff1a; 词袋模型 → 潜在语义 → 概率生成 Unigram → LSA → PLSA → LDA &#x1f4e6; 基础模型&#xff1a;Unigram模型 核心假设 文档中每个词独立生成&#xff08;词袋假设&#xff09; 忽略词语顺序和语义关联 …...

【Linux网络】TCP服务中IOService应用与实现

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

终端运行java出现???

1.检查是否系统区域设置冲突&#xff08;控制面板 → 区域 → 管理 → 更改系统区域设置 → 勾选 Beta: UTF-8&#xff09;。 2.修改 Windows 终端编码 方法 1&#xff1a;临时修改&#xff08;当前窗口&#xff09; 在终端执行&#xff1a;cmd chcp 65001 …...

Mysql8.0 推出的强大功能 窗口函数(Window Functions)

&#x1f9e0; 一、什么是窗口函数&#xff1f; 窗口函数是 SQL 中一种在保留原始行的基础上&#xff0c;对行进行分组排序后执行聚合、排名、累计等计算的方法。 与传统的 GROUP BY 聚合不同的是&#xff1a; &#x1f449; 窗口函数不会把多行聚成一行&#xff0c;而是为每…...

opencv--通道,彩色和灰度

图像的灰度值和颜色值的区别 灰度值&#xff08;Grayscale Value&#xff09;和颜色值&#xff08;Color Value&#xff09;是描述像素信息的两种基本方式&#xff0c;它们的核心区别在于对颜色信息的表示方式和应用场景。 (1) 灰度值&#xff08;Grayscale Value&#xff09;…...

cmake 执行命令

在命令行中执行 CMake 的命令主要用于配置、生成和构建项目。以下是一些常用的 CMake 命令及其用法。 1. 配置项目 配置项目是 CMake 的第一步&#xff0c;它会根据 CMakeLists.txt 文件生成相应的构建系统文件&#xff08;如 Makefile 或 Visual Studio 解决方案文件&#x…...

Shell脚本-for循环语法结构

在Shell脚本编程中&#xff0c;for循环是一种非常常用的流程控制语句。它允许我们对一系列值进行迭代&#xff0c;并为每个值执行特定的命令或代码块。无论是处理文件列表、遍历目录内容还是简单的计数任务&#xff0c;for循环都能提供简洁而强大的解决方案。本文将详细介绍She…...

【AI落地应用实战】借助 Amazon Q 实现内容分发网络(CDN)CDK 构建的全流程实践

随着生成式 AI 技术的快速发展&#xff0c;开发者在构建云原生应用时正以前所未有的效率推进项目落地。而 Amazon Q&#xff0c;作为亚马逊云科技推出的专为开发者和 IT 人员设计的生成式 AI 助手&#xff0c;正逐步改变着我们与代码、基础设施以及 亚马逊云科技 服务交互的方式…...

Windows同步技术-使用命名对象

在 Windows 系统下使用命名对象&#xff08;如互斥体、事件、信号量、文件映射等内核对象&#xff09;时&#xff0c;需注意以下关键要点&#xff1a; 命名规则 唯一性&#xff1a;名称需全局唯一&#xff0c;避免与其他应用或系统对象冲突&#xff0c;建议使用 GUID 或应用专…...

Python Cookbook-6.8 避免属性读写的冗余代码

任务 你的类会用到某些 property 实例&#xff0c;而 getter 或者 setter 都是一些千篇一律的获取或者设置实例属性的代码。你希望只用指定属性名&#xff0c;而不用写那些非常相似的代码。 解决方案 需要一个工厂函数&#xff0c;用它来处理那些 getter 或 setter 的参数是…...

热带气旋【CH报文数据插值】中央气象台-台风路径数据每小时插值

对CH报文数据进行每小时插值 原始数据文件 数据 三小时一次的报文数据 需求 按小时补齐热带气旋路径信息 插值后数据效果如下&#xff1a; 插值代码 # 对ch文件插值import pandas as pd import datetime import osdef interpolate_ch_one_hour (file_name):new_file_name…...

06-stm32时钟体系

一、时钟体系 1、概念 1.时钟信号&#xff1a;是一种周期性的电信号&#xff0c;例如为方波&#xff0c;正弦波&#xff0c;余弦波等各种波形&#xff0c;用于同步数字电路中的各种操作&#xff0c;它控制着数据的传输以及电路状态的变化。 2、时钟系统在 STM32 的系统中扮演…...

Hbase集群管理与实践

一、HBase集群搭建实战 1.1 环境规划建议 硬件配置基准&#xff08;以10节点集群为例&#xff09;&#xff1a; 角色CPU内存磁盘网络HMaster4核16GBSSD 200GB&#xff08;系统盘&#xff09;10GbpsRegionServer16核64GB124TB HDD&#xff08;JBOD&#xff09;25GbpsZooKeepe…...

基于大模型对先天性巨结肠全流程预测及医疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型在先天性巨结肠预测中的理论基础 2.1 大模型概述 2.2 大模型预测先天性巨结肠的可行性分析 三、术前预测与准备方案 3.1 大模型对术前病情的预测 3.1.1 疾病确诊预测 3.1.2 病情严重程度评估 3.2 …...

计算机组成原理-408考点-数的表示

常见题型&#xff1a;C语言中的有符号数和无符号数的表示。 【例】有如下C语言程序段: short si-32767&#xff1b;unsigned short usisi&#xff1b;执行上述两条语句后&#xff0c;usi的值为___。short和unsigned short均使用16位二进制数表示。 【分析】考点&#xff1a;同…...

vue滑块组件设计与实现

vue滑块组件设计与实现 设计一个滑块组件的思想主要包括以下几个方面&#xff1a;用户交互、状态管理、样式设计和事件处理。以下是详细的设计思想&#xff1a; 1. 用户交互 滑块组件的核心是用户能够通过拖动滑块来选择一个值。因此&#xff0c;设计时需要考虑以下几点&…...

Linux阻塞与非阻塞I/O:从原理到实践详解

Linux阻塞与非阻塞I/O&#xff1a;从原理到实践详解 1. 阻塞与非阻塞I/O基础概念 1.1 阻塞与非阻塞简介 在Linux系统编程中&#xff0c;I/O操作可以分为两种基本模式&#xff1a;阻塞I/O和非阻塞I/O。这两种模式决定了当设备或资源不可用时&#xff0c;程序的行为方式。 阻…...

form表单提交前设置请求头request header及文件下载

需求&#xff1a;想要在form表单submit之前&#xff0c;设置一下请求头。 除了用Ajax发起请求之外&#xff0c;还可以使用FormData来实现&#xff0c;咱不懂就问。 1 问&#xff1a;FormData什么时间出现的&#xff1f;与ajax什么联系&#xff1f; 2 问&#xff1a;FormData使…...

整合 CountVectorizer 和 TfidfVectorizer 绘制词云图

本文分别整合 CountVectorizer 和 TfidfVectorizer 绘制词云图 ✨ CountVectorizer CountVectorizer 是 scikit-learn 中用于 文本特征提取 的一个工具&#xff0c;它的主要作用是将一组文本&#xff08;文本集合&#xff09;转换为词频向量&#xff08;Bag-of-Words&#xf…...

国产AI大模型超深度横评:技术参数全解、商业落地全场景拆解

评测方法论与指标体系 评测框架设计 采用三层评估体系&#xff0c;涵盖技术性能、商业价值、社会效益三大维度&#xff0c;细分为12个二级指标、36个三级指标&#xff1a; 测试环境配置 项目配置详情硬件平台8NVIDIA H100集群&#xff0c;NVLink全互联&#xff0c;3TB内存软…...

Shell脚本-流程控制语句应用案例

在Shell脚本编程中&#xff0c;流程控制语句是实现逻辑控制和自动化任务处理的关键。通过合理运用条件判断、循环等流程控制语句&#xff0c;可以编写出高效、灵活的脚本程序。本文将通过几个实际的应用案例来展示如何使用这些流程控制语句解决具体的编程问题。 案例一&#x…...

HarmonyOS NEXT应用开发-Notification Kit(用户通知服务)notificationManager.addSlot

1.notificationManager.addSlot 支持设备Phone2in1TabletCarWearable addSlot(type: SlotType, callback: AsyncCallback<void>): void 创建指定类型的通知渠道。使用callback异步回调。 系统能力&#xff1a;SystemCapability.Notification.Notification 示例&#xf…...

计算机网络核心知识点全解析(面试通关版)

一、网络体系结构&#xff1a;从OSI到TCP/IP的分层设计 1.1 七层模型与四层模型对比 OSI七层模型核心功能TCP/IP四层对应典型协议生活类比应用层为应用程序提供服务&#xff08;如文件传输、邮件、Web浏览&#xff09;应用层HTTP、FTP、SMTP、DNS快递面单信息&#xff08;收件…...

表示学习与部分域适应

表示学习&#xff08;Representation Learning&#xff09; 表示学习是机器学习的一个分支&#xff0c;旨在自动从原始数据中提取有意义的特征或表示&#xff0c;使得这些表示更适合后续任务&#xff08;如分类、检测、回归等&#xff09;。其核心思想是将高维、复杂、冗余的原…...

AI与思维模型【77】——PDCA思维模型

一、定义 PDCA思维模型是一种用于持续改进和优化工作流程、项目实施以及问题解决的科学管理方法。它由四个英文字母组成&#xff0c;分别代表计划&#xff08;Plan&#xff09;、执行&#xff08;Do&#xff09;、检查&#xff08;Check&#xff09;和处理&#xff08;Act&…...

Flink 系列之七 - Data Stream API的源算子原理

之前做过数据平台&#xff0c;对于实时数据采集&#xff0c;使用了Flink。现在想想&#xff0c;在数据开发平台中&#xff0c;Flink的身影几乎无处不在&#xff0c;由于之前是边用边学&#xff0c;总体有点混乱&#xff0c;借此空隙&#xff0c;整理一下Flink的内容&#xff0c…...

使用 SSE + WebFlux 推送日志信息到前端

为什么使用 SSE 而不使用 WebSocket, 请看 SEE 对比 Websocket 的优缺点。 特性SSEWebSocket通信方向单向&#xff08;服务器→客户端&#xff09;双向&#xff08;全双工&#xff09;协议基于 HTTP独立协议&#xff08;需 ws:// 前缀&#xff09;兼容性现代浏览器&#xff08…...

Java多线程同步有哪些方法?

大家好&#xff0c;我是锋哥。今天分享关于【Java多线程同步有哪些方法?】面试题。希望对大家有帮助&#xff1b; Java多线程同步有哪些方法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Java 中&#xff0c;多线程同步是确保多个线程在访问共享资源时不会…...

Java—数 组

数组就是一个容器&#xff0c;用来存一批同种类型的数据。 一、静态初始化数组 1.1 定义方式 语法&#xff1a; 完整格式&#xff1a;数据类型 [ ] 数组名 new 数据类型 []{ 元素 1 &#xff0c;元素 2 &#xff0c;元素3… };简化格式&#xff1a;数据类型 [ ] 数组名 {…...

iOS/Android 使用 C++ 跨平台模块时的内存与生命周期管理

在移动应用开发领域,跨平台开发已经成为一种不可忽视的趋势。随着智能手机市场的持续扩张,开发者需要同时满足iOS和Android两大主流平台的需求,而这往往意味着重复的工作量和高昂的维护成本。跨平台开发的目标在于通过一套代码库实现多平台的支持,从而降低开发成本、加速产…...