`
lujar
  • 浏览: 512869 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

专家系统JESS实例教程

 
阅读更多

我们假设有一个交易系统,客户提出要买的东西,卖家提供要买的东西,如果有符合的,就成交。这是一个很简单的系统,用一般程序语言也可以实现,但是我们看看专家系统开发更简单的方法。

1第一条规则

如果来了新的客户,取得这个客户所有需要的商品,并产生新的事实。

(defrule query-buyer
  ?fact <- (new-buyer ?buyer)            ; if there is a new a buyer...
=>
  (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 <- (new-seller ?seller)          ; if there is a new seller...
=>
  (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这样的代码来积累经验。

分享到:
评论

相关推荐

    JESS简介与实例教程

    ### JESS简介与实例教程 #### 一、JESS概述 **JESS**(Java Expert System Shell)是一款基于Java平台的规则引擎,它为开发者提供了强大的逻辑编程能力,尤其适用于构建专家系统。作为CLIPS(C Language ...

    jess7.0专家系统外壳

    jess(Java Expert System Shell)是一个在Java平台上实现的专家系统外壳,它为开发和运行专家系统提供了便利。 **jess7.0版本特性** jess7.0是jess的一个重要版本,主要特点包括: 1. **多语言支持**:由于基于...

    如何用Jess开发专家系统.pdf

    "专家系统开发与Jess技术" Jess是Java Expert System Shell的缩写,基于Java语言开发的专家系统外壳,由美国Sandia国家实验室分布式系统计算组成员Ernest J. Friedman-Hill在1995年开发出来,以CLIPS专家系统外壳...

    Jess_in_Action - java 专家系统 jess

    总之,《Jess in Action》这本书不仅是一个实用的工具书,它还是一个能够引导读者了解和掌握基于Java的专家系统开发的绝佳教程。通过学习Jess,开发者将能够利用规则引擎的强大功能,为各种问题提供智能化的解决方案...

    java专家系统jess资源包

    Jess专家系统常用于以下领域: - 决策支持系统:根据业务规则进行复杂决策。 - 数据分析:通过规则对大量数据进行挖掘和分析。 - 自动化:在软件中实现自动化逻辑,如错误检测和修复。 - 人工智能:在AI项目中作为...

    专家系统开发jess7.0

    基于java的专家系统开发工具,Jess简介:Jess是一个用Java编写的专家系统开发平台,由美国Sandia国家实验室分布式系统计算组成员ErnestJ.FriedmanHill在1995年开发出来,以...

    Jess7.1基于java的传统专家系统开发工具包

    Jess7.1是一款基于Java语言的传统专家系统开发工具包,专为构建和运行知识型应用程序而设计。专家系统是一种人工智能应用,它模仿人类专家的决策过程来解决复杂问题。这个工具包提供了丰富的功能,使开发者能够高效...

    基于JESS的BS模式交互式专家系统外壳的设计与实现

    ### 基于JESS的BS模式交互式专家系统外壳的设计与实现 #### 一、引言 随着互联网技术的迅速发展,专家系统的应用范围日益扩大。为了更好地满足实际需求,专家系统的部署方式也在不断进化。传统的命令行界面虽然...

    规则系统JESS 7.1 P2

    JESS 7.1 P2是该系统的更新版本,它移除了原有的限制,提供了更多的功能和优化,以满足更广泛的业务需求。 **1. 规则系统** 规则系统是一种人工智能技术,它通过一组规则来模拟人类决策过程。这些规则由条件(IF...

    基于JESS的BS模式交互式专家系统外壳的设计与实现_专家系统_BS_

    《基于JESS的BS模式交互式专家系统外壳的设计与实现》 专家系统是人工智能领域的一个重要分支,它利用人类专家的知识和经验,通过计算机程序来解决复杂问题。JESS(Java Expert System Shell)是一种广泛使用的规则...

    jess运用,语法介绍,环境配置

    4. **操作系统要求**:Jess 可在 Windows、Linux 和 Solaris 等多种操作系统上运行。 **使用 Jess 前的基础知识** 1. **Java 基础**:用户应具备基本的 Java 知识,了解如何运行 Java 应用、配置 CLASSPATH 以及...

    基于规则的专家系统推理框架JESS 应用研究

    首先介绍专家系统推理框架Jess 的知识表示、基本组成、工作原理和开发环境,然后以人工智能经典游戏难题———野 人传教士过河问题为例,用Jess 实现了问题描述、知识抽取、结构定义、应用程序实现,进一步探索利用Jess...

    基于Java的Jess功能函数扩展方法.pdf

    Jess是“Java Expert System shell”的缩写,它是基于Java平台的规则引擎,专门用于开发专家系统。Jess本身是CLIPS(C语言版本的专家系统开发工具)的超集,并且以增强型Rete算法作为基础,支持正向推理和反向推理。...

    jess.jar JESS java规则

    jess.jar jess.jar jess.jarjess.jar jess.jar jess.jar jess.jar jess.jar jess.jar

    Manning+-+Jess+in+Action

    **Jess** 是一种专门用于开发专家系统的编程语言,它基于 **Java** 平台,利用规则引擎技术来实现复杂问题的解决。本文章将从多个角度对 Jess 的核心特性、应用领域以及其实现机制进行详细阐述。 ##### 一、什么是 ...

    Jess71p2.zip

    Jess(Java Expert System Shell)是一种基于Java的规则引擎,用于构建和执行专家系统,也就是基于知识的系统,它们模仿人类专家的决策过程。这类系统广泛应用于复杂数据的推理、决策支持和自动化问题解决,例如在...

    专家系统原理与编程下载

    除此之外,现代的编程语言如Python、Java也提供了构建专家系统的能力,通过框架和库如PyCLIPS、JESS等。 专家系统的应用广泛,包括医疗诊断、工程设计、金融分析等领域。例如,在医疗领域,专家系统可以根据病人的...

    专家系统课件(北京科技大学)

    10. **开发环境与工具**:介绍常用的专家系统开发工具,如CLIPS、Prolog、Java Expert System Shell (JESS)等,以及如何使用它们构建和调试系统。 通过北京科技大学的这门专家系统课程,学生不仅能够掌握理论知识,...

Global site tag (gtag.js) - Google Analytics