Online-3D-BPP-DRL
Online-3D-BPP-DRL 是一个基于深度强化学习的开源项目,旨在解决“在线三维装箱”这一经典难题。在物流仓储或货物装载场景中,当物品逐个到达且未来信息未知时,如何实时决定每个物品的摆放位置以最大化空间利用率并保证堆叠稳定,一直是个巨大挑战。该项目通过引入约束深度强化学习算法,让智能体学会在满足物理稳定性规则的前提下,自动做出最优的装箱决策。
相比传统启发式算法,Online-3D-BPP-DRL 的独特亮点在于其能够处理复杂的三维空间约束,并通过神经网络编码状态信息,实现高效的实时推理。代码库不仅提供了完整的训练与测试流程,还包含了多箱体算法、蒙特卡洛树搜索(MCTS)对比实验以及用户研究应用示例,具有很高的可扩展性。
该工具主要适合人工智能研究人员、算法工程师及相关领域的开发者使用。如果你正在探索强化学习在组合优化问题中的应用,或需要为自动化物流系统开发智能调度模块,这个项目提供了扎实的论文复现基准和灵活的代码架构。需要注意的是,当前版本主要面向学术研究,商业使用前需联系作者获取授权。
使用场景
某大型电商仓储中心正面临“双 11"大促期间,传送带上尺寸各异的包裹需实时装入标准货箱的挑战。
没有 Online-3D-BPP-DRL 时
- 空间浪费严重:依赖人工经验或简单的启发式规则(如“先大后小”),无法全局优化,导致货箱平均空隙率高达 25%,增加了运输频次和成本。
- 稳定性风险高:传统算法难以兼顾复杂的物理约束,常出现重物压轻物或重心偏移,导致运输途中货物倒塌损坏。
- 实时响应滞后:面对传送带连续不断的动态包裹流,传统方法计算耗时过长,无法在毫秒级内做出决策,造成流水线拥堵。
- 泛化能力弱:一旦商品尺寸分布发生季节性变化,预设的规则即刻失效,需要工程师重新调整参数甚至重写代码。
使用 Online-3D-BPP-DRL 后
- 装载密度显著提升:利用约束深度强化学习自动探索最优策略,货箱空间利用率提升至 90% 以上,大幅减少包材和物流车次。
- 自动保障堆叠稳定:模型在训练中将物理稳定性作为核心约束,智能规避危险堆叠方式,确保货物在运输过程中的绝对安全。
- 毫秒级在线决策:支持真正的在线序列处理,能在包裹到达瞬间完成放置预测,完美匹配高速自动化流水线的节奏。
- 自适应动态环境:无需人工干预,模型能根据实时输入的包裹序列特征自我调整策略,轻松应对不同品类商品的混合装载场景。
Online-3D-BPP-DRL 通过将复杂的物理约束与深度强化学习结合,实现了从“凭经验装箱”到“智能动态规划”的跨越,显著降低了物流成本并提升了作业安全性。
运行环境要求
- 未说明
可选(通过 --use-cuda 参数启用),具体型号、显存大小及 CUDA 版本未说明
未说明

快速开始
带约束的深度强化学习在线三维装箱问题

Online-3D-BPP-DRL
本仓库包含了论文《带约束的深度强化学习在线三维装箱问题》(Online 3D Bin Packing with Constrained Deep Reinforcement Learning)的实现,该论文发表于 arXiv:2006.14978。
安装
要使该项目正常运行,您需要完成以下两步:
* 安装 'requirements.py' 中列出的 Python 包(通过 'pip install -r requirements.txt')。
* (此代码适用于 Python 3.7)
运行
我们在 'main.py' 中提供了一个统一的接口。以下是运行该项目的一些示例。
训练部分:
示例:在随机生成的序列上训练一个新模型。
您可以运行 'python main.py --mode train --use-cuda --item-seq rs'。大约需要一天时间才能得到一个性能令人满意的模型。
您可以通过运行 'python main.py --help' 查看一些常用参数的信息。我们的项目中还有许多其他参数定义在 'arguments.py' 文件中,所有参数都已设置了默认值,您可以根据需要进行修改。
测试部分:
示例:
如果您想测试一个基于 CUT-2 算法生成的序列训练的模型(更多细节请参阅我们的文章),可以运行以下命令:
'python main.py --mode test --load-model --use-cuda --data-name cut_2.pt --load-name default_cut_2.pt'。
如果您想观察模型在前瞻设置下的表现,可以运行:
'python main.py --mode test --load-model --use-cuda --data-name cut_2.pt --load-name default_cut_2.pt --preview x',其中 x 表示前瞻步数。
此外,我们还提供了用户研究应用、多容器算法以及用于对比的 MCTS 的代码,请查看 'user_study/'、'multi_bin/' 和 'MCTS/' 目录以获取详细信息。
小贴士
* 不同的输入状态尺寸需要不同类型的 CNN 进行编码,您可以在 ./acktr/model.py 中调整网络架构以满足需求。
* 预测掩码主要用于降低 MCTS 的计算成本。如果您只需要 BPP-1 模型,可以在训练过程中用真实掩码替换预测掩码,这样会更容易训练。
* 如果放宽稳定性规则的约束,可能会获得更好的结果,但在实际应用中可能存在风险。
* 我们的实现对网络层数较为敏感,应避免在网络架构中出现过长的层。
* 装箱问题的难度与其物品集密切相关,训练好的模型性能也会受到其影响。
声明
赵航和谢启金是本仓库的共同作者。
部分代码改编自开源项目 'pytorch-a2c-ppo-acktr-gail'(https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail)。
许可证
请注意,此源代码仅用于学术研究目的。未经作者授权,请勿将其用于商业用途。该方法正在申请专利保护。如需商业使用,请联系徐凯(kevin.kai.xu@gmail.com)。
引用
如果您感兴趣,请引用以下论文:
@inproceedings{DBLP:conf/aaai/ZhaoS0Y021,
author = {Hang Zhao and
Qijin She and
Chenyang Zhu and
Yin Yang and
Kai Xu},
title = {Online 3D Bin Packing with Constrained Deep Reinforcement Learning},
booktitle = {Thirty-Fifth {AAAI} Conference on Artificial Intelligence, {AAAI}
2021, Thirty-Third Conference on Innovative Applications of Artificial
Intelligence, {IAAI} 2021, The Eleventh Symposium on Educational Advances
in Artificial Intelligence, {EAAI} 2021, Virtual Event, February 2-9,
2021},
pages = {741--749},
publisher = {{AAAI} Press},
year = {2021},
url = {https://ojs.aaai.org/index.php/AAAI/article/view/16155},
timestamp = {Wed, 02 Jun 2021 18:09:11 +0200},
biburl = {https://dblp.org/rec/conf/aaai/ZhaoS0Y021.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
相似工具推荐
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
funNLP
funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。
cs-video-courses
cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
awesome-machine-learning
awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。