NavisworksTransport/doc/introduction/2.5.3_路径规划分析功能设计说明.md

390 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | 替代路径 |