C 题 老外游中国
最近,“city 不 city”这一网络流行语在外国网红的推动下备受关注。随着我 国过境免签政策的落实,越来越多外国游客来到中国,通过网络平台展示他们在 华旅行的见闻,这不仅推动了中国旅游业的发展,更是在国际舞台上展现了一个 真实而生动的中国,一举多得。
假设外国游客入境后能在中国境内逗留 144 小时,且能从任一城市附近的机 场出境。由于每个城市景点较多,为了便于外国游客能够游览到更多的城市,现 假定“每个城市只选择一个评分最高的景点游玩”,称之为“城市最佳景点游览原则”。
现有一个包含中国(不含港澳台)352 个城市的旅游景点的数据集,每个城 市的 csv 文件中有 100 个景点,每个景点的信息包含有景点名称、网址、地址、 景点介绍、开放时间、图片网址、景点评分、建议游玩时长、建议游玩季节、门 票信息、小贴士等。
请建立数学模型,回答下列问题:
问题 1 请问 352 个城市中所有 35200 个景点评分的最高分(Best Score,简 称 BS)是多少?全国有多少个景点获评了这个最高评分(BS)?获评了这个最 高评分(BS)景点最多的城市有哪些?依据拥有最高评分(BS)景点数量的多 少排序,列出前 10 个城市。
问题 2 假如外国游客遵循“城市最佳景点游览原则”,结合城市规模、环境环保、人文底蕴、交通便利,以及气候、美食等因素,请你对 352 个城市进行综合评价,选出“最令外国游客向往的50 个城市”。
问题 3 现有一名外国游客从广州入境,他想在 144 小时以内游玩尽可能多 的城市,同时要求综合游玩体验最好,请你规划他的游玩路线。需要结合游客的 要求给出具体的游玩路线,包括总花费时间,门票和交通的总费用以及可以游玩 的景点数量。他的要求有:
① 遵循城市最佳景点游览原则;
② 城市之间的交通方式只选择高铁;
③ 只在“最令外国游客向往的 50 个城市”中选择要游玩的城市。
问题 4 如果将问题 3 的游览目标改为:既要尽可能的游览更多的城市,又 需要使门票和交通的总费用尽可能的少。请重新规划游玩路线,并给出门票和交 通的总费用,总花费时间以及可以游玩的城市数量。
问题 5 现有一名外国游客只想游览中国的山景,他乘飞机入境中国的城市不限。请你为他选择入境的机场和城市,并个性化定制他的 144 小时旅游路线, 既要尽可能的游览更多的山,又需要使门票和交通的总费用尽可能的少。需要结 合游客的要求给出具体的游玩路线,包括总花费时间,门票和交通的总费用以及 可以游玩的景点数量。他的要求有:
① 每个城市只游玩一座评分最高的山;
② 城市之间的交通方式只选择高铁;
③ 旅游城市不局限于“最令外国游客向往的 50 个城市”,游览范围拓展到352 个城市。
问题1
-
读取数据:首先,需要读取所有352个城市的CSV文件,并提取每个景点的评分数据。
-
计算最高分:遍历所有景点的评分,找出最高分(BS)。
-
统计最高分景点数量:统计有多少个景点的评分达到了BS。
-
找出拥有最多最高分景点的城市:对每个城市,统计其拥有的BS评分景点数量,并按数量降序排序,列出前10个城市。
python复制代码
# 假设所有景点数据已加载到 data_dict,其中 key 是城市名,value 是该城市的景点列表 |
max_score = 0 |
max_score_count = 0 |
city_max_score_counts = {} |
for city, attractions in data_dict.items(): |
city_max_score_counts[city] = 0 |
for attraction in attractions: |
score = attraction['景点评分'] |
if score > max_score: |
max_score = score |
max_score_count = 1 |
elif score == max_score: |
max_score_count += 1 |
if score == max_score: |
city_max_score_counts[city] += 1 |
# 找出拥有最多最高分景点的城市 |
sorted_cities = sorted(city_max_score_counts.items(), key=lambda x: x[1], reverse=True)[:10] ............................................................................. |
B 题 VLSI 电路单元的自动布局
超大规模集成电路(VLSI,Very Large Scale Integration)将大量电路单元集 成于单一芯片。随着设计复杂度增加,如今开展 VLSI 设计已离不开电子设计自 动化(EDA,Electronic Design Automation)工具的支持。EDA 作为算法密集型 产业,需要对数千种情境进行快速设计探索,是国家关键技术领域。其中,电路 单元的自动布局是 EDA 研究的核心问题之一。
电路单元的自动布局旨在矩形布局区域内确定所有电路单元位置,以最小化 单元之间总连接线长并避免单元重叠。由于这是一个 NP-难问题,通常分为全局 布局和详细布局两个步骤。全局布局大致确定单元位置,允许单元重叠;详细布 局则消除重叠并进一步优化。本问题聚焦于全局布局,将电路单元视为不同大小 的矩形,矩形内分散有若干个连线接口,电路单元之间通过连线接口形成若干组 连接关系。全局布局的目标是最小化总连接线长,同时满足单元密度约束。总连 接线长等于每组有连接关系的电路单元的线长之和。由于布局阶段尚未实际布线, 每组线长通常可通过半周长线长(HPWL,Half-Perimeter Wirelength)或直线型 斯坦纳最小树(RSMT,Rectilinear Steiner Minimal Tree)估计,要求连线水平或 竖直。HPWL 为连线接口外接矩形周长的一半,RSMT 为通过插入斯坦纳点构建 的线段长度之和。单元密度约束通过将矩形布局区域网格化后计算。每个网格的 单元密度等于与网格重叠的电路单元面积和网格面积的比值,限制不超过特定阈 值。附件 1 提供全局布局的中间状态,包括每组有连接关系的电路单元及其连线 接口名称、连线接口坐标和对应的 HPWL 和 RSMT 线长。附件 2 给出布局区域 尺寸、网格划分粒度和密度阈值、电路单元的尺寸、坐标及其连线接口的基本信 息。
图 1. VLSI 电路单元自动布局示意图。
请建立数学模型解决以下问题:
问题 1 图 2 展示了 3 组具有不同连线接口数的HPWL 和 RSMT 线长估计示 意图。RSMT 是布局阶段理想的线长表征,但是构建斯坦纳树是 NP 难问题。 HPWL 简单有效,但对多连线接口情形估计偏小。根据附件 1 提供的信息,请设 计一个与电路单元连线接口坐标相关的线长评估模型。该模型应满足:(1)每组 估计线长与对应 RSMT 的差值尽可能小;(2)能应用于评估附件 1 中的总连接 线长。
图 2. 具有不同连线接口数目的 HPWL 和 RSMT 线长估计示意图。若布局仅包含这 3组电路单元连接关系,HPWL 和 RSMT 评估的总连接线长分别为 30和 32。
问题 2 图 3 展示了单元密度计算示意图,请以此设计一个与电路单元坐标
相关的网格密度评估模型。应用问题 1 构建的线长评估模型,整合密度计算,建 立一个数学模型,目标为:(1)最小化总连接线长;(2)满足单元密度约束。根 据附件 1 和附件2 提供的信息,应用此模型完成全局布局,输出总连接线长(HPWL),并可视化结果(电路单元的位置)。
问题 1: 线长评估模型
模型描述
为了设计一个与电路单元连线接口坐标相关的线长评估模型,我们需要一个既能接近 RSMT 又易于计算的估计方法。考虑到RSMT 是 NP-难问题,我们可以采用一个基于HPWL 的调整模型,该模型根据接口数量和位置对 HPWL 进行修正。
修正 HPWL 模型
对于每组连接关系 i,假设有 ni 个连线接口,每个接口的坐标为 (xij,yij),其中 j=1,2,…,ni。我们首先计算 HPWL,然后基于接口数量 ni 和接口间的相对位置进行修正。
-
计算 HPWL:
对于每组连接关系 i,首先计算所有接口的最小外接矩形,其周长为 Pi。则 HPWL 为 Pi/2。 -
修正系数:
我们引入一个修正系数 αi,该系数基于接口数量 ni 和接口间的几何配置。一个简单的方法是使用接口数量的线性或多项式函数:
\alpha_i = 1 + \beta \cdot (n_i - 1) + \gamma \cdot \sum_{j=1}^{n_i-1} \sum_{k=j+1}^{n_i} \text{dist}(j, k) \] 其中,$\beta$ 和 $\gamma$ 是待定的参数,$\text{dist}(j, k)$ 是接口 $j$ 和接口 $k$ 之间的欧氏距离。
-
修正后的线长:
修正后的线长 Li 为:
Li=αi⋅2Pi
-
参数优化:
使用附件 1 中提供的 RSMT 数据,通过优化算法(如最小二乘法)来拟合 β 和 γ,使得修正后的线长总和与 RSMT 总线长的差异最小化。
评估模型
利用上述模型,我们可以评估附件 1 中的总连接线长。对于所有组 i,计算修正后的 Li 并求和得到总连接线长。
问题 2: 网格密度评估与全局布局模型
网格密度评估模型
...................................................................
A 题 机器臂关节角路径的优化设计
机器臂是一种由多个连杆和关节组成的自动化装置,广泛应用于工业生产、精密操作、危险环境作业和物流等领域。其主要作用包括提高生产效率、执行精 密操作、适应恶劣环境以及优化物流流程。当前有关机器臂的研究重点包括运动 学与动力学建模、关节角路径的优化设计以及路径规划等。这些研究旨在提升机 器臂的性能和应用范围,确保其在各种复杂任务中的高效性和精确性。其中,关 节角路径的优化设计尤为重要,它直接影响着机器臂的精度和能效。关节角路径的优化设计涉及到多个相互冲突和影响的目标。最小化输出误差(即机器人实际动作与预期动作之间的偏差)是优化任务的首要目标,特别关注 末端误差这一关键部分。末端误差描述的是一次任务中机器臂末端部位与目标位 置之间的位置偏差。例如,在使用机器臂拾取货物时,通常更关注末端是否准确 到达货物的位置,而不太关注各关节的具体位置。在执行一次任务的过程中,由于各个关节之间的杠杆长度不变,机器臂通常 通过调整关节角度来完成任务。而在调整关节角度的过程中会由于关节转动、机 器臂克服重力势能做功等产生各种能耗,如何在末端误差允许的范围内使得能耗 最小化,是另一个研究重点。例如,在机器臂拾取货物的过程中,末端不一定要 精准地到达目标位置的正中心,如果对于关节角路径的优化能减少能耗,微小的 误差是被允许的。在工业、服务业等各个领域,机器臂通常需要执行多次任务。比如,在工业 生产线上,机器臂需要对在不同位置的货物依次完成抓取;为了更好地完成任务,需要考虑末端误差和能耗,同时对底座移动路径和关节角路径进行优化设计。六自由度机器臂在工业应用中因其极高的灵活性和多功能性而被广泛使用,能够处理各种复杂的任务。本文中所有任务均依赖于六自由度机器臂的执行,需 解决的问题如下:
问题 1 为方便后续建模,请先绘制出零位状态(�1=0°、�2=−90°、�3=0°、�4=180°、�5=−90°、�6=0°)的六自由度机器臂简图,机器臂初始参数(包括关节的初始位置,角度等)如表 1 所示。假设机器臂收到一次抓取货物的任务,目标点相对于机器臂的位置为(1500mm,1200mm,200mm),请建立机器臂运 动的数学模型,并以最小化末端误差为目标,对机器臂的关节角路径进行优化。表 1 机器臂初始Denavit-Hartenberg(D-H)参数
关节 i | ��/(mm) | ��/(°) | ��/(mm) | ��关节变化范围/(°) |
1 | 0 | 0 | 600 | -160~160 |
2 | 300 | -90 | 0 | -150~15 |
3 | 1200 | 0 | 0 | -200~80 |
4 | 300 | -90 | 1200 | -180~180 |
5 | 0 | -90 | 0 | -120~120 |
6 | 0 | -90 | 0 | -180~180 |
问题 2 在第一问的基础上,已知机器臂质量和末端载重之和为 5kg,各个关节的转动惯量和平均角速度如表 2 所示。假设末端误差(末端误差指目标点坐标 与机器臂端部坐标之间的欧式距离)允许的范围为±200mm,请以最小化末端误 差和能耗为目标,对机器臂的关节角路径进行优化。
表 2关节转动能耗参数
关节 i | 转动惯量(kg ∙ m²) | 平均角速度(rad/s) |
1 | 0.5 | 2.0 |
2 | 0.3 | 1.5 |
3 | 0.4 | 1.0 |
4 | 0.6 | 2.5 |
5 | 0.2 | 3.0 |
6 | 0.4 | 2.0 |
问题 3 在问题二的基础上,假设机器臂收到一次货物抓取任务,需要绕过 障碍物抓取一个货物,收到指令后,机器臂底座(移动过程中视为质点,为了简 化问题,假设移动的能耗不考虑,只考虑机器臂抓取过程中的能耗)先移动到目 标点附近,然后再进行抓取动作。机器臂底座栅格图中默认无法沿斜线移动,机 器臂底座需要回到起点。机器臂出发时的状态与问题一中的零位状态一致。机器臂的所有关节均无法从障碍上方越过进行物体抓取。请以最小化末端误差和能耗 为目标,设计出最优底座移动路径和最优关节角路径,并将底座移动路径用栅格 图可视化。货物和障碍物的位置见“附件.xlsx”中的 Sheet1。
问题 4 假设机器臂收到一次完整的货物抓取任务,需要绕过障碍物抓取多 个货物,请以最小化末端误差和能耗为目标,设计出最优底座移动路径和关节角 路径,并将底座移动路径用栅格图可视化。货物和障碍物的位置见“附件.xlsx”中 的 Sheet2。请在结果中明确给出总末端误差和总能耗。
为了解决这些问题,我们需要采用一系列数学方法和编程技术,包括运动学建模、优化算法(如遗传算法、梯度下降法或动态规划)以及路径规划算法。以下是针对每个问题的具体解决方案框架:
问题 1: 绘制图并优化关节角路径
-
绘制图:
-
使用CAD软件或绘图工具(如MATLAB, Python的matplotlib等)根据D-H参数和零位状态绘制六自由度机器臂的简图。
-
-
建立数学模型:
-
使用D-H参数法建立机器臂的正向运动学方程,将关节角度转换为末端执行器的位置和姿态。
-
定义末端误差为目标函数,即目标点与实际末端执行器位置之间的欧式距离。
-
-
优化关节角路径:
-
使用优化算法(如梯度下降法、遗传算法等)来最小化末端误差。
-
设定合适的初始关节角,并迭代调整关节角,直至末端误差满足要求或达到迭代次数上限......................................................
-