我需要编写专家系统,以帮助用户选择最好的手机运营商。它应该非常简单,而不是基于CLISP或JESS等语言/库。所以我需要从头开始编写所有内容。
你知道一些书籍或在线教程解释了如何做到这一点吗? 我真正需要了解的是如何表达知识和事实。
非常感谢任何帮助。
答案 0 :(得分:4)
如果您获得有关AI的任何好文本,将会有专家系统的部分;如果被迫,你可以从那里开始实施并实施自己的。
基本思想非常简单:你有一个以“if-then”形式表示的一系列规则,代表推理或者暗示。比如,例如:
IF blood temperature > 41°C
THEN patient.has-fever := TRUE
IF patient has wet-sounding breathing
THEN patient.has-pneumonia
IF patient.has-fever AND patient.has-pneumonia
THEN CONCLUDE bacterial pneumonia. ACTION prescribe Augmentin
换句话说,你有一堆规则,并且在你得出结论之前评估规则。还有很多东西(向前或向后的chaing和那种东西),你可以在这篇相当不错的Wikipedia文章中阅读。
我很困惑为什么你不能使用现有的规则引擎 - 对于大多数语言来说,它们中有许多通常都是非常自由的许可证。除非这是一个家庭作业问题,否则这确实是一条更容易的路线。
答案 1 :(得分:1)
Prolog非常适合编写基于规则的系统(专家系统开发的一种非常标准的方法)。 P#编译为C#,可以满足您的需求 - 而且它是免费的。
P#上的{p> More information。答案 2 :(得分:0)
PROLOG语言的基本原理和数学证明应该有助于您理解需要解决的大多数概念,如果没有提供实现它所需的最终语言。
我找不到原始实现的链接,但无论如何它都没有帮助。 Alain Colmerauer早期的逻辑编程工作应该是有帮助的。
[编辑]抱歉,重复......
答案 3 :(得分:0)
我会投票支持Prolog或CLIPS的一些实现,具体取决于后向或前向链接逻辑是否最适合该问题。而不是重新实现其中任何一个,花时间研究如何将它们与您的环境集成。
答案 4 :(得分:-1)
Jess是一个不错的选择,但你应该首先阅读“Jess in action”一书。