是否有库/技术来收集 Prolog 中最佳子句排序的统计信息?

jmi*_*ite 5 optimization performance prolog swi-prolog sicstus-prolog

我正在编写一个程序,我需要查看字符串是否与特定模式匹配。现在我已经在 Prolog 中实现了它作为规则匹配模式(S),有超过 20 种不同的定义。

我最终通过模式检查谓词将所有二进制字符串运行到​​一定长度。该程序相当慢(就像 Prolog 经常一样),并且由于有很多不同的定义,我理想地希望对它们进行排序,以便最匹配的那些在排序中最早,因此首先由 Prolog 匹配,避免回溯为尽我所能。

我现在正在使用 SWI Prolog,但我可以访问 SICStus,所以我愿意使用它或我可以免费获得的任何 Prolog 解释器。