drools源码分析,rete源码分析,rete算法

drools源码分析,rete源码分析,rete算法

ID:11426174

大小:1.44 MB

页数:95页

时间:2018-07-11

drools源码分析,rete源码分析,rete算法_第1页
drools源码分析,rete源码分析,rete算法_第2页
drools源码分析,rete源码分析,rete算法_第3页
drools源码分析,rete源码分析,rete算法_第4页
drools源码分析,rete源码分析,rete算法_第5页
资源描述:

《drools源码分析,rete源码分析,rete算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、源码分析报告95源码分析报告11.前言32.规则包格式33.规则编辑83.1AbstractRuleBase83.2ReteooRuleBase103.3ReteooBuilder103.4ReteooRuleBuilder113.5Rule133.6LogicTransformer(有待具体详细分析)133.7ReteooComponentBuilder(部分继承关系)153.8ObjectTypeNode233.9ObjectSinkPropagator263.10BuildUtils313.11NetWorkNode(部分继承关系)333.12Sink(部分继承关系)403.1

2、3Rete413.14FieldIndex414.运行时执行424.1ReteooRuleBase424.2AbstractRuleBase434.3ReteooStatefulSession444.4ReteooWorkingMemory444.5AbstractWorkingMemory//1484row464.6ReteooFactHandleFactory524.7AbstractFactHandleFactory534.8PropagationContext534.9Rete//678row544.10ObjectTypeNode604.11ObjectSinkPropag

3、ator接口614.12AlphaNode//370row664.13LeftInputAdapterNode674.14TupleSinkPropagator684.15JoinNode704.16RuleTerminalNode724.17BetaNode774.18BetaMemory774.19TupleMemory784.20ClassFieldExtractor784.21ReteTuple784.22BetaConstraints804.23VariableConstraint(Beta)834.24VariableRestriction83954.25Abstract

4、HashTable874.26PrimitiveLongMap874.27PrimitiveLongStack884.28TruthMaintenanceSystem884.29DefaultFactHandle884.30DefaultAgenda894.31AgendaItem904.32BinaryHeapQueueAgendaGroup914.33DefaultExecutorService924.34PackageCompilationData924.35PatternBuilder//0.1与初始事实有关924.36ObjectTypeNode//0.1与初始事实有关93

5、4.37DefaultKnowledgeHelper934.38ClassObjectType944.39ValueType944.40AlphaNodeFieldConstraint955.总结951.前言RETE算法一般可以分为两个部分:规则编辑和运行时执行。规则编辑描述规则库中的规则如何生成一个有效的具有分辨力的网络即RETE网络;运行时执行描述工作区中加入事实后如何在RETE网络中传递到网络的根节点。本源码分析报告仅仅分析上述的两个部分,对规则包Package的构建不予分析,只是对规则包格式加以说明。2.规则包格式应用场景以DEMO程序中修改的两条规则为例说明JAVA规则包的

6、格式。(应用场景将在后续版本中修改)规则例子1:whenFeeList(userType=="01")orFeeList(userType=="04",callType=="32")andFeeList(userType=="03",callType=="32")thenSystem.out.println("启动测试规则");规则例子2:when($feeList:FeeList(callStartTime<22,callStartTime>6)andFeeList(callEndTime>22))$basicfeePlan:BasicfeePlan()$longfeePlan:L

7、ongfeePlan();95thenSystem.out.print("获得从‘忙’时跨越到‘闲’时的通话时长:");System.out.print("忙时时长——"+$basicfeePlan.getBusyTime()+"s"+";");System.out.println("闲时时长——"+$basicfeePlan.getIdleTime()+"s");经过编译后,产生的Package对象结构如下:其中rules为存放规则的HashMap,其中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。