使用java规则引擎Drools自动排班前言

使用java规则引擎Drools自动排班前言本文以一个经简化的运输车队自动排班需求为例,详细讲解了如何使用java规则引擎Drools进行商业规则的形式语言描述,并编写java代码实现问题求解。

?

背景介绍(引自Drools中文文档)??? A.I.(Artificial Intelligence)是一个关注于“使计算机像人类一样思考”的广泛的研究领域,包括Neural Networks(神经网络), Genetic Algorithms(遗传算法), Decision Trees(决策树), Frame Systems(框架系统) andExpert Systems(专家系统)。

?

?Knowledge representation(知识呈现)是A.I.的一部分,关注于如何呈现和操纵知识。专家系统使用知识表示把知识编码简化成一个可用于推理的知识库──比如,我们可以用知识库处理数据以推出结论。专家系统又叫基于知识的系统、基于知识的专家系统,并被认为是A.I.的一个应用。开发一个专家库系统的过程被称为知识工程。EMYCIN是最早的专家系统Shell(外壳)之一,它从医学诊断专家系统MYCIN发展而来。早期的专家系统有自己的logic hard coded "shells"(逻辑硬件编码环境),把逻辑与系统相分离,为用户输入提供一个简单的使用环境。

?

??? Drools是一个使用基于规则的方法实现的专家系统的规则引擎,更准确的说属于产生式规则系统。术语“产生式规则”从形式语法中产生,形式语法——使用一种抽象结构来准确描述形式语言。

知识(facts,事实,环境):?1,员工分为两种:司机,外勤?2,每天分白、中、晚三个班次?3,每班3人,一个司机,两个外勤?规则(rules):?1,司机可以当外勤,外勤不可以当司机?2,每个员工每个月至少休息6天?3,每个员工连续上班不能超过5天?4,工作分配应尽可能均匀

?

目标(goal):?1,按日期和班次打印排班表?2,按员工打印各人的班次任务

排班规则的形式语言描述(drl, drools rule language):package TEST;

import TEST.*;

?

rule "司机"when?shift : Shift(driver == null, $date : workDate, $no : no)爓orker : Worker(type == 1, easyDay >= 6, maxDay <= 4, $total : shiftTotal )爀val( !shift.getWorkDate().containsWorker(worker) )爊ot Worker(type == 1, shiftTotal

rule "

java排班_使用java规则引擎Drools自动排班前言.doc相关推荐

  1. Java开源的规则引擎 Drools 电商行业实战(含完整代码)

    前言 我所在项目组刚好接到一个领取优惠券需求,具体需求是用户领取的各种类型的优惠券(比如:代金券.折扣券)数量不能超过某个自定义数量,因考虑到领取限制数量是动态的,另外考虑到扩展性,满足将来业务规则的 ...

  2. 规则引擎Drools在贷后催收业务中的应用

    作者:vivo 互联网服务器团队- Feng Xiang 在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景.为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务 ...

  3. 【转】什么是规则引擎(Drools、OpenL Tablets、Easy Rules、RuleBook)

    什么是规则引擎(Drools.OpenL Tablets.Easy Rules.RuleBook) 发表于:2021年1月23日 分类:Drools, 规则引擎 标签:Drools, Easy-Rul ...

  4. 【Drools一】值得打工人学习的规则引擎Drools

    本文主要对Drools的使用业务场景做简单介绍. 规则引擎 规则引擎:全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System).规则引擎的主要思想是 ...

  5. 规则引擎drools系列(一)

    规则引擎 Drools 1. 问题引出 现有一个在线申请信用卡的业务场景,用户需要录入个人信息,如下图所示: //此处为伪代码 ​ //检查用户信息合法性,返回true表示检查通过,返回false表示 ...

  6. 规则引擎 Drools

    规则引擎 Drools 文章目录 规则引擎 Drools 1. 问题引出 2. 规则引擎概述 2.1 什么是规则引擎 2.2 使用规则引擎的优势 2.3 规则引擎应用场景 2.4 Drools介绍 3 ...

  7. 别再说你不会,规则引擎Drools了

    一.为什么要使用规则引擎 有一天运营想弄一个积分策略,计算额外积分金额 ,规则如下: 订单原价金额 100以下, 不加分: 100-500 加100分: 500-1000 加500分: 1000 以上 ...

  8. 规则引擎——Drools

    Drools简介 Drools使用范例 语法介绍 名词解释 Drools简介   JBoss Rules 的前身是Codehaus的一个开源项目叫Drools.最近被纳入JBoss门下,更名为JBos ...

  9. 规则引擎Drools详细介绍

    规则引擎Drools详细介绍 一. 规则引擎概述 1.1 什么是规则引擎 1.2 使用规则引擎的优势 1.3 规则引擎应用场景 1.4 Drools介绍 二. Drools使用与说明 2.1 Droo ...

最新文章

  1. 二叉树:root==NULL和*root==NULL的区别
  2. ViewPager一屏显示多个item,及边缘滑动事件优化
  3. pu learning的建模实践,半监督学习的好方法!
  4. 上拉加载 php,php+jquery 上拉加载
  5. git 32位_编译64位的BorderlessGaming
  6. 关系数据库理论:数据库的六大范式知识笔记
  7. [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径 - 草根的暂时胜利
  8. 数字的补数——力扣476
  9. 支付时报错java.lang.RuntimeException: 【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = appid和mch_id不匹配
  10. php过滤4字节的字符串,过滤utf8 字符中超过三个字节的字符,或者非utf8字符
  11. 《趣题学算法》—第1章1.2节简单的数学计算
  12. inittab 分析
  13. 这是一个定时器,定时执行一次,用在定时发送邮件
  14. 36. 打印数组的主次对角线
  15. 数字社会的下一波浪潮_下一波创业浪潮是自然而然的
  16. 评选最佳文本编辑器-UltraEdit From善用佳软
  17. android audiomixer,Android多媒体:AudioMixer
  18. OVM免费混合虚拟化系列教程之一:关于配置要求!
  19. ng4使用的音频文件_使用机器学习方法识别音频文件的音乐和演讲
  20. 02尚硅谷书城案例-用户的注册

热门文章

  1. ie浏览器收藏夹位置更改步骤
  2. 优酷视频如何进行连续播放?
  3. Spring循环依赖的三种方式
  4. Java面向对象编程篇3——接口与抽象类
  5. oschina mysql limit_如何提高MySQL Limit查询的性能
  6. esl证明函 oracle_强弱分明 Astralis证明之战—ESL科隆B组浅析
  7. java 矩阵转置_图解利用Java实现数组转置
  8. Nginx反向代理的使用
  9. java new对象 =null_在Java中将对象分配为null会影响垃圾回收吗?
  10. LeetCode(#118)————杨辉三角形