Constraint-based applications attempt to identify a solution that meets all defined user requirements. If the requirements are inconsistent with the underlying constraint set, algorithms that compute diagnoses for inconsistent constraints should be implemented to help users resolve the "no solution could be found" dilemma. FastDiag is a typical direct diagnosis algorithm that supports diagnosis calculation without predetermining conflicts. However, this approach faces runtime performance issues, especially when analyzing complex and large-scale knowledge bases. In this paper, we propose a novel algorithm, so-called FastDiagP, which is based on the idea of speculative programming. This algorithm extends FastDiag by integrating a parallelization mechanism that anticipates and pre-calculates consistency checks requested by FastDiag. This mechanism helps to provide consistency checks with fast answers and boosts the algorithm's runtime performance. The performance improvements of our proposed algorithm have been shown through empirical results using the Linux-2.6.3.33 configuration knowledge base.
翻译:基于约束的应用程序试图找到满足所有定义用户需求的解。如果这些需求与底层约束集不一致,则应实现计算不一致约束诊断的算法,以帮助用户解决“无法找到解”的困境。FastDiag是一种典型的直接诊断算法,支持无需预判冲突即可进行诊断计算。然而,该方法面临运行时性能问题,尤其是在分析复杂且大规模的知识库时。本文提出了一种新的算法,称为FastDiagP,该算法基于投机编程的思想。它通过集成并行化机制扩展了FastDiag,该机制能够预测并预先计算FastDiag所请求的一致性检查。这一机制有助于快速响应一致性检查,从而提升算法的运行时性能。基于Linux-2.6.3.33配置知识库的实证结果表明了所提出算法在性能上的改进。