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

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

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

作为经验丰富的数学建模团队,我们将为你带来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()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年十款开源测试开发工具推荐(自动化、性能、混沌测试、造数据、流量复制)

今天为大家奉献一篇测试开发工具集锦干货。在本篇文章中&#xff0c;将给大家推荐10款日常工作中经常用到的测试开发工具神器&#xff0c;涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。 1、AutoMeter-API 自动化测试平台 AutoMeter 是一款针对分布式服务&…

DigitalOcean 托管 Kafka 新增横向扩展功能

自2023年9月推出以来&#xff0c;DigitalOcean托管的Kafka已经使初创公司、不断增长的数字业务以及独立软件供应商(ISV)能够改善实时数据处理和分析&#xff0c;从而做出更具洞察力的决策。在新的一年里&#xff0c;我们很高兴地宣布DigitalOcean托管Kafka的横向扩展功能&#…

写文献综述常用的几种深度神经网络模型!

写文献综述常用的几种深度神经网络模型 卷积神经网络&#xff08;CNN&#xff09; 解释说明&#xff1a;专门用于处理图像和图像数据的深度学习模型。它通过卷积层、池化层等操作提取图像特征。应用&#xff1a;图像分类、目标检测、人脸识别等。未来改进&#xff1a;进一步提…

数据结构篇2—《单链表(不带头单向不循环链表)》

文章目录 &#x1f6a9;前言1、单链表的内涵(1) 逻辑结构(2) 物理结构 2、链表的分类3、单链表的具体实现(1) 框架结构(2) SingleLinkList.h头文件的实现(3)SingleLinkList.c源文件的实现①SLTPushBack()尾插函数②SLTPushFront()头插函数③SLTPopBack()尾删函数④SLTPopFront(…

高效管理—影视管理系统_后台源码+APP源码+电影数据

高效管理—影视管理系统 产品概述产品展示演示地址产品功能产品优势产品服务源码领取下期更新预报 产品概述 本产品是一个功能强大且易于使用的影视资源管理工具&#xff0c;它提供了一个集中管理和组织电影、电视剧、纪录片等影视作品的平台&#xff0c;帮助用户高效地管理和…

easyExcel - 带图片导出

目录 前言一、情景介绍二、问题分析三、代码实现1. 单图片导出2. 多图片导出3. 多图片导出&#xff08;优化&#xff09; 前言 Java-easyExcel入门教程&#xff1a;https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如何使用 easyExcel&#xff0c;以及写…

中间件之异步通讯组件RabbitMQ入门

一、概述 微服务一旦拆分&#xff0c;必然涉及到服务之间的相互调用&#xff0c;目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中&#xff0c;调用者发起请求后需要等待服务提供者执行业务返回结果后&#xff0c;才能继续执行后面的业务。也就是说调用者在调用…

【星海随笔】windows 上跑MySQL

step one 使用 WSL 在 Windows 上安装 Linux wsl官方文档 在管理员模式下打开 PowerShell windows上安装wsl wsl --install查看哪些是可用的 wsl --list --onlineC:\Windows\System32\drivers\hosts docker-desktop下载官网&#xff1a;Install Docker Desktop on Windows …

[ log日志画图]分割模型训练结束生成相关日志运用代码画图

文章目录 [ log日志画图]分割模型训练结束生成相关日志运用代码画图我的log文件&#xff1a;画图&#xff1a;1.loss1.1 loss是干嘛的1.2 代码1.3 生成图 2.DICE.IOU2.1 DICE,IOU是干嘛的(常规介绍)2.2 代码2.3 生成图小白tip [ log日志画图]分割模型训练结束生成相关日志运用代…

ROS1快速入门学习笔记 - 12ROS中的坐标管理系统

目录 一、机器人作中的坐标变换 二、海龟案例 一、机器人作中的坐标变换 TF功能包能干什么&#xff1f; 五秒钟之前&#xff0c;机器人头部坐标系相对于全局坐标系的关系是什么样子的&#xff1f;机器人夹取的物体i相对于机器人中心坐标系的位置在哪里&#xff1f;机器人中心…

Linux 第十七章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

【触摸案例-控件不能响应的情况 Objective-C语言】

一、接下来,我们来说这个“控件不能响应的情况”, 1.素材里边,有一个“不接受用户交互的情况”,这么一个代码,把它打开, 把这个项目啊,复制过来,改一个名字,叫做“04-控件不能响应的情况”, 打开之后,command + R,运行一下, 在storyboard上,你也可以看得出来,我…

Python绘制的好看统计图

代码 sx [Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, P…

C++ 多态详解

文章目录 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的两个例外 2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 多态的原理3.1 虚函数表3.2多态的原理 4. 单继承和多继承关系的虚函数表4.1 单继…

C++Day 7 作业

1、lambda #include <iostream>using namespace std;int main() {int a 100;int b 90;int temp;auto fun [&]()mutable->int {temp a;ab;btemp;};fun();cout<<a<<endl;return 0; } 2、vector #include <iostream> #include <vector>…

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程&#xff0c;避免人为频繁点击脚本的构思与源码。 加油&#xff01;为实现全部电脑自动化办公而奋斗&#xff01; 为实现摆烂躺平的人生而奋斗&#xff01;&#xff01;&#xff…

python项目入门新手攻略

最近工作需要接手了代码量比较大的python开发的项目&#xff0c;平时写python不多&#xff0c;记录一下如何熟悉项目。 分析调用流程-pycallgraph 因为代码量比较大&#xff0c;所以希望通过工具生成代码调用流程&#xff0c;因此用到了pycallgraph。 pycallgraph&#xff0…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习三

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

56.基于SSM实现的在线教育网站系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;采用Java的SSM框架作为开发技术&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的在线教育网站的设计与实现管理工作系统化、规范…

Scikit-Learn回归树

Scikit-Learn回归树 1、决策树1.1、什么是决策树1.2、决策树学习的步骤1.3、决策树算法 1、决策树 决策树&#xff08;DTs&#xff09;是一种用于回归和分类的有监督学习方法。通常&#xff0c;决策树用于分类问题&#xff1b;当决策树用于回归问题时&#xff0c;称为回归树。回…