我正在构建一个专家系统,方法是将CLIPS 6.31嵌入到C++应用程序中,处理中等大小的数据流,并要求几乎实时的响应(例如,总分析时间不应超过40毫秒)。到目前为止,我向推理机的“入口点”提供了大约430个事实(知识库由8个规则组成,其中大多数规则是通过EnvRefresh(...)实现的,每次迭代都会触发),导致响应时间在600到700 ms之间振荡,这远远超出了所需的范围。有什么办法可以加速推理吗?如果实时响应是重要的,那么规则模式会有多大?剪辑是否完全适合这样的实时应用程序,还是应该替换为CLIPS/R2或类似的东西?
发布于 2020-01-09 02:40:25
仅用代码的一般描述就很难分析性能问题。下面是关于堆栈溢出的两个问题,说明可以重写以提高性能的规则:
How to optimize pattern matching between different templated facts in CLIPS
您还可以在启用分析功能的情况下编译您的C++程序,以查看所花费的时间。使用refresh命令作为正常执行的一部分会引发一些危险信号。
上一次我听说,CLIPS/R2不再可用,部分原因是CLIPS 6.3的性能提高。
https://stackoverflow.com/questions/59655696
复制相似问题