DD-suite:用于优化目的构建决策图的跨平台软件包
DD-suite: A cross-platform package to build Decision Diagrams for optimization purposes
浏览论文内容
中文总结 AI 辅助
研究推出跨平台开源DD-suite软件包,支持Python和C++,可构建各类DDs,兼具可扩展性与竞争力性能,为离散优化提供易用工具。
中文摘要 AI 辅助
决策图(Decision Diagrams,简称DDs)已成为离散优化领域的强大工具,支持多种算法,涵盖割生成程序、分解方法及专用分支定界搜索。尽管其应用不断扩展,但 adoption 仍受限,部分原因是现有大多数DD代码针对特定算法或应用定制,难以复用。我们推出DD-suite,一款用于构建和操作离散优化DDs的跨平台开源软件包。DD-suite通过统一建模接口同时支持Python和C++,允许用户为任何以递归形式表达的离散优化问题构建精确、受限及松弛DDs。该软件包实现了DD归约程序、获取原始和对偶界的最短路径例程、可视化工具,以及广泛的自动化测试套件。此外,它包含详尽文档、支持网页,以及四个组合优化问题的即用型示例。DD-suite并非封闭求解器,而是设计为可扩展构建块:用户可添加新构建机制或在生成的图上运行自定义算法,我们以嵌入最先进混合整数规划求解器的基于DD的割平面程序为例说明这一点。数值实验表明,C++实现的运行速度是Python实现的5-6倍,且生成的DDs完全一致,同时与专用Rust框架ddo相比,性能仅相差一个小常数因子,证实DD-suite兼具易用、可扩展的代码库与有竞争力的性能。
英文摘要
Decision diagrams (DDs) have become a powerful tool for discrete optimization, supporting a wide range of algorithms that span cut-generation procedures, decomposition methods, and specialized branch-and-bound searches. Despite this growth, their adoption remains limited, partly because most existing DD code is tailored to a specific algorithm or application and is therefore hard to reuse. We introduce DD-suite, a cross-platform, open-source software package for building and manipulating DDs for discrete optimization. DD-suite is available in both Python and C++ through a shared modeling interface, and lets users construct exact, restricted, and relaxed DDs for any discrete optimization problem expressed in recursive form. The package implements the DD reduction procedure, shortest-path routines for obtaining primal and dual bounds, a visualization tool, and an extensive automated test suite. Furthermore, it includes extensive documentation, a support webpage, and ready-to-use examples for four combinatorial problems. Rather than a closed solver, DD-suite is designed as an extensible building block: users can add new construction mechanisms or run custom algorithms on top of the resulting diagram, as we illustrate with a DD-based cutting plane procedure embedded in a state-of-the-art mixed-integer programming solver. Our numerical experiments show that the C++ implementation is 5-6 times faster than the Python one while producing identical diagrams, and remains within a small constant factor of ddo, a specialized Rust framework, confirming that DD-suite combines an accessible, extensible codebase with competitive performance.