<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
我们假设有一个交易系统,客户提出要买的东西,卖家提供要买的东西,如果有符合的,就成交。这是一个很简单的系统,用一般程序语言也可以实现,但是我们看看专家系统开发更简单的方法。
1第一条规则
如果来了新的客户,取得这个客户所有需要的商品,并产生新的事实。
(defrule query-buyer
?fact =>
(retract ?fact)
(foreach ?i (nth$ 2 (send ?buyer "GetProducts"))
(assert (requires ?buyer ?i)); get the products the buyer requires
; and for each one create a fact
; associating the buyer and the product
)
)
例如,来了一个客户Danny,我们先assert(new-buyer danny) ,jess发现了这条事实后,触发query-buyer这个规则,注意所有的规则之间没有顺序性。query-buyer这条规则先撤销刚才的事实,避免死循环,然后调用一个函数取得用户所有需要的商品Send ?buyer "GetProducts".例如得到的结果是(Computer Keyboard Mouse),然后规则遍历这个结果集,每一个商品都产生一个新的事实,例如assert requires Danny Computer等等。
2 第二个规则,出现一个新卖家,原理和刚才一样
(defrule query-seller
?fact =>
(retract ?fact)
(foreach ?i (nth$ 2 (send ?seller "GetProducts"))
(assert (provides ?seller ?i)) ; get the products the seller provides
; and for each one create a fact
; associating the seller and the product
)
)
3 最后一个是交易的规则
当有买家购买一个商品,卖家卖一个商品,并且两者相同的事实时候,告诉卖家有人要买该物品,同时也告诉买家有卖家投递该物品
(defrule match-buyer-and-seller
(requires ?buyer ?product1); the buyer requires product1
(provides ?seller ?product2) ; the seller provides product2
(test (eq ?product1 ?product2)); product1 and product2 are the same
=>
(send ?seller "Order" ?product2) ; order from the seller
(send ?buyer "Delivery" ?product1) ; deliver to the buyer
)
从这个规则中,我们看到,实现这样一个交易市场的系统,没有任何遍历所有买家和卖家进行比较的操作。这些匹配是JESS自动模式匹配完成的,大大简化了开发。
使用专家系统,我们可以通过定义规则的方式来积累经验,而不是通过If else这样的代码来积累经验。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=531463
分享到:
相关推荐
Jess提供适合自动化专家系统的逻辑编程,它常被称作“专家系统外壳”。近年来,智能代理系统也在相似的能力上发展起来。 与一个程序中有一个只运行一次的循环的命令式编程语言不同,Jess使用的声明式编程通过一个名...
jess7.0专家系统外壳 jess是基于java的专家系统外壳,它基于CLIPS这个专家系统开发工具的语言形式,采用正向推理方法(也可反向推理)来模拟人类专家思维的过程。
Jess是基于CLIPS开发的专家系统外壳,Jess基于Java语言
传统逻辑程序设计-----如何用jess开发专家系统
基于java的专家系统开发工具,Jess简介:Jess是一个用Java编写的专家系统开发平台,由美国Sandia国家实验室分布式系统计算组成员ErnestJ.FriedmanHill在1995年开发出来,以...
在java基础上的jess专家系统语言,与Java安装路径相同
采用JESS开发专家系统的研究与应用,很好的资源,希望对你有用
主要介绍了专家系统jess的改造,使其支持BS应用模式。
这是最新的JESS规则系统,已经去除了限制,里面有JESS的使用手册、Javadoc、例子程序等。
JESS外壳改造,实现BS使用模式。
首先介绍专家系统推理框架Jess 的知识表示、基本组成、工作原理和开发环境,然后以人工智能经典游戏难题———野 人传教士过河问题为例,用Jess 实现了问题描述、知识抽取、结构定义、应用程序实现,进一步探索利用Jess...
jess.jar jess.jar jess.jarjess.jar jess.jar jess.jar jess.jar jess.jar jess.jar
Jess(Java Expert System Shell)是一个扩展CLIPS的基于Java平台的规则引擎。它以CLIPS的设计原理为基础进行编写,除继承了... 本书将详细介绍如何将jess内嵌到eclipse中,已成功在钢铁企业烧结厂专家系统中应用。
jess运用,语法介绍,环境配置,学习简单,易懂。
Jess是开发专家系统的一种语言,是运用java编写的程序,适合各种专家系统开发。
Jess是Java平台上的规则引擎,它是CLIPS程序设计语言的超集,由Sandia国家实验室的Ernest ... Jess提供适合自动化专家系统的逻辑编程,它常被称作“专家系统外壳”。近年来,智能代理系统也在相似的能力上发展起来。
Jess的英文资料,介绍很详细,包括Java和Jess相互嵌套。
Jess安装包,网上资源不多的,可以用于SWRL的推理
Jess规则引擎使用文档