灰狼算法与蚁群算法的结合:一种新颖的优化方法

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:机器学习分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:灰狼算法与蚁群算法的结合:一种新颖的优化方法

文章目录

    • 引言
    • 1. 灰狼算法概述
    • 2. 蚁群算法概述
    • 3. 灰狼算法与蚁群算法的结合
      • 3.1 初始化阶段
      • 3.2 适应度评估
      • 3.3 更新机制
        • 3.3.1 灰狼更新
        • 3.3.2 蚁群更新
      • 3.4 迭代过程
      • 3.5 优势与挑战
    • 4. 应用实例:结合灰狼算法与蚁群算法的多领域应用
      • 4.1 路径优化:旅行商问题(TSP)
      • 4.2 调度问题:生产调度优化
      • 4.3 特征选择:机器学习中的特征选择
    • 结论

引言

在当今快速发展的科技时代,优化问题的解决方案在各个领域中扮演着至关重要的角色。从工业生产到交通管理,从金融投资到机器学习,优化算法的有效性直接影响着决策的质量和效率。随着计算能力的提升,传统的优化方法逐渐被启发式算法所取代,这些算法通过模拟自然界中的生物行为来寻找最优解。

灰狼优化算法(GWO)和蚁群优化算法(ACO)是两种广泛应用的启发式算法。GWO通过模拟灰狼的社会行为和捕猎策略,展现出强大的全局搜索能力;而ACO则通过模拟蚂蚁觅食的过程,利用信息素引导搜索路径,具有良好的局部搜索能力。尽管这两种算法各自具有独特的优势,但在面对复杂的优化问题时,单一算法的局限性往往会影响最终结果的质量。

因此,将灰狼算法与蚁群算法结合,形成一种混合优化算法,成为了研究者们关注的热点。通过融合两者的优点,可以在全局搜索与局部搜索之间取得更好的平衡,从而提高优化效率和解的质量。本文将深入探讨灰狼算法与蚁群算法的结合方法,分析其实现步骤及应用实例,旨在为优化问题的解决提供新的思路和方法。

1. 灰狼算法概述

灰狼优化算法是一种基于群体智能的优化算法,其灵感来源于灰狼的社会行为和捕猎策略。GWO通过模拟灰狼的领导层次(α狼、β狼、δ狼和ω狼)来引导搜索过程。算法的主要步骤包括:

  • 初始化:随机生成一组灰狼的位置。
  • 评估适应度:根据目标函数评估每个灰狼的位置。
  • 更新位置:根据领导狼的位置更新其他狼的位置,模拟捕猎行为。

2. 蚁群算法概述

蚁群算法是一种模拟蚂蚁觅食行为的优化算法。蚂蚁通过在路径上释放信息素来引导其他蚂蚁选择路径。ACO的主要步骤包括:

  • 初始化信息素:在所有路径上均匀分布初始信息素。
  • 路径选择:蚂蚁根据信息素浓度和启发式信息选择路径。
  • 信息素更新:根据路径的质量更新信息素,优秀路径的信息素浓度增加。

3. 灰狼算法与蚁群算法的结合

结合灰狼优化算法(GWO)与蚁群优化算法(ACO)可以形成一种新的混合优化算法,这种方法旨在利用两者的优势,以提高优化过程的效率和解的质量。以下将详细阐述这种结合的具体步骤和实现机制。

3.1 初始化阶段

在混合算法的初始阶段,需要同时生成灰狼和蚂蚁的种群:

  • 灰狼初始化:随机生成一组灰狼的位置,通常在问题的解空间内均匀分布。每个灰狼的位置代表一个潜在的解。

  • 蚁群初始化:在灰狼的搜索空间内,随机生成一组蚂蚁的位置。蚂蚁的初始位置可以与灰狼的位置相互独立,确保搜索的多样性。

3.2 适应度评估

在每次迭代中,首先需要对灰狼和蚂蚁的位置进行适应度评估:

  • 灰狼适应度评估:根据目标函数计算每个灰狼的位置的适应度值,确定当前最优解(即适应度最高的灰狼)。

  • 蚁群适应度评估:蚂蚁根据当前最优解的信息素浓度选择路径。信息素浓度可以通过灰狼的适应度值进行更新,以引导蚂蚁更快地找到优质路径。

3.3 更新机制

更新机制是混合算法的核心,主要包括灰狼和蚂蚁的更新过程:

3.3.1 灰狼更新

灰狼的位置更新模拟了捕猎行为,主要分为以下几个步骤:

  • 领导狼的选择:根据适应度值选择α狼(最佳解)、β狼和δ狼,形成领导层次。

  • 位置更新公式:根据领导狼的位置更新其他狼的位置。更新公式通常为:

新位置 = 当前位置 + A ⋅ ∣ C ⋅ 领导狼位置 − 当前位置 ∣ \text{新位置} = \text{当前位置} + A \cdot |C \cdot \text{领导狼位置} - \text{当前位置}| 新位置=当前位置+AC领导狼位置当前位置

其中, A A A C C C是随机向量,用于控制搜索的随机性和方向性。

3.3.2 蚁群更新

蚂蚁的路径选择和信息素更新过程如下:

  • 路径选择:蚂蚁根据信息素浓度和启发式信息选择路径,路径选择概率可以表示为:

P i j = ( τ i j ) α ⋅ ( η i j ) β ∑ k ∈ J ( τ i k ) α ⋅ ( η i k ) β P_{ij} = \frac{(\tau_{ij})^\alpha \cdot (\eta_{ij})^\beta}{\sum_{k \in J} (\tau_{ik})^\alpha \cdot (\eta_{ik})^\beta} Pij=kJ(τik)α(ηik)β(τij)α(ηij)β

其中, τ i j \tau_{ij} τij是路径 ( i , j ) (i,j) (i,j)上的信息素浓度, η i j \eta_{ij} ηij是启发式信息, J J J是可选择的路径集合, α \alpha α β \beta β是调节参数。

  • 信息素更新:根据路径的质量更新信息素,优秀路径的信息素浓度增加,劣质路径的信息素浓度减少。信息素更新公式为:

τ i j = ( 1 − ρ ) ⋅ τ i j + Δ τ i j \tau_{ij} = (1 - \rho) \cdot \tau_{ij} + \Delta \tau_{ij} τij=(1ρ)τij+Δτij

其中, ρ \rho ρ是信息素挥发系数, Δ τ i j \Delta \tau_{ij} Δτij是由通过路径的蚂蚁数量决定的增量。

3.4 迭代过程

混合算法的迭代过程如下:

  1. 适应度评估:评估灰狼和蚂蚁的位置适应度。
  2. 位置更新:根据适应度值更新灰狼和蚂蚁的位置。
  3. 信息素更新:根据灰狼的最优解更新蚂蚁的路径信息素。
  4. 停止条件:检查是否满足停止条件(如达到最大迭代次数或适应度阈值)。

3.5 优势与挑战

结合GWO和ACO的混合算法具有以下优势:

  • 全局与局部搜索的平衡:GWO提供了强大的全局搜索能力,而ACO则增强了局部搜索能力,两者结合可以更全面地探索解空间。
  • 提高收敛速度:通过信息素引导,蚂蚁能够快速找到优质路径,从而加速收敛过程。
  • 适应性强:混合算法能够适应不同类型的优化问题,具有较好的灵活性。

然而,结合算法也面临一些挑战,如参数设置的复杂性、算法的收敛性和稳定性等问题,需要在实际应用中进行深入研究和调整。

4. 应用实例:结合灰狼算法与蚁群算法的多领域应用

在本节中,我们将通过三个具体的项目实例,展示如何将灰狼优化算法(GWO)与蚁群优化算法(ACO)结合应用于路径优化、调度问题和特征选择。每个实例将提供相应的代码实现和详细阐述。

4.1 路径优化:旅行商问题(TSP)

问题描述

旅行商问题(TSP)要求找到一条最短路径,使得旅行商访问每个城市一次并返回起点。我们将使用混合算法来解决这个问题。

代码实现

import numpy as np
import random# 定义城市数量和距离矩阵
num_cities = 5
distance_matrix = np.array([[0, 10, 15, 20, 25],[10, 0, 35, 25, 30],[15, 35, 0, 30, 5],[20, 25, 30, 0, 15],[25, 30, 5, 15, 0]])# 灰狼优化算法参数
num_wolves = 10
max_iter = 100# 蚁群算法参数
num_ants = 5
alpha = 1.0  # 信息素重要程度
beta = 2.0   # 启发式信息重要程度
rho = 0.5    # 信息素挥发系数# 初始化灰狼位置
def initialize_wolves(num_wolves, num_cities):return [random.sample(range(num_cities), num_cities) for _ in range(num_wolves)]# 计算路径适应度
def calculate_fitness(path):distance = 0for i in range(len(path)):distance += distance_matrix[path[i]][path[(i + 1) % len(path)]]return 1 / distance  # 适应度为路径的倒数# 更新灰狼位置
def update_wolves(wolves, best_wolf):new_wolves = []for wolf in wolves:new_wolf = wolf.copy()for i in range(len(wolf)):if random.random() < 0.5:new_wolf[i] = best_wolf[i]  # 向最佳狼靠近new_wolves.append(new_wolf)return new_wolves# 蚁群算法路径选择
def ant_colony_optimization(best_wolf):pheromone = np.ones((num_cities, num_cities))  # 初始化信息素for _ in range(num_ants):path = []visited = set()current_city = random.randint(0, num_cities - 1)path.append(current_city)visited.add(current_city)for _ in range(num_cities - 1):probabilities = []for next_city in range(num_cities):if next_city not in visited:pheromone_value = pheromone[current_city][next_city] ** alphaheuristic_value = (1 / distance_matrix[current_city][next_city]) ** betaprobabilities.append(pheromone_value * heuristic_value)else:probabilities.append(0)probabilities = probabilities / np.sum(probabilities)next_city = np.random.choice(range(num_cities), p=probabilities)path.append(next_city)visited.add(next_city)current_city = next_city# 更新信息素for i in range(len(path)):pheromone[path[i]][path[(i + 1) % len(path)]] += 1 / calculate_fitness(path)return path# 主算法
def hybrid_gwo_aco():wolves = initialize_wolves(num_wolves, num_cities)best_fitness = 0best_path = Nonefor iteration in range(max_iter):# 评估适应度fitness_values = [calculate_fitness(wolf) for wolf in wolves]best_index = np.argmax(fitness_values)best_wolf = wolves[best_index]best_fitness = fitness_values[best_index]# 更新狼的位置wolves = update_wolves(wolves, best_wolf)# 蚁群算法路径选择aco_path = ant_colony_optimization(best_wolf)# 更新最佳路径aco_fitness = calculate_fitness(aco_path)if aco_fitness > best_fitness:best_path = aco_pathbest_fitness = aco_fitnessreturn best_path, 1 / best_fitness  # 返回最佳路径和最短距离# 运行混合算法
best_path, best_distance = hybrid_gwo_aco()
print("最佳路径:", best_path)
print("最短距离:", best_distance)

结果分析

运行上述代码后,程序将输出最佳路径和最短距离。通过结合灰狼算法与蚁群算法,我们能够有效地解决旅行商问题,找到最优路径。


4.2 调度问题:生产调度优化

问题描述

在生产调度中,我们需要安排多个任务在多个机器上执行,以最小化总完成时间(Makespan)。我们将使用混合算法来优化调度。

代码实现

import numpy as np
import random# 定义任务和机器数量
num_tasks = 6
num_machines = 3
processing_time = np.random.randint(1, 10, size=(num_tasks, num_machines))# 灰狼优化算法参数
num_wolves = 10
max_iter = 100# 蚁群算法参数
num_ants = 5
alpha = 1.0
beta = 2.0
rho = 0.5# 初始化灰狼位置
def initialize_wolves(num_wolves, num_tasks):return [random.sample(range(num_tasks), num_tasks) for _ in range(num_wolves)]# 计算调度适应度
def calculate_fitness(schedule):machine_times = np.zeros(num_machines)for task in schedule:machine_times[task % num_machines] += processing_time[task][task % num_machines]return 1 / np.max(machine_times)  # 适应度为最大完成时间的倒数# 更新灰狼位置
def update_wolves(wolves, best_wolf):new_wolves = []for wolf in wolves:new_wolf = wolf.copy()for i in range(len(wolf)):if random.random() < 0.5:new_wolf[i] = best_wolf[i]  # 向最佳狼靠近new_wolves.append(new_wolf)return new_wolves# 蚁群算法调度选择
def ant_colony_optimization(best_wolf):pheromone = np.ones((num_tasks, num_tasks))  # 初始化信息素for _ in range(num_ants):schedule = []visited = set()current_task = random.randint(0, num_tasks - 1)schedule.append(current_task)visited.add(current_task)for _ in range(num_tasks - 1):probabilities = []for next_task in range(num_tasks):if next_task not in visited:pheromone_value = pheromone[current_task][next_task] ** alphaheuristic_value = (1 / processing_time[next_task][next_task % num_machines]) ** betaprobabilities.append(pheromone_value * heuristic_value)else:probabilities.append(0)probabilities = probabilities / np.sum(probabilities)next_task = np.random.choice(range(num_tasks), p=probabilities)schedule.append(next_task)visited.add(next_task)current_task = next_task# 更新信息素for i in range(len(schedule)):pheromone[schedule[i]][schedule[(i + 1) % len(schedule)]] += 1 / calculate_fitness(schedule)return schedule# 主算法
def hybrid_gwo_aco():wolves = initialize_wolves(num_wolves, num_tasks)best_fitness = 0best_schedule = Nonefor iteration in range(max_iter):# 评估适应度fitness_values = [calculate_fitness(wolf) for wolf in wolves]best_index = np.argmax(fitness_values)best_wolf = wolves[best_index]best_fitness = fitness_values[best_index]# 更新狼的位置wolves = update_wolves(wolves, best_wolf)# 蚁群算法调度选择aco_schedule = ant_colony_optimization(best_wolf)# 更新最佳调度aco_fitness = calculate_fitness(aco_schedule)if aco_fitness > best_fitness:best_schedule = aco_schedulebest_fitness = aco_fitnessreturn best_schedule, 1 / best_fitness  # 返回最佳调度和最小完成时间# 运行混合算法
best_schedule, best_makespan = hybrid_gwo_aco()
print("最佳调度:", best_schedule)
print("最小完成时间:", best_makespan)

结果分析

运行上述代码后,程序将输出最佳调度和最小完成时间。通过结合灰狼算法与蚁群算法,我们能够有效地优化生产调度问题,减少总完成时间。


4.3 特征选择:机器学习中的特征选择

问题描述

在机器学习中,特征选择旨在从大量特征中选择出最相关的特征,以提高模型的性能。我们将使用混合算法来优化特征选择。

代码实现

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier# 加载数据集
data = load_iris()
X = data.data
y = data.target# 灰狼优化算法参数
num_wolves = 10
max_iter = 100# 蚁群算法参数
num_ants = 5
alpha = 1.0
beta = 2.0
rho = 0.5# 初始化灰狼位置
def initialize_wolves(num_wolves, num_features):return [random.sample(range(num_features), random.randint(1, num_features)) for _ in range(num_wolves)]# 计算特征选择适应度
def calculate_fitness(selected_features):if len(selected_features) == 0:return 0  # 如果没有选择特征,适应度为0X_selected = X[:, selected_features]X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.3, random_state=42)model = RandomForestClassifier()model.fit(X_train, y_train)return model.score(X_test, y_test)  # 适应度为模型的准确率# 更新灰狼位置
def update_wolves(wolves, best_wolf):new_wolves = []for wolf in wolves:new_wolf = wolf.copy()for i in range(len(wolf)):if random.random() < 0.5:new_wolf[i] = best_wolf[i]  # 向最佳狼靠近new_wolves.append(new_wolf)return new_wolves# 蚁群算法特征选择
def ant_colony_optimization(best_wolf):pheromone = np.ones((X.shape[1], X.shape[1]))  # 初始化信息素for _ in range(num_ants):selected_features = []visited = set()current_feature = random.randint(0, X.shape[1] - 1)selected_features.append(current_feature)visited.add(current_feature)for _ in range(X.shape[1] - 1):probabilities = []for next_feature in range(X.shape[1]):if next_feature not in visited:pheromone_value = pheromone[current_feature][next_feature] ** alphaheuristic_value = (1 / (1 + np.abs(current_feature - next_feature))) ** betaprobabilities.append(pheromone_value * heuristic_value)else:probabilities.append(0)probabilities = probabilities / np.sum(probabilities)next_feature = np.random.choice(range(X.shape[1]), p=probabilities)selected_features.append(next_feature)visited.add(next_feature)current_feature = next_feature# 更新信息素fitness = calculate_fitness(selected_features)for i in range(len(selected_features)):pheromone[selected_features[i]][selected_features[(i + 1) % len(selected_features)]] += 1 / fitnessreturn selected_features# 主算法
def hybrid_gwo_aco():wolves = initialize_wolves(num_wolves, X.shape[1])best_fitness = 0best_features = Nonefor iteration in range(max_iter):# 评估适应度fitness_values = [calculate_fitness(wolf) for wolf in wolves]best_index = np.argmax(fitness_values)best_wolf = wolves[best_index]best_fitness = fitness_values[best_index]# 更新狼的位置wolves = update_wolves(wolves, best_wolf)# 蚁群算法特征选择aco_features = ant_colony_optimization(best_wolf)# 更新最佳特征aco_fitness = calculate_fitness(aco_features)if aco_fitness > best_fitness:best_features = aco_featuresbest_fitness = aco_fitnessreturn best_features, best_fitness  # 返回最佳特征和模型准确率# 运行混合算法
best_features, best_accuracy = hybrid_gwo_aco()
print("最佳特征索引:", best_features)
print("最佳模型准确率:", best_accuracy)

结果分析

运行上述代码后,程序将输出最佳特征索引和模型的最佳准确率。通过结合灰狼算法与蚁群算法,我们能够有效地进行特征选择,提高机器学习模型的性能。


结论

通过本文的探讨,我们深入分析了灰狼优化算法与蚁群优化算法的结合及其在多个领域的应用实例,包括路径优化、生产调度和特征选择。结合这两种启发式算法的优势,不仅提高了搜索效率,还增强了算法的适应性,使其能够有效应对复杂的优化问题。每个实例展示了混合算法在实际应用中的潜力,证明了其在解决实际问题时的有效性和灵活性。

未来的研究可以进一步探索这种混合算法在更广泛领域的应用,如智能交通系统、金融投资组合优化、网络路由等。同时,优化算法的参数设置和收敛性分析也是值得深入研究的方向。通过不断改进和创新,我们有望在优化领域取得更大的突破,为实际问题的解决提供更为高效和可靠的工具。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis要点总结

MyBatis 是一款优秀的 持久层 框架 &#xff0c;用于简化 JDBC 的开发。 Java Data Base Connectivity&#xff08;Java语言连接数据库&#xff09; 数据库连接池 数据库连接池的好处&#xff1a; 资源重用 提升系统响应速度 避免数据库连接遗漏 常见的数据库连接池&…

前缀和(八)矩阵区域和

1314. 矩阵区域和 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&…

不一样的CSS(4)--icon图标系列之svg

序言 上一节内容我们讲解了如何利用css去画一个五角星&#xff0c;其中包括了使用svg的方法&#xff0c;有些小伙伴们对svg的使用不是很了解&#xff0c;那么本节内容我们主要来讲一下&#xff0c;关于svg标签的的使用。 目录 序言一、svg的介绍二、安装SVG扩展插件三、SVG基…

读取文件进度条

一、widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMenuBar> #include <QFileDialog> #include <QFile> #include <QDebug> #include <QTimer> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NA…

js this

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>this</title> </head> <body> <script>let fengfeng "枫枫"console.log(this)// alert("123")funct…

wordpress网站安装了Linux宝塔面板,限制IP地址访问网站,只能使用域名访问网站

一、Linux服务器安装Linux宝塔面板 这个步骤参考网上其他教程。 二、Linux宝塔面板部署wordpress网站 这个步骤参考网上其他教程&#xff0c;保证网站能够正常访问&#xff0c;并且使用Linux宝塔面板申请并部署了SSL证书&#xff0c;使用https协议默认443端口正常访问。 三…

软考高级架构-9.4.4-双机热备技术 与 服务器集群技术

一、双机热备 1、特点&#xff1a; 软硬件结合&#xff1a;系统由两台服务器&#xff08;主机和备机&#xff09;、一个共享存储&#xff08;通常为磁盘阵列柜&#xff09;、以及双机热备软件&#xff08;提供心跳检测、故障转移和资源管理功能的核心软件&#xff09;组成。 …

电子商务人工智能指南 1/6 - 搜索、广告和发现

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

论文 | EfficientRAG: Efficient Retriever for Multi-Hop Question Answering

1. 论文介绍与研究动机 本文提出了一个新的检索增强生成&#xff08;RAG&#xff09;方法——EfficientRAG&#xff0c;它专门用于解决复杂的多跳问题。在多跳问答中&#xff0c;问题的答案需要从多个信息源中检索并结合起来&#xff0c;远比单跳问题复杂&#xff0c;因此也更加…

超详细搭建PhpStorm+PhpStudy开发环境

刚开始接触PHP开发&#xff0c;搭建开发环境是第一步&#xff0c;网上下载PhpStorm和PhpStudy软件&#xff0c;怎样安装和激活就不详细说了&#xff0c;我们重点来看一看怎样搭配这两个开发环境。 前提&#xff1a;现在假设你已经安装完PhpStorm和PhpStudy软件。 我的PhpStor…

Linux U-Boot 启动流程详解

目录 一、引言 二、U-Boot 启动前的准备 三、U-Boot 的启动流程 1.第一阶段&#xff1a;SPL&#xff08;Secondary Program Loader&#xff09;启动 2.第二阶段&#xff1a;U-Boot 主程序初始化 3.第三阶段&#xff1a;内核加载 4.第四阶段&#xff1a;参数传递 5.第五阶…

[Redis#16] 事务 | vs Mysql | 命令 | WATCH的实现

目录 什么是事务 实现事务的方式 Redis 事务与 MySQL 事务的对比 应用场景&#xff1a;防止超卖 Lua 脚本增强 事务操作 MULTI & EXEC DISCARD WATCH WATCH 的实现原理 什么是事务 [MySQL#12] 事务(1) | ACID | commit | 回滚 | 常见操作 Redis 的事务和 MySQL…

day03-分析产品原型-课程

1. 开发流程 2. 分析产品原型 2.1 业务流程 产品原型图&#xff1a; 两个业务模块之间使用异步通信 2.2 查询课程列表-接口 https://apifox.com/apidoc/shared-3076deb7-ecde-4519-8e57-390d336aef4c 2.2.1 课表VO 前端课表的相关参数&#xff1a; 现在还不能一步到位&a…

电子商务人工智能指南 2/6 - 需求预测和库存管理

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

CANoe IG实现信号遍历

CANoe IG也可以实现信号遍历的功能&#xff0c;设置如下&#xff1a; 注意事项&#xff1a; 选择 Range of values&#xff0c;是实现信号设定值范围内&#xff08;6&#xff09;的遍历 Hold time 要设置成和周期一致&#xff0c;如果不一致&#xff0c;则信号变化和周期不一…

AI大模型驱动数据分析:利用自然语言实现数据查询与可视化(1)

在当今AI驱动的时代&#xff0c;数据分析已成为各行各业不可或缺的能力。然而&#xff0c;传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能&#xff0c;这对非技术背景的业务人员来说是一个不小的挑战。 想象一下&#xff0c;当数据中心的负责人打开手机时…

蓝桥杯训练15——穿越雷区

from collections import deque def bfs(leiqu): n len(leiqu) # 定义四个方向&#xff1a;右、下、左、上 directions[(0,1),(0,-1),(1,0),(-1,0)] # 初始化访问标记矩阵 visited [[False] * n for _ in range(n)] queue deque() #…

【STL】用一张哈希表封装unordered_set和unordered_map

哈希表源代码 这里是使用开散列实现的哈希表&#xff0c;为了和库里的哈希表进行区分&#xff0c;我将哈希表放入到了命名空间中 //确保取余运算符两边是正整数&#xff0c;下标不能是负整数 template<class K> struct DefaultHashFunc {size_t operator()(const K&…

搜索二维矩阵 II

搜索二维矩阵 II 编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9…

嵌入式入门Day24

数据结构Day5 树形结构相关概念二叉树相关概念二叉树的状态二叉树性质二叉树的存储二叉树根据已有序列推出树的结构练习 算法相关概念算法特性算法的设计要求时间复杂度排序算法冒泡排序&#xff08;改良版&#xff09;选择排序&#xff08;O(n^2)&#xff09;直接插入排序&…