2021MathorCup大赛A题思路

A题自动驾驶转弯问题

问题一

在交会几何和预测观测车辆行驶轨迹的前提下,我们构建了一个基于约束条件的轨迹模型。利用已有的控制算法即以点线式车辆-道路模型进行设计,忽略车辆与道路形状之间的实际差异,利用参数化曲线表示道路轨迹,车辆根据参数化曲线以及自身状态做出转向动作。由题设条件可知,我们采用界定分析法确定车辆行驶的轨迹区域,选取加速度、最大曲率、安全距离等作为约束条件,在已有的地图模型基础上建立轨迹预测模型[1],并运用MATLAB中的Automated Driving Toolbox进行仿真。

问题二

在问题一的基础上,已知曲率决定转弯半径,方向盘转角决定的是车转弯时轨迹半径的极限值。而车在转弯时,是否需要倒车的条件是由路宽、车距、最小曲率半径所决定的。这里,我们采用路径规划算法对轨迹进行预测,寻找其界限值。由题设条件可知,临界值由安全距离、最小半径、车宽三者共同决定。根据经验可知,当最小半径都不满足一次性转弯时,那么就必须倒车。

问题三

通过寻找约束条件进行非线性规划建模[2],并采用算法实现其路径规划。依据题干条件设定两个场景,场景一为仅存在F或G障碍物;场景二为障碍物F、G同时都存在。利用构建的无人车运动的非完整约束模型和行驶过程中的速度约束条件,并基于障碍项、曲率项、光滑项、场函数构建损失函数,并将其作为优化对象求解轨迹模型。

问题四

利用问题二中得到的约束条件和附件数据计算出最小转弯半径,用AutoCAD建立地图模型。在此基础上,进一步判断当道路中存在人行道时,求解无人车不压线通过的临界值。通过路径规划法计算出无人车在满足

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
很高兴为您提供 Mathor Cup 2022 D 的解思路目描述: 给定一个 $n\times n$ 的矩阵 $A$,其中 $A_{i,j}\in\{0,1\}$。你可以进行任意次以下操作: 1. 将第 $i$ 行取反(即 $A_{i,j}\rightarrow 1-A_{i,j}$); 2. 将第 $j$ 列取反(即 $A_{i,j}\rightarrow 1-A_{i,j}$)。 请你计算通过若干次操作后,能够使得矩阵 $A$ 的每一行和每一列的 $1$ 的个数相等的最小操作次数。 解思路: 本可以使用贪心和二分图匹配的思想来解决。具体步骤如下: 1. 统计每一行和每一列的 $1$ 的个数,设 $row_i$ 表示第 $i$ 行的 $1$ 的个数,$col_j$ 表示第 $j$ 列的 $1$ 的个数。 2. 如果每一行和每一列的 $1$ 的个数都相等,那么无需进行任何操作,直接输出 $0$。 3. 如果某一行 $i$ 的 $1$ 的个数多于其他行的 $1$ 的个数,那么可以将该行取反,将 $row_i$ 减一,将 $col_j$ 加一。 4. 如果某一列 $j$ 的 $1$ 的个数多于其他列的 $1$ 的个数,那么可以将该列取反,将 $col_j$ 减一,将 $row_i$ 加一。 5. 重复步骤 3 和步骤 4,直到每一行和每一列的 $1$ 的个数都相等。 6. 计算进行的操作次数,输出结果。 需要注意的是,为了避免重复计算,我们可以使用二分图匹配的思想来进行操作。将每一行和每一列看做二分图的两个部分,如果某一行 $i$ 的 $1$ 的个数多于其他行的 $1$ 的个数,那么可以将第 $i$ 行和所有 $1$ 的个数比该行少的列建立一条边;如果某一列 $j$ 的 $1$ 的个数多于其他列的 $1$ 的个数,那么可以将第 $j$ 列和所有 $1$ 的个数比该列少的行建立一条边。最后,将二分图的最小路径覆盖数乘以 $2$ 就是最小操作次数。 时间复杂度:$O(n^3)$。 完整代码:
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值