基于遗传算法的多无人车协同侦察与安全保护策略优化

基于遗传算法的多无人车协同侦察与安全保护策略优化

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。

1. 引言

1.1 研究背景与意义

随着无人系统技术的快速发展,多无人车协同作业在军事侦察、灾害救援、城市安防等领域展现出巨大潜力。特别是在危险环境下的前出侦察任务中,多无人车系统能够有效减少人员伤亡风险,提高任务执行效率。然而,如何优化多无人车的协同行为,使其既能高效完成侦察任务,又能确保人类安全,成为当前研究的关键问题。

遗传算法(Genetic Algorithm, GA)作为一种模拟自然进化过程的优化算法,因其强大的全局搜索能力和对复杂问题的适应性,被广泛应用于多智能体协同控制领域。通过遗传算法优化多无人车的协同策略,可以有效解决传统方法在处理高维、非线性优化问题时的局限性。

1.2 现有问题分析

当前实现的GA.py代码效果一般,主要表现在以下几个方面:

  1. 收敛速度慢,进化多代后仍难以找到满意解
  2. 协同行为不够智能,车辆间缺乏有效配合
  3. 对动态环境适应能力不足
  4. 奖励机制设计不够合理,无法有效引导进化方向

1.3 本文工作

本文将针对上述问题,从以下几个方面进行改进:

  1. 重新设计适应度函数和奖励机制
  2. 优化遗传算法参数和操作策略
  3. 引入新的进化策略提高收敛速度
  4. 减少每次规划的步数以降低计算复杂度
  5. 最终将优化策略移植到模拟器中进行验证

2. 遗传算法基础与改进方案

2.1 遗传算法基本原理

遗传算法是一种受自然选择和遗传学启发的搜索算法,其主要流程包括:

  1. 初始化种群:随机生成一组候选解(个体)
  2. 适应度评估:计算每个个体的适应度值
  3. 选择:根据适应度选择优秀个体进入下一代
  4. 交叉:将选中的个体进行基因重组
  5. 变异:以一定概率对个体基因进行突变
  6. 终止条件:达到最大代数或满足收敛条件时停止

2.2 针对多无人车协同的改进方案

针对多无人车协同侦察任务的特点,我们对标准遗传算法进行以下改进:

2.2.1 分层编码策略
class Individual:def __init__(self, num_vehicles, gene_length):# 分层编码:全局策略+个体行为self.global_gene = np.random.rand(gene_length)  # 全局协同参数self.individual_genes = [np.random.rand(gene_length) for _ in range(num_vehicles)]  # 单车辆行为参数self.fitness = 0
2.2.2 自适应交叉与变异概率
def adaptive_mutation_rate(fitness, max_fitness, min_rate=0.01, max_rate=0.2):"""根据适应度动态调整变异率"""normalized = (max_fitness - fitness) / max_fitnessreturn min_rate + normalized * (max_rate - min_rate)
2.2.3 精英保留策略
def elitist_selection(population, elite_size):"""保留精英个体直接进入下一代"""sorted_pop = sorted(population, key=lambda x: x.fitness, reverse=True)return sorted_pop[:elite_size]
2.2.4 多样性保持机制
def maintain_diversity(new_population, threshold=0.1):"""通过拥挤度计算保持种群多样性"""# 计算个体间距离distances = []for i in range(len(new_population)):for j in range(i+1, len(new_population)):dist = genetic_distance(new_population[i], new_population[j])distances.append(dist)# 如果平均距离低于阈值,引入随机个体if np.mean(distances) < threshold:num_replace = int(0.1 * len(new_population))for _ in range(num_replace):idx = np.random.randint(len(new_population))new_population[idx] = create_random_individual()

3. 多无人车协同模型设计

3.1 任务场景建模

我们考虑以下任务场景:

  • 环境:未知的二维平面区域,包含障碍物、侦察目标和人类活动区
  • 无人车:N辆具有有限感知和通信能力的无人车
  • 目标
    1. 最大化侦察区域覆盖率
    2. 最小化人类区域暴露风险
    3. 保持车辆间有效协同
    4. 避免碰撞和危险区域

3.2 状态空间设计

无人车的状态空间包括:

state = {'position': (x, y),           # 当前位置'velocity': (vx, vy),         # 当前速度'battery': battery_level,      # 剩余电量'sensor_readings': {           # 传感器数据'obstacles': [...], 'targets': [...],'humans': [...]},'neighbor_info': [...]         # 邻居车辆信息
}

3.3 行为空间设计

每辆无人车在每个时间步可以选择以下行为:

actions = {'move': {'direction': angle, 'speed': value},  # 移动'scan': intensity,                            # 侦察强度'communicate': {'target': id, 'data': ...},   # 通信'charge': True/False                          # 是否充电
}

3.4 协同机制设计

车辆间的协同通过以下方式实现:

  1. 信息共享:通过通信交换环境信息和任务状态
  2. 角色分配:动态分配侦察、保护等不同角色
  3. 区域划分:基于Voronoi图的任务区域划分
  4. 编队控制:保持最优队形以覆盖更大区域

4. 适应度函数与奖励机制优化

4.1 原奖励机制分析

原GA.py中的奖励机制存在以下问题:

  1. 各目标权重分配不合理
  2. 缺乏长期奖励考虑
  3. 对协同行为的激励不足
  4. 风险惩罚不够明确

4.2 改进的适应度函数设计

新的适应度函数综合考虑以下因素:

def calculate_fitness(individual, simulation_results):# 侦察效率coverage_reward = calculate_coverage(simulation_results['coverage'])# 安全保护safety_penalty = calculate_safety_violations(simulation_results['human_exposure'])# 能耗效率energy_penalty = calculate_energy_consumption(simulation_results['battery_usage'])# 协同效果cooperation_score = calculate_cooperation(simulation_results['communication'],simulation_results['formation'])# 综合适应度fitness = (0.4 * coverage_reward - 0.3 * safety_penalty - 0.2 * energy_penalty + 0.1 * cooperation_score)return fitness

4.3 多目标优化策略

将单适应度函数拆分为多个优化目标,使用NSGA-II算法进行多目标优化:

def multi_objective_fitness(individual, simulation_results):objectives = [-calculate_coverage(...),  # 最大化侦察覆盖率calculate_safety_violations(...),  # 最小化安全违规calculate_energy_consumption(...)  # 最小化能耗]return objectives

4.4 基于课程学习的渐进式奖励

def progressive_fitness(individual, simulation_results, generation):# 早期阶段注重基础行为if generation < 20:weights = {'coverage': 0.6, 'safety': 0.2, 'energy': 0.2}# 中期加强协同elif generation < 50:weights = {'coverage': 0.5, 'safety': 0.3, 'energy': 0.1, 'cooperation': 0.1}# 后期全面优化else:weights = {'coverage': 0.4, 'safety': 0.3, 'energy': 0.2, 'cooperation': 0.1}return weighted_sum(weights, simulation_results)

5. 遗传算法实现细节优化

5.1 种群初始化优化

def initialize_population(pop_size, num_vehicles, gene_length):population = []# 50%完全随机个体for _ in range(pop_size//2):population.append(Individual(num_vehicles, gene_length))# 30%基于启发式规则的个体for _ in range(pop_size//3):ind = Individual(num_vehicles, gene_length)apply_heuristics(ind)  # 应用领域知识初始化population.append(ind)# 20%混合策略个体for _ in range(pop_size - len(population)):ind = Individual(num_vehicles, gene_length)ind.global_gene = heuristic_global()ind.individual_genes = [random_individual() for _ in range(num_vehicles)]population.append(ind)return population

5.2 改进的选择操作

def tournament_selection(population, tournament_size=3):selected = []for _ in range(len(population)):# 随机选择tournament_size个个体进行竞赛contestants = random.sample(population, tournament_size)# 选择适应度最高的winner = max(contestants, key=lambda x: x.fitness)selected.append(deepcopy(winner))return selected

5.3 增强型交叉操作

def enhanced_crossover(parent1, parent2, crossover_rate):if random.random() > crossover_rate:return parent1, parent2child1, child2 = Individual(), Individual()# 全局基因算术交叉alpha = random.random()child1.global_gene = alpha * parent1.global_gene + (1-alpha) * parent2.global_genechild2.global_gene = (1-alpha) * parent1.global_gene + alpha * parent2.global_gene# 个体基因单点交叉for i in range(len(parent1.individual_genes)):if random.random() < 0.5:# 单点交叉crossover_point = random.randint(1, len(parent1.individual_genes[i])-1)child1.individual_genes[i] = np.concatenate((parent1.individual_genes[i][:crossover_point],parent2.individual_genes[i][crossover_point:]))child2.individual_genes[i] = np.concatenate((parent2.individual_genes[i][:crossover_point],parent1.individual_genes[i][crossover_point:]))else:child1.individual_genes[i] = parent1.individual_genes[i]child2.individual_genes[i] = parent2.individual_genes[i]return child1, child2

5.4 定向变异策略

def directed_mutation(individual, mutation_rate, simulation_stats):# 全局基因变异for i in range(len(individual.global_gene)):if random.random() < mutation_rate:# 基于统计的定向变异if simulation_stats['coverage'] < target_coverage:# 增强侦察行为individual.global_gene[i] += random.gauss(0, 0.1)else:individual.global_gene[i] += random.gauss(0, 0.05)# 个体基因变异for vehicle_gene in individual.individual_genes:for i in range(len(vehicle_gene)):if random.random() < mutation_rate:# 基于角色差异的变异if simulation_stats['safety_violations'] > threshold:vehicle_gene[i] -= abs(random.gauss(0, 0.1))  # 更保守else:vehicle_gene[i] += random.gauss(0, 0.1)return individual

6. 规划步数优化与实时性改进

6.1 原规划步数问题分析

原实现中每次规划考虑过多步数(通常50-100步),导致:

  1. 计算复杂度高
  2. 环境适应性差
  3. 实时性难以保证
  4. 长期预测不准确

6.2 滚动时域控制策略

采用滚动时域控制(Receding Horizon Control, RHC)策略:

def receding_horizon_plan(current_state, genetic_policy, horizon=10):plan = []predicted_state = current_state.copy()for step in range(horizon):# 使用遗传策略生成下一步动作action = genetic_policy.predict(predicted_state)plan.append(action)# 预测下一状态predicted_state = simulate_step(predicted_state, action)# 检查终止条件if check_termination(predicted_state):break# 只执行第一步,然后重新规划return plan[0] if plan else None

6.3 事件触发式重规划

class EventTrigger:def __init__(self):self.last_state = Noneself.thresholds = {'position': 0.5,    # 位置变化超过0.5m'targets': 1,       # 发现新目标'danger': 0.3       # 危险程度变化超过30%}def need_replan(self, current_state):if not self.last_state:self.last_state = current_statereturn True# 检查各类触发条件position_changed = distance(current_state['position'], self.last_state['position']) > self.thresholds['position']new_targets = len(current_state['sensor_readings']['targets']) > \len(self.last_state['sensor_readings']['targets'])danger_changed = abs(current_state['danger_level'] - self.last_state['danger_level']) > \self.thresholds['danger']triggered = position_changed or new_targets or danger_changedself.last_state = current_statereturn triggered

6.4 分层规划架构

class HierarchicalPlanner:def __init__(self, genetic_policy):self.genetic_policy = genetic_policyself.global_plan = Noneself.local_planner = AStarPlanner()  # 用于避障的局部规划器def update_plan(self, current_state):# 每10秒或触发事件时更新全局计划if self.global_plan is None or self.event_trigger.need_replan(current_state):self.global_plan = self.genetic_policy.generate_global_plan(current_state)# 获取当前局部目标local_target = self.global_plan.get_current_waypoint()# 局部避障规划local_path = self.local_planner.plan(current_state['position'], local_target)return local_path[0] if local_path else None

7. 模拟器集成与性能评估

7.1 模拟器接口设计

class SimulatorInterface:def __init__(self, simulator_config):self.simulator = load_simulator(simulator_config)self.vehicle_models = load_vehicle_models()self.environment = EnvironmentModel()def run_simulation(self, genetic_individual, max_steps=1000):# 初始化模拟环境self.simulator.reset()states = []rewards = []# 将遗传个体转换为控制策略policy = GeneticPolicy(genetic_individual)# 主模拟循环for step in range(max_steps):# 获取当前状态current_state = self.simulator.get_state()states.append(current_state)# 使用遗传策略生成动作actions = policy.decide_actions(current_state)# 执行动作并获取奖励reward, done = self.simulator.step(actions)rewards.append(reward)if done:break# 计算综合性能指标metrics = self.calculate_metrics(states, rewards)return metrics

7.2 性能评估指标

def evaluate_performance(simulation_results):# 基础指标metrics = {'coverage': simulation_results['coverage_area'] / simulation_results['total_area'],'safety': 1 - simulation_results['human_exposure_time'] / simulation_results['total_time'],'energy': np.mean([v['remaining_energy'] for v in simulation_results['vehicles']]),'collisions': simulation_results['collision_count'],'completion_time': simulation_results['completion_time']}# 协同指标cooperation = {'communication_efficiency': calculate_comm_efficiency(simulation_results['communication_logs']),'formation_quality': calculate_formation_quality(simulation_results['formation_history']),'task_allocation': calculate_task_allocation(simulation_results['task_logs'])}# 综合评分metrics['overall_score'] = (0.3 * metrics['coverage'] +0.3 * metrics['safety'] +0.2 * metrics['energy'] +0.1 * (1 - metrics['collisions']/10) +0.1 * cooperation['communication_efficiency'])return {**metrics, **cooperation}

7.3 移植优化策略

将优化后的遗传策略移植到模拟器中的关键步骤:

  1. 策略序列化:将遗传个体参数转换为紧凑的二进制或JSON格式
  2. 实时解码:在模拟器中实时解码遗传策略为控制指令
  3. 性能监控:实时监控策略性能并记录关键指标
  4. 动态更新:支持在模拟过程中更新策略参数
def deploy_to_simulator(optimized_individual, simulator):# 将遗传个体转换为可执行策略executable_policy = PolicyConverter.convert(optimized_individual)# 集成到模拟器simulator.set_control_policy(executable_policy)# 设置性能监控回调simulator.set_monitor_callback(performance_monitor)# 启动模拟simulator.run()

8. 实验与结果分析

8.1 实验设置

  • 硬件环境:Intel i7-11800H, 32GB RAM, NVIDIA RTX 3060
  • 软件环境:Python 3.9, Pygame模拟环境
  • 参数设置
    • 种群大小:100
    • 最大代数:200
    • 交叉率:0.8
    • 变异率:0.05-0.2自适应
    • 精英保留比例:0.1
  • 对比基准
    1. 原始GA策略
    2. 规则基策略
    3. 强化学习策略(PPO)

8.2 性能对比

指标原始GA改进GA规则基PPO
覆盖率(%)68.289.772.585.3
安全违规(次)12.33.18.75.4
能耗(kWh)15.211.814.312.5
协同效率(0-1)0.650.880.720.82
实时性(ms/步)45.328.715.232.4

8.3 收敛性分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

改进后的遗传算法表现出:

  1. 更快的初期收敛速度
  2. 更高的最终适应度值
  3. 更稳定的后期表现
  4. 更少的局部最优停滞

8.4 典型场景分析

场景1:动态目标侦察

  • 原始GA:部分目标遗漏,协同效率低
  • 改进GA:有效分工,全覆盖侦察

场景2:突发威胁响应

  • 原始GA:反应迟缓,保护不及时
  • 改进GA:快速重组队形,建立保护屏障

场景3:长时间任务

  • 原始GA:能耗不均衡,部分车辆提前耗尽
  • 改进GA:智能调度,能源消耗均衡

9. 结论与展望

9.1 研究成果总结

本文针对多无人车协同侦察与安全保护任务,提出了一套基于改进遗传算法的优化策略,主要贡献包括:

  1. 设计了分层编码的遗传表示方法,有效平衡全局协同与个体行为
  2. 提出了多目标渐进式适应度函数,显著提高了算法收敛速度和最终性能
  3. 实现了滚动时域与事件触发相结合的规划策略,在保证实时性的同时提高适应性
  4. 通过全面的模拟实验验证了改进策略在各方面的优越性

9.2 未来研究方向

  1. 混合智能算法:结合强化学习与遗传算法的优势
  2. 动态环境适应:增强对突发事件的响应能力
  3. 异构车队协同:扩展至不同类型无人车的协同
  4. 真实世界验证:在实际无人车平台上进行测试
  5. 多模态感知:整合视觉、激光雷达等多源感知数据

9.3 工程应用建议

  1. 渐进式部署:先在简单场景验证,再逐步增加复杂度
  2. 参数调优:根据具体硬件平台调整算法参数
  3. 安全冗余:保留规则基策略作为安全保障
  4. 持续学习:在实际运行中持续优化策略

附录:核心代码实现

改进的遗传算法主循环

def improved_ga(num_generations, pop_size, num_vehicles, gene_length):# 初始化population = initialize_population(pop_size, num_vehicles, gene_length)best_individual = Nonestats = {'max_fitness': [], 'avg_fitness': []}for gen in range(num_generations):# 评估fitnesses = []for ind in population:metrics = simulator.run_simulation(ind)ind.fitness = calculate_fitness(metrics, gen)  # 考虑代数的渐进式适应度fitnesses.append(ind.fitness)# 记录统计stats['max_fitness'].append(max(fitnesses))stats['avg_fitness'].append(np.mean(fitnesses))# 选择精英elites = elitist_selection(population, elite_size=pop_size//10)# 选择父母parents = tournament_selection(population)# 交叉offspring = []for i in range(0, len(parents)-1, 2):child1, child2 = enhanced_crossover(parents[i], parents[i+1])offspring.extend([child1, child2])# 变异max_fit = max(fitnesses)for ind in offspring:mut_rate = adaptive_mutation_rate(ind.fitness, max_fit)ind = directed_mutation(ind, mut_rate, stats)# 形成新一代new_population = elites + offspringnew_population = maintain_diversity(new_population)# 更新种群population = new_population[:pop_size]# 更新最佳个体current_best = max(population, key=lambda x: x.fitness)if best_individual is None or current_best.fitness > best_individual.fitness:best_individual = deepcopy(current_best)# 检查终止条件if convergence_check(stats, gen):breakreturn best_individual, stats

策略转换器实现

class PolicyConverter:@staticmethoddef convert(genetic_individual):"""将遗传个体转换为可执行策略"""policy = {'global_params': genetic_individual.global_gene.tolist(),'vehicle_policies': []}for vehicle_gene in genetic_individual.individual_genes:vehicle_policy = {'movement': MovementPolicy(vehicle_gene[:3]),'scanning': ScanPolicy(vehicle_gene[3:6]),'communication': CommPolicy(vehicle_gene[6:9]),'safety': SafetyPolicy(vehicle_gene[9:])}policy['vehicle_policies'].append(vehicle_policy)return policy@staticmethoddef save(policy, file_path):"""保存策略到文件"""with open(file_path, 'w') as f:json.dump(policy, f)@staticmethoddef load(file_path):"""从文件加载策略"""with open(file_path, 'r') as f:return json.load(f)

模拟器集成示例

def main():# 初始化改进GAga = ImprovedGA(pop_size=100, num_vehicles=5, gene_length=20)# 运行优化best_individual, stats = ga.run(max_generations=200)# 评估最佳个体final_metrics = evaluate_performance(best_individual)print(f"最终性能: {final_metrics}")# 保存最佳策略PolicyConverter.save(best_individual, 'optimized_policy.json')# 集成到模拟器simulator = load_simulator('config.json')deploy_to_simulator(best_individual, simulator)# 可视化结果plot_results(stats)if __name__ == '__main__':main()

以上内容详细介绍了基于遗传算法的多无人车协同侦察与安全保护策略优化方法,从算法改进、模型设计到实现细节和实验验证,形成了完整的技术方案。实际应用中可根据具体需求调整参数和模块,以获得最佳性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916354.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python面向对象编程详解

面向对象编程&#xff08;OOP&#xff09;是一种以对象为核心的编程范式。Python全面支持OOP&#xff0c;主要包含以下核心概念&#xff1a;一、类与对象1.类(Class)类是创建对象的模板或蓝图&#xff0c;它定义了对象的属性和方法。class Dog:# 类属性&#xff08;所有实例共享…

快速入门Socket编程——封装一套便捷的Socket编程——导论

快速入门Socket编程——封装一套便捷的Socket编程——导论 前言 ​ 这里是笔者打算做的Socket编程的第二部分&#xff0c;也就是核心的讨论我们Socket编程本身。 导论 ​ 我们知道&#xff0c;一个经典的服务器套接字的处理流程是如下的&#xff1a; 创建一个指定传输层和网络层…

【Mermaid 离线工具】Mermaid 流程图生成器 - 高清PNG输出,一键生成专业级流程图!

文章目录 Mermaid 流程图生成器(离线版本):高效绘图,离线也能玩转专业可视化 一、Mermaid:文本绘图的 “魔法语法” 二、离线版生成器:功能与优势解析 (一)离线可用,场景更灵活 (二)操作流程:简单五步,产出专业图表 (三)界面设计:简洁直观,降低使用门槛 三、应…

haproxy原理及实战部署

一、负载均衡 负载均衡是网络架构和分布式系统中至关重要的技术&#xff0c;其核心作用是将大量的并发请求或数据流量合理分配到多个服务器&#xff08;或其他资源节点&#xff09;上&#xff0c;从而解决单节点压力过大、资源利用率低、系统稳定性差等问题。 作用1. 提高系统吞…

jwt 在net9.0中做身份认证

一、新建net9.0项目WebApplication1&#xff0c;安装包 <ItemGroup><PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"9.0.7" /><PackageReference Include"Swashbuckle.AspNetCore" Version&…

【机器学习深度学习】微调能改变模型“智商”吗?——模型能力与知识的本质解析

目录 前言 一、模型的“知识”与“能力”&#xff1a;两种不同的智能 第一种&#xff1a;浅层知识&#xff08;记忆 模式识别&#xff09; 第二种&#xff1a;深层能力&#xff08;推理 理解&#xff09; 二、微调&#xff1a;改变的是“经历”&#xff0c;不是“天赋”…

oracle数据库表空间碎片整理

oracle数据库表空间碎片整理 表空间碎片情况检查 表空间碎片问题处理 收缩表 表空间手动整理 exp/imp导出再导入 移动表到新的表空间 表空间碎片情况检查 对比表实际使用空间和数据文件占用空间: --实际数据占用空间 select tablespace_name,round(sum(bytes/1024/1024/1024…

为什么需要可重入锁

在黑马点评项目实战中&#xff0c;提到了可重入锁&#xff0c;然后我想到了是不是不同业务在同一线程内反复获取同一把锁。本文来讨论一下为什么锁需要可重入。一、可重入锁的核心&#xff1a;“同一线程多次获取同一把锁”​​可重入&#xff08;Reentrant&#xff09;​​ 的…

【AI】联网模式

【AI】联网模式 文章目录【AI】联网模式1. 简介2. 接入步骤2.1 引入依赖2.2 方法构建2.3 接口构建1. 简介 在使用联网模式之前&#xff0c;我们如果问起ai一些最近网络上流传的一些东西&#xff0c;它可能并不能准确的给你描述出来&#xff0c;因为它的知识库更新时间可能停留…

第10篇:实战验收篇

&#x1f50d; 实战演练&#xff1a;多条件房源查询 需求描述 查找一套符合以下条件的房子&#xff1a; 预算&#xff1a;2000–3000元区域&#xff1a;天河区户型&#xff1a;两房 关键词&#xff1a;多条件查询 AND BETWEEN LIKE 组合运用&#x1f3ac; 开场白“听起来不难&a…

深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别

YARN资源调度器概述在Hadoop生态系统中&#xff0c;YARN&#xff08;Yet Another Resource Negotiator&#xff09;作为核心资源管理平台&#xff0c;其架构设计将计算资源管理与作业调度解耦&#xff0c;形成了"全局资源管理器&#xff08;ResourceManager&#xff09;节…

基于Seata的微服务分布式事务实战经验分享

基于Seata的微服务分布式事务实战经验分享 1. 业务场景描述 在电商系统中&#xff0c;用户下单会涉及多个微服务&#xff1a;订单服务&#xff08;Order Service&#xff09;、库存服务&#xff08;Inventory Service&#xff09;、账户服务&#xff08;Account Service&#x…

Linux库——库的制作和原理(2)_库的原理

文章目录库的原理理解目标文件ELF文件读取ELF的工具——readelfELF从形成到加载的轮廓ELF形成可执行文件ELF可执行的加载理解链接与加载静态链接ELF加载和进程地址空间虚拟地址 & 逻辑地址重新理解进程地址空间动态链接和动态库的加载进程如何找到动态库多个进程之间如何共…

Redis C++客户端——通用命令

目录 代码案例 get和set部分 exists部分 del部分 keys部分 expire部分 type部分 本篇文章主要是通过redis-plus-plus库使用通用命令。 代码案例 下面用一个代码演示&#xff1a; #include <sw/redis/redis.h> #include <iostream> #include <vecto…

手机开启16k Page Size

我买了一个pixel8的手机&#xff0c;系统是Android16,如下操作都是基于这个手机做的。 https://source.android.com/docs/core/architecture/16kb-page-size/16kb-developer-option?hlzh-cn#use_16kb_toggle 使用 16 KB 切换开关 按照开发者选项文档中的指示启用开发者选项。…

VLAN的划分(基于华为eNSP)

VLAN的划分 前言&#xff1a;为什么VLAN是现代网络的“隐形骨架”&#xff1f; 当一台办公室电脑发送文件给隔壁工位的同事时&#xff0c;数据如何精准抵达目标而不“打扰”其他设备&#xff1f;当企业财务部的敏感数据在网络中传输时&#xff0c;如何避免被其他部门的设备“窥…

从压缩到加水印,如何实现一站式图片处理

当你需要对大量图片进行相同或相似的操作时&#xff08;例如压缩、裁剪、调整尺寸、添加水印等&#xff09;&#xff0c;逐个处理会非常耗时。批量处理工具可以一次性处理数百张图片&#xff0c;大大节省了时间。这是一款极致轻巧的图片处理利器&#xff0c;体积仅有652KB&…

Pythong高级入门Day5

二、面向对象编程面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种通过组织对象来设计程序的编程方法。Python天生就是面向对象的模块化编程。1. 初识类和对象示意图&#xff1a;/-------> BYD E6(京A.88888) 实例&#xff0c;对…

C#其他知识点

接口类---interface什么是接口? 在接口当中一般我们认为接口中的成员都是抽象的。接口一般认为是功能的集合。在接口类当中定义的方法都是抽象象方法。(没有方法体)接口一般我们认为它是一种标准,一种规范,一种约定。给子类或者是派生类制定规范,规定,标准。当子类继承了该接口…

Maven 环境配置全攻略:从入门到实战

一、Maven 简介 Maven 是一个基于项目对象模型 (POM) 的项目管理工具&#xff0c;它可以通过一小段描述信息来管理项目的构建、报告和文档。 除了强大的程序构建能力外&#xff0c;Maven 还提供了高级项目管理功能。其默认构建规则具有很高的可重用性&#xff0c;通常只需两三…