Skip to content

About

在外卖配送系统中,高效地将配送任务分配给骑手对于运营成功至关重要。配送平台需要将多个配送订单分配给 可用骑手,同时需综合考虑配送时间、距离、骑手意愿,以及合单配送(将多个订单合并给同一骑手)的可能性。同时系统允许拒绝订单,并且对骑手接 起对应订单的概率有预测;系统允许一个订单同时指派给多位骑手,最先接起订单的骑手获得订单。系统需要在多个目标之间取得平衡:最大化接单订单 数量、最大化系统收益(以分数表示),并通过智能合单来优化资源利用率。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

solveagent · 骑手任务分配求解器

🎓 学习/竞赛项目 —— 算法竞赛「外卖配送任务分配」的求解器实现,重点在优化建模与自适应搜索策略。 完整设计文档见 AutoSolverAgent/设计文档.md。

题目背景

在外卖配送系统中,高效地将配送任务分配给骑手对于运营成功至关重要。配送平台需要将多个配送订单分配给可用骑手,同时需综合考虑配送时间、距离、骑手意愿,以及合单配送(将多个订单合并给同一骑手)的可能性。同时系统允许拒绝订单,并且对骑手接起对应订单的概率有预测;系统允许一个订单同时指派给多位骑手,最先接起订单的骑手获得订单。系统需要在多个目标之间取得平衡:最大化接单订单数量、最大化系统收益(以分数表示),并通过智能合单来优化资源利用率。

问题建模

  • 输入:制表符分隔文本,每行一个候选分配:task_id_list, courier_id, total_score, willingness(1 个骑手承接 1~2 个任务)
  • 规模:33,780 条候选 / 40 个唯一任务 / 80 个骑手,10 秒/用例时限
  • 本质:带超边的最小权集合覆盖(等价于整数线性规划)
  • 优化目标(Lexicographic):
    1. 首要:覆盖任务数最大化
    2. 次要:总分最小化(score 越低越好)

方案要点

  • 策略族池:Greedy / ILP / LocalSearch / RandomRestart 多策略并存
  • 自适应学习引擎:StrategyRegistry 记录各策略表现(排名、淘汰、变异生成新策略),按用例特征动态选择
  • 评价函数:EvalResult 统一比较(先任务覆盖、后分数)

运行

python AutoSolverAgent/solver_agent.py < input.txt > output.txt
# 样例数据: AutoSolverAgent/large_seed301.txt

状态

  • ✅ 核心求解器与自适应策略引擎完成(含设计文档与样例解)
  • 🚫 未做:Web 界面、多用例批量评测脚本

License: MIT

About

在外卖配送系统中,高效地将配送任务分配给骑手对于运营成功至关重要。配送平台需要将多个配送订单分配给 可用骑手,同时需综合考虑配送时间、距离、骑手意愿,以及合单配送(将多个订单合并给同一骑手)的可能性。同时系统允许拒绝订单,并且对骑手接 起对应订单的概率有预测;系统允许一个订单同时指派给多位骑手,最先接起订单的骑手获得订单。系统需要在多个目标之间取得平衡:最大化接单订单 数量、最大化系统收益(以分数表示),并通过智能合单来优化资源利用率。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages