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

A*迷宫寻路

二、实验内容

以寻路问题为例实现A*算法的求解程序,设计两种不同的估价函数:

1.设置两种地图:

根据题意,用矩阵设置两个地图。

 地图1:设置5行5列的迷宫,代码如下:

地图2:设置20行20列的迷宫,代码如下:

2.设置两种启发式函数

定义估价函数 𝑓(𝑛)=𝑔(𝑛)+ℎ(𝑛) 式中,g(n)为起点到n 状态的最短路径代价的估计值, ℎ(n) 是 n状态到目的状态的最短路径代价的估计值。 令g(n) 为起点到 n 状态的曼哈顿距离,代码如下:

定义两种启发式函数。

启发式函数ℎ1(𝑛) : ℎ1(𝑛)=10×(|𝑛𝑥−𝑒𝑛𝑑𝑥|+|𝑛𝑦−𝑒𝑛𝑑𝑦|),代码如下:

启发式函数ℎ2(𝑛) : ℎ2(𝑛)=(𝑛𝑥−𝑒𝑛𝑑𝑥)2+(𝑛𝑦−𝑒𝑛𝑑𝑦)2,代码如下:

三、实验要求

1.画出A*算法求解迷宫最短路径的流程图

2.设置不同的地图,以及不同的初始状态和目标状态,记录A*算法的求解结果,包括最短路径、扩展节点数、生成节点数和算法运行时间

设置地图1的初始状态为1,2、目标状态为5,5, 运用启发式函数1,得出求解结果如下:

设置地图2的初始状态为1,1、目标状态为20,20, 运用启发式函数1,得出求解结果如下:

3.对于相同的初始状态和目标状态,设计不同的启发式函数,比较不同启发式函数对迷宫寻路速度的提升效果,包括扩展节点数、生成节点数和算法运行时间。

设置地图2的初始状态为1,1、目标状态为20,20, 运用启发式函数1,得出求解结果如下

设置地图2的初始状态为1,1、目标状态为20,20, 运用启发式函数2,得出求解结果如下

由图可知,两种启发式函数所用时间相近,但 ℎ2 相比 ℎ1 所扩展的节点数会减少,仔细分析可以发现启发式函数 ℎ1 在路径108位置首先寻找了另一条岔路,从而相比启发式函数 ℎ2 多扩展了3个节点。

四、实验要求

1.画出A*算法求解迷宫最短路径问题的流程图如上

2.分析不同启发式函数h(n)对迷宫寻路求解的速度提升效果。

2.1常见启发式函数介绍:

2.1.1 曼哈顿距离(Manhattan Distance)

特点:计算简单快速,在迷宫寻路中能提供相对合理的估计,但在某些情况下可能会导致搜索路径不是最优(如存在斜向移动成本与水平 / 垂直移动成本相同时)。

2.1.2 欧几里得距离(Euclidean Distance)

特点:从数学上更准确地估计节点到终点的直线距离,但计算相对复杂(涉及平方根运算),在实际应用中,对于大规模迷宫可能会影响计算效率。

2.1.3 对角线距离(Diagonal Distance)

特点:更适合于可以斜向移动的场景,能更精准地估计路径代价,但计算相对复杂,且需要根据移动成本进行调整。

2.2 不同启发式函数对速度提升效果的分析

对扩展节点数的影响:

曼哈顿距离:在一般迷宫中,由于其计算简单且能提供一定的方向引导,通常能有效地限制搜索方向,使得扩展节点数相对较少。但在某些特殊迷宫布局(如存在大量斜向路径优势的情况)下,可能会导致搜索方向不够精准,从而增加一些不必要的节点扩展。

欧几里得距离:理论上能提供更准确的方向估计,可能会比曼哈顿距离更早地引导搜索朝着终点方向进行,从而减少扩展节点数。然而,其计算复杂度较高,在大规模迷宫中计算量的增加可能会抵消一部分这种优势,导致实际扩展节点数不一定比曼哈顿距离少很多,甚至在极端情况下可能因为计算耗时导致搜索效率下降而增加扩展节点数。

对角线距离:在允许斜向移动且斜向移动成本合理的迷宫中,它能更好地适应斜向路径,相比曼哈顿距离可能会减少一些不必要的绕路节点扩展。但同样,其计算复杂度较高,在复杂迷宫中计算成本可能影响整体效率,且如果斜向移动成本设置不合理,可能导致搜索方向偏差而增加扩展节点数。

3.分析A*算法求解不同规模迷宫最短路径问题的性能

3.1分析不同起点终点

采用地图2,启发式函数 ℎ1 进行分析,分别设置起点为(1,1)和(9,5),终点为(20,20)、(18,20),结果如下:

(1,1)->(20,20)

(9,5)->(18,20)

两次寻路过程的性能分析如下表1。

路径

(1,1)→(20,20)

(9,5)→(18,20)

扩展节点数

100

73

生成节点数

71

57

运行时间

2.41020155

3.64384174

由上述图表可知路径延长后运行时间会相对变长,扩展节点及生成节点也会相应增多,且两次寻找的路程有重合的部分,所以寻找到的路径为较优路径。

3.2分析不同启发式函数

采用地图2,启发式函数 ℎ1 , ℎ2 进行分析,设置起点为(1,1),终点为(20,20),两次寻路过程的路径,扩展节点数、生成节点数和运行时间如下图

启发函数h1

启发函数h2

由图表可知,两种启发式函数所用时间相近,但 ℎ2 相比 ℎ1 所扩展的节点数会减少,仔细分析可以发现启发式函数 ℎ1 在路径108位置首先寻找了另一条岔路,从而相比启发式函数 ℎ2 多扩展了3个节点。

3.3分析不同地图

上述过程一直采用地图2进行实验,为验证程序的普适性,现采用地图1进行实验。经过分析,选择上述较优的启发式函数 ℎ2 进行分析。寻路问题初始节点为(1,1),目标节点为(5,5),寻路路径如下

汇总上述性能报告如下表2。

地图

启发式函数

扩展节点数

生成节点数

运行时间

地图1

h2

14

13

0.36682129

地图2

h1

100

71

2.41153646

地图2

h2

97

71

3.05070210

总结

A*算法在地图寻路问题中具有很好的优势,相比宽度优先搜索,效率更高,所耗时间更少,相比深度优先搜索,可以解决其不能找到最优解的不足,具有较高的应用价值。该算法的重点及难点就是启发式函数的选择,通过上述实验,可以发现启发式函数 ℎ2 相比 ℎ1 效果更好,但仍存在一些问题,需要继续找寻更优的启发式函数。

4. 提交源程序。

5.总结实验心得体会

本次实验让我受益匪浅,对 A* 算法有了更为深刻的理解和认识。以下是我在实验过程中的一些感悟。

1)理论与实践的紧密交融

通过实际操作,我对 A* 算法的工作原理有了更透彻的理解,尤其是深刻认识到启发式函数的重要性及其对算法性能的显著影响。在实验中,我掌握了曼哈顿距离和欧几里得距离这两种启发式函数的实现方法,并对比了它们在各种情况下的成效。这使我深切体会到,挑选适宜的启发式函数对于提升算法效率具有决定性意义。

2)编程实践中的挑战与成长

在编写 A* 算法的过程中,我遭遇了不少难题,例如如何精准地管理开放列表和关闭列表,以及怎样高效地完成节点的扩展和路径的重新构建。经过持续的调试与代码优化,我的编程能力得到了显著提升,特别是在处理数据结构和算法逻辑方面取得了长足的进步。

3)性能分析的收获与领悟

实验要求我对不同启发式函数的性能进行记录和对比,包括扩展节点数、生成节点数以及算法运行时间等方面。通过这些实验,我学会了如何科学地评估算法的性能,也明白了算法效率与问题规模之间的内在联系。我发现,在规模较小的迷宫中,启发式函数的选择对性能的影响相对较小;而在较大规模的迷宫中,一个更为优秀的启发式函数能够大幅缩短搜索时间并减少节点扩展的数量。

4)问题解决能力的提升

在实验过程中,我学会了将复杂问题拆解为若干个更小、更易于掌控的部分。A* 算法的成功实现让我明白,通过逐个解决这些小问题,最终能够圆满地解决整个复杂问题。

总的来说,这次实验是一次极具价值的学习体验。它不仅进一步加深了我对 A* 算法的理解,还全方位提升了我的编程和分析能力。我渴望将所学知识运用到更为复杂的实际问题中,比如游戏开发、机器人路径规划等领域。通过这次实验,我更加坚信,理论与实践的有机结合是掌握任何技术的最优途径。

相关文章:

A*迷宫寻路

二、实验内容 以寻路问题为例实现A*算法的求解程序,设计两种不同的估价函数: 1.设置两种地图: 根据题意,用矩阵设置两个地图。 地图1:设置5行5列的迷宫,代码如下: 地图2:设置20行…...

秒出PPT推出更强版本,AI PPT工具进入新纪元!

在现代职场中,PPT是我们沟通和展示信息的重要工具。无论是做产品演示,还是准备工作汇报,一份精美的PPT能大大提升演示效果。然而,传统的PPT制作往往需要消耗大量时间,尤其是在排版、设计和内容调整上。如今&#xff0c…...

electron-updater实现自动更新

electron-updater 是一个专为 Electron 应用设计的自动更新工具,能够帮助开发者轻松实现跨平台的自动更新功能。它支持 Windows、macOS 和 Linux 系统,通过简单的配置即可集成到 Electron 应用中,自动检查应用的最新版本并在后台完成更新。el…...

Ubuntu22学习记录

Ubuntu22学习记录 虚拟机挂载共享文件夹离线安装.net core3.1离线安装mysql离线安装supervisor离线安装nginx开机自启 虚拟机挂载共享文件夹 sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 挂载路径:/mnt/hgfs/离线安装.net core3.1 离线安装mysql 离线安装…...

【MinerU】:一款将PDF转化为机器可读格式的工具——RAG加强(Docker版本)

目录 创建容器 安装miniconda 安装mineru CPU运行 GPU加速 多卡问题 创建容器 构建Dockerfile文件 开启ssh服务,设置密码为1234等操作 # 使用官方 Ubuntu 24.04 镜像 FROM ubuntu:24.04# 安装基础工具和SSH服务 RUN apt-get update && \apt-get ins…...

leetcode 69和367

69. Sqrt(x) 代码&#xff1a; class Solution { public:int mySqrt(int x) {int left 0;int right x;long long mid 0;int res 0;long long temp 0;while(left < right){mid left ((right - left)>>1);temp mid*mid;if(temp x){res mid;break;}else if(te…...

# 代码随想录算法训练营Day37 | Leetcode300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

代码随想录算法训练营Day37 | Leetcode300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组 一、最长递增子序列 相关题目&#xff1a;Leetcode300 文档讲解&#xff1a;Leetcode300 视频讲解&#xff1a;Leetcode300 1. Leetcode300.最长递增子序列 给你一个整数数…...

中小企业技术跃迁:云原生后端如何实现高效低成本系统建设

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:技术变革的“门槛”能否被跨越? 过去十年,云计算与容器化技术飞速发展,互联网巨头纷纷构建自己的云原生基础设施,实现系统模块化、弹性伸缩、自动化运维。然而,中小企业在这股浪潮中…...

系统架构师2025年论文《系统架构风格2》

论软件系统架构风格 摘要: 某市医院预约挂号系统建设推广应用项目是我市卫生健康委员会 2019 年发起的一项医疗卫生行业信息化项目,目的是实现辖区内患者在辖区各公立医疗机构就诊时,可以通过多种线上渠道进行预约挂号。我作为系统架构师参与此项目。本文围绕软件系统架构…...

Java面试实战:电商场景下的Spring Cloud微服务架构与缓存技术剖析

第一轮提问 面试官: 谢飞机&#xff0c;我们先从基础问题开始。请问你知道Spring Boot和Spring Cloud的区别吗&#xff1f; 谢飞机: 当然知道&#xff01;Spring Boot主要用于快速构建独立运行的Spring应用&#xff0c;而Spring Cloud则是在Spring Boot的基础上实现分布式系统…...

快速配置linux远程开发-go语言

1.go安装包安装 2.go env 配置 go env -w GO111MODULEon go env -w GOPROXYxx go env -w GOSUMDBoff go env -w GOPRIVATExx 3.复制linux公钥到gitlab中&#xff0c;用于通过ssh免密拉取gitlab项目 ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 4.设置…...

C++23文本编码革新:迈向更现代的字符处理

文章目录 一、字符集与编码&#xff08;P2314R4&#xff09;二、统一的字符字面量编码&#xff08;P2316R2&#xff09;三、具名通用字符转义&#xff08;P2071R2&#xff09;四、带分隔的转义序列&#xff08;P2290R3&#xff09;五、支持UTF-8作为可移植源文件编码&#xff0…...

CentOS系统中MySQL安装步骤分享

在 CentOS 系统上安装 MySQL&#xff0c;需要依次进行环境检查、软件源配置、安装 MySQL、启动服务等操作。我将按照规范流程&#xff0c;为你详细分享完整且具体的安装步骤。 在 CentOS 系统中安装 MySQL 数据库&#xff0c;能够为各类应用提供高效稳定的数据存储和管理服务。…...

【产品经理从0到1】Axure介绍

01. 上期内容回顾 创建元件库的时候&#xff0c;在添加原件时不知道怎么操作。讲解很耐心&#xff0c;希望课上分解步骤多带着练习下&#xff1b;PC 端的原型&#xff0c;相对于移动端&#xff0c;非常自由&#xff0c;没有任何的设计规范&#xff1b;但是&#xff0c;要求 PC…...

30天通过软考高项-第二天

30天通过软考高项-第二天 任务&#xff1a;项目立项管理、项目整合管理 思维导图阅读 知识点记忆 章节习题练习 知识点练习 手写回忆ITTO 立项管理-背 1. 项目可研的5个方面 基金社运法 技术可行性、经济可行性、社会效益可行性、运行环境可行性、其他&#xff08;法律、政…...

yt-dlp 下载时需要 cookie

下载 b 站 歌曲 yt-dlp -x --proxy http://127.0.0.1:1080 --audio-format mp3 https://www.bilibili.com/video/BV1Zn4y1X75b解决方案&#xff0c;使用 firefox 登录相关网站 yt-dlp -o "downloads/%(title)s.%(ext)s" -f "bestvideo[height<1080]bestaud…...

快速上手GO的net/http包,个人学习笔记

更多个人笔记&#xff1a;&#xff08;仅供参考&#xff0c;非盈利&#xff09; gitee&#xff1a; https://gitee.com/harryhack/it_note github&#xff1a; https://github.com/ZHLOVEYY/IT_note 针对GO中net/http包的学习笔记 基础快速了解 创建简单的GOHTTP服务 func …...

Flask + ajax上传文件(二)--多文件上传

Flask多文件上传完整教程 本教程将详细介绍如何使用Flask实现多文件上传功能,并使用时间戳为上传文件自动命名,避免文件名冲突。 一、环境准备 确保已安装Python和Flask pip install flask项目结构 flask_upload/ ├── app.py ├── upload/ # 上传文…...

sysstat介绍以及交叉编译

文章目录 1. 工具集介绍2. 指令使用参考3. 交叉编译3.1 源码下载3.2 编译步骤 4. 工具验证4.1 将相关工具导入到设备4.2 功能验证 1. 工具集介绍 Sysstat 是一个功能强大的 Linux 系统性能监控工具包&#xff0c;提供实时监控和历史数据分析功能&#xff0c;帮助管理员优化系统…...

常见正则表达式整理与Java使用正则表达式的例子

一、常见正则表达式整理 1. 基础验证类 邮箱地址 ^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\\.[a-zA-Z]{2,}$ &#xff08;匹配如 userexample.com&#xff09;手机号 ^1[3-9]\\\\d{9}$ &#xff08;匹配国内11位手机号&#xff0c;如 13812345678&#xff09;中文字符 ^[\u4e00-\u9fa5…...

UE5 Assimp 自用

记录一下配assimp库到ue中的过程。因为想在ue里面实现一些几何处理(虽然ue好像有相关的geo的代码&#xff09;&#xff0c;遂配置了一下assimp。 1. 编译整理生成自己所需要的文件。cmake编译&#xff0c;下载github 的官方的assimp-master&#xff0c;然后cmake都是默认的就行…...

java—12 kafka

目录 一、消息队列的优缺点 二、常用MQ 1. Kafka 2. RocketMQ 3. RabbitMQ 4. ActiveMQ 5. ZeroMQ 6. MQ选型对比 适用场景——从公司基础建设力量角度出发 适用场景——从业务场景角度出发 四、基本概念和操作 1. kafka常用术语 2. kafka常用指令 3. 单播消息&a…...

VS Code 智能代理模式:重塑开发体验

在编程领域&#xff0c;效率与精准度无疑是开发者们永恒的追求。而如今&#xff0c;VS Code 推出的智能代理模式&#xff08;Agent Mode&#xff09;&#xff0c;正以前所未有的方式&#xff0c;彻底颠覆了传统开发流程&#xff0c;为程序员们带来了一场前所未有的效率革命。本…...

基于深度学习和单目测距的前车防撞及车道偏离预警系统

随着人工智能与计算机视觉技术的飞速发展,高级驾驶辅助系统(ADAS)已成为现代汽车智能化的关键标志。它不仅能有效提升行车安全,还能为自动驾驶时代的全面到来奠定坚实基础。本文深入剖析一套功能完备、基于深度学习模型的 ADAS 系统的架构与核心实现,带您领略智能驾驶背后…...

第二篇:Django配置及ORM操作

第二篇&#xff1a;Django配置及ORM操作 文章目录 第二篇&#xff1a;Django配置及ORM操作一、静态文件配置1、为什么要配置静态文件&#xff1f;2、如何配置静态文件&#xff1f;3、静态文件动态解析4、form表单默认是get请求数据 二、request对象方法初识三、pycharm链接数据…...

亚马逊英国站FBA费用重构:轻小商品迎红利期,跨境卖家如何抢占先机?

一、政策背景&#xff1a;成本优化成平台与卖家共同诉求 2024年4月&#xff0c;亚马逊英国站&#xff08;Amazon.co.uk&#xff09;发布近三年来力度最大的FBA费用调整方案&#xff0c;标志着英国电商市场正式进入精细化成本管理时代。这一决策背后&#xff0c;是多重因素的叠…...

算法时代的“摩西十诫”:AI治理平台重构数字戒律

一、引言 数字时代的狂飙突进中&#xff0c;人工智能&#xff08;AI&#xff09;正以颠覆性的力量重塑人类社会。从医疗诊断到金融决策&#xff0c;从智能制造到舆论传播&#xff0c;AI的触角已延伸至每个角落。 然而&#xff0c;斯坦福大学《2024年人工智能指数报告》揭示的…...

Kafka的ISR机制是什么?如何保证数据一致性?

一、Kafka ISR机制深度解析 1. ISR机制定义 ISR&#xff08;In-Sync Replicas&#xff09;是Kafka保证数据一致性的核心机制&#xff0c;由Leader副本&#xff08;复杂读写&#xff09;和Follower副本(负责备份)组成。当Follower副本的延迟超过replica.lag.time.max.ms&#…...

Flink 消费 Kafka 数据流的最佳实践

一、前言&#xff1a;Kafka 只是开始&#xff0c;消费才是关键 Kafka 提供了优雅的 Topic 管理与消息缓冲机制&#xff0c;但只有当 Flink 能稳定、有序、无数据丢失地消费并处理这些数据流&#xff0c;实时数仓系统才真正发挥作用。 本篇将围绕 Flink 如何“吃好” Kafka 数据…...

UEC++第10天|UEC++获取对象、RTTI是C++

最近在写UEC项目&#xff0c;这里写几个案例里的问题&#xff0c;还在学习阶段 1. 如何获取小鸟对象&#xff1f; void AFlappyBirdGameModeBase::BeginGame() { // 让管道动起来PipeActor->SetMoveSpeed();// 让小鸟开始飞行// 如何获取到小鸟对象APawn* Pawn UGameplayS…...

原生微信小程序,canvas生成凭证,保存到手机

原生微信小程序通过canvas可以将表单( 文本、图片 )转化成图片&#xff0c;同时添加水印&#xff0c;生成凭证&#xff0c;这里只是基本功能实现。可以继续完善和扩展。 <view class"container"><!-- Canvas 组件 --><canvas type"2d" id&…...

如何轻松将 Python 英文版切换至中文界面

Python 是一种广泛使用的编程语言&#xff0c;尤其在数据科学、人工智能和网络开发等领域。在最近的 Python 版本中&#xff0c;用户可以方便地使用多种语言&#xff0c;这也包括将 Python 界面语言从英文切换至中文。这不仅是出于用户体验的考虑&#xff0c;也能帮助初学者更快…...

2025.04.24【3D】3D绘图入门指南

Nifty graph A contribution by Matt Asher. 3D animation A 3D animated scatterplot made with R and rgl. 文章目录 Nifty graph3D animation 2025.04.24【3D】| 3D绘图入门指南什么是3D绘图&#xff1f;为什么使用3D绘图&#xff1f;如何在R中进行3D绘图&#xff1f;安装…...

R-CNN,Fast-R-CNN-Faster-R-CNN个人笔记

注&#xff1a;此博客主要为了方便笔者快速复习&#xff0c;只讲大致框架&#xff0c;只讲推理&#xff0c;不讲训练&#xff0c;因此内容不会很详实。 1.R-CNN R-CNN系列的开山之作。 本文将该框架划分为3个模块&#xff1a; 1.region proposal generator 2.CNN&#xff08…...

【深度学习核心技术解析】从理论到实践的全链路指南

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现&#xff08;MNIST分类&#xff09;运行结果验证 三、性能对比测试方法论量化数据对比结果分析 四…...

【QT网络】构建简单Udp回显服务器

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

浅谈国产数据库多租户方案:提升云计算与SaaS的资源管理效率

近年来&#xff0c;“数据库多租户”这一概念在技术圈内频频出现&#xff0c;成为云计算和SaaS&#xff08;软件即服务&#xff09;架构中的重要组成部分。多租户架构不仅为企业提供了高效的资源隔离与共享解决方案&#xff0c;还能大幅降低成本&#xff0c;提高系统的可扩展性…...

【霍夫变换】图像处理(OpenCV)-part11

20 霍夫变换 20.1 理解霍夫变换 霍夫变换的基本思想是将图像空间中的几何元素&#xff08;如直线、圆等&#xff09;通过参数方程转换到参数空间中&#xff0c;形成一个参数空间的累加器数组。图像空间中的每个点在参数空间中对应一个曲线或曲面&#xff0c;而几何形状在图像…...

Flink 源码编译

打包命令 打包整个项目 mvn clean package -DskipTests -Drat.skiptrue打包单个模块 mvn clean package -DskipTests -Drat.skiptrue -pl flink-dist如果该模块依赖其他模块&#xff0c;可能需要先将其他模块 install 到本地&#xff0c;如果依赖的模块的源代码有修改&#…...

React19源码阅读之commitRoot

commitRoot入口 在finishConcurrentRender函数&#xff0c;commitRootWhenReady函数&#xff0c;commitRoot函数。 commitRoot流程图 commitRoot函数 commitRoot 函数是 React 渲染流程中用于提交根节点的关键函数。它的主要作用是设置相关的优先级和状态&#xff0c;然后调…...

单 例 模 式

设计模式&#xff08;Design Pattern&#xff09;说白了就是一套方法论&#xff0c;是我们的前辈们不断试错总结出来的。一般意义上的设计模式有23种&#xff0c;分为创建型、结构型、行为型三大类。今天先拿最简单的单例模式开刀吧。 六大原则 在正式进入设计模式的学习之前&…...

如何在 Postman 中,自动获取 Token 并将其赋值到环境变量

在 Postman 中&#xff0c;你可以通过 预请求脚本&#xff08;Pre-request Script&#xff09; 和 测试脚本&#xff08;Tests&#xff09; 实现自动获取 Token 并将其赋值到环境变量&#xff0c;下面是完整的操作步骤&#xff1a; ✅ 一、创建获取 Token 的请求 通常这个请求…...

CentOS 7 基于 Nginx 的 HTML 部署全流程指南

一、Nginx 安装&#xff08;两种主流方式&#xff09; 1. YUM 安装&#xff08;推荐新手&#xff09; # 安装 EPEL 扩展源&#xff08;部分系统需要&#xff09; yum install epel-release -y# 安装 Nginx yum install nginx -y# 启动并设置开机自启 systemctl start nginx s…...

spring-ai使用Document存储至milvus的数据结构

1、 spring:application:name: spring-ai-alibaba-rag-milvus-exampleai:dashscope:api-key: sk-xxxxxxoooooovectorstore:milvus:client:host: xxx.ooo.mmm.nnnport: 19530username: rootpassword: MilvusdatabaseName: defaultcollectionName: vector_store#初始化 collecti…...

Milvus(6):Collection 管理分区、管理别名

1 管理分区 分区是一个 Collection 的子集。每个分区与其父集合共享相同的数据结构&#xff0c;但只包含集合中的一个数据子集。本页将帮助你了解如何管理分区。 1.1 分区概述 创建一个 Collection 时&#xff0c;Milvus 也会在该 Collection 中创建一个名为_default 的分区。…...

关于Safari浏览器在ios<16.3版本不支持正则表达式零宽断言的解决办法

异常原因 今天在升级Dify版本的时候发现低版本的ios手机出现了以下报错&#xff1a; SyntaxError: Invalid regular expression: invalid group specifier nameError: Invalid regular expression: invalid group specifier name Call Stack 46 eval [native code] (0:0) ./n…...

设计模式--建造者模式详解

建造者模式 建造者模式也属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式 定义&#xff1a;将一个复杂对象的构建和它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示&#xff08;假设有不同的建造者实现类&#xff0c;可以产生不同的产品&#xff09…...

玩转Docker | Docker部署LMS轻量级音乐工具

玩转Docker | Docker部署LMS轻量级音乐工具 前言一、LMS介绍LMS简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署LMS服务下载镜像创建容器创建容器检查容器状态检查服务端口安全设置四、访问LMS服务访问LMS首页注册账号五、基本使用上传音乐文…...

【前端】【业务场景】【面试】在前端项目中,当涉及大量数据渲染时,如何提高渲染性能并避免页面卡顿?

大量数据渲染性能优化&#xff1a;四层进阶法 循序渐进&#xff1a;先限量 → 再懒渲 → 后分批 → 终极后台协作 1 虚拟滚动&#xff1a;一次只保留“看得见”的节点 核心思路&#xff1a;固定容器高度&#xff0c;让滚动条滚动 假象 的总长度&#xff1b;可视窗口内…...

数据结构与算法实战:从理论到落地的深度探索

放在前面咯 数据结构与算法实战&#xff1a;从理论到落地的深度探索 数据结构与算法实战&#xff1a;从理论到落地的深度探索 在计算机科学的浩瀚宇宙中&#xff0c;数据结构与算法犹如璀璨星辰&#xff0c;指引着高效程序设计的方向。它们不仅是开发者解决复杂问题的核心利…...