策略引擎-jboss Drools Planner

fmms 12年前

jboss drools不光想做规则库,而且还做策略库,高智商的东西。jboss Drools Planner。

planner是干什么的?

一句话,planner是通过联合drools规则引擎和搜索算法实现自动规划的。一些常见的场景有:

  • 员工排班
    策略引擎-jboss Drools Planner
  • 车辆路径选择、货物路径选择、交通路径选择
    策略引擎-jboss Drools Planner
  • 教育时间表:排课表、考试日程安排、会议日程安排
    策略引擎-jboss Drools Planner
  • 背包问题:在一个背包(或盒子)里面放尽可能多的东西。
    策略引擎-jboss Drools Planner

一个规划通常都包含了一系列的约束、限制或条件。这些约束一般包括如下三类:

  • 硬约束(负面的):不能违反的条件。比如一个老师同时只能教一节课。
  • 软约束(负面的):尽量不要违反的条件。比如,A老师不喜欢在周五下午上课。
  • 奖励(正面的):尽量优先满足的条件。比如,B老师喜欢在周一上午上课。

上述约束说明了规划方案的打分方法。可以通过drools规则引擎来完成灵活的增减打分规则。

一个规划问题,可以有很多解决办法,每个解决办法都会根据上面的约束(打分规则)获得一个分数。一般有三种类型的方案:

  • 可能方案:这种方案,可以遵从也可以违反上述约束。因此数量很大(可能是不是笛卡尔积这样的情况,那太恐怖了,如果是这样,问题复杂时的可能方案(备选方案)过多,会不会导致planner崩溃呢?)。
  • 可行方案:这种方案,不会违反硬约束,所以是可行的。数量较少,是可能方案的一个子集。但是有些规划问题可能没有可行方案。
  • 优化方案:这种方案,是所有可能方案中得分最高的一个或多个方案。它,可能不是一种可行方案。

drools planner 支持几种搜索算法可以有效地评估计算各种可能方案,并且,通过修改配置,可以简单方便的更换搜索算法。

planner的现状

drools planner 是基于ASL(apache软件许可)的开源软件。

planner的安装配置

http://jboss.org/drools/downloads下载,解压到一个目录,即可完成安装。

在安装目录,运行 runExamples.bat

 

---------------------

Drools and jBPM consist out of several projects:

策略引擎-jboss Drools Planner Drools Guvnor (Business Rules Manager) 
策略引擎-jboss Drools Planner Drools Expert (rule engine) 
策略引擎-jboss Drools Planner jBPM 5 (process/workflow)
策略引擎-jboss Drools Planner Drools Fusion (event processing/temporal reasoning)
策略引擎-jboss Drools Planner Drools Planner (automated planning)