专家系统基础知识
我需要编写一个专家系统来帮助用户选择最好的手机运营商。 它应该非常简单,并且不基于 CLISP 或 JESS 等语言/库。 所以我需要从头开始写。
您知道一些解释如何做到这一点的书籍或在线教程吗? 我真正需要了解的是如何表示知识和事实。
任何帮助将非常感激。
I need do write an expert systems that should aid user in picking up best mobile phone operator. It should be very simple and not based on languages/libaries such as CLISP or JESS. So I need to write it all from the ground up.
Do you know some books or online tutorials that explains how this can be done?
What I really need to get to know is how to represent knowledge and facts.
Any help would be much appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果你得到任何关于人工智能的好书,就会有一个关于专家系统的部分; 如果被迫的话,您可以从那里解决并实施您自己的。
基本思想确实相当简单:您有一组“if-then”形式的规则,代表推论或含义。 举个例子:
换句话说,你有一堆规则,你可以评估这些规则,直到得出结论。 还有更多内容(向前或向后搜索之类的事情),您可以在相当不错的 维基百科文章。
我很困惑为什么你不能使用现有的规则引擎——对于大多数语言来说,有很多规则引擎,通常在相当自由的许可下。 这确实是一个更简单的方法,除非这是一个家庭作业问题或其他问题。
If you get any of the good texts on AI, there will be a section on expert systems; you can, if forced, work it out from there and implement your own.
The basic idea is really fairly simple: you have a collection of rules in "if-then" form that represent inferences, or4 implications. Like, for example:
In other words, you have a bunch of rules, and you evaluate the rules until you get to a conclusion. There's a lot more to is (forward or backward chaing and that kind of thing) which you can read about in thed pretty decent Wikipedia article.
I'm puzzled why you can't use an existing rule engine though -- there are a number of them, for most languages, usually under pretty liberal licenses. That's really an easier route unless this is a homework problem or something.
Prolog 非常适合编写基于规则的系统(专家系统开发的一种相当标准的方法)。 P# 编译为 C#,这可能会满足您的需求 - 而且是免费的。
有关 P# 的更多信息。
Prolog is well suited to writing rule-based systems (a pretty standard approach to expert systems development). P# compiles to C#, which may meet your needs - and it's free.
More information on P#.
PROLOG 语言的基本原理和数学证明应该可以帮助您理解大部分内容您需要解决的概念,如果没有提供您需要用来实现它的最终语言。
我找不到原始实现的链接,但无论如何它对您没有多大帮助。 Alain Colmerauer 在逻辑编程方面的早期工作应该会有所帮助。
[编辑] 抱歉,重复...
The basis rationale, and mathematical proof, for the PROLOG language, should help you understand most of the concepts you will need to address, if not provide the final language you need to use to implement it.
I couldn't find a link to the original implementation, but it would not help you much anyway. Alain Colmerauer's early work on logic programming should be helpfull.
[EDIT] Sorry, duplicate...
我会投票支持 Prolog 或 CLIPS 的某些实现,具体取决于向后或向前链接逻辑是否最适合该问题。 不要重新实现其中任何一个,而是花时间研究如何将它们与您的环境集成。
I would vote for some implementation of Prolog or CLIPS, depending if backward or forward chaining logic best suits the problem. Instead of re-implementing either of these, spend the time working out how to integrate them with your environment.
Jess 是一个不错的选择,但您应该首先阅读《Jess in action》一书。
Jess is a good choice but you should read the book "Jess in action" as a first step.