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

python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究

python代码基于DDPG深度确定性梯度策略算法的售电公司竞价策略研究 关键词DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档完美复现英文文档可找我看文档 主要内容 代码主要研究的是多个售电公司的竞标以及报价策略属于电力市场范畴目前常用博弈论方法寻求电力市场均衡但是此类方法局限于信息完备的简单市场环境难以直观地反映竞争性的市场环境因此本代码通过深度确定性梯度策略算法DDPG对发电公司的售价进行建模解决了传统的RL算法局限于低维离散状态空间和行为空间收敛性不稳的问题实验表明该方法比传统的RL算法具有更高的精度即使在不完全信息环境下也能收敛到完全信息的纳什均衡。 此外该方法通过定量调整发电商的耐心参数可以直观地反映不同的默契合谋程度是分析市场策略的有效手段。 目前深度强化学习非常火热很容易出成果非常适合在本代码的基础上稍微加点东西即可形成自己的成果非常适合深度强化学习方向的人学习 这段代码包含了三个程序我们分别来进行详细分析。 程序一 python import numpy as np from market.three_bus import market_clearing from algorithm.VRE import RothErevAgents import matplotlib.pyplot as plt n_agents 2 action_space np.arange(0, 3.1, 0.2) n_steps 10000 a_real np.array([15.0, 18.0]) strategic_variables np.zeros((n_steps, n_agents)) multi_agents RothErevAgents(n_agents, action_space) for step in range(n_steps): action multi_agents.select_action() alpha action * a_real nodal_price, profit market_clearing(alpha) strategic_variables[step] alpha multi_agents.learn(profit) if (step 1) % 1000 0: print(Step:, step 1, a1: %.2f % alpha[0], a2: %.2f % alpha[1], r1: %.3f % profit[0], r2: %.3f % profit[1]) C np.array([[0.36, 0.58, 0.75], [0.92, 0.28, 0.29]]) plt.plot(strategic_variables[:, 0], lw0.5, CC[0], alpha0.5, labelr$\alpha_{1t}$) plt.plot(strategic_variables[:, 1], lw0.5, CC[1], alpha0.5, labelr$\alpha_{2t}$) plt.plot([0, 10000], [20.29, 20.29], --, CC[0], labelr$\alpha_{1t}^\ast$) plt.plot([0, 10000], [22.98, 22.98], --, CC[1], labelr$\alpha_{2t}^\ast$) plt.xlabel(r$t$) plt.ylabel(r$\alpha_{gt}$ (\$/MHh)) plt.title(VRE (3-Bus System)) plt.legend() plt.savefig(VRE.png, dpi600) plt.show() 这段代码主要是使用了RothErevAgents算法来进行市场交易的仿真。程序首先导入了一些必要的库然后定义了一些变量包括代理数量n_agents、动作空间action_space、仿真步数n_steps和真实的动作值a_real。接下来创建了一个RothErevAgents对象multi_agents该对象使用Roth-Erev算法来选择动作。 在每个步骤中程序通过调用multi_agents.select_action()来选择动作。然后根据选择的动作和真实的动作值计算alpha值。接着使用market_clearing函数计算节点价格和利润。将alpha值存储在strategic_variables数组中并使用multi_agents.learn()函数来更新代理的策略。 在每1000个步骤后程序会打印出当前步骤数、alpha值和利润。最后程序使用matplotlib库绘制了两个alpha值随时间变化的图形并保存为图片。 程序二和程序三的结构与程序一类似只是使用了不同的算法QLearning和DDPG和模型ANet2和CNet2。它们的功能和工作方式与程序一类似只是算法和模型的不同。一、核心算法模块DDPG.py1.1 DDPG类初始化class DDPG(object): def __init__(self, a_dim, s_dim, a_bound,): self.a_dim, self.s_dim, self.a_bound a_dim, s_dim, a_bound[1] self.memory np.zeros((MEMORY_CAPACITY, s_dim * 2 a_dim 1), dtypenp.float32) self.pointer 0 self.sess tf.Session() self.actor_eval self._build_actor_net(actor_eval, trainableTrue) self.actor_target self._build_actor_net(actor_target, trainableFalse) self.critic_eval self._build_critic_net(critic_eval, trainableTrue) self.critic_target self._build_critic_net(critic_target, trainableFalse)该部分初始化DDPG算法的核心组件定义动作维度adim、状态维度sdim和动作边界a_bound创建经验回放缓冲区memory用于存储智能体与环境的交互数据构建Actor-Critic架构的四个神经网络评估网络actoreval、criticeval和目标网络actortarget、critictarget评估网络用于实时决策和参数更新目标网络用于计算目标Q值提高训练稳定性1.2 神经网络构建def _build_actor_net(self, name, trainable): with tf.variable_scope(name): s tf.placeholder(tf.float32, [None, self.s_dim], s) x tf.layers.dense(s, 30, activationtf.nn.relu, namel1, trainabletrainable) a tf.layers.dense(x, self.a_dim, activationtf.nn.tanh, namea, trainabletrainable) return tf.multiply(a, self.a_bound, namescaled_a), s def _build_critic_net(self, name, trainable): with tf.variable_scope(name): s tf.placeholder(tf.float32, [None, self.s_dim], s) a tf.placeholder(tf.float32, [None, self.a_dim], a) w1_s tf.get_variable(w1_s, [self.s_dim, 30], trainabletrainable) w1_a tf.get_variable(w1_a, [self.a_dim, 30], trainabletrainable) b1 tf.get_variable(b1, [1, 30], trainabletrainable) x tf.nn.relu(tf.matmul(s, w1_s) tf.matmul(a, w1_a) b1) q tf.layers.dense(x, 1, trainabletrainable) return q, s, aActor网络输入状态s通过全连接层30个神经元和ReLU激活函数输出经过tanh激活并缩放的动作值Critic网络联合输入状态s和动作a通过全连接层计算Q值评估当前动作的价值采用分开的权重参数确保网络独立性支持不同的训练策略1.3 动作选择与经验存储def choose_action(self, s): return self.sess.run(self.actor_eval[0], {self.actor_eval[1]: s[np.newaxis, :]})[0] def store_transition(self, s, a, r, s_): transition np.hstack((s, a, [r], s_)) index self.pointer % MEMORY_CAPACITY self.memory[index, :] transition self.pointer 1choose_action根据当前状态s通过Actor评估网络生成动作storetransition将状态(s)、动作(a)、奖励(r)和下一状态(s)存储到经验回放缓冲区采用循环缓冲区机制当存储满时自动覆盖最早的经验数据1.4 学习过程def learn(self): self.sess.run(self.soft_replace) indices np.random.choice(MEMORY_CAPACITY, sizeBATCH_SIZE) bt self.memory[indices, :] bs bt[:, :self.s_dim] ba bt[:, self.s_dim:self.s_dimself.a_dim] br bt[:, -self.s_dim-1:-self.s_dim] bs_ bt[:, -self.s_dim:] a_ self.sess.run(self.actor_target[0], {self.actor_target[1]: bs_}) q_ self.sess.run(self.critic_target[0], {self.critic_target[1]: bs_, self.critic_target[2]: a_}) q_target br GAMMA * q_ self.sess.run(self.critic_train, {self.critic_eval[1]: bs, self.critic_eval[2]: ba, self.critic_eval[3]: q_target}) a_loss -self.sess.run(self.critic_eval[0], {self.critic_eval[1]: bs, self.critic_eval[2]: self.sess.run(self.actor_eval[0], {self.actor_eval[1]: bs})}) self.sess.run(self.actor_train, {self.actor_eval[1]: bs})学习过程实现软更新目标网络参数通过预定义的soft_replace操作从经验缓冲区随机采样批量数据BATCH_SIZE分离状态、动作、奖励和下一状态数据计算目标Q值基于下一状态的目标动作和目标Q值结合奖励和折扣因子训练Critic网络最小化预测Q值与目标Q值的均方误差训练Actor网络通过策略梯度上升最大化Critic评估的Q值二、电力系统模型three_bus.py2.1 市场出清函数def market_clearing(alpha1, alpha2): # 发电公司成本参数 a1 15.0; a2 18.0 beta1 0.05; beta2 0.06 pmax1 100; pmax2 100 pmin1 0; pmin2 0 # 负荷参数 D1 80; D2 70 fd1 0.03; fd2 0.04 # 线路参数 Fmax 25 # 线路1-2传输容量限制 # 构建二次规划问题 P matrix([[2*beta1, 0., 0., 0.], [0., 2*beta2, 0., 0.], [0., 0., 2*fd1, 0.], [0., 0., 0., 2*fd2]]) q matrix([-alpha1, -alpha2, D1/fd1, D2/fd2]) # 约束条件 G matrix([[1., 0., -1., 0.], [-1., 0., 1., 0.], [0., 1., 0., -1.], [0., -1., 0., 1.], [1., 1., -1., -1.], [-1., -1., 1., 1.]]) h matrix([Fmax, Fmax, Fmax, Fmax, 0., 0.]) # 变量上下限 A matrix([[1., 0., 0., 0.], [0., 1., 0., 0.]]) b matrix([pmax1, pmax2]) Aeq matrix([[0., 0., 1., 0.], [0., 0., 0., 1.]]) beq matrix([0., 0.]) # 求解 sol solvers.qp(P, q, G, h, A, b) result sol[x] # 计算节点电价和利润 lambda1 alpha1 - 2*beta1*result[0] 2*fd1*result[2] lambda2 alpha2 - 2*beta2*result[1] 2*fd2*result[3] profit1 (lambda1 - (a1 beta1*result[0])) * result[0] profit2 (lambda2 - (a2 beta2*result[1])) * result[1] return lambda1, lambda2, profit1, profit2该函数实现3节点电力系统的市场出清过程定义发电公司参数成本系数a1,a2,beta1,beta2、出力上下限pmax,pmin定义负荷参数基础需求D1,D2、需求弹性系数fd1,fd2设置线路传输容量限制Fmax25MW构建二次规划模型目标函数为社会福利最大化添加功率平衡、线路潮流、出力限制等约束条件使用cvxopt求解器求解优化问题计算节点电价和各发电公司利润返回节点电价和利润作为环境反馈三、主运行程序run_DDPG_3-bus.py3.1 初始化设置import numpy as np import matplotlib.pyplot as plt from DDPG import DDPG from three_bus import market_clearing # 参数设置 MAX_EPISODES 10000 MAX_EP_STEPS 1 a_dim 1 s_dim 2 a_bound [-1, 1] # 初始化DDPG智能体 agent1 DDPG(a_dim, s_dim, a_bound) agent2 DDPG(a_dim, s_dim, a_bound) # 存储结果 alpha1_history [] alpha2_history [] profit1_history [] profit2_history []主程序初始化设置训练参数最大 episode 数10000、每个 episode 的步数1定义动作维度1和状态维度2对应两个节点电价创建两个DDPG智能体分别代表两家发电公司初始化历史记录列表存储竞价参数和利润变化3.2 训练过程for i in range(MAX_EPISODES): # 初始状态节点电价 s np.array([20.0, 25.0]) # 初始节点电价 # 探索噪声 var max(0.02, 1 - i/MAX_EPISODES) # 选择动作 a1 agent1.choose_action(s) a2 agent2.choose_action(s) a1 np.clip(np.random.normal(a1, var), -1, 1) a2 np.clip(np.random.normal(a2, var), -1, 1) # 动作映射到实际竞价参数 alpha1 (a1 1) * 15 * 1.5 # 映射到0-45范围 alpha2 (a2 1) * 18 * 1.5 # 映射到0-54范围 # 市场出清 lambda1, lambda2, profit1, profit2 market_clearing(alpha1, alpha2) s_ np.array([lambda1, lambda2]) # 奖励 r1 profit1 / 1000.0 r2 profit2 / 1000.0 # 存储经验 agent1.store_transition(s, a1, r1, s_) agent2.store_transition(s, a2, r2, s_) # 学习 if i MEMORY_CAPACITY: agent1.learn() agent2.learn() # 记录历史 alpha1_history.append(alpha1) alpha2_history.append(alpha2) profit1_history.append(profit1) profit2_history.append(profit2) # 打印信息 if i % 1000 0: print(Episode:, i, alpha1:, alpha1, alpha2:, alpha2, profit1:, profit1, profit2:, profit2, var:, var)训练循环实现初始化状态为初始节点电价动态调整探索噪声随训练进程衰减智能体选择动作并添加探索噪声将动作映射到实际竞价参数范围alpha1:0-45, alpha2:0-54调用市场出清函数获取新状态节点电价和奖励利润存储经验并在缓冲区满后开始学习记录历史数据并定期打印训练进度3.3 结果可视化# 绘制竞价参数曲线 plt.figure() plt.plot(alpha1_history, labelGenerator 1 alpha) plt.plot(alpha2_history, labelGenerator 2 alpha) plt.axhline(y20.29, colorr, linestyle--, labelNash Equilibrium G1) plt.axhline(y22.98, colorg, linestyle--, labelNash Equilibrium G2) plt.xlabel(Episode) plt.ylabel(Alpha) plt.legend() plt.title(DDPG Bidding Strategy in 3-bus System) plt.savefig(DDPG_3_bus.png) plt.show()可视化部分绘制两家发电公司的竞价参数变化曲线添加理论纳什均衡值作为参考线设置图表标题、坐标轴标签和图例保存图表并显示四、其他辅助模块4.1 QLearning.py实现Q学习算法作为对比算法采用表格存储状态-动作价值通过ε-贪婪策略选择动作主要包括QLearningTable类维护Q表和学习参数实现choose_action和learn方法适用于离散状态和动作空间4.2 thirty_bus.py实现IEEE 30节点系统的市场出清模型包含6家发电公司和20个负荷节点结构与3节点系统类似但包含更多节点和线路约束发电公司和负荷参数更复杂潮流计算更复杂4.3 VRE.py实现变分Roth-Erev学习算法基于历史经验更新动作选择概率主要特点通过策略概率分布选择动作动作价值随历史奖励动态更新适用于探索不同的学习机制五、程序整体逻辑总结该程序实现了基于DDPG算法的发电公司竞价策略学习系统整体逻辑如下发电公司智能体通过DDPG算法学习竞价参数α电力市场环境threebus.py或thirtybus.py根据竞价参数进行市场出清计算节点电价和发电公司利润将利润作为奖励反馈给智能体智能体通过经验回放和 Actor-Critic 架构更新策略经过多轮迭代智能体逐渐收敛到最优竞价策略通过与理论纳什均衡和其他算法Q-Learning、VRE对比验证DDPG算法的有效性程序设计遵循模块化原则各模块功能清晰可扩展性强支持不同电力系统拓扑和学习算法的对比实验。python代码基于DDPG深度确定性梯度策略算法的售电公司竞价策略研究 关键词DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档完美复现英文文档可找我看文档 主要内容 代码主要研究的是多个售电公司的竞标以及报价策略属于电力市场范畴目前常用博弈论方法寻求电力市场均衡但是此类方法局限于信息完备的简单市场环境难以直观地反映竞争性的市场环境因此本代码通过深度确定性梯度策略算法DDPG对发电公司的售价进行建模解决了传统的RL算法局限于低维离散状态空间和行为空间收敛性不稳的问题实验表明该方法比传统的RL算法具有更高的精度即使在不完全信息环境下也能收敛到完全信息的纳什均衡。 此外该方法通过定量调整发电商的耐心参数可以直观地反映不同的默契合谋程度是分析市场策略的有效手段。 目前深度强化学习非常火热很容易出成果非常适合在本代码的基础上稍微加点东西即可形成自己的成果非常适合深度强化学习方向的人学习 这段代码包含了三个程序我们分别来进行详细分析。 程序一 python import numpy as np from market.three_bus import market_clearing from algorithm.VRE import RothErevAgents import matplotlib.pyplot as plt n_agents 2 action_space np.arange(0, 3.1, 0.2) n_steps 10000 a_real np.array([15.0, 18.0]) strategic_variables np.zeros((n_steps, n_agents)) multi_agents RothErevAgents(n_agents, action_space) for step in range(n_steps): action multi_agents.select_action() alpha action * a_real nodal_price, profit market_clearing(alpha) strategic_variables[step] alpha multi_agents.learn(profit) if (step 1) % 1000 0: print(Step:, step 1, a1: %.2f % alpha[0], a2: %.2f % alpha[1], r1: %.3f % profit[0], r2: %.3f % profit[1]) C np.array([[0.36, 0.58, 0.75], [0.92, 0.28, 0.29]]) plt.plot(strategic_variables[:, 0], lw0.5, CC[0], alpha0.5, labelr$\alpha_{1t}$) plt.plot(strategic_variables[:, 1], lw0.5, CC[1], alpha0.5, labelr$\alpha_{2t}$) plt.plot([0, 10000], [20.29, 20.29], --, CC[0], labelr$\alpha_{1t}^\ast$) plt.plot([0, 10000], [22.98, 22.98], --, CC[1], labelr$\alpha_{2t}^\ast$) plt.xlabel(r$t$) plt.ylabel(r$\alpha_{gt}$ (\$/MHh)) plt.title(VRE (3-Bus System)) plt.legend() plt.savefig(VRE.png, dpi600) plt.show() 这段代码主要是使用了RothErevAgents算法来进行市场交易的仿真。程序首先导入了一些必要的库然后定义了一些变量包括代理数量n_agents、动作空间action_space、仿真步数n_steps和真实的动作值a_real。接下来创建了一个RothErevAgents对象multi_agents该对象使用Roth-Erev算法来选择动作。 在每个步骤中程序通过调用multi_agents.select_action()来选择动作。然后根据选择的动作和真实的动作值计算alpha值。接着使用market_clearing函数计算节点价格和利润。将alpha值存储在strategic_variables数组中并使用multi_agents.learn()函数来更新代理的策略。 在每1000个步骤后程序会打印出当前步骤数、alpha值和利润。最后程序使用matplotlib库绘制了两个alpha值随时间变化的图形并保存为图片。 程序二和程序三的结构与程序一类似只是使用了不同的算法QLearning和DDPG和模型ANet2和CNet2。它们的功能和工作方式与程序一类似只是算法和模型的不同。

相关文章:

python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究

python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究 关键词:DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档:完美复现英文文档,可找我看文档 主要内容: 代码主要…...

SCons构建MDK工程翻车实录:从‘No module named building’到完美运行的踩坑全指南

SCons构建MDK工程实战:从报错排查到工程定制的完整指南 第一次接触SCons构建MDK工程时,那种从满屏红色报错到最终看到"Build Complete"的成就感,至今记忆犹新。作为替代传统IDE手动配置的自动化方案,SCons确实能显著提升…...

Jetson Nano新手必看:jtop命令报错‘jetson_stats.service not active’的完整解决流程

Jetson Nano新手必看:jtop命令报错‘jetson_stats.service not active’的完整解决流程 刚拿到Jetson Nano的开发者,往往迫不及待想体验这款强大边缘计算设备的性能监控功能。作为官方推荐的系统监控工具,jtop以其直观的界面和丰富的参数展示…...

避坑指南:GD32F470的SPI FIFO与DMA刷屏时,为何屏幕会闪烁或花屏?

GD32F470 SPI DMA刷屏异常全解析:从FIFO机制到数据对齐的深度避坑指南 当你在GD32F470上实现SPI DMA刷屏时,是否遇到过屏幕闪烁、花屏或数据错位的诡异现象?这背后往往隐藏着SPI FIFO机制、DMA传输边界、数据宽度匹配等关键技术细节。本文将带…...

Windows服务器修改默认远程端口3389

修改默认远程访问端口(如Windows的RDP,默认端口3389 )可以增强系统安全性,通过避免自动化攻击和恶意扫描针对常用端口的攻击,从而保护服务器或服务免受未授权访问的风险服务器系统:Windows Server 2022 修改…...

【windows命令-网络命令、系统管理命令】

windows命令-网络命令、系统管理命令一、网络命令二、系统管理命令三、其他一、网络命令 1.ipconfig:查看本机IP信息(ipconfig /all:完整信息(MAC、DNS、DHCP等)、ipconfig /release:释放当前IP、ipconfig…...

回顾AQATrack模型遇到的问题

1.环境 (1)如果只是pytorch的版本是CPU,直接在这个环境里面去修改那个版本改为GPU就可以了,不用整个环境去打包,打包环境进行迁移的灵感💡来源于deepseek的离谱建议 具体操作步骤: 确认 CUDA …...

2026年怎么从培训学员反馈辨真假?这3个判断标准很实用

"做HR快6年,年年牵头做内部培训,每次收完学员反馈,我都头疼——哪是真满意哪是随便应付交差?以前踩过好多坑,白瞎培训预算不说,改方案也改不到点子上。今天把我摸出来的3个判断标准放这,看…...

记录生活&学习Day15深度强化学习第十六集:Advantage Actor-Critic(A2C)

生活我让Y把我拉黑了,我们应该结束了,心里好难受,觉得很可惜,不知道怎么办...五一我想去找L但是她已经拒绝我三次了,那就不去了吧...我现在不知道怎么办了,什么也做不下去。...

5款主流SaaS建站平台实测横评:兜客互动凭借全链路服务与高性价比,成为中小企业数字化入门首选

# 中小企业如何选对数字化“第一站”?一场关乎效率与成本的关键抉择在数字经济加速渗透的今天,一个官网、一个小程序、一场微信营销活动,已成为中小企业触达客户的基本配置。然而面对市面上琳琅满目的SaaS建站平台,功能重叠、价格…...

5分钟搭建专属OCR服务:cv_resnet18_ocr-detection部署与使用详解

5分钟搭建专属OCR服务:cv_resnet18_ocr-detection部署与使用详解 1. 为什么选择cv_resnet18_ocr-detection 在日常工作和生活中,我们经常需要从图片中提取文字信息。无论是处理发票、识别证件,还是分析商品包装,传统的手动录入方…...

Weka机器学习实战:鸢尾花分类完整教程

1. 使用Weka完成多类别分类项目的完整指南Weka作为一款开源的机器学习工作台,以其直观的图形界面和丰富的算法库,成为了许多数据科学初学者的首选工具。今天我将通过经典的鸢尾花分类案例,带大家走完一个完整的机器学习项目流程 - 从数据加载…...

别再死记硬背了!一张图看懂DDR到DDR4内存的演变史(附关键参数对比)

从DDR到DDR4:内存技术的进化图谱与设计哲学 在计算机硬件发展的长河中,内存技术的迭代如同一部微缩的科技史诗。从2000年DDR标准的诞生到如今DDR4的普及,每一次升级都不仅仅是数字的跃进,更是工程智慧的结晶。对于硬件爱好者、嵌入…...

BitNet b1.58-2B-4T-gguf部署教程:SELinux严格模式下服务权限配置指南

BitNet b1.58-2B-4T-gguf部署教程:SELinux严格模式下服务权限配置指南 1. 项目概述 BitNet b1.58-2B-4T-gguf是一款极致高效的1.58-bit量化开源大模型,采用独特的权重三值化技术(-1, 0, 1),平均仅需1.58 bit存储每个…...

长芯微LDC2654完全P2P替代LTC2654,是一款具有±4LSB(最大值)INL、10ppm/℃内部温度系数的16位4通道DAC

概述 LDC2654是一款具有4LSB(最大值)INL、10ppm/℃(最大值)内部温度系数的16位4通道DAC。LDC2654具有内置的高性能、轨至轨输出缓冲器,并保证具有单调性。LDC2654具有一个2.5V的全标度输出和集成基准,并采用4.5V至5.5V的单电源工作。每个DAC也可以采用一…...

C 盘突然爆满?一次彻底排查与迁移实战:从仅剩 12GB 到释放到 46GB

前言很多人都有一个误区: “软件安装到了 D 盘,C 盘就不会继续变大。”我之前也是这么认为的。 结果实际使用一段时间后,C 盘空间还是一路被吃掉,最后只剩下 12GB 左右,已经开始明显影响系统流畅度和开发环境使用。这次…...

爆火的“养马”是什么?Hermes Agent 全面解析+一键部署实操

前言:最近AI圈“养马”热潮席卷而来,不少开发者调侃“从养虾到养马,AI智能体迭代太快”。这里的“马”并非奢侈品爱马仕,而是美国Nous Research团队研发的开源AI智能体——Hermes Agent,“养马”就是搭建、调试并使用这…...

逆向知乎x-zse-96时,我踩过的那些‘环境检测’坑:从Canvas到Window原型链

逆向知乎x-zse-96时,我踩过的那些‘环境检测’坑:从Canvas到Window原型链 在JS逆向工程领域,知乎的x-zse-96参数加密一直以其复杂的环境检测机制闻名。许多开发者在成功提取核心加密逻辑后,往往会在Node.js环境中遭遇各种难以调试…...

去哪个嵌入式培训机构学习比较好

在郑州嵌入式培训领域,结合课程体系、师资实力、实战项目、就业保障四大核心维度,整理出2026年优质机构参考榜,以下是详细对比,供嵌入式学习者参考(数据真实可查,无夸大)。1. 参考依据&#xf…...

【5G Modem】从协议栈到天线阵列:揭秘5G Modem的完整架构与协同设计

1. 5G Modem的架构全景图 当你用手机刷视频、打游戏时,背后有个"隐形交通指挥官"在默默工作——它就是5G Modem。这个比硬币还小的芯片,内部却像一座精密的现代城市:协议栈是交通法规,基带处理器是调度中心,…...

x86-64数据传送指令精解

仅用于个人复习计算机基础,一、核心概览这份文档的核心是讲解如何在不同位置(寄存器、内存)之间移动数据,以及移动时如何处理数据的大小和符号问题。关键在于理解 “数据大小” 和 “符号扩展/零扩展” 这两个概念。二、通用数据传…...

在线数据库建模工具dbdiagram.io - 学习

在线数据库建模工具dbdiagram.io - 创建ER图 工具在线网址:https://dbdiagram.io/home 说明文档网址:https://dbml.dbdiagram.io/docs/ 创建ER图: 1、打开在线网址:https://dbdiagram.io/home,点下图红色的创建图表 。…...

用YOLOv3+ReID模型,手把手教你搭建一个简易的跨摄像头行人追踪系统(附完整代码)

基于YOLOv3与ReID模型的跨摄像头行人追踪系统实战指南 1. 系统架构与技术选型 跨摄像头行人追踪系统主要由两大核心模块构成:目标检测模块和行人重识别模块。YOLOv3作为当前最先进的目标检测算法之一,以其出色的实时性和准确性成为本系统的首选检测框架。…...

AzurLaneAutoScript:7x24小时不间断的碧蓝航线全自动管家

AzurLaneAutoScript:7x24小时不间断的碧蓝航线全自动管家 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 碧蓝航…...

实战案例分享:如何用RexUniNLU零样本处理法律合同文本

实战案例分享:如何用RexUniNLU零样本处理法律合同文本 1. 引言 1.1 法律合同处理的现实困境 想象一下,你是一家公司的法务人员,每天需要审阅几十份合同。这些合同来自不同的供应商、客户和合作伙伴,格式各异,内容繁…...

EMQX MQTT 服务器部署与配置指南

1. 简介 EMQX 是一款大规模可弹性伸缩的云原生分布式物联网 MQTT 消息服务器。它支持千万级并发连接,是构建物联网(IoT)平台的首选 MQTT Broker 之一。本文档将详细指导如何在 Linux 云服务器上安装、配置并加固 EMQX 服务器。 2. 环境准备与前置条件 2.1 服务器…...

告别‘test-keys’:手把手教你修改AOSP 9.0的Build Fingerprint,绕过App环境检测

深度定制Android系统指纹:从原理到实战绕过环境检测 在Android生态中,系统指纹(Build Fingerprint)就像设备的身份证,不仅标识着系统版本信息,还隐含着编译类型等关键属性。许多金融类、游戏类应用会通过检…...

别再手动改配置了!用FRP v0.61.0的Web仪表盘,图形化搞定内网穿透

FRP v0.61.0 Web仪表盘:可视化内网穿透管理新体验 每次修改配置文件都要重启服务?还在用命令行查看连接状态?FRP v0.61.0的Web仪表盘功能将彻底改变你的内网穿透管理方式。这个被许多用户忽略的"隐藏功能",实际上能大幅…...

别再折腾龙虾AI!手机控电脑自动工作源码搭建教程

温馨提示:文末有资源获取方式最近“龙虾AI”火得一塌糊涂,到处都在说养龙虾。但真实情况是,技术门槛高得离谱,普通用户根本玩不转。别急着折腾了。今天分享一个更实在的思路:用手机说话,就能让电脑全自动干…...

零知派——ESP32-S3 AI 小智 使用 Preferences NVS 实现Web配网持久化

✔零知派(零知开源)是一个专为电子初学者/电子兴趣爱好者设计的开源软硬件平台,在硬件上提供超高性价比STM32系列开发板、物联网控制板。取消了Bootloader程序烧录,让开发重心从 “配置环境” 转移到 “创意实现”,极大…...