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

在这里插入图片描述

✅作者简介: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.mzph.cn/diannao/63114.shtml

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

相关文章

【前端学习路线】(超详细版本)

先附上学习路线图&#xff1a;前端学习路线 第一阶段&#xff1a;前端入门&#xff08;htmlcss&#xff09; 前端最基本的知识&#xff0c;需要先将这些内容融汇贯通&#xff0c;学习后面内容才会不吃力。学习完可以做几个静态页练习一下。 推荐视频学习链接&#xff1a; 黑马程…

四、自然语言处理_03LSTM与GRU

0、前言 随着循环神经网络&#xff08;RNN&#xff09;在各种序列数据处理任务中被广泛应用&#xff0c;研究人员逐渐发现了其在处理长序列数据时会容易出现梯度消失&#xff08;vanishing gradient&#xff09;和梯度爆炸&#xff08;exploding gradient&#xff09;问题&…

nerdctl:与 Docker 兼容的 containerd CLI

nerdctl 是一个用于容器管理的命令行工具&#xff0c;它旨在提供与 Docker CLI 相似的用户体验&#xff0c;但却是为 containerd 这样的低级容器运行时设计的。containerd 是一个行业标准的容器运行时&#xff0c;被广泛用作 Kubernetes 等容器编排平台的一部分。nerdctl 通过简…

百问FB显示开发图像处理 - 图像调整

2.4 图像调整 2.4.1 图像的缩放 2.4.1.1 图像缩放算法浅析 图像缩放算法有很多种&#xff0c;这里参考网友"lantianyu520"所著的"图像缩放算法"。 原理浅析 ​ 要理解这个图像缩放算法的原理&#xff0c;最重要的是需要理解&#xff1a;对于图像上的每…

部署项目报错

vue2项目部署后 Error: Cannot find module /views/*** 1.起因 登录页、首页等静态页面可以正常进入&#xff0c;后端访问也正常&#xff0c;可以获取到验证码。 但是登录之后会发现首页空白或者进入不到首页 F12查看有报错信息&#xff1a;Error: Cannot find module ‘/v…

opencv复习

目录 1.core 1.图像变换 1.1 affine仿射变换 1.2 透视变换 2.四元数&#xff08;旋转&#xff09; 2.1 轴角转四元数 2.2 旋转矩阵转四元数 2.3 欧拉角转旋转矩阵 2.4 四元数转旋转矩阵 2.5 四元数用eigen用的比较多 2. imgproc. Image Processing 2.1 bilateralF…

【webApp之h5端实战】首页评分组件的原生实现

关于评分组件,我们经常在现代前端框架中用到,UI美观效果丰富,使用体验是非常不错的。现在自己动手使用原生js封装下评分组件,可以用在自己的项目中。 组件实现原理 点击的❤左侧包括自己都是高亮的样式,右侧都是灰色的样式,这样就能把组件的状态区分开了。右边再加上辅…

C++小碗菜之二:软件单元测试

“没有测试的代码重构不能称之为重构&#xff0c;它仅仅是垃圾代码的到处移动” ——Corey Haines 目录 前言 什么是单元测试&#xff1f; 单元测试的组成 单元测试的命名 单元测试的独立性 Google Test 单元测试的环境配置与使用 1. Ubuntu下安装 Google Test 2. 编写…

【C++】格式化输出详解:掌握 cout 的进阶用法

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;格式化输出的理论概述&#x1f4af;控制输出宽度和填充字符setw 操作符setfill 操作符 &#x1f4af;控制浮点数的显示格式fixed 与 scientificsetprecision &#x1f4af;…

【日常记录-Mybatis】PageHelper导致语句截断

1. 简介 PageHelper是Mybatis-Plus中的一个插件&#xff0c;主要用于实现数据库的分页查询功能。其核心原理是将传入的页码和条数赋值给一个Page对象&#xff0c;并保存到本地线程ThreadLocal中&#xff0c;接下来&#xff0c;PageHelper会进入Mybatis的拦截器环节&#xff0c;…

Linux入门攻坚——40、Linux集群系统入门-lvs(1)

Cluster&#xff0c;集群&#xff0c;为了解决某个特定问题将多台计算机组合起来形成的单个系统。 这个单个集群系统可以扩展&#xff0c;系统扩展的方式&#xff1a;scale up&#xff0c;向上扩展&#xff0c;更换更好的主机&#xff1b;scale out&#xff0c;向外扩展&…

Canal 深入解析:从原理到实践的全面解读

Canal 深入解析&#xff1a;从原理到实践的全面解读 官网&#xff1a;https://github.com/alibaba/canal Canal 是阿里巴巴开源的一款分布式增量数据同步工具&#xff0c;广泛应用于数据同步、实时数据处理和数据库的增量备份等场景。它可以通过监听 MySQL 数据库的 binlog&am…

Home Assistant智能家居盒子用了一段时间发现没有存储空间了,怎么清理释放?

环境&#xff1a; Unbuntu 20.04 Home Assistant 2023.8.0 问题描述&#xff1a; Home Assistant智能家居盒子用了一段时间发现没有存储空间了&#xff0c;怎么清理释放&#xff1f; 解决方案&#xff1a; 1.查看HA日志文件&#xff0c;有比较大&#xff0c;直接删了 2.查…

【NoSQL数据库】MongoDB数据库的安装与卸载

目录 一、MongoDB原理 二、MongoDB的安装和卸载 三、注意事项 一、MongoDB原理 MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关…

【Java】2、集合

目录 CollectionListSet *重点&#xff1a; 底层机制&#xff08;源码&#xff09;应用场景 好处&#xff1a; 数组&#xff08;长度不可改&#xff0c;同一类型&#xff0c;增删不便&#xff09;集合&#xff08;动态保存&#xff0c;多种类型&#xff0c;方便操作&#xff09…

【CSS in Depth 2 精译_068】11.2 颜色的定义(下):CSS 中的各种颜色表示法简介

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 ✔️ 11.2.2.…

JavaScript 进销存计算错误——

一、js错误 二、正确操作 var 税率修正 parseFloat(data.tax_rate);

Neo4j:图数据库使用入门

文章目录 一、Neo4j安装1、windows安装&#xff08;1&#xff09;准备环境&#xff08;2&#xff09;下载&#xff08;3&#xff09;解压&#xff08;4&#xff09;运行&#xff08;5&#xff09;基本使用 2、docker安装 二、CQL语句1、CQL简介2、CREATE 命令&#xff0c;创建节…

沃丰科技智能客服在电商独立站中有哪些核心功能?

在数字化飞速发展的今天&#xff0c;电商独立站作为企业与消费者沟通的重要桥梁&#xff0c;其客户服务的质量和效率直接关系到企业的竞争力和市场地位。沃丰科技智能客服以其全面的功能&#xff0c;成为了电商独立站接入的首选&#xff0c;为电商企业提供了全新的解决方案。 …

【初阶数据结构与算法】二叉树链式结构的定义与实现万字笔记(附源码)

文章目录 一、二叉树链式结构的定义二、二叉树链式结构功能的基本实现1.链式二叉树的手动创建2.链式二叉树的前中后序遍历前序遍历中序遍历后序遍历 3.链式二叉树节点的个数4.链式二叉树叶子节点的个数5.链式二叉树的高度/深度6.链式二叉树第k层节点的个数7.链式二叉树的查找8.…