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

人工智能原理实验四:智能算法与机器学习

一、实验目的

本实验课程是计算机、智能、物联网等专业学生的一门专业课程,通过实验,帮助学生更好地掌握人工智能相关概念、技术、原理、应用等;通过实验提高学生编写实验报告、总结实验结果的能力;使学生对智能程序、智能算法等有比较深入的认识。要掌握的知识点如下:

  1. 掌握人工智能中涉及的相关概念、算法;
  2. 熟悉人工智能中的知识表示方法;
  3. 掌握问题表示、求解及编程实现;
  4. 熟悉和掌握遗传算法、蚁群算法、决策树、贝叶斯等的基本概念和基本思想;
  5. 能够用选定的编程语言设计简单的算法系统;
  6. 通过实验培养学生利用智能算法和机器学习算法进行问题求解的基本技能。

二、基本要求

1、实验前,复习《人工智能》课程中的有关内容。

2、准备好实验数据。

3、程序可以组队完成(实验报告上要标明自己完成部分,切勿提交一样的报告),程序应加适当的注释。

4、完成实验报告,由小组完成报告要有明显区别,分析和总结应该按照自己完成的部分进行。

三、实验软件

推荐使用C或C++(Visual studio等平台)(不限制语言使用,如Java,matlab,Python等都可以)。

四、实验内容:

1.以N个节点的TSP(旅行商问题)问题为例,应用遗传算法进行求解,求出问题的最优解。

问题描述

    旅行商问题(Traveling Salesman Problem, TSP),又译为旅行推销员问题、货担郎问题,简称为TSP问题,是最基本的路线问题。假设有n个可直达的城市,一销售商从其中的某一城市出发,不重复地走完其余n-1个城市并回到原出发点,在所有可能的路径中求出路径长度最短的一条。

    TSP问题是组合数学中一个古老而又困难的问题,也是一个典型的组合优化问题,现已归入NP完备问题类。NP问题用穷举法不能在有效时间内求解,所以只能使用启发式搜索。遗传算法是求解此类问题比较实用、有效的方法之一。

下面给出30个城市的位置信息:

最优路径为:1 2 3 4 6 5 7 8 9 10 11 12 13 14 15 16 17 19 18 20 21 22 23 24 25 28 26 27 29 30

其路径长度为:424.869292

也可取前10个城市的坐标进行测试:

有人求得的最优路径为: 0 3 5 4 9 8 7 6 2 1 0

路径长度是166.541336

上述10个城市的求解中编号从0开始,把所有路径搜索完又返回到出发节点。

1.应用遗传算法求解30/10个节点的TSP(旅行商问题)问题,求问题的最优解。

2.使用蚁群优化算法或者粒群优化算法求解以上TSP问题。

3.利用贝叶斯算法和决策树算法进行数据分类操作

数据集:汽车评估数据集(见附录)

实验步骤:

仔细阅读并了解实验数据集;

使用任何一种熟悉的计算机语言(比如C,Java或者matlab)实现朴素贝叶斯算法和决策树算法;

利用朴素贝叶斯算法和决策树算法在训练数据的基础上学习分类器;

利用测试数据对学习的分类器进行性能评估;

统计分析实验结果并上交实验报告;

五、学生实验报告要求

实验报告需要包含以下几个部分

(1)求出问题最优解,若得不出最优解,请分析原因;

1.应用遗传算法求解30个节点的TSP(旅行商问题)问题,求问题的最优解。

2.使用蚁群优化算法或者粒群优化算法求解以上TSP问题。

(2)对实验中的几个算法控制参数进行仔细定义,并能通过实验选择参数的最佳值;

# 遗传算法参数
population_size = 50
num_generations = 1000
crossover_rate = 0.8
mutation_rate = 0.02
# 蚁群算法参数设置
num_ants = 10  # 蚂蚁数量,即蚁群规模
pheromone_decay = 0.5  # 信息素挥发系数,控制信息素的挥发速度,取值范围一般在(0, 1)之间
alpha = 1.0  # 信息素的重要程度参数,用于控制蚂蚁选择下一步路径时信息素的影响力
beta = 2.0  # 启发函数(即路径长度)的重要程度参数,用于控制蚂蚁选择下一步路径时路径长度的影响力
Q = 100.0  # 信息素增加强度,表示每次蚂蚁经过一条路径后释放的信息素量
num_iterations = 100  # 蚁群算法迭代次数,即蚂蚁搜索的总轮数

(3)要求界面显示每次迭代求出的局部最优解和最终求出的全局最优解。

1.应用遗传算法求解30个节点的TSP(旅行商问题)问题,求问题的最优解。

2.使用蚁群优化算法或者粒群优化算法求解以上TSP问题。

第一次运行结果:最终最佳路径: [11, 5, 6, 10, 9, 7, 8, 3, 2, 4, 30, 29, 28, 26, 27, 25, 24, 23, 22, 21, 17, 20, 18, 19, 14, 15, 13, 12, 16, 1], 距离: 524.0661832365629

第二次运行结果:最终最佳路径: [24, 23, 22, 21, 17, 20, 18, 19, 14, 15, 13, 12, 11, 5, 6, 10, 9, 7, 8, 3, 2, 4, 30, 29, 28, 26, 27, 25, 16, 1], 距离: 529.3772998688348

(4)测试种群规模对算法结果的影响。(运算速度,内存空间,准确率等)

(5)测试算法中重要参数(如遗传算法中的交叉概率、变异概率)对算法结果的影响(运算速度,内存空间,准确率等),以表格或者曲线图等形式表达。

较大的种群规模可能会增加算法的运行时间和内存开销,但通常能够更好地探索搜索空间。

五、实验结果讨论。

从实验结果来看,不同的种群规模对算法的性能和结果产生了影响。以下是对实验结果的一些讨论:

1.性能比较:随着种群规模的增加,算法的性能有所提高。这是因为较大的种群规模有助于更好地探索搜索空间,提高全局搜索的能力。然而,这也伴随着更多的计算开销。

2.最佳解决方案:在这个实验中,种群规模为50和100的情况下,最终的最佳解决方案是相同的。这可能是由于算法在较小规模下已经找到了局部最优解,增加种群规模没有进一步改善结果。

3.运行时间:随着种群规模的增加,运行时间也相应增加。较大的种群规模需要更多的计算资源,因此运行时间较长。在实际应用中,需要权衡运行时间和结果质量。

4. 结果稳定性:实验中显示,不同的种群规模下最终的最佳解决方案并不总是一致的。这表明在某些情况下,增加种群规模并不能保证一定能够找到更好的解决方案。这也反映了遗传算法在某些问题上可能受到初始条件和随机性的影响。

3.

朴素贝叶斯算法结果分析

准确率: 约为 68.5%。该指标表示模型正确分类的样本所占比例。在这个场景下,准确率较低,可能是因为朴素贝叶斯算法对于这个数据集的特征分布假设过于简单,或者数据集中的特征与类别的关系不符合朴素贝叶斯的假设。

精确率: 对于类别 0 和类别 2,精确率分别为 1.00 和 0.68。精确率表示在模型预测为某一类别时,实际为该类别的概率。在这里,类别 0 的精确率较高,说明模型在预测类别 0时的准确性较高。

召回率: 对于类别0、1和类别2,召回率分别为0.02、0.00和1.00。召回率表示实际为某一类别的样本中,模型成功预测为该类别的概率。在这里,类别2的召回率较高,说明模型成功捕捉了该类别的样本。

F1-score: 类别 2 的 F1-score 较高,表示在精确率和召回率之间取得了一种平衡。

决策树算法结果分析

准确率: 约为 96.8%。相对于朴素贝叶斯,决策树在这个数据集上表现得更好,准确率较高。精确率: 对于所有类别,精确率均较高。说明决策树模型在预测各个类别时的准确性都很高。召回率: 对于所有类别,召回率均较高。说明决策树模型能够成功捕捉各个类别的样本。

F1-score: 各个类别的 F1-score 均较高,表明模型在精确率和召回率之间取得了良好的平衡。

总体而言,决策树模型在这个数据集上的性能明显优于朴素贝叶斯模型。朴素贝叶斯在这里可能过于简化了特征之间的关系,而决策树能够更好地适应数据集的复杂性。

六、程序清单

1.

import numpy as np
import time# 定义城市坐标
cities = {1: (87, 7), 2: (91, 38), 3: (83, 46), 4: (71, 44), 5: (64, 60),6: (68, 58), 7: (83, 69), 8: (87, 76), 9: (74, 78), 10: (71, 71),11: (58, 69), 12: (54, 62), 13: (51, 67), 14: (37, 84), 15: (41, 94),16: (2, 99), 17: (7, 64), 18: (22, 60), 19: (25, 62), 20: (18, 54),21: (4, 50), 22: (13, 40), 23: (18, 40), 24: (24, 42), 25: (25, 38),26: (41, 26), 27: (45, 21), 28: (44, 35), 29: (58, 35), 30: (62, 32)
}# 城市数量
num_cities = len(cities)# 遗传算法参数
# 不同的种群规模
population_sizes = [20, 50, 100, 200]
num_generations = 1000
crossover_rate = 0.8
mutation_rate = 0.02# 计算两个城市之间的距离
def calculate_distance(city1, city2):return np.sqrt((city1[0] - city2[0])**2 + (city1[1] - city2[1])**2)# 计算整个路径的总距离
def calculate_total_distance(tour):total_distance = 0for i in range(num_cities - 1):total_distance += calculate_distance(cities[tour[i]], cities[tour[i + 1]])total_distance += calculate_distance(cities[tour[-1]], cities[tour[0]])  # 返回起始城市return total_distancefor population_size in population_sizes:print(f"\n测试种群规模 {population_size}\n{'='*20}")# 初始化种群population = [np.random.permutation(num_cities) + 1 for _ in range(population_size)]  # 注意城市编号从1开始start_time = time.time()# 遗传算法主循环for generation in range(num_generations):# 计算种群中每个个体的适应度fitness = [1 / calculate_total_distance(individual) for individual in population]# 使用轮盘赌选择交叉的父母selected_indices = np.random.choice(range(population_size), size=population_size, p=fitness/np.sum(fitness))# 进行交叉操作生成新一代new_population = []for i in range(0, population_size, 2):parent1 = population[selected_indices[i]]parent2 = population[selected_indices[i + 1]]crossover_point = np.random.randint(1, num_cities - 1)child1 = np.concatenate((parent1[:crossover_point], np.setdiff1d(parent2, parent1[:crossover_point])))child2 = np.concatenate((parent2[:crossover_point], np.setdiff1d(parent1, parent2[:crossover_point])))new_population.extend([child1, child2])# 进行变异操作for i in range(population_size):if np.random.rand() < mutation_rate:mutation_indices = np.random.choice(num_cities, size=2, replace=False)new_population[i][mutation_indices[0]], new_population[i][mutation_indices[1]] = (new_population[i][mutation_indices[1]], new_population[i][mutation_indices[0]])# 用新一代替换旧一代population = new_population# 显示每一代中的最佳解决方案best_solution_index = np.argmax(fitness)best_solution = population[best_solution_index]best_distance = calculate_total_distance(best_solution)# print(f"第 {generation + 1}/{num_generations} 代, 最短路径: {best_solution}, 距离: {best_distance}")end_time = time.time()# 显示最终的最佳解决方案final_best_solution_index = np.argmax(fitness)final_best_solution = population[final_best_solution_index]final_best_distance = calculate_total_distance(final_best_solution)print(f"最终最佳解决方案: {final_best_solution}, 距离: {final_best_distance}")print(f"运行时间: {end_time - start_time:.2f}秒\n")

2.

import numpy as np# 定义城市坐标
cities = {1: (87, 7), 2: (91, 38), 3: (83, 46), 4: (71, 44), 5: (64, 60),6: (68, 58), 7: (83, 69), 8: (87, 76), 9: (74, 78), 10: (71, 71),11: (58, 69), 12: (54, 62), 13: (51, 67), 14: (37, 84), 15: (41, 94),16: (2, 99), 17: (7, 64), 18: (22, 60), 19: (25, 62), 20: (18, 54),21: (4, 50), 22: (13, 40), 23: (18, 40), 24: (24, 42), 25: (25, 38),26: (41, 26), 27: (45, 21), 28: (44, 35), 29: (58, 35), 30: (62, 32)
}
# 城市数量
num_cities = len(cities)
# 蚁群算法参数设置
num_ants = 10  # 蚂蚁数量,即蚁群规模
pheromone_decay = 0.5  # 信息素挥发系数,控制信息素的挥发速度,取值范围一般在(0, 1)之间
alpha = 1.0  # 信息素的重要程度参数,用于控制蚂蚁选择下一步路径时信息素的影响力
beta = 2.0  # 启发函数(即路径长度)的重要程度参数,用于控制蚂蚁选择下一步路径时路径长度的影响力
Q = 100.0  # 信息素增加强度,表示每次蚂蚁经过一条路径后释放的信息素量
num_iterations = 100  # 蚁群算法迭代次数,即蚂蚁搜索的总轮数# 初始化信息素矩阵
pheromone_matrix = np.ones((num_cities, num_cities))
# 计算城市间距离矩阵
distance_matrix = np.zeros((num_cities, num_cities))
for i in range(1, num_cities + 1):for j in range(1, num_cities + 1):distance_matrix[i - 1, j - 1] = np.sqrt((cities[i][0] - cities[j][0])**2 + (cities[i][1] - cities[j][1])**2)
# 主循环
for iteration in range(num_iterations):ant_tours = []# 每只蚂蚁构建路径for ant in range(num_ants):visited_cities = []current_city = np.random.randint(1, num_cities + 1)visited_cities.append(current_city)# 构建路径while len(visited_cities) < num_cities:# 计算选择下一个城市的概率probabilities = []for city in range(1, num_cities + 1):if city not in visited_cities:pheromone = pheromone_matrix[current_city - 1, city - 1]distance = distance_matrix[current_city - 1, city - 1]probability = (pheromone**alpha) * ((1.0 / distance)**beta)probabilities.append((city, probability))# 选择下一个城市selected_city = max(probabilities, key=lambda x: x[1])[0]visited_cities.append(selected_city)current_city = selected_cityant_tours.append(visited_cities)# 更新信息素pheromone_matrix *= pheromone_decayfor tour in ant_tours:for i in range(num_cities - 1):pheromone_matrix[tour[i] - 1, tour[i + 1] - 1] += Q / distance_matrix[tour[i] - 1, tour[i + 1] - 1]# 考虑最后一个城市到第一个城市的信息素更新pheromone_matrix[tour[-1] - 1, tour[0] - 1] += Q / distance_matrix[tour[-1] - 1, tour[0] - 1]# 打印最终的路径
best_tour = max(ant_tours, key=lambda x: sum(distance_matrix[x[i] - 1, x[i + 1] - 1] for i in range(num_cities - 1)))
best_distance = sum(distance_matrix[best_tour[i] - 1, best_tour[i + 1] - 1] for i in range(num_cities - 1))
print(f"最终最佳路径: {best_tour}, 距离: {best_distance}")

3.

mport pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, classification_report
from sklearn.preprocessing import LabelEncoder# 1. 读取数据集
data = pd.read_csv('CarDatas.txt', header=None, delimiter=' ')
# 给数据集添加列名
data.columns = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'class']# 2. 将文本数据转换为数值型数据
label_encoder = LabelEncoder()
data_encoded = data.apply(label_encoder.fit_transform)# 3. 划分训练集和测试集
X = data_encoded.drop('class', axis=1)
y = data_encoded['class']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 4. 朴素贝叶斯算法
nb_classifier = MultinomialNB()
nb_classifier.fit(X_train, y_train)
nb_predictions = nb_classifier.predict(X_test)# 5. 决策树算法
dt_classifier = DecisionTreeClassifier()
dt_classifier.fit(X_train, y_train)
dt_predictions = dt_classifier.predict(X_test)# 6. 性能评估
print("朴素贝叶斯性能评估:")
print("准确率:", accuracy_score(y_test, nb_predictions))
print("分类报告:\n", classification_report(y_test, nb_predictions))print("\n决策树性能评估:")
print("准确率:", accuracy_score(y_test, dt_predictions))
print("分类报告:\n", classification_report(y_test, dt_predictions))

相关文章:

人工智能原理实验四:智能算法与机器学习

一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程&#xff0c;通过实验&#xff0c;帮助学生更好地掌握人工智能相关概念、技术、原理、应用等&#xff1b;通过实验提高学生编写实验报告、总结实验结果的能力&#xff1b;使学生对智能程序、智能算法等…...

redis 架构详解

Redis架构详解可以从以下几个方面进行阐述&#xff1a; 一、部署架构 Redis有多种部署架构&#xff0c;适用于不同的应用场景和需求&#xff0c;主要包括以下几种&#xff1a; 单机模式&#xff08;Standalone Mode&#xff09; 特点&#xff1a;部署简单&#xff0c;配置方便…...

shell脚本自动发布Java应用

单体项目或定制化小应用&#xff0c;频繁发布会有些麻烦&#xff0c;用脚本实现git提交完代码自动发布&#xff0c;并完成jar包备份 1.前提条件&#xff1a;linux安装了JDK、Maven、Git 安装参考链接&#xff1a; jdk安装 https://blog.csdn.net/weixin_44904239/article/de…...

微信小程序调用腾讯地图-并解读API文档 JavaScript SDK和 WebService API

搜索&#xff1a;腾讯位置服务 找到API文档&#xff1a; 入门中第一步&#xff1a;申请开发者密钥key 前往控制台&#xff1a; 创建应用并获取key: 设置key的时候&#xff0c;还需要小程序的APPID。所以要前往微信公众平台中获取小程序的APPID&#xff1a; 限制要求&#xff1a…...

go build command

文章目录 1.简介2.格式3.选项4.示例5.小结参考文献 1.简介 go build 是 Go 语言工具链中的一个命令&#xff0c;它用于编译 Go 源代码并生成可执行文件。 2.格式 go build [-o output] [build flags] [packages]可选的 -o 选项强制 build 将生成的可执行文件或对象写入指定的…...

前端面试题目 (Node.JS-Express框架)[二]

在 Express 中如何使用 Passport.js 进行身份认证? Passport.js 是一个 Node.js 的身份验证中间件&#xff0c;它可以很容易地与 Express 集成。下面是一个简单的示例&#xff0c;展示了如何使用 Passport.js 进行基本的身份认证。 安装依赖 npm install express passport …...

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日&#xff0c;云和恩墨&#xff08;北京&#xff09;信息技术有限公司&#xff08;以下简称&#xff1a;云和恩墨&#xff09;的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司&#xff08;以下简称&#xff1a;华为云&#xff09;的 GaussDB 数据库完成了兼容性互…...

go-zero(十三)使用MapReduce并发

go zero 使用MapReduce并发 一、MapReduce 介绍 MapReduce 是一种用于并行计算的编程模型&#xff0c;特别适合在大规模数据处理场景中简化逻辑代码。 官方文档&#xff1a; https://go-zero.dev/docs/components/mr 1. MapReduce 的核心概念 在 MapReduce 中&#xff0c;主…...

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载&#xff0c;在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧&#xff01; List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…...

SQL中的替换函数replace() 使用

这条 SQL 语句的作用是将 tool_tool 表中所有 link 字段包含 https://www.xxspvip.cn 的记录中的 https://www.xxspvip.cn 替换为 http://192.168.1.1。具体解释如下&#xff1a; SQL 语句分解 UPDATE tool_toolSET link REPLACE(link, https://www.xxspvip.cn, http://192.…...

算法(三)——贪心算法

文章目录 定义基本原理基本思路优缺点优点缺点 经典案例及解析找零问题问题描述贪心思路算法解析java代码示例 活动选择问题问题描述贪心思路算法解析java代码示例 车辆路径问题问题描述贪心思路算法分析java代码示例 定义 贪心算法是指在求解问题时&#xff0c;总是做出在当前…...

【Iot】前端串口serialport.js串口通信库快速入门(附经验总结)

前端串口serialport.js串口通信库快速入门(附经验总结) 一、serialport简介1.1 安装1.2 基本用法1.3 完整示例代码二、问题2.1 数据包被拆分(已解决)2.2 串口返回的多种数据,如何区分类别(待解决)公司项目需要开发一个windows客户端,提供串口modbusRTU数据读取、处理、显…...

【学一点儿前端】本地或jenkins打包报错:getaddrinfo ENOTFOUND registry.nlark.com

问题 今天jenkins打包一个项目&#xff0c;发现报错了 error An unexpected error occurred: “https://registry.nlark.com/xxxxxxxxxx.tgz: getaddrinfo ENOTFOUND registry.nlark.com”. 先写解决方案 把yarn.lock文件里面的registry.nlark.com替换为registry.npmmirror.…...

STEM真题 第五题 比 n 小的最大数

题目描述 给定一个正整数 n&#xff0c;请将 n 中的每位数字重新排列并组成一个新数&#xff0c;要求新数的值要小于 n&#xff0c;请找出所有 符合要求的新数中最大的那个正整数&#xff0c;如果不存在这样的正整数&#xff0c;则输出 -1。例 1&#xff1a;n 312&#xff0…...

Mysql基础操作(1)

目录 简介 1. 数据库的创建与删除 1.1 创建数据库 1.2 删除数据库 2. 表的创建与删除 2.1 创建表 2.2 删除表 3. 数据插入 4. 数据查询 4.1 基本查询 4.2 条件查询 4.3 多条件查询 4.4 排序查询 4.5 分页查询 5. 数据更新 6. 数据删除 7. 总结 简介 MySQL 是一…...

React Image Crop——在React应用中轻松实现图片裁剪功能

React Image Crop是一个用于在React应用程序中裁剪和调整图像的库。它提供了一个简单而强大的界面&#xff0c;允许用户选择和调整裁剪区域&#xff0c;并生成裁剪后的图像。 什么是React Image Crop&#xff1f; React Image Crop是一个开源的React组件&#xff0c;用于在浏览…...

CQRS Design Pattern in Microservices - CQRS模式

原文链接 CQRS Design Pattern in Microservices - GeeksforGeeks 【文章看起来像是AI写的。。。 &#x1f602;&#x1f602;&#x1f602;】 简介 实现步骤 1&#xff0c;识别有界上下文&#xff1a;&#xff08;Identify Bounded Contexts:&#xff09; 2&#xff0c;命…...

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:药品进销存信息管理系统(前后端源码 + 数据库 sql 脚本)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 供应商管理功能 5.0 药品管理功能 6.0 采购记录管理功能 7.0 销售记录管理功能 8.0 退货记录管理功能…...

主流webgl 引擎 glsl 如何升级webgpu为 wgsl?

0、背景 SPIR-V、GLSL 和 WGSL 是三种不同的着色语言或中间表示形式&#xff0c;它们在现代图形编程中的关系如下&#xff1a; 1、playcanvas 方案: glsl 转 SPIR-V 转 wgsl 调研版本: "version": "2.4.0-dev"webgpu-shader.js transpile(src, shader…...

SSL证书部署(linux-nginx)

一、SSL证书的作用 HTTP协议无法加密数据,数据传输可能产生泄露、篡改或钓鱼攻击等问题。 SSL证书部署到Web服务器后,可帮助Web服务器和网站间建立可信的HTTPS协议加密链接,为网站安全加锁,保证数据安全传输。 二、前提条件 1.已通过数字证书管理服务控制台签发证书。 …...

SpringBoot3.3.0集成Knife4j4.5.0实战

原SpringBoot2.7.18升级至3.3.0之后&#xff0c;Knife4j进行同步升级(Spring Boot 3 只支持OpenAPI3规范)&#xff0c;从原3.0.3(knife4j-spring-boot-starter)版本升级至4.5.0(knife4j-openapi3-jakarta-spring-boot-starter)&#xff0c;以下是升级过程与注意事项等 版本信息…...

C# 的反射窗体的使用

C# 的反射窗体的使用 using System; using System.Reflection; using System.Windows.Forms;public class ReflectedFormFactory {public static Form CreateForm(string formName, string assemblyName){// 加载程序集Assembly assembly Assembly.Load(assemblyName);// 获取…...

大模型呼出机器人能够解决哪些问题?

大模型呼出机器人能够解决哪些问题&#xff1f; 原作者&#xff1a;开源呼叫中心FreeIPCC&#xff0c;其Github&#xff1a;https://github.com/lihaiya/freeipcc 大模型呼出机器人作为现代科技在客户服务领域的创新应用&#xff0c;能够解决多个方面的问题&#xff0c;以下是…...

密码学——密码学概述、分类、加密技术(山东省大数据职称考试)

大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 密码学 大数据…...

Linux 入门教程:从命令行开始

Linux 是一个强大且灵活的操作系统&#xff0c;广泛应用于服务器、嵌入式设备、开发环境等领域。如果你是刚接触 Linux 的新手&#xff0c;最重要的一步就是掌握命令行操作。虽然 Linux 提供了图形界面&#xff0c;但很多强大功能只能通过命令行来实现。今天&#xff0c;我们就…...

Python中的异步编程:从基础到实践

在现代编程中,异步编程已经成为提高程序性能和响应能力的重要手段。Python,作为一种动态、解释型的高级编程语言,提供了多种异步编程的解决方案。本文将从Python异步编程的基础知识出发,逐步深入到实际应用中,帮助读者理解和掌握这一技术。 1. 异步编程简介 异步编程是一…...

如何使用 Python 实现简单的 Web 服务器?

为了实现一个简单的Web服务器&#xff0c;Python提供了多种方法。对于快速原型设计和学习目的来说&#xff0c;最简单的方法之一是使用内置的http.server模块。 然而&#xff0c;在实际开发中&#xff0c;更常见的做法是使用像Flask或Django这样的框架来构建更为复杂的应用程序…...

【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果,复制粘贴即用(2024/12/12补充)

最终效果 文章目录 最终效果更好的方式&#xff08;2024/12/12补充&#xff09;前言为什么使用CharacterControllerSimpleMove和Move如何选择&#xff1f;1. SimpleMove2. Move 配置CharacterController参数控制相机移动跳跃方式一方式二 下蹲处理下坡抖动问题实现奔跑和不同移…...

6_Sass 选择器函数 --[CSS预处理]

Sass 提供了一系列的选择器函数&#xff0c;用于操作和组合CSS选择器。这些函数可以帮助你更灵活地创建样式规则&#xff0c;并且可以减少重复代码。以下是几个常用的选择器函数及其用法&#xff1a; 1. selector-append($selector1, $selector2...) selector-append($select…...

系列2:基于Centos-8.6Kubernetes 集成GPU资源信息

每日禅语 自省&#xff0c;就是自我反省、自我检查&#xff0c;自知己短&#xff0c;从而弥补短处、纠正过失。佛陀强调自觉觉他&#xff0c;强调以达到觉行圆满为修行的最高境界。要改正错误&#xff0c;除了虚心接受他人意见之外&#xff0c;还要不忘时时观照己身。自省自悟之…...

C# 探险之旅:第三十五节 - 类型class之抽象类 (Abstract Class) 和 抽象方法 (Abstract Method)

&#x1f44b; 嗨&#xff0c;勇敢的探险家们&#xff01;欢迎再次踏上C#的神秘之旅。今天&#xff0c;我们要进入一片既神秘又充满无限可能的领域——抽象类与抽象函数的奇幻森林。想象一下&#xff0c;你是一名勇敢的骑士&#xff0c;要在这片森林里寻找传说中的“编程之宝”…...

npm内存溢出

项目过大运行项目内存溢出 报错代码 运行内存溢出 increase-memory-limit ‘“node --max-old-space-size8192”’ 不是内部或外部命令&#xff0c;也不是可运行的程序 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of m…...

CSS|08 浮动清除浮动

浮动 需求: 能够实现让多个元素排在同一行&#xff0c;并且给这些元素设置宽度与高度! 让多个元素排在同一行:行内元素的特性 给这些元素设置宽高:块级元素的特性 在标准文档流中的元素只有两种:块级元素和行内元素。如果想让一些元素既要有块级元素的特点也要有行内元素的特…...

【学习笔记】反向传播到底是如何进行的?

文章目录 一、写在前面二、举个例子三、混合损失函数如何进行呢&#xff1f; 一、写在前面 不知道小伙伴们有没有考虑过这种感觉&#xff0c;在最开始学习深度学习的时候&#xff0c;一定都了解过前向传播&#xff0c;反向传播等等&#xff0c;但是在实际的操作过程中却“几乎…...

利用cnocr库完成中文扫描pdf文件的文字识别

很多pdf文件文字识别软件都会收费&#xff0c;免费的网页版可能会带来信息泄露&#xff0c;还有一些类似于腾讯AI和百度AI的接口都有调用次数限制&#xff0c;因此&#xff0c;利用识别正确率极高且免费的cnocr库来自己动手做个pdf文件文字识别程序就是一个很不错的选择。以下程…...

el-table ToggleRowSelection实现取消选中没效果(virtual-scroll)

场景&#xff1a; 就是在虚拟列表el-table选中之后 点击查询 默认之前选中的 现象&#xff1a; 就是实现选中&#xff0c; 但是无法去除勾选等等 问题发现&#xff1a; 看定位的数据 有多个一样的&#xff0c;我想着勾选之前 先去掉勾选 &#xff0c;但是没效果或者说“相同的…...

Vue入门到精通:运行环境

Vue入门到精通&#xff1a;运行环境 Vue3的运行环境搭建主要有两种方法&#xff1a;一种是直接在页面中引入Vue库&#xff0c;另一种是通过脚手架工具创建Vue项目。 &#xff08;一&#xff09;页面直接引入Vue库 页面直接引入Vue库的方法&#xff0c;是指在HTML网页中通过s…...

LNK2001: virtual struct QMetaObject const 错误的解决方法和原因

目录 1.现象 2.原因分析 3.解决方法 3.1.方法1 3.2.方法2 1.现象 今天调整了下工程目录结构(环境是VS2019Qt5.12.12)&#xff0c;重新编译突然出现以下错误&#xff1a; 没有修改代码&#xff0c;怎么就出现这个错误了呢&#xff1f;从上面的错误来看&#xff0c;其实就是…...

电脑win11家庭版升级专业版和企业版相关事项

我的是零刻ser9&#xff0c;自带win11家庭版&#xff0c;但是我有远程操控需求&#xff0c;想用windows系统自带的远程连接功能&#xff0c;所以需要升级为专业版。然后在系统激活页面通过更改序列号方式&#xff0c;淘宝几块钱买了个序列号升级成功专业版了。但是&#xff0c;…...

用户认证系统登录界面

下面是使用HTML和JavaScript实现的一个中文版登录界面&#xff0c;包含登录、注册和修改密码功能。注册成功后会显示提示信息&#xff0c;在登录成功后进入一个大大的欢迎页面。 1.代码展示 <!DOCTYPE html> <html lang"zh-CN"> <head><meta …...

深圳国威HB1910数字IP程控交换机 generate.php 远程命令执行漏洞复现

0x01 产品描述: 深圳国威主营国威模拟、数字、IP 交换机、语音网关、IP 电话机及各种电话机。深圳国威电子有限公司HB1910是一款功能强大的网络通信设备,适用于各种企业通信需求。 0x02 漏洞描述: 深圳国威电子有限公司HB1910数字IP程控交换机generate.php存在远程命令执行…...

客户端(浏览器)vue3本地预览txt,doc,docx,pptx,pdf,xlsx,csv,

预览文件 1、入口文件preview/index.vue2、预览txt3、预览doc4、预览pdf5、预览pptx6、预览xlsx7、预览csv 1、入口文件preview/index.vue 预览样式&#xff0c;如pdf 文件目录如图所示&#xff1a; 代码如下 <template><div class"preview-wrap" ref&…...

(八)机器学习 - 线性回归

线性回归&#xff08;Linear Regression&#xff09;是一种统计学方法&#xff0c;用于建立一个或多个自变量&#xff08;解释变量&#xff09;与因变量&#xff08;响应变量&#xff09;之间的线性关系。线性回归的目的是通过最小化预测误差来找到最佳的线性拟合模型&#xff…...

Springboot 整合 Java DL4J 打造金融风险评估系统

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...

CSDN博客:如何使用Python的`datasets`库转换音频采样率

CSDN博客&#xff1a;如何使用Python的datasets库转换音频采样率 什么是采样率&#xff1f;代码用途&#xff1a;调整音频数据的采样率完整代码示例代码详解运行结果&#xff08;示例&#xff09;总结 在这篇文章中&#xff0c;我们将学习如何使用Python的datasets库对音频数据…...

geoserver(1) 发布sql 图层 支持自定义参数

前提使用postgis 数据库支持关联 join 支持 in,not in,like,及其他sql原生函数 新增sql图层 编写自定义sql 编辑sql语句必须输出带有geom数据 正则表达式去除 设置id以及坐标参考系 预览sql图层效果 拼接sql参数 http://xxx.com/geoserver/weather/wms?SERVICEWMS&VERSI…...

从 Router 到 Navigation:HarmonyOS 路由框架的全面升级与迁移指南

在本教程中&#xff0c;我们深入探讨了 Router 和 Navigation 在 HarmonyOS 中的用法差异及如何从 Router 切换到 Navigation 的方法。重点涵盖了页面跳转、转场动画、生命周期管理以及跨包路由的实现。 页面结构对比 Router 页面结构 每个页面需要使用 Entry 注解。 页面需要…...

http1.1 vs http2.0 速度对比实测

首先对比一下http1.1 vs http2.0 区别&#xff1a; 1. 连接管理&#xff1a; HTTP/1.1: 每个请求/响应都需要一个独立的 TCP 连接&#xff0c;虽然可以使用持久连接&#xff08;keep-alive&#xff09;来复用连接&#xff0c;但仍然存在请求队头阻塞&#xff08;Head-of-Line…...

uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)

1.引入iconfont的图标&#xff0c;只保留这两个文件 2.App.vue引入到全局中 import "./static/fonts/iconfont.css"3.pages.json中配置text为图标对应的unicode {"path": "pages/invite/invite","style": {"h5": {"…...

vue运行项目时local有显示 但是network却显示unavailable

问题描述 日常开发中 和后端本地调试时 后端需要使用你的本地去访问页面 可运行项目时会出现network显示unavailable的情况 解决方式 1.其实这只是vue脚手架对于ip地址获取的方式兼容上有一些问题 但其实是不影响ip访问本地的 你可以直接cmd内ipconfig去查看自己的ip然后…...