我正在考虑一种更有效地处理数据的方法。让我解释一下:
目前,有一个名为Rules
的类,它有很多成员函数,如Rules::isForwardEligible()
,Rules::isCurrentNumberEligible()
....所以这些函数用于检查具体的情况(当其他进程调用它们时),它们都返回bool值。
在这些函数的主体中是if
s,它将查询DB以比较数据,最后返回turn或false。
所以整个事情就像if(Rules::isCurrentNumberEligible())
--->检查Rules::isCurrentNumberEligible()
---> if(xxxx)
中的内容(xxxx将再次成为另一个函数,查询数据库),I认为这种方式并不好。我想改进它。
我想象的是使用更少的代码,但查询更多信息。
所以我可以在第一步if(Rules::isCurrentNumberEligible())
查询,我可以为查询设置不同的表,所以像if(xxx){if(xx){if(xx)....}}
这样的东西会更少。一个解决方案是建立一个类,其角色就像一个协调员,每次问他不同的查询。它适合吗?
我不确定这是控制它的好方法,或者可能有一些好的解决方案。请帮助我,谢谢!
答案 0 :(得分:1)
基于规则的系统的经典算法是RETE algorithm。它致力于最大限度地减少要评估的规则数量。诀窍在于,除非至少有一个相关事实发生变化,否则重新评估规则是没有意义的。
一般而言,应首先查询这些规则,以保证最大程度的信息获取。这有助于在尽可能少的问题中确定相应的案例。 鉴别诊断的医生总是将他/她的问题从一般到特定。在信息理论中,这被称为principle of maximum entropy。