我有一个数据库,其中有一个存储医疗条件的表和另一个存储症状的表每种情况都有许多症状。用户将从数据库中选择多个症状,算法将找出每个症状匹配的症状数。
我想返回每个匹配条件和匹配症状的数量,如感冒4/8
这是一个非常简单的想法,尽管我很难计算出伪代码/算法。
谢谢
最佳答案
如果您必须从头开始编写代码(例如,在家庭作业中),那么您可能需要查看rete算法。它将试图帮助你做最少的测试来得到一个给定的结论如果你只是采取暴力解决方案,看看一堆不同的医疗条件和一组症状,并滚动测试每个症状,为每个条件分配一个分数,你将在不同的条件下多次测试相同的症状。流鼻涕、咳嗽等可能会出现在数百种症状列表中。Rete攻击它,只测试每个症状一次,然后按照它的方式得出结论。
然而,如果您不必从头开始构建这个数据库,那么您可能希望看到一个现成的解决方案,如Drools或Jess,它为您提供了一个规则引擎,使构建您想要的数据库变得容易他们还构建了一个rete算法(或者类似的算法)来在潜在的大量规则面前优化他们的性能。