[高质量]2024五一数学建模A题保奖思路+代码(后续会更新)

news2024/11/18 17:39:41

你的点赞收藏是我继续更新的最大动力,可点击文末卡片获取更多资料

你是否在寻找数学建模比赛的突破点?

作为经验丰富的数学建模团队,我们将为你带来2024 年华东杯(A题)的全面解析包。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解析,帮助你全面理解并掌握如何解决类似问题。

A题 钢板最优切割路径问题

提高钢板下料切割过程中的工作效率,是模具加工企业降低成本和增加经济效益的重要途径,其中钢板切割的路径规划是钢板切割过程的一个关键环节。

钢板切割就是使用特殊的切割技术,基于给定的下料切割布局图纸对钢板进行加工。切割过程中设计切割路径至关重要,最优切割路径要满足空程最短的原则。

注:(1) 空程是指在切割设备所进行的一系列操作中不产生切割效果的水平运动路径(垂直运动路径不计入空程);(2) 本题默认切割起始点均为右下角点(见各图所示);(3) 本题下料切割布局图中的实线均为切割线。

问题1:给定如图2所示的下料切割布局N1,其中B3-B4为钢板边界线,不用切割,B1为切割起始点。请建立数学模型,设计最优切割路径方案,并给出最优切割路径的空程总长度。

针对钢板切割问题,我们面临的主要挑战是如何规划切割路径,以最小化在不进行切割的情况下切割头的移动距离,即空程。这可以通过将问题抽象为旅行商问题(TSP)来解决,其中切割点作为城市,需要找到访问所有城市(切割点)一次并返回起点的最短路径。

建模要点:

  • 顶点(V):定义为切割线的起点和终点。
  • 边(E):两个顶点之间的直线距离,代表从一个切割点移动到另一个切割点的直线路径。
  • 目标:最小化完成所有必需切割后的总移动距离。

数学模型

设是顶点集合,其中每个顶点代表一个切割点的位置。定义是从顶点到顶点的距离。我们的目标是找到一个排列(代表顶点的访问顺序),使得以下目标函数最小化:设P={p1,p2,...,pn}是顶点集合,其中每个顶点代表一个切割点的位置。定义dij是从顶点pi到顶点pj的距离。我们的目标是找到一个排列π(代表顶点的访问顺序),使得以下目标函数最小化: \text{设} \quad P = \{p_1, p_2, ..., p_n\} \quad \text{是顶点集合,其中每个顶点代表一个切割点的位置。定义} \quad d_{ij} \quad \text{是从顶点} \quad p_i \quad \text{到顶点} \quad p_j \quad \text{的距离。我们的目标是找到一个排列} \quad \pi \quad \text{(代表顶点的访问顺序),使得以下目标函数最小化:}

minimizeZ=dπ(n)π(1)+∑i=1n−1dπ(i)π(i+1) \text{minimize} \quad Z = d_{\pi(n)\pi(1)} + \sum_{i=1}^{n-1} d_{\pi(i)\pi(i+1)}

其中,是顶点到顶点之间的距离。其中,dπ(i)π(i+1)是顶点π(i)到顶点π(i+1)之间的距离。 \text{其中,} \quad d_{\pi(i)\pi(i+1)} \quad \text{是顶点} \quad \pi(i) \quad \text{到顶点} \quad \pi(i+1) \quad \text{之间的距离。}

3. 解决策略

考虑到实际操作的复杂性,我们将采用一种启发式算法来找到一个近似的最优解:

  • 贪心算法:从起始点开始,每次选择最近的未访问顶点作为下一个访问顶点。
  • 改进策略:使用 2-opt 或 3-opt 技术来进行路径优化,这种技术可以通过局部交换来改进初始贪心解。

Python 代码实现

import numpy as np
from scipy.spatial import distance_matrix
from itertools import permutations

# 定义顶点坐标
coordinates = {
    'B1': (0, 0),
    'B2': (0, 50),
    'B3': (80, 50),
    'B4': (0, 80),
    'A1': (20, 15),
    'A2': (20, 35),
    'A3': (60, 35),
    'A4': (60, 15)
}

# 计算距离矩阵
points = list(coordinates.keys())
coords = np.array(list(coordinates.values()))
dist_mat = distance_matrix(coords, coords)

# 贪心算法实现
def greedy_tsp(distances, start=0):
    n = len(distances)
    visited = [False] * n
    visited[start] = True
    path = [start]
    total_distance = 0

    current = start
    while len(visited) < n:
        next_node = None
        min_distance = float('inf')
        for i in range(n):
            if not visited[i] and distances[current, i] < min_distance:
                next_node = i
                min_distance = distances[current, i]
        path.append(next_node)
        visited[next_node] = True
        total_distance += min_distance
        current = next_node

    # Returning to the start
    total_distance += distances[path[-1], start]
    path.append(start)

    return path, total_distance

# 调用贪心算法
best_path, min_distance = greedy_tsp(dist_mat)
best_path_labels = [points[i] for i in best_path]

# 输出结果
print("最优切割路径:", best_path_labels)
print("最小空程总长度:", min_distance)

问题2:给定下料切割布局N2见图3,构件的外边界切割成上下对称的锯齿状,同时内部切割出四个半径为3的圆形和一个椭圆形。请根据下料切割布局N2的参数信息,建立数学模型,设计最优切割路径方案,并给出最优切割路径的空程总长度。

为了解决钢板的最优切割路径问题,我们将采用组合优化和启发式算法。具体过程如下:

数学建模思路

  1. 模型目标: 最小化空程总长度。这意味着我们需要找到一条路径,使得在不进行实际切割的过程中,切割头移动的距离最短。
  2. 变量定义
  3. 设定切割路径为一系列点的序列,每个点代表切割头的一个位置。
  4. 定义变量 xi, yi 为切割头在第 i 个点的坐标。
  5. 约束条件
  6. 切割路径必须覆盖所有需切割的边界和图形。
  7. 切割路径应避免重复覆盖已切割区域,除非必要。
  8. 数学模型: 采用图论中的最短路径问题。将切割布局视为图的节点,切割路径视为边,边的权重是切割头移动的距离。

公式

minimize∑i=1n−1(xi+1−xi)2+(yi+1−yi)2 \text{minimize} \sum_{i=1}^{n-1} \sqrt{(x_{i+1} - x_i)^2 + (y_{i+1} - y_i)^2}

这是一个经典的旅行商问题(TSP),我们需要在满足切割要求的前提下,找到一条遍历所有必需点的最短路径。

可以使用的算法

  1. 遗传算法(Genetic Algorithm, GA)
  2. 初始化:随机生成一定数量的可能路径(种群)。
  3. 评估:计算每条路径的空程长度(适应度函数)。
  4. 选择:根据路径的适应度选择较好的路径进行繁殖。
  5. 交叉和变异:通过交叉和变异操作产生新的路径(后代)。
  6. 迭代:重复选择、交叉和变异过程,直至达到一定的迭代次数或适应度满足最优条件。
  7. 模拟退火算法(Simulated Annealing, SA)
  8. 初始化:随机生成一个可能的路径。
  9. 迭代过程:在每次迭代中,通过小的随机扰动生成一个新路径。
  10. 接受准则:如果新路径的适应度更好,则接受新路径;如果更差,以一定的概率接受新路径,概率随温度参数逐渐降低。

代码示例(Python使用遗传算法)

import numpy as np
import matplotlib.pyplot as plt
import random

def generate_initial_population(size, num_points):
    return [random.sample(range(num_points), num_points) for _ in range(size)]

def calculate_distance(points, route):
    return sum(np.linalg.norm(points[route[i]] - points[route[i - 1]]) for i in range(len(route)))

def crossover(parent1, parent2):
    size = len(parent1)
    idx1, idx2 = sorted(random.sample(range(size), 2))
    offspring = [None]*size
    offspring[idx1:idx2] = parent1[idx1:idx2]
    for x in parent2:
        if not x in offspring:
            idx = offspring.index(None)
            offspring[idx] = x
    return offspring

def mutate(route, mutation_rate):
    for i in range(len(route)):
        if random.random() < mutation_rate:
            j = random.randint(0, len(route) - 1)
            route[i], route[j] = route[j], route[i]

def genetic_algorithm(points, population_size, generations, mutation_rate):
    population = generate_initial_population(population_size, len(points))
    for _ in range(generations):
        population = sorted(population, key=lambda x: calculate_distance(points, x))
        new_population =

 [crossover(population[i], population[(i + 1) % len(population)]) for i in range(len(population))]
        population = [mutate(ind, mutation_rate) for ind in new_population]
    return population[0]

# 假设点集
points = np.array([(np.random.uniform(0, 100), np.random.uniform(0, 100)) for _ in range(10)])
route = genetic_algorithm(points, 50, 100, 0.01)

# 可视化
plt.figure()
plt.plot(points[:, 0], points[:, 1], 'o')
for i in range(1, len(route)):
    plt.plot([points[route[i - 1], 0], points[route[i], 0]], [points[route[i - 1], 1], points[route[i], 1]], 'k-')
plt.show()

该模型和算法能有效减少空程长度,提高生产效率。和小天数模一起交流,通过进一步的参数调优和算法改进,可以适应更复杂的实际应用需求。

问题3:给定下料切割布局N3见图4。N3与N2相比,需要在椭圆中多切割出12个矩形件(它们在椭圆中的位置是对称分布的,左右相邻的两个矩形件的中心距离为6,上下相邻的两个矩形件的中心距离为5)。请建立数学模型,设计最优切割路径方案,并给出最优切割路径的空程总长度(要求椭圆内部的所有矩形件要先于椭圆切割)。

在解决给定的钢板切割布局N3的问题中,我们面对的主要挑战是如何有效地组织和优化切割路径,以最小化非生产性的空程距离,并确保特定的切割顺序。这个布局不仅包括复杂的外部边界(锯齿形),还包括多个内部几何形状(圆形和一个包含多个矩形的椭圆形),这些形状需要被优先切割。

在处理您提供的钢板切割布局N3问题中,我们面临的核心挑战是如何精确而高效地规划切割路径,以最小化切割过程中的空程(非生产移动)总长度。这个问题涉及复杂的空间布局,包括一个椭圆形中内置的12个矩形和其他几个圆形,所有这些都需要在一个大的钢板上精确切割。这个任务可以通过构建一个数学模型来优化,该模型不仅需要处理空间和路径优化的问题,还要考虑切割顺序的约束。

首先,需要理解布局的具体细节和要求。给定的布局要求在一个包含12个对称排列的矩形的椭圆内部开始切割,之后才能切割椭圆本身,最后是其他的几何形状。这增加了操作的复杂性,因为需要在开始切割外围形状之前,首先完成所有内部形状的切割。

为了解决这个问题,我们可以采用图论中的方法,将每一个切割需求(无论是边界还是内部矩形)视为图中的节点。每两个节点之间的边表示可能的移动路径,边的权重是从一个节点到另一个节点的欧几里得距离。我们的目标是找到一个总权重(即总空程距离)最小的路径,这个路径必须首先包含椭圆内的所有矩形,然后是椭圆本身,最后是外围形状。

目标函数

minimize∑i=1n−1(xi+1−xi)2+(yi+1−yi)2 \text{minimize} \sum_{i=1}^{n-1} \sqrt{(x_{i+1} - x_i)^2 + (y_{i+1} - y_i)^2}

这里,xi, yi 表示切割点在钢板上的坐标,而 n 是切割点的总数。

约束条件

  1. 所有椭圆内部的矩形必须在椭圆被切割之前切割。
  2. 所有形状必须被完整切割,这意味着路径必须覆盖所有必要的切割线。

优化方法

考虑到问题的复杂性和实际应用中的计算限制,我们选择混合优化策略:

  1. 遗传算法:通过模拟自然选择和遗传机制来搜索最优路径。这包括初始化一定数量的随机解(种群),然后通过选择、交叉和变异来迭代改进这些解。
  2. 局部搜索:对遗传算法中得到的较优解进行局部搜索,以进一步减少空程。

Python实现和可视化

对于具有特定顺序要求的切割任务,动态规划可以用来优化切割顺序,特别是在处理有先后切割顺序要求的切割任务时效果显著。

代码示例(Python使用动态规划)

假设我们有切割点的坐标列表,我们需要确定切割顺序以最小化总的空程距离。

import numpy as np

def compute_distance(points):
    n = len(points)
    dist_matrix = np.zeros((n, n))
    for i in range(n):
        for j in range(n):
            dist_matrix[i][j] = np.linalg.norm(np.array(points[i]) - np.array(points[j]))
    return dist_matrix

def dynamic_programming(dist_matrix):
    n = len(dist_matrix)
    dp = [[float('inf')] * (1 << n) for _ in range(n)]
    dp[0][1] = 0  # Start from the first point

    for mask in range(1, 1 << n):
        for i in range(n):
            if mask & (1 << i):
                for j in range(n):
                    if mask & (1 << j) and i != j:
                        new_mask = mask ^ (1 << i)
                        dp[i][mask] = min(dp[i][mask], dp[j][new_mask] + dist_matrix[j][i])

    return min(dp[i][(1 << n) - 1] for i in range(n))

# Define points based on the given diagram (mock coordinates)
points = [(10, 10), (20, 20), (30, 30), (40, 40)]  # Example coordinates of cut points
dist_matrix = compute_distance(points)
min_distance = dynamic_programming(dist_matrix)
print(f"Minimum air travel distance: {min_distance}")

以下Python代码示例展示了如何使用matplotlib库来可视化切割路径,以及如何构建和使用遗传算法的简化版本来优化路径。

import matplotlib.pyplot as plt
import numpy as np

# 假设的坐标点,表示切割点
points = np.array([[10, 10], [20, 20], [30, 15], [40, 40], [50, 50], [60, 60], [70, 70], [80, 80]])

# 绘制点
plt.scatter(points[:, 0], points[:, 1])

# 绘制连接线,模拟切割路径
for i in range(len(points)-1):
    plt.plot([points[i][0], points[i

+1][0]], [points[i][1], points[i+1][1]], 'r-')

plt.title('钢板切割路径示意图')
plt.xlabel('X坐标')
plt.ylabel('Y坐标')
plt.grid(True)
plt.show()

问题4:给定下料切割布局N4见图5,需要在椭圆中切割出4个矩形小零件。由于小零件尺寸较小,为防止小零件掉落,两个相邻的小零件之间需要采用“过桥”的方式,使得相邻零件连接成一个大尺寸零件,要求“过桥”与矩形小零件顶点的最短距离至少为1。“过桥”的宽度为2,且在空程计算中不可以忽略“过桥”的宽度。

请根据N4的具体情况,建立数学模型,确定“过桥”的数目和位置,设计最优切割路径方案,给出最优切割路径的空程总长度(要求切割起始点设计在钢板的右下角,N4中的小圆形切割件不考虑过桥问题)。

在面对N4的钢板切割布局时,我们的目标是有效地设计切割路径来最小化空程总长度,同时确保小零件之间通过“过桥”有效连接。这一需求提高了问题的复杂性,因为除了标准的切割路径优化外,我们还需要考虑如何合理布置“过桥”,确保其既能连接相邻零件,又能符合最小距离要求。

分析与建模思路

  1. 布局和需求分析:布局中包括一个椭圆形和四个小矩形,需在椭圆内完成切割,并在相邻的小零件之间设置“过桥”。每个“过桥”的宽度为2,且顶点到零件的最小距离至少为1,这对切割路径和过桥位置的选择提出了特殊要求。
  2. 过桥设计:根据图形和给定的尺寸,需要确定“过桥”位置。这些位置必须能够连接相邻矩形而不侵犯规定的最小距离。具体到N4布局,四个矩形周围的可用空间需要精确计算,以便安排“过桥”位置。
  3. 数学模型建立
  • 目标函数:最小化总空程距离,包括切割所有零件和“过桥”的路径。
  • 变量定义:定义每一个切割点的坐标及其连接路径。
  • 约束条件:确保所有的“过桥”符合宽度和最小距离的要求;所有图形都需要被完整切割。
  1. 目标函数: minimize∑i=1n−1(xi+1−xi)2+(yi+1−yi)2\text{minimize} \sum_{i=1}^{n-1} \sqrt{(x_{i+1} - x_i)^2 + (y_{i+1} - y_i)^2} 其中,x_i, y_i 为切割路径中第i点的坐标。
  2. 约束条件
  • 对于每个“过桥”,距离相邻小零件顶点至少1单位距离。
  • “过桥”宽度恒为2单位。

为了深入解决N4布局的钢板切割问题,并优化“过桥”设计以及最小化空程总长度,我们可以使用一系列的数学公式来形式化问题。以下是具体的公式描述,用于详细计算并优化切割路径和“过桥”布局:

用到的数学公式

  1. 欧氏距离公式(计算切割路径长度): d(pi,pj)=(xj−xi)2+(yj−yi)2 d(p_i, p_j) = \sqrt{(x_j - x_i)^2 + (y_j - y_i)^2}
  2. 目标函数(最小化总空程距离): minimize∑i=1n−1d(pi,pi+1) \text{minimize} \, \sum_{i=1}^{n-1} d(p_i, p_{i+1})
  3. “过桥”距离约束(保证“过桥”与零件的最小距离): for all i∈bridges,min{d(pi,vj)}≥1for each vertex vjof the rectangle \text{for all } i \in \text{bridges}, \, \text{min} \{ d(p_i, v_j) \} \geq 1 \, \text{for each vertex } v_j \, \text{of the rectangle}
  4. “过桥”宽度约束: wb=2 w_b = 2
  5. 路径连续性约束(确保切割路径的连续性): d(pi,pi+1)≤Lmaxfor some large Lmax d(p_i, p_{i+1}) \leq L_{\text{max}} \, \text{for some large } L_{\text{max}}
  6. 小矩形切割点坐标(根据布局定义四个矩形的坐标): (xr1,yr1),(xr2,yr2),(xr3,yr3),(xr4,yr4) (x_{r1}, y_{r1}), (x_{r2}, y_{r2}), (x_{r3}, y_{r3}), (x_{r4}, y_{r4})
  7. 椭圆形区域内切割点坐标(定义椭圆内切割的开始和结束点): (xe1,ye1),(xe2,ye2) (x_{e1}, y_{e1}), (x_{e2}, y_{e2})
  8. 矩形到椭圆的最短距离计算(确保切割顺序,先切矩形后切椭圆): min{d((xr1,yr1),(xe2,ye2)),…,d((xr4,yr4),(xe2,ye2))} \text{min} \{ d((x_{r1}, y_{r1}), (x_{e2}, y_{e2})), \ldots, d((x_{r4}, y_{r4}), (x_{e2}, y_{e2})) \}
  9. 切割起点至第一个切割点的距离(从钢板右下角到第一个切割点的距离): d(pstart,p1)=(x1−xstart)2+(y1−ystart)2 d(p_{\text{start}}, p_1) = \sqrt{(x_1 - x_{\text{start}})^2 + (y_1 - y_{\text{start}})^2}
  10. 整体路径效率评估公式(评估路径的有效性): Efficiency=Total Cutting DistanceTotal Travel Distance \text{Efficiency} = \frac{\text{Total Cutting Distance}}{\text{Total Travel Distance}}
  11. 切割路径总长度(包括切割距离和空程距离的总和): Total Path Length=∑i=1nd(pi,pi+1) \text{Total Path Length} = \sum_{i=1}^{n} d(p_i, p_{i+1})

通过这些公式,我们能够对切割路径进行精确的计算和优化,确保每一步都符合生产效率和安全的要求。这些计算帮助我们理解切割过程中的每一步动作,以及如何合理安排“过桥”,确保切割效率和产品质量。

优化策略与算法选择

图论与网络流

通过将切割问题转化为图论问题,其中每个需要切割的形状和“过桥”作为节点,节点间的距离作为边,使用网络流算法优化切割路径和“过桥”位置的配置。

遗传算法

利用遗传算法的全局搜索能力来优化切割路径,适应性函数根据空程长度来评价路径的优劣,通过选择、交叉和变异来迭代找到最优解。

Python代码示例

假设切割点及“过桥”位置已定义,以下代码展示如何使用matplotlib进行可视化:

import matplotlib.pyplot as plt
import numpy as np

# 假设的切割点和过桥
points = np.array([[10, 10], [20, 20], [30, 30], [40, 40], [50, 50]])
bridges = [(np.array([15, 15]), np.array([25, 25]))]  # 假设的过桥位置

# 绘制切割点
plt.scatter(points[:, 0], points[:, 1], color='blue', label='切割点')

# 绘制过桥
for bridge in bridges:
    plt.plot([bridge[0][0], bridge[1][0]], [bridge[0][1], bridge[1][1]], 'k--', label='过桥')



plt.title('钢板切割与过桥布局图')
plt.xlabel('X 坐标')
plt.ylabel('Y 坐标')
plt.legend()
plt.grid(True)
plt.show()

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

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

相关文章

[C语言]典型例题:小蚂蚁爬橡皮筋、买汽水问题、导致单词块、菱形打印……

1、小蚂蚁爬橡皮筋问题 假设橡皮筋长4m&#xff0c;小蚂蚁从一端爬向另一端每天爬1m&#xff0c;且每爬了1m&#xff0c;橡皮筋会立马拉伸4m&#xff0c;在理想条件下&#xff0c;小蚂蚁需要爬多少天可以到达橡皮筋的另一端&#xff1f; 不仔细想&#xff0c;我们很可能认为小蚂…

LeetCode 543.二叉树的直径

题目描述 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,4,5]…

5个Python自动化EDA库

EDA或探索性数据分析是一项耗时的工作&#xff0c;但是由于EDA是不可避免的&#xff0c;所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形&#xff0c;而是获得对数据集的理解&#xff0c;并获得对变量之间的分布和相关…

OpenFeign修改HttpClient为Apache HttpClient 5

OpenFeign中http client 如果不做特殊配置&#xff0c;OpenFeign默认使用JDK自带的HttpURLConnection发送HTTP请求&#xff0c; 由于默认HttpURLConnection没有连接池、性能和效率比较低。所以修改为Apache HttpClient 5。 总结为两步&#xff1a; 加依赖改yml 具体操作请往…

uniapp + uView动态表单校验

项目需求&#xff1a;动态循环表单&#xff0c;并实现动态表单校验 页面&#xff1a; <u--form label-position"top" :model"tmForm" ref"tmForm" label-width"0px" :rulesrules><div v-for"(element, index) in tmForm…

基于Springboot+Vue的Java项目-家政服务平台系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

如果通过Glide 设置图片圆角

要给图片设置一个圆角,通常方法是在ImageView 标签外添加一个CardView 标签,然后设置圆角值,但是今天遇到一个问题就是 RecyclerView Item 中这样操作的话会遇到这样的一个报错: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.rec…

数据结构----顺序表详解

顺序表的定义 顺序表&#xff08;SeqList&#xff09;属于线性表的同一种&#xff0c;它同样具有线性的存储结构&#xff0c;以下是百度百科关于顺序表的定义&#xff1a; 总结下来&#xff0c; 在结构上&#xff0c;顺序表实际上的底层结构就是数组&#xff0c;而顺序表本身也…

链表-----返回倒数第K个节点回文结构的判断相交链表

目录 1.返回倒数第K个节点 2.回文结构的判断 3.相交链表的判断&#xff0c;返回交点 1.返回倒数第K个节点 &#xff08;1&#xff09;返回链表的第k个节点&#xff0c;我们这里的做法是定义两个指针&#xff0c;这两个指针之间相差的是k这个长度&#xff1b;这个过程的实现就…

网络安全知识点

网络安全 1&#xff0e; 网络安全的定义&#xff0c;网络安全的属性。 定义&#xff1a;针对各种网络安全威胁研究其安全策略和机制&#xff0c;通过防护、检测和响应&#xff0c;确保网络系统及数据的安全性。 属性&#xff1a;机密性 认证&#xff08;可鉴别性&#xff09…

手把手带你一起搭建Seata,结合SpringCloud alibaba实战(二)

手把手带你一起搭建Seata&#xff0c;结合SpringCloud alibaba实战&#xff08;二&#xff09; 前言具体实现大致流程配置微服务订单服务库存服务 测试订单服务异常库存服务异常 总结 接下来的一段时间论文解说要暂时放一放&#xff0c;咱们一起来了解下微服务方面的知识&#…

Web-SpringBootWeb

创建项目 后面因为报错&#xff0c;所以我把jdk修改成22&#xff0c;仅供参考。 定义类&#xff0c;创建方法 package com.start.springbootstart.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotati…

使用nacos实现注册中心和配置中心

实现注册中心 在pom文件中导入 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 在bootstrap.yml中写下如下配置 spring:application:name: c…

安卓中对象序列化面试问题及回答

1. 什么是对象的序列化&#xff1f; 答&#xff1a; 序列化是将对象转换为字节流的过程&#xff0c;以便将其存储在文件、数据库或通过网络传输。反序列化则是将字节流重新转换为对象的过程。 2. 为什么在 Android 开发中需要对象的序列化&#xff1f; 答&#xff1a; 在 An…

一些优雅的监控运维技巧

准备工作 安装 sysstat sudo apt install sysstat查看某个进程的cpu情况 pidstst -u -p 256432查看某个进程的RAM情况 pidstst -r -p 256432查看某个进程的IO情况 pidstst -d -p 256432查看某个进程下的线程执行情况 pidstst -t -p 256432查看指定PID的进程对应的可执行文件…

2024五一杯数学建模C题思路分享 - 煤矿深部开采冲击地压危险预测

文章目录 1 赛题选题分析 2 解题思路2.1 问题重述2.2 第一问完整思路2.2 二、三问思路更新 3 最新思路更新 1 赛题 C题 煤矿深部开采冲击地压危险预测 煤炭是中国的主要能源和重要的工业原料。然而&#xff0c;随着开采深度的增加&#xff0c;地应力增大&#xff0c;井下煤岩动…

前端开发攻略---用原生JS在网页中也能实现文本转语音

1、原理 语音合成 (也被称作是文本转为语音&#xff0c;英语简写是 tts) 包括接收 app 中需要语音合成的文本&#xff0c;再在设备麦克风播放出来这两个过程。 Web API中对此有一个主要控制接口 SpeechSynthesis&#xff0c;外加一些处理如何表示要被合成的文本 (也被称为 utte…

6.C++模板(超全)

// 【思考】代码截屏&#xff0c;用荧光笔标写注释 挺清晰的&#xff0c;虽然不太整齐了&#xff08;在文末有尝试这种方法~&#xff09;&#xff0c;就是感觉 // 注释没有那么突出和强调&#xff0c;友友们要不讨论一下&#xff0c;不知道你们看起来是什么感觉&#xff0c;我…

Python 与 TensorFlow2 生成式 AI(一)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 序言 “想象力比知识更重要。” – 阿尔伯特爱因斯坦&#xff0c;《爱因斯坦关于宇宙宗教和其他见解与格言》&#xff08;2009&#xff09;…

安全再升级,亚信安慧AntDB数据库与亚信安全二次牵手完成兼容性互认证

日前&#xff0c;湖南亚信安慧科技有限公司&#xff08;简称&#xff1a;亚信安慧&#xff09;的产品与亚信科技&#xff08;成都&#xff09;有限公司&#xff08;简称&#xff1a;亚信安全&#xff09;再次携手&#xff0c;完成亚信安慧AntDB数据库与亚信安全IPoE接入认证系统…