数学建模算法汇总(全网最全,含matlab案例代码)

news2024/11/15 6:48:18

数学建模常用的算法分类

ff05f94f8a7d4f3790dac84aa43b2b3a.png

 

全国大学生数学建模竞赛中,常见的算法模型有以下30种:

  1. 最小二乘法
  2. 数值分析方法
  3. 图论算法
  4. 线性规划
  5. 整数规划
  6. 动态规划
  7. 贪心算法
  8. 分支定界法
  9. 蒙特卡洛方法
  10. 随机游走算法
  11. 遗传算法
  12. 粒子群算法
  13. 神经网络算法
  14. 人工智能算法
  15. 模糊数学
  16. 时间序列分析
  17. 马尔可夫链
  18. 决策树
  19. 支持向量机
  20. 朴素贝叶斯算法
  21. KNN算法
  22. AdaBoost算法
  23. 集成学习算法
  24. 梯度下降算法
  25. 主成分分析
  26. 回归分析
  27. 聚类分析
  28. 关联分析
  29. 非线性优化
  30. 深度学习算法

 一、线性回归:用于预测一个连续的输出变量。

线性回归是一种基本的统计学方法,用于建立一个自变量(或多个自变量)和一个因变量之间的线性关系模型,以预测一个连续的输出变量。这个模型的形式可以表示为:

y = β0 + β1x1 + β2x2 + ... + βpxp + ε

其中,y 是因变量(也称为响应变量),x1, x2, ..., xp 是自变量(也称为特征变量),β0, β1, β2, ..., βp 是线性回归模型的系数,ε 是误差项

线性回归的目标是找到最优的系数 β0, β1, β2, ..., βp,使得模型预测的值与真实值之间的误差最小。这个误差通常用残差平方和来表示:

RSS = Σ (yi - ŷi)^2

其中,yi 是真实的因变量值,ŷi 是通过线性回归模型预测的因变量值。线性回归模型的最小二乘估计法就是要找到一组系数,使得残差平方和最小。

线性回归可以通过多种方法来求解,其中最常用的方法是最小二乘法。最小二乘法就是要找到一组系数,使得残差平方和最小。最小二乘法可以通过矩阵运算来实现,具体地,系数的解可以表示为:

β = (X'X)^(-1)X'y

其中,X 是自变量的矩阵,包括一个截距项和所有自变量的值,y 是因变量的向量。

线性回归在实际中的应用非常广泛,比如在金融、医学、工程、社会科学等领域中,都可以使用线性回归来预测和分析数据。

下面是一个简单的 Python 代码实现线性回归

import numpy as np
from sklearn.linear_model import LinearRegression

# 创建一个随机数据集
np.random.seed(0)
X = np.random.rand(100, 1)
y = 2 + 3 * X + np.random.rand(100, 1)

# 创建线性回归模型并拟合数据
model = LinearRegression()
model.fit(X, y)

# 打印模型的系数和截距项
print('Coefficients:', model.coef_)
print('Intercept:', model.intercept_)

# 预测新数据
X_new = np.array([[0.5], [1.0]])
y_new = model.predict(X_new)

# 打印预测结果
print('Predictions:', y_new)

这个代码使用了 Numpy 库生成了一个包含 100 个样本的随机数据集,并使用 Scikit-learn 库的 LinearRegression 类创建了一个线性回归模型。模型通过 fit() 方法拟合数据,并通过 coef_ 和 intercept_ 属性访问模型的系数和截距项。最后,代码使用 predict() 方法预测了两个新数据点的结果,并打印出了预测结果。

二、逻辑回归:用于预测一个离散的输出变量,比如二元分类问题。

逻辑回归是一种常见的分类算法,用于将一个或多个自变量与一个二元或多元离散的因变量之间的关系建模。它的名字"逻辑"来源于它的模型本质上是一个逻辑函数,用于将输入值转换为一个概率值。逻辑回归通常用于二元分类问题,但也可以扩展到多元分类问题。

逻辑回归模型的基本形式如下:

p(y=1|x) = 1 / (1 + exp(-(b0 + b1x1 + b2x2 + ... + bpxp)))

其中,p(y=1|x) 是给定自变量 x 下因变量 y 取值为 1 的概率,exp() 是指数函数,b0, b1, b2, ..., bp 是模型的系数。

逻辑回归的目标是找到最优的系数 b0, b1, b2, ..., bp,以最大化似然函数,从而使模型预测的结果尽可能地接近真实值。通常,我们会使用极大似然估计法来估计模型的系数。

在训练过程中,逻辑回归模型使用一个称为逻辑损失函数的代价函数来衡量预测结果与真实值之间的误差。逻辑损失函数如下:

J(b) = (-1/m) * Σ[yi*log(p(xi)) + (1-yi)*log(1-p(xi))]

其中,m 是样本数量,yi 是真实的分类标签(0 或 1),p(xi) 是模型预测的分类概率。

逻辑回归可以使用梯度下降法或牛顿法等优化算法来最小化逻辑损失函数,从而得到最优的模型参数。最后,模型将自变量输入到逻辑函数中,得到分类概率,并使用阈值将概率转化为分类标签,通常取阈值为 0.5。

逻辑回归在实际中的应用非常广泛,比如在金融、医学、社会科学等领域中,都可以使用逻辑回归来预测和分析数据。

下面是一个简单的 Python 代码实现逻辑回归:

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 创建一个随机数据集
np.random.seed(0)
X = np.random.rand(100, 3)
y = np.random.randint(0, 2, 100)

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 创建逻辑回归模型并拟合数据
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测测试集的结果
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

这个代码使用了 Numpy 库生成了一个包含 100 个样本的随机数据集,并使用 Scikit-learn 库的 LogisticRegression 类创建了一个逻辑回归模型。模型通过 fit() 方法拟合数据,并通过 predict() 方法预测测试集的结果。最后,代码使用 accuracy_score() 方法计算模型的准确率,并打印出结果。

三、决策树:用于分类和回归问题,通过构建一个树状结构来做出决策。

决策树是一种常见的机器学习算法,用于解决分类和回归问题。它的基本思想是将数据集分成多个子集,每个子集对应一个决策树节点,最终形成一棵树形结构。决策树的每个节点表示一个特征,分支表示特征的取值,叶子节点表示分类或回归的结果。

决策树的构建过程一般分为两个阶段:树的生成和剪枝。树的生成过程是从根节点开始,依次选择最优的特征进行划分,直到所有叶子节点都属于同一类别或满足某个停止条件。最常用的特征选择方法是信息增益或信息增益比。信息增益是指在划分前后,数据集中不确定性减少的程度,信息增益越大,意味着特征对于分类的影响越大。

剪枝过程是为了避免过拟合,即在训练集上表现良好但在测试集上表现差的情况。剪枝的目的是去除一些决策树节点,从而使决策树更加简单、泛化能力更强。剪枝方法通常包括预剪枝和后剪枝。预剪枝是在树的生成过程中,当某个节点无法继续划分时,停止划分。后剪枝是在树的生成过程结束后,对生成的树进行剪枝。剪枝的具体方法包括交叉验证剪枝和错误率降低剪枝等。

决策树在分类和回归问题中都有广泛的应用,它的优点包括易于理解和解释、处理缺失数据、对异常值不敏感、适用于多分类和回归问题等。但是决策树也有一些缺点,如容易过拟合、对输入数据的细微变化敏感等。

以下是一个示例代码,使用 Scikit-learn 库中的 DecisionTreeClassifier 类构建并训练一个决策树分类器:

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

# 载入数据集
iris = load_iris()

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)

# 创建决策树分类器并拟合数据
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# 预测测试集的结果
y_pred =

在此示例中,我们使用 Iris 数据集,将数据集分为训练集和测试集

四、支持向量机:用于分类和回归问题,通过找到一个最优的分离超平面来进行分类。

支持向量机(Support Vector Machine,简称 SVM)是一种常用的监督学习算法,常用于分类和回归问题。SVM 基于将数据映射到高维空间,并在该空间中寻找最大间隔超平面来进行分类或回归。

SVM 的目标是找到一个最大间隔超平面,它将不同类别的数据分开,使得同一类别的数据点尽可能地靠近这个超平面。具体来说,对于二分类问题,SVM 将数据映射到高维空间,并找到一个超平面,它能够将两类数据分开,并且距离两类数据点最近的点到该超平面的距离最大。

在实现 SVM 时,需要选择一个核函数来对数据进行映射,常用的核函数有线性核、多项式核和径向基函数(Radial Basis Function,简称 RBF)核等。

下面是一个使用 Scikit-learn 库中的 SVM 类(SVC)实现分类问题的示例代码:

from sklearn.datasets import load_iris
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split

# 载入数据集
iris = load_iris()

# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)

# 创建 SVM 分类器并拟合数据
clf = SVC(kernel='linear', C=1.0, random_state=42)
clf.fit(X_train, y_train)

# 预测测试集的结果
y_pred = clf.predict(X_test)

# 计算分类器在测试集上的准确率
accuracy = clf.score(X_test, y_test)
print("Accuracy: {:.2f}%".format(accuracy*100))

 

五、聚类:用于将数据集中的数据分为不同的组。

聚类是一种无监督学习算法,用于将数据集中的对象分成几个相似的组或类别。聚类算法的目标是找到一些相似的数据点,并将它们分成不同的类别或簇,使得同一类别的数据点尽可能地相似,而不同类别的数据点尽可能地不同。

常见的聚类算法包括 K-Means 算法、层次聚类算法和 DBSCAN 算法等。其中,K-Means 算法是最常见的聚类算法之一,它将数据点分为 K 个簇,并将每个数据点分配到最近的簇中,

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

# 生成模拟数据
X, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

# 创建 KMeans 聚类器并拟合数据
kmeans = KMeans(n_clusters=4, random_state=0)
kmeans.fit(X)

# 预测数据的簇标签
y_pred = kmeans.predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);

六、神经网络:用于分类和回归问题,通过构建一个多层的神经网络来进行计算。

神经网络是一种模仿人类大脑神经网络结构和工作方式的算法模型。它由许多简单的单元或神经元组成,每个神经元接收来自其它神经元的输入,并将这些输入组合成一个输出。神经网络通常由多个层组成,包括输入层、隐藏层和输出层,每层由若干个神经元组成。

神经网络可以用于分类、回归和聚类等任务,其中最常见的是分类任务。神经网络分类器的训练通常采用反向传播算法,它通过计算误差梯度来更新神经网络权重,以使神经网络的输出尽可能接近真实标签。

以下是一个使用 Scikit-learn 库中的 MLPClassifier 类实现分类问题的示例代码:

from sklearn.datasets import make_classification
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 生成模拟数据
X, y = make_classification(n_samples=1000, n_features=10, n_classes=2, random_state=1)

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)

# 创建 MLPClassifier 分类器并拟合数据
mlp = MLPClassifier(hidden_layer_sizes=(10, 5), max_iter=1000, random_state=1)
mlp.fit(X_train, y_train)

# 预测测试集的标签
y_pred = mlp.predict(X_test)

# 计算分类器的准确率
acc = accuracy_score(y_test, y_pred)
print(f"Accuracy: {acc}")

 

七、遗传算法:用于寻找优化问题的最优解。

遗传算法是一种模仿自然选择和遗传机制的优化算法,主要用于求解最优化问题。它模拟了生物进化过程中的遗传、交叉和变异过程,通过不断地进化优秀的个体,逐渐搜索到全局最优解。

遗传算法的基本流程如下:

  1. 初始化种群:随机生成一组个体作为种群。
  2. 评价适应度:对每个个体进行适应度评价,通常使用目标函数计算个体的适应度。
  3. 选择操作:根据每个个体的适应度,选择一部分个体作为父代,用于产生下一代。
  4. 交叉操作:对父代个体进行交叉操作,产生新的个体。
  5. 变异操作:对新的个体进行变异操作,产生更多的多样性。
  6. 评价新个体:对新的个体进行适应度评价。
  7. 判断终止条件:如果满足终止条件,则输出最优解;否则返回第3步。

以下是一个使用 Python 实现遗传算法求解一元函数最小值问题的示例代码:

import random

# 目标函数:f(x) = x^2
def objective_function(x):
    return x ** 2

# 生成随机个体
def generate_individual():
    return random.uniform(-10, 10)

# 计算个体适应度
def calculate_fitness(individual):
    return 1 / (1 + objective_function(individual))

# 选择操作
def selection(population):
    fitnesses = [calculate_fitness(individual) for individual in population]
    total_fitness = sum(fitnesses)
    probabilities = [fitness / total_fitness for fitness in fitnesses]
    selected = random.choices(population, weights=probabilities, k=len(population))
    return selected

# 交叉操作
def crossover(individual1, individual2):
    alpha = random.uniform(0, 1)
    new_individual1 = alpha * individual1 + (1 - alpha) * individual2
    new_individual2 = alpha * individual2 + (1 - alpha) * individual1
    return new_individual1, new_individual2

# 变异操作
def mutation(individual):
    new_individual = individual + random.uniform(-1, 1)
    return new_individual

# 遗传算法求解最小值问题
population_size = 100
population = [generate_individual() for i in range(population_size)]
num_generations = 1000
for generation in range(num_generations):
    # 选择操作
    selected_population = selection(population)
    
    # 交叉操作
    offspring_population = []
    for i in range(population_size):
        offspring1, offspring2 = crossover(selected_population[i], selected_population[(i+1) % population_size])
        offspring_population.append(offspring1)
        offspring_population.append(offspring2)
    
    # 变异操作
    for i in range(population_size):
        if random.uniform(0, 1) < 0.1:
            offspring_population[i] = mutation(offspring_population[i])
    
    #

 

八、粒子群算法:用于寻找优化问题的最优解。

粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,通过模拟群体中粒子的移动和群体的信息交流来实现优化目标的搜索。每个粒子在搜索空间中移动,并记录自己的最优位置和群体的最优位置,通过不断地调整自己的位置和速度,逐渐接近最优解。

粒子群算法的基本流程如下:

  1. 初始化粒子群:随机生成一组粒子的位置和速度。
  2. 计算适应度值:对每个粒子进行适应度计算,通常使用目标函数计算粒子的适应度。
  3. 更新个体最优值:将每个粒子的当前位置作为个体最优位置,如果该位置优于个体历史最优位置,则更新个体历史最优位置。
  4. 更新群体最优值:将所有粒子的个体最优位置作为群体最优位置。
  5. 更新速度和位置:根据粒子当前位置、速度和群体最优位置,计算新的速度和位置。
  6. 判断终止条件:如果满足终止条件,则输出最优解;否则返回第2步。

以下是一个使用 Python 实现粒子群算法求解一元函数最小值问题的示例代码:

import random

# 目标函数:f(x) = x^2
def objective_function(x):
    return x ** 2

# 生成随机粒子
def generate_particle():
    position = random.uniform(-10, 10)
    velocity = random.uniform(-1, 1)
    return {'position': position, 'velocity': velocity, 'personal_best_position': position, 'personal_best_fitness': objective_function(position)}

# 更新个体最优值
def update_personal_best(particle):
    fitness = objective_function(particle['position'])
    if fitness < particle['personal_best_fitness']:
        particle['personal_best_position'] = particle['position']
        particle['personal_best_fitness'] = fitness

# 更新群体最优值
def update_global_best(particles):
    global_best_position = particles[0]['personal_best_position']
    global_best_fitness = particles[0]['personal_best_fitness']
    for particle in particles:
        if particle['personal_best_fitness'] < global_best_fitness:
            global_best_position = particle['personal_best_position']
            global_best_fitness = particle['personal_best_fitness']
    return global_best_position, global_best_fitness

# 更新速度和位置
def update_velocity_and_position(particle, global_best_position):
    w = 0.5  # 惯性权重
    c1 = 0.5  # 个体学习因子
    c2 = 0.5  # 群体学习因子
    r1 = random.uniform(0, 1)
    r2 = random.uniform(0, 1)
    new_velocity = w * particle['velocity'] + c1 * r1 * (particle['personal_best_position'] - particle['position']) + c2 * r2 * (global_best_position - particle['position'])
    new

 

九、蚁群算法:用于解决组合优化问题。

蚁群算法(Ant Colony Optimization,ACO)是一种模拟蚂蚁在寻找食物时的行为和信息交流的启发式优化算法。该算法通过模拟蚂蚁的觅食行为,以信息素作为引导信息,通过搜寻路径上信息素的累积来实现最优路径的搜索。

蚁群算法的基本流程如下:

  1. 初始化信息素:对每条路径初始化一定量的信息素。
  2. 初始化蚂蚁位置:随机分配蚂蚁的起点位置。
  3. 选择下一步位置:根据当前位置和信息素分布选择下一步的位置。
  4. 更新信息素:根据蚂蚁经过的路径更新信息素。
  5. 判断终止条件:如果满足终止条件,则输出最优解;否则返回第3步。

以下是一个使用 Python 实现蚁群算法求解旅行商问题(TSP)的示例代码

import random

# 旅行商问题:求解城市之间的最短路径
class TSP:
    def __init__(self, num_cities, distance_matrix):
        self.num_cities = num_cities
        self.distance_matrix = distance_matrix

    # 计算路径长度
    def path_length(self, path):
        length = 0
        for i in range(len(path)-1):
            length += self.distance_matrix[path[i]][path[i+1]]
        length += self.distance_matrix[path[-1]][path[0]]
        return length

    # 生成随机解
    def random_solution(self):
        path = list(range(self.num_cities))
        random.shuffle(path)
        return path

# 蚂蚁类
class Ant:
    def __init__(self, tsp, alpha, beta, rho):
        self.tsp = tsp
        self.alpha = alpha  # 信息素重要程度因子
        self.beta = beta  # 启发式因子
        self.rho = rho  # 信息素挥发因子
        self.current_city = random.randint(0, tsp.num_cities-1)  # 当前所在城市
        self.visited_cities = [self.current_city]  # 已访问过的城市
        self.path_length = 0  # 路径长度

    # 选择下一步城市
    def choose_next_city(self, pheromone_matrix):
        unvisited_cities = list(set(range(self.tsp.num_cities)) - set(self.visited_cities))
        probabilities = [0] * len(unvisited_cities)
        total_pheromone = 0
        for i, city in enumerate(unvisited_cities):
            probabilities[i] = pheromone_matrix[self.current_city][city] ** self.alpha * ((1 / self.tsp.distance_matrix[self.current_city][city]) ** self.beta)
            total_pheromone += probabilities[i]
        if total_pheromone == 0:
            return random.choice(unvisited_cities)
        probabilities = [p / total_pheromone for p in probabilities]
        next_city = random.choices(unvisited_cities, weights=probabilities)[0]
       

 

十、模拟退火算法:用于在一个大的搜索空间中找到一个最优解。

模拟退火算法(Simulation Annealing,SA)是一种基于概率的全局优化算法,其灵感来源于固体材料在退火过程中的微观状态变化过程。该算法通过一定的概率接受一个劣解以避免陷入局部最优解,并在迭代过程中逐渐降低概率,最终达到全局最优解的目的。

模拟退火算法的基本流程如下:

  1. 初始化温度T、初始解x、终止温度Tmin和降温速率α。
  2. 迭代直至温度降至Tmin:在当前解x的邻域中随机生成一个新解y。
  3. 判断接受概率:计算当前解x和新解y的差值ΔE,如果ΔE<0,则接受新解y;否则以一定概率接受新解y,概率为e^(-ΔE/T)。
  4. 降温:通过降温速率α逐渐降低温度T。
  5. 返回第2步。

以下是一个使用 Python 实现模拟退火算法求解旅行商问题(TSP)的示例代码:

import math
import random

# 旅行商问题:求解城市之间的最短路径
class TSP:
    def __init__(self, num_cities, distance_matrix):
        self.num_cities = num_cities
        self.distance_matrix = distance_matrix

    # 计算路径长度
    def path_length(self, path):
        length = 0
        for i in range(len(path)-1):
            length += self.distance_matrix[path[i]][path[i+1]]
        length += self.distance_matrix[path[-1]][path[0]]
        return length

    # 生成随机解
    def random_solution(self):
        path = list(range(self.num_cities))
        random.shuffle(path)
        return path

# 模拟退火类
class SimulatedAnnealing:
    def __init__(self, tsp, T, Tmin, alpha):
        self.tsp = tsp
        self.T = T  # 初始温度
        self.Tmin = Tmin  # 终止温度
        self.alpha = alpha  # 降温速率

    # 计算接受概率
    def acceptance_probability(self, old_cost, new_cost, T):
        if new_cost < old_cost:
            return 1
        else:
            return math.exp(-(new_cost - old_cost) / T)

    # 迭代求解
    def solve(self):
        current_solution = self.tsp.random_solution()
        current_cost = self.tsp.path_length(current_solution)
        while self.T > self.Tmin:
            new_solution = self.tsp.random_solution()
            new_cost = self.tsp.path_length(new_solution)
            if self.acceptance_probability(current_cost, new_cost, self.T) > random.random():
                current_solution = new_solution
                current_cost = new_cost
            self.T *= self.alpha
        return current_solution, current_cost

30+种算法模型及案例代码知识分享(纯干货):

链接:https://pan.baidu.com/s/1Pg_PgPJ8-EJ0RMjZ6_dF3Q?pwd=fid3 
提取码:fid3 

20+个matlab算法代码集合分享:

链接:https://pan.baidu.com/s/1HvGCIFK4zu5K3kZeJghy9A 
提取码:ly5o

 

 

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

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

相关文章

一文梳理RAG(检索增强生成)的现状与挑战

一 RAG简介 大模型相较于过去的语言模型具备更加强大的能力&#xff0c;但在实际应用中&#xff0c;例如在准确性、知识更新速度和答案透明度方面&#xff0c;仍存在不少问题&#xff0c;比如典型的幻觉现象。因此&#xff0c;检索增强生成 (Retrieval-Augmented Generation, …

Learn ComputeShader 09 Night version lenses

这次将要制作一个类似夜视仪的效果 第一步就是要降低图像的分辨率&#xff0c; 这只需要将id.xy除上一个数字然后再乘上这个数字 可以根据下图理解&#xff0c;很明显通过这个操作在多个像素显示了相同的颜色&#xff0c;并且很多像素颜色被丢失了&#xff0c;自然就会有降低分…

Open-Sora代码详细解读(1):解读DiT结构

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;目前开源的DiT视频生成模型不是很多&#xff0c;Open-Sora是开发者生态最好的一个&#xff0c;涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-S…

攻防世界 Web_php_unserialize

Web_php_unserialize PHP反序列化 看看代码 <?php class Demo { private $file index.php;public function __construct($file) { $this->file $file; }function __destruct() { echo highlight_file($this->file, true); }function __wakeup() { if ($this->…

软件测试 | 性能测试

性能测试的概念 为了 发现系统性能问题 或 获取系统性能相关指标 而进行的测试。 常见性能测试指标 并发数 即并发用户数。 从业务层面看&#xff0c;并发用户数指的是 实际使用系统的用户总数。从后端服务器层面看&#xff0c;指的是 web服务器在一段时间内处理浏览器请求而建…

服务器环境搭建-5 Nexus搭建与使用介绍

背景 本文介绍nexus的安装、配置和使用&#xff0c;之后通过案例的方式演示使用过程。 1.下载和安装 本文使用Nexus 3.x版本进行演示 下载地址&#xff1a;Download Nexus Repository OSS | Sonatype 国外网站下载速度较慢&#xff0c;也可以通过百度网盘下载(提取码:9999): …

爆改YOLOv8|利用图像分割网络UNetV2改进yolov8主干-即插即用

1&#xff0c;本文介绍 U-Net v2 通过引入创新的跳跃连接设计来提升医学图像分割的精度。这一版本专注于更有效地融合不同层级的特征&#xff0c;包括高级特征中的语义信息和低级特征中的细节信息。通过这种优化&#xff0c;U-Net v2 能够在低级特征中注入丰富的语义&#xff…

wireshark安装及抓包新手使用教程

Wireshark是非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括&#xff1a; 1、Wireshark软件下载和安装以及Wireshark主界面介绍。 2、WireShark简单抓包示例。通过该例子学…

JetBrains Aqua安装步骤和基本配置

一、安装步骤 下载链接&#xff1a;https://www.jetbrains.com.cn/aqua/ 1、点击下载按钮。 2、点击下载IDE&#xff0c;浏览器下载.exe。&#xff08;如果是mac或linux可选择对应的下载安装包&#xff09; 3、双击.exe文件&#xff0c;点击下一步。 4、可点击【浏览】选择安装…

在Webmin上默认状态无法正常显示 Mariadb V11.02及以上版本

OS: Armbian OS 24.5.0 Bookworm Mariadb V11.02及以上版本 Webmin&#xff1a;V2.202 小众问题&#xff0c;主要是记录一下。 如题 Webmin 默认无法 Mariadb V11.02及以上版本 如果对 /etc/webmin/mysql/config 文件作相应调整就可以再现Mariadb管理界面。 路径文件&#xff…

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接&#xff1a;https://arxiv.org/pdf/2408.16766 项目链接&#xff1a;https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架&#xff0c;以验证这个大规模数据集在风格迁移中的有益效果。…

2024年,女生到底适合转行ui设计还是软件测试?

作为2024年的就业选择来说&#xff0c;软件测试和UI设计发展都挺不错的 选择这两个方向转行的女生很多。但具体选择测试还是UI设计&#xff0c;最好还是根据你个人的兴趣爱好以及长期的发展路径去选择 比如&#xff1a;薪资、工作稳定性、后续晋升空间、学习难度等等方面~ 如…

HCIP:一次性搞定OSPF基础

OSPF 一&#xff0c; OSPF基础1. 技术背景&#xff08;RIP中存在的问题&#xff09;OSPF协议特点OSPF三张表OSPF数据表头部数据包内容&#xff1a;helloDBD&#xff08;数据库描述报文&#xff09;LSRLSULSack OSPF工作过程1. 确认可达性&#xff0c;建立邻居2-way前&#xff0…

掌握Hive函数[2]:从基础到高级应用

目录 高级聚合函数 多进一出 1. 普通聚合 count/sum... 2. collect_list 收集并形成list集合&#xff0c;结果不去重 3. collect_set 收集并形成set集合&#xff0c;结果去重 案例演示 1. 每个月的入职人数以及姓名 炸裂函数 概述 案例演示 1. 数据准备 1&#xff09;表…

接口自动化三大经典难题

目录 一、接口项目不生成token怎么解决关联问题 1. Session机制 2. 基于IP或设备ID的绑定 3. 使用OAuth或第三方认证 4. 利用隐式传递的参数 5. 基于时间戳的签名验证 二、接口测试中网络问题导致无法通过怎么办 1. 重试机制 2. 设置超时时间 3. 使用模拟数据 4. 网…

nmon服务器监控工具使用

nmon&#xff1a;是一个分析linux服务器性能的免费工具&#xff0c;可以用来帮助我们整体性的分析服务端的CPU&#xff0c;内存&#xff0c;网络&#xff0c;IO&#xff0c;虚拟内存等指标 下载nmon.jar包及分析文件&#xff1a;百度网盘 链接: 提取码: 0000 一、nmon配置及使…

JavaScript (变量,var,Let,Const)

目录 JavaScript 变量 JavaScript 变量 JavaScript 标识符 声明&#xff08;创建&#xff09; JavaScript 变量 JavaScript Let 全局作用域 函数作用域 块作用域&#xff08;Let) 重新声明变量 JavaScript Const 在声明时赋值 JavaScript 变量 JavaScript 变量 Jav…

2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整论文+代码结果

2024国赛C题参考论文https://download.csdn.net/download/qq_52590045/89718370网盘链接形式&#xff0c;在里更新 2024国赛A题参考论文https://download.csdn.net/download/qq_52590045/89718367 网盘链接形式&#xff0c;在里更新 2024国赛D题参考论文https://download.…

数据库面试题学习

B树和B树 B树 排好序的 节点内部有多个元素 B树 排好序的 节点内多个元素 叶子节点有指针&#xff08;双向指针&#xff09; 非叶子节点冗余了一份在叶子节点 mysql定义B树 InnoDB B树是B树的升级版~ InnoDB b树是怎么产生的 mysql 页 目录 16KB 自增id uuid 一页最多可以存储…

PPPoE配置学习笔记

企业内网和运营商网络如上图所示&#xff0c;中间交换机模拟运营商传输设备。公网IP段&#xff1a;12.1.1.0/24。内网IP段&#xff1a;192.168.1.0/24。PPPoE拨号采用CHAP认证&#xff0c;用户名&#xff1a;admin 密码&#xff1a;admin123 实验要求&#xff1a; 将R1设置为…