智能体(Agent)如何具备自我决策能力的机理与实现方法
一、智能体自我决策能力的机理
从人工智能和控制理论的角度看,智能体能够“自我决策”的核心在于其 “感知–认知–行动” 的循环过程,以及在此过程中引入自主学习与自主优化的机制。经过优化与补充,智能体具备自我决策能力的机理可以分解为以下五个部分:
1. 自主感知与信息获取
- 智能体通过传感器、数据库、互联网信息等多源数据采集,构建全面的环境感知能力。
- 通过数据清洗、去噪、融合等方法,提升感知数据的可靠性,结合高维特征学习预测未来可能情境,形成稳定的上下文理解。
- 实时性和高精度是自主感知的关键,通过卡尔曼滤波、粒子滤波等动态数据融合算法处理高速变化的数据。
2. 内部状态表示与知识表达
- 智能体以结构化知识库为核心存储和管理外部环境信息及自身状态(历史决策、资源储备、策略参数等)。
- 引入知识图谱、隐含表征(如深度学习模型)、高维状态向量等手段,实现外部与内部信息的语义化映射和认知抽象。
- 面对多变场景,采用迁移学习和小样本学习不断丰富知识表达的泛化能力。
3. 目标函数与动态决策评估
- 智能体依据特定场景定义明确或隐式的目标函数,例如灾害响应中的人员安全优先、资源分配效率等。
- 通过动态适配机制调整目标权重(如从灾害早期的减灾优先,逐步过渡到后期的资源恢复与重建)。
- 利用多目标优化算法(Pareto前沿等)在冲突目标中寻找平衡解,同时综合考虑实时反馈优化评估。
4. 策略学习与自主规划
- 智能体利用强化学习(如DQN、PPO、A3C)和规划优化算法(如线性规划、启发式搜索),通过实时环境交互和历史数据积累不断优化策略。
- 在复杂任务中,通过分层强化学习构建高层策略(负责全局决策)与低层策略(处理具体操作)的协作。
- 引入认知推理能力,在探索与全局优化中平衡短期和长期收益,利用知识图谱辅助减少试错成本。
5. 多智能体协作与通信
- 通过多智能体强化学习(MARL)和分布式规划优化,实现智能体间的信息共享和任务协作。
- 引入博弈论模型解决资源争夺或目标冲突问题,利用图神经网络优化分布式任务调度和通信拓扑。
- 通过发布-订阅机制(Pub/Sub)、零拷贝通信框架等实现高效交互,同时动态调整优先级避免系统僵化。
二、自我决策能力的实现方法
智能体的实现需要系统化设计,以下从感知、学习、执行、反馈和安全五个维度进行详细阐述。
1. 多模态感知与数据融合
- 多源数据采集:通过传感器网络、物联网、视频监控等多模态设备收集异构数据。使用中间件实现异构数据的实时对接。
- 时空特征提取:基于时空卷积网络(STConv)或图神经网络(GNN)提取复杂环境下的动态特征。
- 数据可靠性保障:通过异常检测、冗余设计及多源对比提升感知的鲁棒性。
2. 自主学习与优化
2.1 强化学习
- 基础模型:采用PPO、A3C等深度强化学习算法处理连续动作空间,同时用HRL分层强化学习解决复杂任务。
- 动态奖励函数:基于应急响应不同阶段动态调整奖励结构,优先考虑生命财产安全。
2.2 规划与优化
- 面向大规模资源调度、路径优化等问题,使用混合整数规划(MIP)及蚁群优化等启发式方法。
- 支持动态重规划,在环境快速变化时及时生成替代方案。
2.3 认知推理与知识图谱
- 引入领域知识图谱,结构化表示灾害类型、应急资源、历史案例等。
- 结合规则引擎与深度学习,快速响应未知情况,同时满足安全合规需求。
3. 多智能体协同与执行
- 分布式任务分解:利用分层架构(高层决策+低层执行)优化任务分配。
- 通信与冲突管理:通过基于博弈论的谈判算法动态解决资源冲突;利用协作协议(如FIPA-ACL)实现全局一致性。
- 执行与反馈闭环:实时监测执行进度,基于反馈更新策略,必要时调用备用方案。
4. 安全与容错机制
- 冗余设计:部署多套关键模块,防止单点故障对决策造成影响。
- 多级安全保障:设计紧急刹车功能及快速回滚机制;确保高风险任务始终由专家监督。
- 伦理与透明性:通过决策日志回放与模型解释模块,满足事后审查需求。
5. 验证与部署
- 仿真测试:在虚拟环境中模拟高风险事件,优化模型的鲁棒性与容错能力。
- 分阶段部署:从低风险场景逐步扩展到复杂环境,并通过云端平台实时监控部署过程。
三、总结
“智能体具备自我决策能力” 依赖于完整的系统设计,包括感知、认知、决策、执行和安全五个关键层次。在应急管理等复杂场景中,智能体需具备以下核心能力:
- 动态感知与实时响应:通过多模态感知和高维特征提取,实现对环境的准确理解。
- 自主学习与优化:利用强化学习、规划算法及知识图谱结合,持续改进决策策略。
- 多智能体协作:通过博弈论、分布式规划优化和高效通信机制实现任务协作。
- 执行闭环与安全保障:引入多层容错与人工干预,确保决策过程透明且可控。
通过以上设计,智能体能够在复杂、不确定的动态环境中实现动态适应与自主优化,为提升应急响应效率和精准度提供重要支持。未来的发展方向包括进一步提升算法实时性、优化系统集成以及完善伦理与合规审查机制,以确保智能体在关键任务中的安全可靠性。
以下是实现智能体自我决策能力的主要代码示例,包含多模态感知、自主学习、多智能体协作、执行与反馈等模块。
# 导入所需库
import numpy as np # 用于数值计算
import networkx as nx # 用于构建图结构
from sklearn.ensemble import RandomForestClassifier # 用于数据分类
import tensorflow as tf # 深度学习框架
from gym import Env # 强化学习环境
from gym.spaces import Discrete, Box # 定义强化学习空间# 定义多模态感知模块
class MultiModalPerception:def __init__(self):# 初始化感知模块,包含多模态数据的占位符self.data_sources = {"sensor": None, "satellite": None, "social_media": None}def collect_data(self):# 模拟多源数据采集self.data_sources["sensor"] = np.random.randn(100) # 传感器数据self.data_sources["satellite"] = np.random.randn(100) # 卫星遥感数据self.data_sources["social_media"] = np.random.randn(100) # 社交媒体数据def preprocess_data(self):# 数据预处理:去噪、标准化for source in self.data_sources:self.data_sources[source] = (self.data_sources[source] - np.mean(self.data_sources[source])) / np.std(self.data_sources[source])def fuse_data(self):# 数据融合:将多模态数据进行特征拼接fused_data = np.concatenate([self.data_sources["sensor"], self.data_sources["satellite"], self.data_sources["social_media"]])return fused_data# 定义强化学习智能体模块
class RLAgent:def __init__(self, state_space, action_space):# 初始化智能体,定义状态空间和动作空间self.state_space = state_spaceself.action_space = action_spaceself.q_table = np.zeros((state_space, action_space)) # 初始化Q表def choose_action(self, state, epsilon=0.1):# ε-greedy策略选择动作if np.random.rand() < epsilon:return np.random.randint(self.action_space) # 随机选择动作else:return np.argmax(self.q_table[state]) # 选择Q值最大的动作def update_q_table(self, state, action, reward, next_state, alpha=0.1, gamma=0.9):# 更新Q表best_next_action = np.argmax(self.q_table[next_state]) # 获取下一个状态的最佳动作td_target = reward + gamma * self.q_table[next_state, best_next_action] # 计算TD目标td_error = td_target - self.q_table[state, action] # 计算TD误差self.q_table[state, action] += alpha * td_error # 更新Q值# 定义多智能体协作模块
class MultiAgentSystem:def __init__(self, num_agents, state_space, action_space):# 初始化多智能体系统self.agents = [RLAgent(state_space, action_space) for _ in range(num_agents)] # 创建多个智能体def communicate(self):# 模拟智能体间通信:共享Q表shared_q_table = np.mean([agent.q_table for agent in self.agents], axis=0) # 计算Q表的均值for agent in self.agents:agent.q_table = shared_q_table # 同步Q表def step(self, states):# 执行多智能体的一步决策actions = [agent.choose_action(state) for agent, state in zip(self.agents, states)] # 每个智能体选择动作return actions# 定义执行与反馈模块
class ExecutionFeedback:def __init__(self):# 初始化执行与反馈模块self.task_status = [] # 存储任务执行状态def execute(self, action):# 模拟动作执行,返回执行结果success = np.random.choice([True, False], p=[0.8, 0.2]) # 80%成功率self.task_status.append(success) # 记录执行结果return successdef monitor_feedback(self):# 监控执行反馈success_rate = np.mean(self.task_status) # 计算成功率return success_rate# 主程序入口
if __name__ == "__main__":# 初始化各模块perception = MultiModalPerception() # 感知模块multi_agent_system = MultiAgentSystem(num_agents=5, state_space=10, action_space=4) # 多智能体系统feedback = ExecutionFeedback() # 执行与反馈模块# 感知阶段perception.collect_data() # 数据采集perception.preprocess_data() # 数据预处理fused_data = perception.fuse_data() # 数据融合# 模拟状态空间states = np.random.randint(0, 10, size=5) # 随机生成5个智能体的初始状态# 多智能体协作与决策for step in range(100): # 模拟100步决策actions = multi_agent_system.step(states) # 每个智能体选择动作for agent_idx, action in enumerate(actions): # 执行动作并获取反馈success = feedback.execute(action)if success:reward = 1 # 成功奖励else:reward = -1 # 失败惩罚next_state = np.random.randint(0, 10) # 模拟状态转移multi_agent_system.agents[agent_idx].update_q_table(states[agent_idx], action, reward, next_state) # 更新Q表states[agent_idx] = next_state # 更新状态multi_agent_system.communicate() # 智能体间通信# 最终反馈success_rate = feedback.monitor_feedback() # 监控任务成功率print(f"任务执行成功率: {success_rate * 100:.2f}%")
根据系统目标的不同还可以做以下扩展补充模块进一步完善智能体自我决策系统:
1. 动态目标调整与优先级管理
功能
在多任务、多阶段场景中(例如灾害响应的不同阶段),智能体需要能够动态调整目标和优先级。
代码实现
class DynamicObjectiveManager:def __init__(self):# 初始化动态目标管理模块self.objectives = {"phase1": {"reduce_damage": 0.7, "rescue_efficiency": 0.3},"phase2": {"resource_recovery": 0.5, "infrastructure_rebuild": 0.5}}self.current_phase = "phase1" # 默认阶段def update_phase(self, new_phase):# 更新目标权重阶段if new_phase in self.objectives:self.current_phase = new_phasedef get_objective_weights(self):# 获取当前阶段的目标权重return self.objectives[self.current_phase]
- 此模块可结合强化学习奖励函数动态调整各目标的权重。
- 适用于应急管理中灾害初期和恢复期的不同目标切换。
2. 智能体间博弈与冲突解决
功能
在多智能体系统中,可能出现资源争夺或路径冲突问题。通过引入博弈论模型,可以优化冲突解决机制。
代码实现
class ResourceAllocationGame:def __init__(self, num_agents, resource_capacity):# 初始化资源分配博弈self.num_agents = num_agentsself.resource_capacity = resource_capacityself.agent_bids = np.zeros(num_agents)def collect_bids(self, bids):# 收集智能体的资源竞标self.agent_bids = bidsdef resolve_allocation(self):# 根据竞标值和资源约束分配资源sorted_agents = np.argsort(-self.agent_bids) # 按竞标值降序排列allocation = np.zeros(self.num_agents)remaining_capacity = self.resource_capacityfor agent in sorted_agents:if remaining_capacity > 0:allocation[agent] = min(self.agent_bids[agent], remaining_capacity)remaining_capacity -= allocation[agent]return allocation
- 该机制适合有限资源(如物资、车辆)分配。
- 可扩展为多轮谈判机制,结合智能体偏好动态调整分配结果。
3. 基于知识图谱的推理与学习
功能
通过知识图谱增强智能体的因果推理能力,帮助其在应急场景中快速找到关键路径。
代码实现
class KnowledgeGraph:def __init__(self):# 初始化知识图谱,采用邻接表表示self.graph = {"flood": ["dam_failure", "power_outage"],"dam_failure": ["evacuation"],"power_outage": ["resource_shortage"]}def find_effects(self, event):# 获取某事件的直接后果return self.graph.get(event, [])def causal_path(self, start, end, path=None):# 递归寻找因果路径if path is None:path = []path = path + [start]if start == end:return pathif start not in self.graph:return Nonefor node in self.graph[start]:if node not in path:new_path = self.causal_path(node, end, path)if new_path:return new_pathreturn None
- 用于推理复杂灾害链(如洪灾引发堤坝破裂、进而导致人员疏散)的处理优先级。
- 与统计学习方法结合,通过强化学习决策时调用,减少探索成本。
4. 在线学习与自适应性增强
功能
智能体在动态环境中需要通过在线学习实时调整策略。
代码实现
class OnlineLearningAgent(RLAgent):def __init__(self, state_space, action_space):super().__init__(state_space, action_space)self.learning_rate_decay = 0.99 # 动态调整学习率def adapt_learning_rate(self, step):# 动态调整学习率return max(0.01, self.learning_rate_decay ** step)def update_q_table(self, state, action, reward, next_state, step, gamma=0.9):# 使用动态学习率更新Q表alpha = self.adapt_learning_rate(step) # 当前学习率best_next_action = np.argmax(self.q_table[next_state]) # 获取最佳动作td_target = reward + gamma * self.q_table[next_state, best_next_action] # TD目标td_error = td_target - self.q_table[state, action] # TD误差self.q_table[state, action] += alpha * td_error # 更新Q值
- 适合动态环境,智能体可通过在线学习快速适应新变化。
- 可结合实际环境数据动态调整学习率。
5. 增强的反馈与监控机制
功能
增强任务执行中的监控能力,提供更高效的反馈和异常检测。
代码实现
class EnhancedFeedback:def __init__(self):# 初始化反馈模块self.feedback_logs = []def log_feedback(self, task_id, status, timestamp):# 记录每项任务的反馈self.feedback_logs.append({"task_id": task_id, "status": status, "timestamp": timestamp})def analyze_feedback(self):# 分析反馈日志,计算成功率和异常success_logs = [log for log in self.feedback_logs if log["status"] == "success"]failure_logs = [log for log in self.feedback_logs if log["status"] == "failure"]success_rate = len(success_logs) / len(self.feedback_logs) if self.feedback_logs else 0return {"success_rate": success_rate, "failures": failure_logs}
- 可结合异常检测算法(如LOF、Isolation Forest)进一步分析失败原因。
- 通过图形化界面展示任务反馈日志。
相关文章:
智能体(Agent)如何具备自我决策能力的机理与实现方法
一、智能体自我决策能力的机理 从人工智能和控制理论的角度看,智能体能够“自我决策”的核心在于其 “感知–认知–行动” 的循环过程,以及在此过程中引入自主学习与自主优化的机制。经过优化与补充,智能体具备自我决策能力的机理可以分解为…...
Redis 数据库源码分析
Redis 数据库源码分析 我们都知道Redis是一个 <key,value> 的键值数据库,其实也就是一个 Map。如果让我来实现这样一个 Map,我肯定是用数组,当一个 key 来的时候,首先进行 hash 运算,接着对数据的 length 取余&…...
vue3 css实现文字输出带光标显示,文字输出完毕,光标消失的效果
Vue实现过程如下: <template><div ><p ref"dom_element" class"typing" :class"{over_fill: record_input_over}"></p></div> </template> <script setup> import {onMounted, ref} from…...
【Leetcode】731. 我的日程安排表 II
文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 实现一个程序来存放你的日程安排。如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排。 当三个日程安排有一些时间上的交叉时(例如三个日程…...
浅谈棋牌游戏开发流程四:核心业务逻辑(二)——房间匹配与对局流程
一、前言:让玩家轻松坐上“牌桌” 在上一篇文章中,我们深入探讨了用户系统与登录流程,了解了如何让“陌生人”转变为游戏中的“正式玩家”。接下来,我们将迈向游戏的核心环节——房间匹配与对局流程。这是玩家实际参与游戏、互动…...
大学生HTML5期末作业 Web前端网页制作 html5+css3+js html+css网页设计 美食 美食模版2个页面
大学生HTML5期末作业 Web前端网页制作 html5css3js htmlcss网页设计 美食 美食模版2个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修…...
Java100道面试题
1.JVM内存结构 1. 方法区(Method Area) 方法区是JVM内存结构的一部分,用于存放类的相关信息,包括: 类的结构(字段、方法、常量池等)。字段和方法的描述,如名称、类型、访问修饰符…...
MySQL 日志简介
总览 MySQL Server 有以下⼏种⽇志,可以记录服务器正在发⽣的活动。 ⽇志类型⽇志信息 ⼀般查询⽇志 (General query log) 已建⽴的客⼾端连接和从客⼾端接收到的语句 错误⽇志 (Error log) mysqld在启动、运⾏或停⽌时遇到的问题 慢查询⽇志 (Slow query log) 执⾏…...
ubuntu清理磁盘
ubuntu清理磁盘脚本: #!/bin/bash#shell脚本用#作注释行,但是第一行的#!/bin/bash例外sudo apt-get clean sudo rm -rf /tmp/* sudo rm -rf /var/cache/*cd /var/log/ sudo du -h -d 1 rm -rf ./*cd ~/.cache sudo du -h -d 1 rm -rf ./*apt…...
鸿蒙APP之从开发到发布的一点心得
引言: 做鸿蒙开发大概有1年左右时间了,从最开始的看官方文档、看B站视频,到后来成功发布两款个人APP(房贷计算极简版、时简时钟 轻喷,谢谢)。简单描述一下里边遇到的坑以及一些经历吧。 学习鸿蒙开发 个…...
C++二十三种设计模式之享元模式
C二十三种设计模式之享元模式 一、组成二、特点三、目的四、缺点五、示例代码 一、组成 抽象享元类:声明操作方法。 具体享元类:使用内部数据和外部数据来实现操作方法。 享元管理者类:创建和管理具体享元对象。 二、特点 1、创建享元对象…...
基于Python的音乐播放器 毕业设计-附源码73733
摘 要 本项目基于Python开发了一款简单而功能强大的音乐播放器。通过该音乐播放器,用户可以轻松管理自己的音乐库,播放喜爱的音乐,并享受音乐带来的愉悦体验。 首先,我们使用Python语言结合相关库开发了这款音乐播放器。利用Tkin…...
基于32单片机的智能语音家居
一、主要功能介绍 以STM32F103C8T6单片机为控制核心,设计一款智能远程家电控制系统,该系统能实现如下功能: 1、可通过语音命令控制照明灯、空调、加热器、窗户及窗帘的开关; 2、可通过手机显示和控制照明灯、空调、窗户及窗帘的开…...
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
目录😋 ⚙️C语言环境配置:Windows配置C语言环境(超级详细) <第1关:程序改错> 任务描述 相关知识 1. 头文件的引用 2. 基本语法规则 编程要求 测试说明 通关代码 测试结果 <第2关:scanf 函数>…...
基于Springboot的知名作家交流系统
博主介绍:java高级开发,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…...
服务器数据恢复—离线盘数超过热备盘数导致raidz阵列崩溃的数据恢复
服务器数据恢复环境&故障: 一台配有32块硬盘的服务器在运行过程中突然崩溃不可用。经过初步检测,基本上确定服务器硬件不存在物理故障。管理员重启服务器后问题依旧。需要恢复该服务器中的数据。 服务器数据恢复环境: 1、将服务器中硬盘…...
conda安装及demo:SadTalker实现图片+音频生成高质量视频
1.安装conda 下载各个版本地址:https://repo.anaconda.com/archive/ win10版本: Anaconda3-2023.03-1-Windows-x86_64 linux版本: Anaconda3-2023.03-1-Linux-x86_64 Windows安装 环境变量 conda -V2.配置conda镜像源 安装pip conda…...
内蒙古水系详细很全shp格式arcgis软件无偏移坐标下载后内容测评
标题中的“内蒙古水系详细很全shp格式arcgis软件无偏移坐标”指的是一个地理信息系统(GIS)数据集,该数据集详细记录了内蒙古地区的水系信息,并以ESRI公司的标准矢量数据格式——Shapefile(.shp)进行存储。S…...
RK3588平台开发系列讲解(系统篇)Linux Kconfig的语法
文章目录 一、什么是Kconfig二、config模块三、menuconfig四、menu 和 endmenu五、choice 和 endchoice六、source七、depends on八、default九、help十、逻辑表达式沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是Kconfig Kconfig的语法及代码结构非常简单。本博…...
c#使用SevenZipSharp实现压缩文件和目录
封装了一个类,方便使用SevenZipSharp,支持加入进度显示事件。 双重加密压缩工具范例: using SevenZip; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.…...
【C++数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 1. 二叉排序树的基本概念 2. 二叉排序树节点结构体定义 3. 创建二叉排序树 4. 判断是否为二叉排序树 5. 递归查找关键字为 6 的结点并输出查找路径 6. 删除二叉排序树中的节点 测试说明 通关代码 测试结果 任务描述 本关任务&a…...
C# 服务生命周期:Singleton、Scoped、Transient
文章目录 1、概念:服务生命周期单例 (Singleton) :作用域 (Scoped) :瞬态 (Transient) : 2、对 Scoped 和 Transient 进一步辨析Scoped 生命周期Transient 生命周期选择哪种生命周期 1、概念:服务生命周期 单例 (Singleton) : 整个应用程序生命周期中只有一个实例被创建并共享…...
如何让用户在网页中填写PDF表格?
在网页中让用户直接填写PDF表格,可以大大简化填写、打印、扫描和提交表单的流程。通过使用复选框、按钮和列表等交互元素,PDF表格不仅让填写过程更高效,还能方便地在电脑或移动设备上访问和提交数据。 以下是在浏览器中显示可填写PDF表单的四…...
w140体育馆使用预约平台的设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...
Linux(Ubuntu)下ESP-IDF下载与安装完整流程(4)
接前一篇文章:Linux(Ubuntu)下ESP-IDF下载与安装完整流程(3) 本文主要看参考官网说明,如下: 快速入门 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 Linux 和 macOS 平台工具链的标准设置 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 前边几回讲解了第一步 —— …...
PDF预览插件
PDF预览插件 可用于当前页面弹窗形式查看,可增加一些自定义功能 pdf预览插件 代码块: pdfobject.js <div class="pdfwrap"><div class="item"><h3>笑场</h3><div class="tags"><p>李诞</p><i&…...
【微服务】2、网关
Spring Cloud微服务网关技术介绍 单体项目拆分微服务后的问题 服务地址问题:单体项目端口固定(如黑马商城为8080),拆分微服务后端口各异(如购物车808、商品8081、支付8086等)且可能变化,前端难…...
计算机网络--路由表的更新
一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2...
网络安全抓包
#知识点: 1、抓包技术应用意义 //有些应用或者目标是看不到的,这时候就要进行抓包 2、抓包技术应用对象 //app,小程序 3、抓包技术应用协议 //http,socket 4、抓包技术应用支持 5、封包技术应用意义 总结点:学会不同对象采用…...
字玩FontPlayer开发笔记8 Tauri2文件系统
字玩FontPlayer开发笔记8 Tauri2文件系统 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码: github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer 笔记 字玩目…...
http源码分析
一、HttpURLConnection http连接池源码分析 二、HttpClient 连接池,每个路由最大连接数 三、OkHttp okhttp的连接池与socket连接...
【vim】vim常用操作总结
vim常用操作总结 一,简介二,操作介绍2.1 命令模式2.1.1 删除(剪切)光标所在行2.1.2 复制2.1.3 粘贴2.1.4 跳到行末2.1.5 跳到行首2.1.6 撤销操作 2.2 视图模式2.3 命令模式2.4 编辑模式 三,总结 一,简介 在…...
【学Rust开发CAD】1 环境搭建
文章目录 一、搭建C/C编译环境二、安装Rust三、配置 PATH 环境变量四、验证安装结果五、安装编辑工具 一、搭建C/C编译环境 Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往…...
RK3588开发笔记-spi接口调试
目录 前言 一、SPI接口简介 二、原理图连接 三、设备树配置 四、spi调试 五、spi应用软件接口 总结 前言 在嵌入式系统开发中,SPI(Serial Peripheral Interface)接口作为一种同步、全双工、多设备、多主机的通信协议,广泛应用于连接各种外围设备,如ADC、DAC、数据存…...
AlphaPi相关硬件驱动提取
初涉硬件编程,在咸鱼上搞了几块AlphaPi和microbit的板鼓捣了一下,alphapi生态不完善,网上又无任何文档,搞封闭,可玩性实在有限,但貌似相关扩展板是可以插microbit的,于是想把这些扩展版用microb…...
【Unity3D】Text文本文字掉落效果
相关技术:Text、TextMesh、Rigidbody(刚体)、BoxCollider(碰撞体)、TextGenerator、文本网格、文字网格 原理:使用UGUI Text获取其文字的每个字符网格坐标,转世界坐标生成对应的3D文本(TextMesh…...
MySQL内置函数详解
MySQL内置函数详解 1. 字符串函数 1.1 基本字符串处理 -- 字符串长度 SELECT LENGTH(Hello MySQL); -- 返回11-- 字符串大小写转换 SELECT LOWER(HELLO), UPPER(hello); -- 返回 hello, HELLO-- 字符串截取 SELECT SUBSTRING(MySQL Database, 1, 5); -- 返回 MySQL SELEC…...
【网络安全设备系列】9、WAF(Web应用防火墙)
0x00 定义: Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一种设备。 WAF需要部署在Web服务器的前面,串行接入,不仅在硬件性能上要求高,而且不能影响Web服务,所以HA功能、Bypass功能都是必…...
Express 加 sqlite3 写一个简单博客
例图: 搭建 命令: 前提已装好node.js 开始创建项目结构 npm init -y package.json:{"name": "ex01","version": "1.0.0","main": "index.js","scripts": {"test": &q…...
【C++数据结构——图】图的邻接矩阵和邻接表的存储(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 1. 带权有向图 2. 图的邻接矩阵 3. 图的邻接表 测试说明 通关代码 测试结果 任务描述 本关任务:编写一个程序实现图的邻接矩阵和邻接表的存储。 相关知识 为了完成本关任务,你需要掌握: 带权有向图…...
基于单片机的直流稳压电源的设计(论文+源码)
1.系统方案设计 在本次直流稳压电源的设计中,其关键指标如下: 系统输入电压220V交流系统输出直流0到12V可调,步进可以达到0.1V电流最大输出可以到2A具有短路保护功能可以通过液晶或者数码管等显示设备显示当前输出电压 2. 电路图...
Golang开发-案例整理汇总
前言 CSDN的文章缺少一个索引所有文章分类的地方,所以手动创建这么一个文章汇总的地方,方便查找。Golang开发经典案例汇总 GoangWeb开发 GolangWeb开发- net/http模块 GolangWeb开发-好用的HTTP客户端httplib(beego) GolangWeb开发- Gin不使用Nginx部署Vue项目 Golang并发开…...
从入门到精通:Ansible Shell 模块的应用与最佳实践
Ansible是一款强大的自动化运维工具,通过其模块化的设计,可以方便地管理和配置远程主机。作为Ansible的一个常用模块,shell 模块使得我们可以在目标主机上执行复杂的命令或脚本。无论是单一的命令,还是复杂的Shell脚本,…...
【Javascript Day1】javascript基础
javascript编程规则 弹窗(举例) alert("内容"),直接写在控制区生效 三种写法 1、行内js语法 :需要注意引号的问题 <input type"button" value"提示窗" οnclick alert("消息") &…...
dbeaver导入导出数据库(sql文件形式)
目录 前言dbeaver导出数据库dbeaver导入数据库 前言 有时候我们需要复制一份数据库,可以使用dbeaver简单操作! dbeaver导出数据库 选中数据库右键->工具->转储数据库 dbeaver导入数据库 选中数据库右键->工具->执行脚本 mysql 默…...
字玩FontPlayer开发笔记6 Tauri2设置菜单
字玩FontPlayer开发笔记6 Tauri2设置菜单 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码: github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer 笔记 字玩目…...
大学生HTML5期末作业 Web前端网页制作 html5+css3+js html+css+js网页设计 美食 美食3个页面(带js)
大学生HTML5期末作业 Web前端网页制作 html5css3js htmlcssjs网页设计 美食 美食3个页面(带js) 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行…...
创龙3588——debian根文件系统制作
文章目录 build.sh debian 执行流程build.sh源码流程 30-rootfs.sh源码流程 mk-rootfs-bullseys.sh源码流程 mk-sysroot.sh源码流程 mk-image.sh源码流程 post-build.sh 大致流程系统制作步骤 build.sh debian 执行流程 build.sh 源码 run_hooks() {DIR"$1"shiftf…...
element组件el-select、el-tree-select有值,不渲染lable
大致情况是这个样子的............ 之前vue页面和script脚本是放在一个页面的,今天把页面和脚本拆开了。这一拆不打紧,完犊子!它奶奶的el-select、el-tree-select这俩组件不正常显示了!!! 我这个是vite-vue…...
【C++数据结构——线性表】顺序表的基本运算(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 一、线性表的基本概念 二、初始化线性表 三、销毁线性表 四、判定是否为空表 五、求线性表的长度 六、输出线性表 七、求线性表中某个数据元素值 八、按元素值查找 九、插入数据元素 十、删除数据元素 测试说明 通关代码 测…...