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

2021年全国研究生数学建模竞赛华为杯E题信号干扰下的超宽带(UWB)精确定位问题求解全过程文档及程序

2021年全国研究生数学建模竞赛华为杯

E题 信号干扰下的超宽带(UWB)精确定位问题

原题再现:

  一、背景
  UWB(Ultra-Wideband)技术也被称之为“超宽带”,又称之为脉冲无线电技术。这是一种无需任何载波,通过发送纳秒级脉冲而完成数据传输的短距离范围内无线通信技术,并且信号传输过程中的功耗仅仅有几十µW。UWB因其独有的特点,使其在军事、物联网等各个领域都有着广阔的应用。其中,基于UWB的定位技术具备实时的室内外精确跟踪能力,定位精度高,可达到厘米级甚至毫米级定位。UWB在室内精确的定位将会对卫星导航起到一个极好的补充作用,可在军事及民用领域有广泛应用,比如:电力、医疗、化工行业、隧道施工、危险区域管控等。UWB更多应用场景请参见[4—6]。
  UWB的定位技术有多种方法,本文仅考虑基于飞行时间(Time of Flight, TOF)的测距原理,它是UWB定位法中最常见的定位方法之一。TOF测距技术属于双向测距技术,其通过计算信号在两个模块的飞行时间,再乘以光速求出两个模块之间的距离,这个距离肯定有不同程度
  在室内定位的应用中,UWB技术可以实现厘米级的定位精度(一般指2维平面定位),并具有良好的抗多径干扰和衰弱的性能以及具有较强的穿透能力。但由于室内环境复杂多变UWB 通信信号极易受到遮挡,虽然UWB技术具有穿透能力,但仍然会产生误差,在较强干扰时,数据会发生异常波动(通常是时间延时),基本无法完成室内定位,甚至会造成严重事故。因此,信号干扰下的超宽带(UWB)精确定位问题成为亟待解决的问题。

  二、问题描述
  为解决信号干扰下的超宽带(UWB)精确定位问题,我们通过实际场景实测,采集到一定数量的数据,即利用UWB的定位技术(TOF),采集到锚点(anchor)与靶点(Tag)之间的距离,希望通过数学建模(或算法)方法 ,无论信号是否干扰,都可以给出目标物(靶点)的精确定位(3维坐标)。

  三、实验场景和数据采集
  如图所示,在5000mm5000mm3000mm的测试环境中,分别在4个角落A0,A1,A2,A3放置UWB锚点(anchor),锚点向所有方向发送信号。Tag是UWB标签(靶点),即需要定位的目标(只在测试环境范围内)。Tag接收到4个UWB锚点(anchor)的信号(无论信号是否干扰,Tag一般都可以接收到信号),利用TOF技术,分别解算出对应的4个距离数据。
  实验在实验场景1中采集了Tag在324个不同位置,在信号无干扰和信号干扰下的UWB数据,即每个位置各测试(采集)2次,一次信号无干扰,另一次信号有干扰(锚点与靶点间有遮挡),注意:每次采集数据时,由于Tag在同一位置会停留一会儿时间,而锚点与Tag之间每0.2—0.3秒之间就会发送、接收信号一次,所以在同一位置点,UWB会采集到多组数据(多组数据都代表同一位置的信息),组数的多少视Tag在同一位置的时间而定,停留的时间越长,组数就越多。数据见文件夹“附件1:UWB数据集”。
在这里插入图片描述
  实验场景1:
  靶点(Tag)范围:5000mm5000mm3000mm
  锚点(anchor)位置(单位:mm):
  A0(0,0,1300)、 A1(5000,0,1700)、
  A2(0,5000,1700)、A3(5000,5000,1300)

  四、数据文件说明
  (1)UWB数据集
   “附件1:UWB数据集”有2个文件夹和1个文件,1个文件(Tag坐标信息.txt)存放324个不同位置的编号及3维坐标信息,2个文件夹中1个存放信号无干扰下(正常)采集的数据(各文件名为x.正常.txt,x表示对应的位置编号),另1个存放信号有干扰下(异常)采集的数据(各文件名为x.异常.txt,x表示对应的位置编号)。
  (2)数据文件
  Tag在每个位置都采集了2个数据文件(1个正常,另1个异常),共有648个数据文件,无论正常、异常数据,数据格式都一样,每个数据文件开头第1行为采集开始行,无实际意义,接下来,每4行为一组,表示UWB采集的一组完整数据(一组数据表示一个样品),如:
  T:144235622:RR:0:0:950:950:118:1910
  T:144235622:RR:0:1:2630:2630:118:1910
  T:144235622:RR:0:2:5120:5120:118:1910
  T:144235622:RR:0:3:5770:5770:118:1910

  这4行数据的含义分别是:
  Tag标识:时间戳:Range Report的缩写:Tag ID:锚点ID:该锚点的测距值(mm):测距值的校验值:数据序列号:数据编号(每个数据之间用“:”分隔)。实际上就是提供了4个锚点到靶点(Tag)的距离,即
  A0到靶点距离为:950mm
  A1到靶点距离为:2630mm
  A2到靶点距离为:5120mm
  A3到靶点距离为:5770mm
  每个数据文件都有多组数据,表示在同一位置连续时间内UWB自动采集到的多组数据。

  五、完成任务
  试根据上述数据,完成如下任务:
  任务1:数据预处理(清洗)
  无论是信号无干扰下采集数据,或信号干扰下采集数据,Tag在同一坐标点上都采集多组数据(见附件1中648个数据文件),请用某种方法把每个数据文件相应数值抓取出来,并转换成二维表(矩阵)形式(txt、Excel或其他数据格式),每一行代表一组数据(即一个样品),然后对这些数据文件进行预处理(清洗),删除掉一些“无用”(异常、缺失、相同或相似)的数据(样品)。经处理后,“正常数据”所有数据文件和“异常数据”所有数据文件最后各保留多少组(多少个样品)数据,并重点列出以下4个数据文件,经处理后保留的数据(矩阵形式);
  “正常数据”文件夹中: 24.正常.txt、 109.正常.txt
  “异常数据”文件夹中: 1.异常.txt、 100.异常.txt

  任务2: 定位模型
  利用任务1处理后的数据,分别对“正常数据”和“异常数据”,设计合适的数学模型(或算法),估计(或预测)出Tag的精确位置,并说明你所建立的定位模型(或算法)的有效性;同时请利用你的定位模型(或算法)分别对附件2中提供的前5组(信号无干扰)数据和后5组(信号有干扰)数据进行精确定位(3维坐标);
  注意:(1)定位模型必须体现实验场景信息;
  (2)请同时给出定位模型的3维(x,y,z)精度、2维(x,y)精度以及1维的各自精度。

  任务3:不同场景应用
  我们的训练数据仅采集于同一实验场景(实验场景1),但定位模型应该能够在不同实际场景上使用,我们希望你所建立的定位模型能够应用于不同场景。附件3中10组数据采集于下面实验场景2(前5组数据信号无干扰,后5组数据信号有干扰),请分别用上述建立的定位模型,对这10 组数据进行精确定位(3维坐标);
  实验场景2:
  靶点(Tag)范围:5000mm3000mm3000mm
  锚点(anchor)位置(单位:mm):
  A0(0,0,1200)、 A1(5000,0,1600)、
  A2(0,3000,1600),A3(5000,3000,1200)

  任务4: 分类模型
  上述定位模型是在已知信号有、无干扰的条件下建立的,但UWB在采集数据时并不知道信号有无干扰,所以判断信号有无干扰是UWB精确定位问题的重点和难点。利用任务1处理后的数据,建立数学模型(或算法),以便区分哪些数据是在信号无干扰下采集的数据,哪些数据是在信号干扰下采集的数据?并说明你所建立的分类模型(或算法)的有效性;同时请用你所建立的分类模型(或算法)判断附件4中提供的10组数据(这10组数据同样采集于实验场景1)是来自信号无干扰或信号干扰下采集的?

  任务5: 运动轨迹定位
  运动轨迹定位是UWB重要应用之一,利用静态点的定位模型,加上靶点自身运动规律,希望给出动态靶点的运动轨迹。附件5是对动态靶点采集的数据(一段时间内连续采集的多组数据),请注意,在采集这些数据时,会随机出现信号干扰,请对这个运动轨迹进行精确定位,最终画出这条运动轨迹图(数据采集来自实验场景1)。

整体求解过程概述(摘要)

  UWB 定位技术是一类室内外精确跟踪能力强,定位精度高的导航技术。近年来在各领域得到了快速发展和广泛应用。然而基于UWB的三维高精度定位算法仍然是一项亟待解决的技术问题。本文将基于这样的背景,采用提供的试验数据研究一类高精度的分类与定位算法,并应用提供的数据完成了方法检验和技术验证。
  针对问题1中的数据预处理问题,本文统计了样本数据的分布特性得出了大部分样本数据符合正态分布的结论,对于样本中测量值异常的数据,采用 3σ 原则对于偏离分布中心3倍标准差的数据进行删除;考虑到相同相似样本会加大定位算法设计与计算负担,采用欧氏距离判定同一样本中相同相似数据并进行删除,进一步给出了面向定位算法设计的简化数据。同时应用统计分析方法检验了预处理前后数据分布特性,确定了测量数据存在有效偏差和白噪声干扰,统计了3附件一样本对应的324项标准差数据,得到了标准差符合正态分布且均值为10,标准差为3的结论,确定了各组传感器性能一致且明确了测量噪声的分布规律。
  针对问题二与问题三,首先分别应用传统的最小二乘法、基于PSO的定位算法建立了接近传统意义上的四点算法,精度分析表明,两种算法的求解精度基本一致,基本符合x,y 轴求解精度较高而z轴求解精度较低的特性。为了进一步建立高精度定位算法,采用机器学习方法建立了一类高精度定位算法,以测量长度为输入、xyz 坐标数据为输出设计了三层BP 神经网络,通过大量训练完成了定位算法设计,精度分析表明,基于机器学习的定位算法仍然表现出x,y轴求解精度较高而z轴求解精度较低的特性,但是x、y轴求解精度达到厘米级,而z轴求解精度达到了分米级,极大地提高了三点定位算法的精度特性。
  针对问题四,为了进一步解决正常数据、异常数据的分类问题,首先基于传统方法出发拟寻找一类分类指标完成对正常、异常数据的二分类。然而基于统计分析建立的测距偏差分类方法和基于平面几何出发的三圆相交面积判别皆未能充分区分正常、异常数据,因此本文认为基于有限的先验信息和较大的噪声水平干扰下,无法通过有效的传统方法完成对正常数据、异常数据的识别,因此仍采用机器学习方法建立了一类有效的分类方法,基于附件1的测试表明识别精度达到97.69%,并完了对附件四数据的计算。
  针对问题五,首先从附件5中提取得到了运动过程中靶点到4个锚点的长度信息,再使用问题四中的分类算法验证每组数据是否存在异常干扰,对于修正后的数据采用前面问题所建立的机器学习的方法求解坐标,最后根据坐标即可得到在空间中的运动轨迹。
  本文综合了针对UWB技术三维坐标精确定位技术出发展开了相关研究,分析了传统方法的不足并应用机器学习方法形成了一套准确性高、适用性强的分类和定位方法,有效的解决了题目中的相关问题。

模型假设:

  假设测量误差仅仅因TOF技术不足和传感器性能有限而引起,误差引起的形式为一类有色偏差和一类白噪声误差的组合。
  基于数据统计分析可以说明,UWO 给出的测距偏差与实际测量距离存在线性相关关系,随着实际测量距离的增加,UWO 测量结果会被引入一类偏置误差,同时由于传感器性能不同和实验引入的误差,测量结果还会引入一类白噪声误差,假定白噪声幅值与传感器性能有关,且假设传感器的性能并不随实验次数和实验环境变化。

问题分析(部分内容由于篇幅限制):

  通过数据处理得到了附件1中的全数据,考虑题中规定附件1中数据来源于324个不同的位置测量获得,首先通过标准差分析检验数据的分布特点。下文为了叙述和绘图方便,约定ZC表示正常,YC表示异常。

在这里插入图片描述
  原始数据标准差分析表明,正常数据 A0ZCA3ZC 的标准差存在尖端,A1ZC、A2ZC的标准差控制在20以内;异常数据中,每个锚点都存在标准差处于高水平(超过200)的状态,选取两幅典型数据解释该问题,这是因为异常数据中,同一时间内仅有一个锚点存在异常状态,但是同一组数据内先后有两个锚点被干扰,干扰对测量数据造成的影响体现为两种情况,在原有数据基础上引入了超过400的测量偏差,或者引入一段均值为400左右的大幅值(波动水平:在400上下有幅值为200的波动)波动误差。这里要指出,对于异常数据的定义为:在正常数据水平上出现了正偏置干扰,测量数据原有的测量噪声与正常数据中的测量噪声一致看待。
  题中对正常数据的定义为不存在测量干扰的数据,但是通过标准差分析发现,A0ZCA3ZC 的标准差存在尖端。提取出部分数据并做图分析可知,这是因为原始数据中存在异常点,具体表现为图像出现尖端。
  首先考虑通过几何关系求解靶点的坐标。在实验场景 1 中,靶点(Tag)范围:5000mm5000mm3000mm,如图5.1 建立空间直角坐标系,其中锚点位置如图所示,分别为A0(0,0,1300)、A1(5000,0,1700)、A2(0,5000,1700)、A3(5000,5000,1300),而靶点可以出现在5000mm5000mm3000mm立方体空间中任意一处,根据靶点和锚点的空间关系,符合公式:
在这里插入图片描述
  式中,x,y,z为靶点坐标,xi、yi、zi为锚点的坐标,i为锚点的编号(i=1,2,3,4)。空间问题需要至少4个锚点来确定坐标,而上述方程为三元二次方程组。在理想情况下,三个锚点坐标信息以及这三个锚点到靶点的距离即可求解方程,得到两组解,通过第4个锚点的信息确定靶点的最终坐标;在实际情况下,由于测距数据存在误差,满足4个方程的解可能无实数解,故不能用此方法直接来求解靶点的坐标。
在这里插入图片描述
  由于通过锚点位置信息和锚点测距值无法求解直接求解靶点坐标,故利用锚点坐标和锚点的测距值设计一个期望函数,通过函数值来反映靶点的坐标状况。

论文缩略图:

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

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

import osimport reimport numpy as npimport pandas as pdfrom os import listdirfrom collections import Counterdef missing_data_processing(content,j):a =[]time = re.compile(r'T:(\w+):RR').findall(content)b =list(Counter(time))for i in b:if (Counter(time)[i]== 4):a.append(i)if (int(j)==109):print(len(a))return adef three_sigmal(data):n =3 #n*sigmaprint(data)ymean = np.mean(data, axis=0) # 均值
ystd = np.std(data, axis=0)threshold1 = ymean- n * ystdthreshold2 = ymean + n * ystdoutlier = [] # 将异常值保存
final = []# 标准差
# 删除掉异常值后的数据
for i in range(0, len(data)):#print(np.abs(data[i]-ymean))if (np.abs(data[i]-ymean) > n * ystd).any() :outlier.append(data[i])else:final.append(data[i])return outlier#normal_data_path = 'D:/竞赛/数学建模/2021 年 E 题/附件 1:UWB数据集/正常数据'abnormal_data_path = 'D:/竞赛/数学建模/2021 年 E 题/附件 1:UWB 数据集/异常数
据'label_path = 'D:/竞赛/数学建模/2021 年 E 题/附件1:UWB数据集/Tag坐标信息.txt'filename1 = listdir(normal_data_path)filename2 = listdir(abnormal_data_path)
 1. import matplotlib.pyplot as plt2. import numpy as np3. import pandas as pd4. import math5. from sklearn import datasets, linear_model, discriminant_analysis6. from sklearn.model_selection import train_test_split7. from sklearn.preprocessing import StandardScaler #数据预处理8. import csv9. import joblib10.11. def test_ridge(*data):12. X_train, X_test, y_train, y_test = data13. ridgeRegression = linear_model.Ridge()14. # ridgeRegression = linear_model.LinearRegression()15. rd=ridgeRegression.fit(X_train, y_train)16. joblib.dump(rd, "yc_model.pkl")17.18. #print("预测性能得分: %.2f" % ridgeRegression.score(X_test, y_test))19. return ridgeRegression.predict(X_test)20.21. #测试不同的α值对预测性能的影响
22. def test_ridge_alpha(*data):23. X_train, X_test, y_train, y_test = data24. alphas = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000]25. scores = []26. for i, alpha in enumerate(alphas):27. ridgeRegression = linear_model.Ridge(alpha=alpha)28. ridgeRegression.fit(X_train, y_train)29. #scores.append(ridgeRegression.score(X_test, y_test))30. return alphas, scores31.32. def show_plot(alphas, scores):33. figure = plt.figure()34. ax = figure.add_subplot(1, 1, 1)35. ax.plot(alphas, scores)36. ax.set_xlabel(r"$\alpha$")37. ax.set_ylabel(r"score")38. ax.set_xscale("log")39. ax.set_title("Ridge")40. plt.show()41.42.43.
44. if __name__ == '__main__':45.46. A0=[0,0,130]47. A1=[500,0,170]48. A2=[0,500,170]49. A3=[500,500,130]50.51. url = './预测/16维训练异常.csv'52. data = pd. read_csv(url, sep=',',header=None)53. data=np.array(data)54.55. X_data=data[:,4:16]56.57. Y=data[:,16:19]58.59. # url_test = './预测/场景1/场景1_异常.csv'60.61. # url_test = './预测/16维训练异常.csv'62. url_test = './预测/16维测试异常.csv'63. # url_test = './预测/场景2/场景2_异常.csv'64. data_test = pd. read_csv(url_test, sep=',',header=None)65. data_test=np.array(data_test)66.67. X_data_test=data_test[:,4:16]68. Y_test=data_test[:,16:19]69.70. X_train=X_data71. X_test=X_data_test72. Y_train=Y73. Y_test=Y_test74. print(Y_test)75.76. predict=test_ridge(X_train, X_test, Y_train, Y_test)77. print(predict)78.79. dis=((predict[:,0]-Y_test[:,0])**2+(predict[:,1]-Y_test[:,1])**2+(predict[:,2]-Y_test[:,2])**2)80. dis_mean=np.sqrt(dis)81. print(np.mean(dis_mean))82.83.84. dis=((predict[:,0]-Y_test[:,0])**2+(predict[:,1]-Y_test[:,1])**2)85. dis_mean=np.sqrt(dis)86. print(np.mean(dis_mean))
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2021年全国研究生数学建模竞赛华为杯E题信号干扰下的超宽带(UWB)精确定位问题求解全过程文档及程序

2021年全国研究生数学建模竞赛华为杯 E题 信号干扰下的超宽带(UWB)精确定位问题 原题再现: 一、背景   UWB(Ultra-Wideband)技术也被称之为“超宽带”,又称之为脉冲无线电技术。这是一种无需任何载波,通过发送纳秒…...

SpringCould+vue3项目的后台用户管理的CURD【Taurus教育平台】

文章目录 一.SpringCouldvue3项目的后台用户管理的CURD【Taurus教育平台】 1.1 背景 二.用户列表(分页查询) 2.1 前端Vue3 (Vue3-Element-Admin)2.2 后端SpringCould 处理 三. 用户信息删除 3.1 前端Vue3 (Vue3-Eleme…...

草图绘制技巧

1、点击菜单栏文件–》新建–》左下角高级新手切换–》零件; 2、槽口:直槽口,中心点槽口,三点源槽口,中心点圆弧槽口; 3、草图的约束:需要按住ctrl键,选中两个草图,然后…...

机器学习-1:线性回归

常用的线性回归模型主要有以下这些 简单线性回归多元线性回归多项式回归岭回归套索回归弹性网络回归逐步回归 一.简单的一元线性回归 1.导入必备的库 #导入必备的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection …...

android 的抓包工具

charles 抓包工具 官网地址 nullCharles Web Debugging Proxy - Official Sitehttps://www.charlesproxy.com/使用手册一定记得看官网 SSL Certificates • Charles Web Debugging Proxy http请求: 1.启动代理: 2.设置设备端口 3.手机连接当前代理 …...

AJAX 与 ASP 的深入探讨

AJAX 与 ASP 的深入探讨 引言 随着互联网技术的飞速发展,Web应用程序的交互性和性能要求越来越高。AJAX(Asynchronous JavaScript and XML)和ASP(Active Server Pages)作为两种重要的Web开发技术,在提高Web应用程序性能和用户体验方面发挥着重要作用。本文将深入探讨AJ…...

Qt开发①Qt的概念+发展+优点+应用+使用

目录 1. Qt的概念和发展 1.1 Qt的概念 1.2 Qt 的发展史: 1.3 Qt 的版本 2. Qt 的优点和应用 2.1 Qt 的优点: 2.2 Qt 的应用场景 2.3 Qt 的应用案例 3. 搭建 Qt 开发环境 3.1 Qt 的开发工具 3.2 Qt SDK 的下载和安装 3.3 Qt 环境变量配置和使…...

函数调用过程的详细解析

目录 一、C语言示例代码 二、汇编代码分步解析(x86架构) 1. 调用前:参数压栈(从右向左) 2. 进入被调函数:保存栈帧 3. 执行函数逻辑 4. 恢复栈帧并返回 三、内存布局图示(调用过程中栈的变…...

教师管理系统在职校中的应用与优势

随着信息技术的不断发展,教师管理系统在职校中的应用越来越广泛。这一系统通过集成教师信息、教学资源和日程安排等功能,为职校管理带来了诸多便利和优势。 教师管理系统能够显著提高管理效率。传统的人工管理方式往往繁琐且易出错,而教师管理…...

【系统架构设计师】虚拟机体系结构风格

目录 1. 说明2. 解释器体系结构风格3. 规则系统体系结构风格4. 例题4.1 例题1 1. 说明 1.p263。2.虚拟机体系结构风格的基本思想是人为构建一个运行环境,在这个环境之上,可以解析与运行自定义的一些语言,这样来增加架构的灵活性。3.虚拟机体…...

UE C++ UObject 功能的初步总结

一. Uboject的 1.垃圾回收:上篇文章介绍过 2.引用更新 1. 反射:之前的文章描述过的CDO,还有就是C与蓝图相互调用UFUCTION,UPROPERTY 2.序列化:编辑器的资产序列化到磁盘上,变为.uasset等格式的资产文件。所有的东西存在编辑器里&#xff…...

Django 美化使用ModelForm的输入框

在初次使用ModelForm时&#xff0c;我的html文件代码如下&#xff0c;主要内容是显示一个卡片式表单&#xff0c;通过循环遍历 form 对象动态生成表单字段 {% extends layout.html %}{% block content %} <div class"container"><div class"c1"&g…...

SQL在云计算中的新角色:重新定义数据分析

文章目录 1. 云计算与数据分析的融合2. SQL在云计算中的新角色3. 分布式SQL查询引擎4. SQL-on-Hadoop解决方案5. SQL与其他数据分析工具的集成6. 实时数据分析与SQL7. SQL在云数据仓库中的角色8. 安全性与隐私保护9. SQL的未来展望《SQL数据分析实战&#xff08;第2版&#xff…...

使用Redis实现分布式锁,基于原本单体系统进行业务改造

一、单体系统下&#xff0c;使用锁机制实现秒杀功能&#xff0c;并限制一人一单功能 1.流程图&#xff1a; 2.代码实现&#xff1a; Service public class VoucherOrderServiceImpl extends ServiceImpl<VoucherOrderMapper, VoucherOrder> implements IVoucherOrderSe…...

用Python实现线性回归:从数学原理到代码实战

一、前言&#xff1a;为什么线性回归是AI必修课&#xff1f; 作为机器学习领域的"Hello World"&#xff0c;线性回归算法具有三大核心价值&#xff1a; 1️⃣ 理解监督学习的底层逻辑&#xff08;特征工程→模型训练→预测输出&#xff09; 2️⃣ 掌握梯度下降等优化…...

JS 链表

文章目录 链表题的一些总结两种链表定义set存储链表节点&#xff0c;存的是整个空间同时处理长短不一的两个链表处理方法 while(l1 || l2)处理方法 while(l1 & l2) dummyhead的使用 链表题的一些总结 两种链表定义 class class ListNode {val;next null;constructor(va…...

AI时代:架构师的困境与救赎

在GitHub Copilot生成完整函数、ChatGPT编写业务逻辑的今天&#xff0c;编程正经历着前所未有的范式变革。某在线教育平台的技术负责人曾向我展示&#xff1a;团队使用AI工具3个月后&#xff0c;年轻工程师在架构评审会上对Kafka消息队列的消费机制支支吾吾&#xff0c;却在IDE…...

1-10 github注册仓库

如何在github中注册一个仓库&#xff1f; 1.0 注册仓库 1-1 GitHub的账号注册教程_github注册-CSDN博客 2.0 删除仓库 1-2 从github中删除创建的仓库_github删除仓库-CSDN博客 3.0 创建仓库 1-3 【教程】GitHub新建仓库新手教程_github仓库-CSDN博客 4.0 github操作 1-4 1-9 克…...

JavaScript作用域与闭包

一 作用域 在JavaScript中&#xff0c;作用域&#xff08;Scope&#xff09;指的是变量和函数的可访问性范围。在JavaScript中&#xff0c;作用域有全局作用域和局部作用域之分。 全局作用域&#xff08;Global Scope&#xff09;&#xff1a;全局作用域指的是在代码中任何位置…...

docker容器部署jar应用导入文件时候报缺少字体错误解决

如题&#xff0c;在导入文件时候报错如下&#xff1a; Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 经查是缺少对应字体&#xff0c;解决办法有两张&#xff1a; 第一种&#xff1a;…...

lean4安装

目录 lean4安装windows 证明等比数列和函数函数 lean4安装windows lean4 windows一键安装(全网最简单的安装流程)_lean4安装-CSDN博客 证明等比数列和函数函数 import Mathlib.Data.Real.Basic -- 导入实数基础库 import Mathlib.Tactic.Simps.Basic -- 导入简化策略 im…...

HTML的入门

一、HTML HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用来告知浏览器如何组织页面的标记语言。 超文本&#xff1a;就是超越了文本&#xff1b;HTML不仅仅可以用来显示文本(字符串、数字之类)&#xff0c;还可以显示视频、音频等…...

Jenkins 部署 之 Mac 一

Jenkins 部署 之 Mac 一 一.Jenkins 部署依赖 JDK 环境 查看 Mac JDK 环境&#xff0c;如果没有安装&#xff0c;先安装 打开终端输入命令:java -version Mac安装配置 JDK 二. 检查 HomeBrew 安装 检查 HomeBrew 是否安装&#xff0c;终端输入命令:brew -v Mac安装HomeB…...

matlab平面波展开法计算的二维声子晶体带隙

平面波展开法计算的二维声子晶体带隙&#xff0c;分别是正方与圆形散射体形成正方格子声子晶体&#xff0c;最后输出了能带图的数据&#xff0c;需要自己用画图软件画出来。 列表 平面波展开法计算二维声子晶体带隙/a2.m , 15823 平面波展开法计算二维声子晶体带隙/a4.m , 942…...

爬虫实战:利用代理ip爬取推特网站数据

引言 亮数据-网络IP代理及全网数据一站式服务商屡获殊荣的代理网络、强大的数据挖掘工具和现成可用的数据集。亮数据&#xff1a;网络数据平台领航者https://www.bright.cn/?promoRESIYEAR50/?utm_sourcebrand&utm_campaignbrnd-mkt_cn_csdn_yingjie202502 在跨境电商、社…...

【kafka系列】生产者

目录 发送流程 1. 流程逻辑分析 阶段一&#xff1a;主线程处理 阶段二&#xff1a;Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置&#xff08;可选&#xff0…...

Kafka日志数据深度解析:从基础查看到高级操作全攻略

#作者&#xff1a;孙德新 文章目录 查看log日志文件(kafka-dump-log.sh)1、查看Log文件基本数据信息2、index文件健康性检查(--index-sanity-check)3、转储文件(--max-message-size)4、偏移量解码(--offsets-decoder)5、日志数据解析(--transaction-log-decoder)6、查询Log文件…...

单例模式、构造函数、左值右值

拷贝构造函数 简单的说就是——用一个对象构造另外一个对象 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的构造函数Myclass(Myclass c) //拷贝构造函数{d c.d;} }; //对比 class Myclass {public:int d0;Myclass(int d_){d d_}; //常用的构造函数Myclass…...

DeepSeek+即梦 做AI视频

DeepSeek做AI视频 制作流程第一步&#xff1a;DeepSeek 生成视频脚本和分镜 第二步&#xff1a;生成分镜图片绘画提示词第三步&#xff1a;生成分镜图片第四步&#xff1a;使用可灵 AI 工具&#xff0c;将生成的图片转成视频。第五步&#xff1a;剪映成短视频 DeepSeek 真的强&…...

「软件设计模式」建造者模式(Builder)

深入解析建造者模式&#xff1a;用C打造灵活对象构建流水线 引言&#xff1a;当对象构建遇上排列组合 在开发复杂业务系统时&#xff0c;你是否经常面对这样的类&#xff1a;它有20个成员变量&#xff0c;其中5个是必填项&#xff0c;15个是可选项。当用户需要创建豪华套餐A&…...

Android设备 网络安全检测

八、网络与安全机制 6.1 网络框架对比 volley&#xff1a; 功能 基于HttpUrlConnection;封装了UIL图片加载框架&#xff0c;支持图片加载;网络请求的排序、优先级处理缓存;多级别取消请求;Activity和生命周期的联动&#xff08;Activity结束生命周期同时取消所有网络请求 …...

安心联车辆管理系统的硬件架构详解

安心联车辆管理系统的硬件架构可分为车载设备和后端平台设备两大部分&#xff0c;以下是详细的硬件组成及功能说明&#xff1a; 一、车载设备 定位与通信模块 北斗/GPS双模定位模块&#xff1a;支持厘米级定位精度&#xff0c;兼容JT/T808、JT/T809等交通部标准协议&#xff0c…...

适用于iOS的应用商店优化(ASO)清单

面对App Store的激烈竞争&#xff0c;您想优化您的应用使其在竞争中脱颖而出&#xff0c;但又不知道应该从哪里开始。我们已经为您准备好了&#xff01;我们整理了一份适用于iOS的应用商店优化&#xff08;ASO&#xff09;检查清单&#xff0c;用以帮助您入门并提高您在App Sto…...

linux概念详解

用户守护进程 用户空间守护进程是一些在后台运行的长期服务程序&#xff0c;提供系统级服务。 下面举一些例子。 网络服务&#xff1a; 如sshd&#xff08;SSH服务&#xff09;、httpd&#xff08;HTTP服务&#xff09;。 sshd&#xff1a;sshd 守护进程会在后台运行&#x…...

嵌入式开发应该具备哪些编程思维?

目录 1、资源限制思维 2、实时性思维 3、硬件抽象思维 4、中断驱动思维 5、功耗优化思维 6、可靠性和容错思维 7、并发和同步思维 8、故障排除与调试思维 9、状态机思维 嵌入式开发与一般的软件开发不同&#xff0c;嵌入式系统通常受到资源&#xff08;内存、处理器、…...

MongoDB索引介绍

索引简述 索引是什么 索引在数据库技术体系中占据了非常重要的位置&#xff0c;其主要表现为一种目录式的数据结构&#xff0c;用来实现快速的数据查询。通常在实现上&#xff0c;索引是对数据库表(集合)中的某些字段进行抽取、排列之后&#xff0c;形成的一种非常易于遍历读取…...

编程速递-庆祝Delphi诞生30周年!

庆祝Delphi 30周年纪念是一个特别的时刻。 回到1995年&#xff0c;也就是30年前&#xff0c;在微软Windows和互联网时代的曙光初现之时&#xff0c;Borland Delphi的创建者们无法想象&#xff0c;当时使用Borland Delphi构建的应用程序至今仍在运行——为全世界数十亿人服务。…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-tuner.py

tuner.py ultralytics\utils\tuner.py 目录 tuner.py 1.所需的库和模块 2.def run_ray_tune(model, space: dict None, grace_period: int 10, gpu_per_trial: int None, max_samples: int 10, **train_args,): 1.所需的库和模块 # Ultralytics &#x1f680; AGPL-…...

一文说清楚什么是Token以及项目中使用Token延伸的问题

首先可以参考我的往期文章&#xff0c;我这里说清楚了Cookie&#xff0c;Seesion&#xff0c;Token以及JWT是什么 其实Token你就可以理解成这是一个认证令牌就好了 详细分清Session&#xff0c;Cookie和Token之间的区别&#xff0c;以及JWT是什么东西_还分不清 cookie、sessi…...

VueRouter 实例

分析下列代码 const router new VueRouter({mode:history,routes }) 1.const router new VueRouter({ ... })用来创建一个 Vue Router 实例&#xff0c;用于管理 Vue.js 应用的路由。2.mode: history&#xff1a; 作用&#xff1a;启用 HTML5 History 模式&#xff0c;去除…...

【算法工程】解决linux下Aspose.slides提示No usable version of libssl found以及强化推理模型的短板

1. 背景 构建ubuntu镜像&#xff0c;然后使用Aspose.slides解析PPTX文档&#xff0c;发现一直提示“No usable version of libssl found”。 2. 尝试 使用deepseek R1、kimi1.5、chatgpt o3&#xff0c;并且都带上联网能力&#xff0c;居然还是没有一个能够真正解决&#xf…...

解析浏览器中JavaScript与Native交互原理:以WebGPU为例

引言 随着Web应用复杂度的提升&#xff0c;开发者对浏览器访问本地硬件能力的需求日益增长。然而&#xff0c;浏览器必须在开放性与安全性之间找到平衡——既不能放任JavaScript&#xff08;JS&#xff09;随意操作系统资源&#xff0c;又要为高性能计算、图形渲染等场景提供支…...

小火车理论

格助词...

深度学习框架探秘|Keras 应用案例解析以及 Keras vs TensorFlow vs PyTorch

引言 上一篇文章《深度学习框架探秘&#xff5c;Keras&#xff1a;深度学习的魔法钥匙》 我们初步学习了 Keras&#xff0c;包括它是什么、具备哪些优势&#xff08;简洁易用的 API、强大的兼容性、广泛的应用领域&#xff09;&#xff0c;以及基本使用方法。本文&#xff0c;…...

【01 背包】

01 背包解题思路&#xff1a; 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 这是标准的背包问题&#xff0c;每一件物品其实只有两个状…...

算法10-二分查找算法

一、二分查找算法概念 二分查找&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;适用于在有序数组中快速查找目标值。它的核心思想是通过不断缩小查找范围&#xff0c;将时间复杂度从线性查找的 O(n) 优化到 O(log n)。 二、二分查找的流程图 以下是二…...

变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)

我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告&#xff0c;不像常识类问题&#xff0c;它的相关Document更多而且更分散&#xff0c;日常报告代表数据库里有很多它的内容&#xff0c;而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度&#xff0…...

算法11-分治算法

一、分治算法概念 分治算法&#xff08;Divide and Conquer&#xff09;是一种重要的算法设计思想&#xff0c;通过将问题分解为多个子问题&#xff0c;分别解决后再合并结果&#xff0c;从而解决原问题。分治算法的核心思想是“分而治之”&#xff0c;通常包含三个步骤&#…...

Golang internals

To be continued... time.Time golang的时区和神奇的time.Parse context.Context Go Context的踩坑经历 sync.Pool sync.Pool workflow in Go 1.12 new shared pools in Go 1.13 什么是cpu cache理解 Go 1.13 中 sync.Pool 的设计与实现Go: Understand the Design of Sync.Pool…...

Flask中获取请求参数的一些方式总结

在 Flask 中&#xff0c;可以从 request 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。 1. 获取 URL 查询参数&#xff08;Query String Parameters&#xff09; URL 中的查询参数通过 ?keyvalue&key2value2 的形式传递&#xff0c;使用 reques…...