如何增大LPG planner的MAX_RELEVANT_FACTS?技术求助
LPG Planner 相关问题解决方案
修改 MAX_RELEVANT_FACTS 的值
LPG 的 MAX_RELEVANT_FACTS 是编译时定义的常量,无法通过运行参数调整,需要修改源码后重新编译:
- 找到 LPG 源码中的配置头文件(通常是
globals.h或类似命名的文件),定位到#define MAX_RELEVANT_FACTS 15000这一行。 - 将数值修改为更大的阈值(比如 30000、50000,根据你的问题规模调整)。
- 重新编译整个 LPG 项目,确保修改生效。
- 注意:增大该值会提升内存占用,需确保运行机器有足够的 RAM,避免出现内存溢出问题。
替代规划器推荐(支持 C++/Python 对接)
如果修改阈值后仍无法解决问题,或不想修改源码,以下规划器更适合处理含大量派生谓词的大规模问题:
- Fast Downward:开源经典规划器,完美支持 PDDL 2.2,对派生谓词的处理效率较高,内存管理更灵活。可通过 Python 接口直接调用,或集成其 C++ 核心代码。
- FD-Hyper:Fast Downward 的扩展版本,针对复杂领域做了优化,在处理大量事实和派生谓词时性能更优,同样支持 C++/Python 对接。
- Metric-FF:老牌规划器,对 PDDL 标准支持全面,内存占用可控,可通过脚本调用的方式与 Python 集成,能稳定处理较多派生谓词的场景。
- Pyperplan:纯 Python 实现的规划器,对接 Python 生态极为便捷,适合快速原型开发,能处理中等规模的派生谓词问题。
内容的提问来源于stack exchange,提问作者Ilenia D'Angelo
相关产品推荐
相关产品推荐

