# 智能派车调度算法 **Repository Path**: dayangren/Dynamic-vehicle-dispatching-system ## Basic Information - **Project Name**: 智能派车调度算法 - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-25 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 动态智能排车调度系统 基于 Python + FastAPI 后端和 Vue 3 前端的动态车辆调度演示系统。 ## 功能特性 - **智能调度算法**:支持硬性约束(时间、位置、座位、车型)和软性约束(排放标准、车龄、品牌偏好) - **成本优化**:综合考虑车费、空驶费、后续影响空驶费,实现最优分配 - **仪表盘可视化**:统计卡片、成本分布图、车辆使用率图表 - **甘特图展示**:直观显示各车辆的任务时间安排 - **任务管理**:支持任务的创建、编辑、删除和重新调度 ## 项目结构 ``` ├── backend/ # 后端代码 │ ├── main.py # FastAPI 应用入口 │ ├── models.py # 数据模型 │ ├── scheduler.py # 调度算法核心 │ ├── constraints.py # 约束检查 │ ├── cost.py # 成本计算 │ ├── api.py # API 路由 │ ├── mock_data.py # 模拟数据 │ └── requirements.txt # Python 依赖 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # Vue 组件 │ │ ├── views/ # 页面视图 │ │ └── api/ # API 封装 │ ├── package.json │ └── vite.config.js └── tec.MD # 技术设计文档 ``` ## 快速开始 ### 1. 启动后端服务 ```bash cd backend # 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # macOS/Linux # 或 venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt # 启动服务 python main.py # 或使用 uvicorn uvicorn main:app --reload --port 8000 ``` 后端服务将在 http://localhost:8000 启动。 - API 文档: http://localhost:8000/docs - 备用文档: http://localhost:8000/redoc ### 2. 启动前端服务 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务将在 http://localhost:3000 启动。 ## API 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/vehicles | 获取车辆列表 | | GET | /api/tasks | 获取任务列表 | | POST | /api/tasks | 创建任务 | | PUT | /api/tasks/{id} | 更新任务 | | DELETE | /api/tasks/{id} | 删除任务 | | POST | /api/schedule | 执行调度 | | GET | /api/schedule | 获取调度结果 | | GET | /api/schedule/stats | 获取统计数据 | | POST | /api/reset | 重置数据 | ## 调度算法说明 ### 调度流程图 ```mermaid flowchart TD A[输入任务/车辆数据] --> B[任务按开始时间排序] B --> C{逐任务挑选车辆} C --> D[遍历候选车辆] D --> E{硬性约束} E -->|通过| F{软性约束} E -->|不通过| D F -->|通过| G[计算成本指标
车费/空驶/后续影响/预算匹配] F -->|不通过| D G --> H[评分加权
成本/预算/目标完成率] H --> I{是否当前最佳} I -->|是| J[记录最佳车辆] I -->|否| D J --> K{候选遍历结束} K -->|有最佳| L[生成分配/更新车辆状态
位置/可用日期/日程] K -->|无最佳| M[标记未分配任务] L --> C M --> C C -->|全部任务完成| N[局部交换优化] N --> O[输出调度结果/统计] ``` ### 硬性约束 - 时间无冲突(车辆同一时间只能执行一个任务) - 位置可达(考虑空驶距离和所需时间) - 座位足够(车辆座位数 >= 任务需求) - 目的地支持(车辆价格表中有对应条目) ### 软性约束 - 排放标准匹配 - 车龄限制 - 车型偏好 - 品牌偏好 ### 成本核算 - 车费 = 日单价 × 服务天数 - 空驶费 = 空驶距离 × 空驶费率 - 总成本 = 车费 + 空驶费 + 后续影响空驶费 ### 评分权重 - 成本权重: 50% - 预算匹配权重: 20% - 目标完成率权重: 30% ## 技术栈 **后端** - Python 3.11+ - FastAPI - Pydantic - Uvicorn **前端** - Vue 3 - Vite - Element Plus - ECharts - Axios - Day.js