390 lines
11 KiB
Markdown
390 lines
11 KiB
Markdown
# 2.5.3 路径规划分析功能设计说明
|
||
|
||
## 2.5.3.1. 模块描述
|
||
|
||
路径规划分析模块是碰撞检测功能的高级分析模块,负责对多个路径运行的碰撞结果进行分析,生成路径分析报告,选择最佳路径,提供调整建议。该模块通过综合分析多条路径的安全性、效率、转弯难度等指标,为用户提供数据驱动的路径优化建议。
|
||
|
||
该模块与PathAnalysisEngine、PathAnalysisReportGenerator和PathAnalysisService紧密集成,实现全面的路径分析功能。
|
||
|
||
## 2.5.3.2. 功能
|
||
|
||
### 核心功能
|
||
1. **多路径分析**:对多条路径进行综合分析
|
||
2. **路径评分**:根据多维度指标对路径评分
|
||
3. **最佳路径选择**:自动选择最佳路径方案
|
||
4. **路径分组**:按终点对路径进行分组比较
|
||
5. **分析报告生成**:生成详细的路径分析报告
|
||
6. **优化建议**:提供路径调整建议
|
||
|
||
### 子功能
|
||
| 功能编号 | 功能名称 | 功能描述 |
|
||
|---------|---------|---------|
|
||
| 2.5.3.F1 | 安全分析 | 分析路径的安全性和碰撞风险 |
|
||
| 2.5.3.F2 | 效率分析 | 分析路径的效率指标 |
|
||
| 2.5.3.F3 | 转弯分析 | 分析路径的转弯难度 |
|
||
| 2.5.3.F4 | 直达分析 | 分析路径的直达程度 |
|
||
| 2.5.3.F5 | 路径分组 | 按终点对路径分组 |
|
||
| 2.5.3.F6 | 综合评分 | 计算路径的综合评分 |
|
||
| 2.5.3.F7 | 最佳路径 | 推荐最佳路径 |
|
||
| 2.5.3.F8 | 报告生成 | 生成分析报告 |
|
||
| 2.5.3.F9 | 建议生成 | 生成优化建议 |
|
||
|
||
## 2.5.3.3. 性能
|
||
|
||
### 性能指标
|
||
| 指标名称 | 目标值 | 说明 |
|
||
|---------|-------|------|
|
||
| 分析响应时间 | < 3秒 | 单条路径的分析时间 |
|
||
| 批量分析速度 | > 10条/秒 | 多条路径的分析速度 |
|
||
| 报告生成时间 | < 5秒 | 生成分析报告的时间 |
|
||
| 内存占用 | < 300MB | 分析过程的内存占用 |
|
||
|
||
### 性能优化策略
|
||
1. 并行分析多条路径
|
||
2. 分析结果缓存
|
||
3. 增量分析优化
|
||
|
||
## 2.5.3.4. 输入输出项
|
||
|
||
### 1. 字段输入输出
|
||
|
||
#### 输入字段
|
||
| 字段名 | 类型 | 必填 | 说明 |
|
||
|-------|------|-----|------|
|
||
| Routes | List<PathRoute> | 是 | 要分析的路径列表 |
|
||
| Strategy | AnalysisStrategy | 否 | 分析策略,默认Balanced |
|
||
| CollisionData | List<CollisionResult> | 否 | 碰撞数据 |
|
||
|
||
#### 输出字段
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| AnalysisResults | List<PathAnalysisResult> | 分析结果列表 |
|
||
| BestRoute | PathRoute | 最佳路径 |
|
||
| Report | AnalysisReport | 分析报告 |
|
||
| Recommendations | List<Recommendation> | 优化建议 |
|
||
|
||
### 2. 界面交互输入输出
|
||
|
||
#### 界面输入
|
||
- 路径选择
|
||
- 分析策略选择
|
||
- 权重参数调整
|
||
- 报告导出操作
|
||
|
||
#### 界面输出
|
||
- 路径评分显示
|
||
- 对比图表
|
||
- 分析报告预览
|
||
- 建议列表
|
||
|
||
## 2.5.3.5. 算法
|
||
|
||
### 路径评分算法
|
||
```
|
||
算法:多维度路径评分
|
||
输入:路径,碰撞数据,策略
|
||
输出:综合评分
|
||
|
||
1. 计算安全分数(基于碰撞数)
|
||
- 无碰撞:100分
|
||
- 有碰撞:根据碰撞严重程度扣分
|
||
|
||
2. 计算效率分数(基于路径长度)
|
||
- 与最短路径比较
|
||
- 越短分数越高
|
||
|
||
3. 计算转弯难度分数
|
||
- 分析转弯角度
|
||
- 急转弯越多分数越低
|
||
|
||
4. 计算直达分数
|
||
- 分析路径曲折程度
|
||
- 越直达分数越高
|
||
|
||
5. 根据策略计算加权总分
|
||
6. 返回各维度分数和综合分
|
||
```
|
||
|
||
### 路径分组算法
|
||
```
|
||
算法:按终点分组路径
|
||
输入:路径列表
|
||
输出:分组结果
|
||
|
||
1. 初始化分组列表
|
||
2. 对于每条路径:
|
||
3. 获取路径终点
|
||
4. 查找是否已有匹配的组
|
||
5. 如果找到,加入该组
|
||
6. 否则创建新组
|
||
7. 更新各组统计信息
|
||
8. 返回分组列表
|
||
```
|
||
|
||
### 优化建议算法
|
||
```
|
||
算法:生成路径优化建议
|
||
输入:路径分析结果
|
||
输出:建议列表
|
||
|
||
1. 分析路径的薄弱环节
|
||
2. 对于每个问题:
|
||
3. 识别问题类型
|
||
4. 查找相关最佳实践
|
||
5. 生成具体建议
|
||
6. 按优先级排序建议
|
||
7. 返回建议列表
|
||
```
|
||
|
||
## 2.5.3.6. 流程逻辑
|
||
|
||
```
|
||
开始
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 选择要分析的路径│
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 选择分析策略 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 加载碰撞数据 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 执行路径分析 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 按终点分组路径 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 计算各维度分数 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 计算综合评分 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 选择最佳路径 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 生成优化建议 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 生成分析报告 │
|
||
└────────┬────────┘
|
||
│
|
||
┌────┴────┐
|
||
▼ ▼
|
||
┌────────┐ ┌────────┐
|
||
│查看报告│ │导出报告│
|
||
└───┬────┘ └───┬────┘
|
||
│ │
|
||
└─────┬─────┘
|
||
│
|
||
▼
|
||
结束
|
||
```
|
||
|
||
## 2.5.3.7. 接口
|
||
|
||
### 公共接口
|
||
```csharp
|
||
/// <summary>
|
||
/// 路径分析引擎
|
||
/// </summary>
|
||
public class PathAnalysisEngine
|
||
{
|
||
/// <summary>
|
||
/// 分析单条路径
|
||
/// </summary>
|
||
/// <param name="route">路径对象</param>
|
||
/// <param name="context">分析上下文</param>
|
||
/// <returns>详细分析结果</returns>
|
||
public PathDetailedAnalysis AnalyzePath(PathRoute route, AnalysisContext context);
|
||
|
||
/// <summary>
|
||
/// 对多条路径进行分组分析
|
||
/// </summary>
|
||
/// <param name="routes">路径列表</param>
|
||
/// <returns>分组结果</returns>
|
||
public List<EndpointGroup> GroupPathsByEndpoint(List<PathRoute> routes);
|
||
|
||
/// <summary>
|
||
/// 分析并分组多条路径
|
||
/// </summary>
|
||
public List<EndpointGroup> AnalyzeAndGroupPaths(List<PathRoute> routes, string strategy);
|
||
|
||
/// <summary>
|
||
/// 选择最佳路径
|
||
/// </summary>
|
||
/// <param name="analyses">分析结果列表</param>
|
||
/// <returns>最佳路径</returns>
|
||
public PathRoute SelectBestPath(List<PathDetailedAnalysis> analyses);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 路径分析报告生成器
|
||
/// </summary>
|
||
public class PathAnalysisReportGenerator
|
||
{
|
||
/// <summary>
|
||
/// 生成分析报告
|
||
/// </summary>
|
||
public AnalysisReport GenerateReport(List<EndpointGroup> groups, string strategy);
|
||
|
||
/// <summary>
|
||
/// 导出报告
|
||
/// </summary>
|
||
public void ExportReport(AnalysisReport report, string filePath, ReportFormat format);
|
||
}
|
||
```
|
||
|
||
## 2.5.3.8. 注释设计
|
||
|
||
### 代码注释规范
|
||
```csharp
|
||
/// <summary>
|
||
/// 分析策略
|
||
/// </summary>
|
||
public enum AnalysisStrategy
|
||
{
|
||
/// <summary>
|
||
/// 安全优先
|
||
/// </summary>
|
||
SafetyFirst,
|
||
|
||
/// <summary>
|
||
/// 效率优先
|
||
/// </summary>
|
||
EfficiencyFirst,
|
||
|
||
/// <summary>
|
||
/// 平衡策略
|
||
/// </summary>
|
||
Balanced,
|
||
|
||
/// <summary>
|
||
/// 自定义权重
|
||
/// </summary>
|
||
Custom
|
||
}
|
||
|
||
/// <summary>
|
||
/// 路径详细分析结果
|
||
/// </summary>
|
||
public class PathDetailedAnalysis
|
||
{
|
||
/// <summary>
|
||
/// 路径ID
|
||
/// </summary>
|
||
public string RouteId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 路径名称
|
||
/// </summary>
|
||
public string RouteName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 安全分数(0-100)
|
||
/// </summary>
|
||
public double SafetyScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 效率分数(0-100)
|
||
/// </summary>
|
||
public double EfficiencyScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 转弯难度分数(0-100)
|
||
/// </summary>
|
||
public double TurnDifficultyScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 直达分数(0-100)
|
||
/// </summary>
|
||
public double TortuosityScore { get; set; }
|
||
|
||
/// <summary>
|
||
/// 综合加权评分
|
||
/// </summary>
|
||
public double WeightedScore { get; set; }
|
||
}
|
||
```
|
||
|
||
## 2.5.3.9. 数据结构
|
||
|
||
### PathDetailedAnalysis 结构
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| RouteId | string | 路径ID |
|
||
| RouteName | string | 路径名称 |
|
||
| TotalLength | double | 总长度(米) |
|
||
| EstimatedTime | double | 预估时间(秒) |
|
||
| SafetyScore | double | 安全分数(0-100) |
|
||
| EfficiencyScore | double | 效率分数(0-100) |
|
||
| TurnDifficultyScore | double | 转弯难度分数(0-100) |
|
||
| TortuosityScore | double | 直达分数(0-100) |
|
||
| WeightedScore | double | 综合加权评分 |
|
||
| CollisionCount | int | 碰撞次数 |
|
||
| HotspotCount | int | 热点数量 |
|
||
|
||
### EndpointGroup 结构
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| GroupId | string | 组ID |
|
||
| GroupName | string | 组名称 |
|
||
| EndPoint | Point3D | 终点坐标 |
|
||
| EndPointDescription | string | 终点描述 |
|
||
| PathAnalyses | List<PathDetailedAnalysis> | 路径分析列表 |
|
||
| BestPath | PathDetailedAnalysis | 最佳路径 |
|
||
| AverageScore | double | 平均评分 |
|
||
|
||
### AnalysisReport 结构
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| ReportId | string | 报告ID |
|
||
| GeneratedTime | DateTime | 生成时间 |
|
||
| Strategy | AnalysisStrategy | 分析策略 |
|
||
| Groups | List<EndpointGroup> | 分组结果 |
|
||
| OverallBestPath | PathRoute | 整体最佳路径 |
|
||
| Recommendations | List<Recommendation> | 优化建议 |
|
||
| Summary | string | 分析摘要 |
|
||
|
||
### Recommendation 结构
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| Id | string | 建议ID |
|
||
| Type | RecommendationType | 建议类型 |
|
||
| Priority | int | 优先级(1-5) |
|
||
| Title | string | 建议标题 |
|
||
| Description | string | 建议描述 |
|
||
| AffectedPath | string | 相关路径 |
|
||
| ExpectedImprovement | string | 预期改进 |
|
||
|
||
### RecommendationType 枚举
|
||
| 值 | 说明 |
|
||
|---|------|
|
||
| Safety | 安全改进 |
|
||
| Efficiency | 效率提升 |
|
||
| PathSmoothing | 路径平滑 |
|
||
| CollisionAvoidance | 碰撞避免 |
|
||
| AlternativeRoute | 替代路径 |
|