代码之家  ›  专栏  ›  技术社区  ›  Perpetualcoder

哪些模式最适合开发规则/决策引擎[已关闭]

  •  9
  • Perpetualcoder  · 技术社区  · 16 年前

    我正在开发一个决策引擎/规则评估引擎。例如:

    输入:客户和客户犯下的所有罪行

    产出:犯罪的后果

    一个例子是:

    输入:顾客(约翰尼·吉姆波,999-00-1111),违规行为(打破窗户,打老板耳光,踢队长腹股沟)

    输出:获得粉色滑条

    这是规范模式吗?我希望代码是开放的扩展,干净和灵活。

    6 回复  |  直到 14 年前
        1
  •  3
  •   Sam Holder Brian Adams    15 年前

    基本上,业务规则看起来像

    forall rules:
      if <condition> then doAction();
    

    然后,算法的草稿可以是:

    • 客户所有得分之和(加权)
    • 与最大值相比

    这将是直接使用数据结构,而不是许多(可能是深度嵌套的)if..then..else事物。

        2
  •  3
  •   Andrea Zilio    16 年前

    我可以向您推荐一种我们用来解决类似问题的工具。

    看看JBoss Drools: http://www.jboss.org/drools/

    这是一个BRMS:业务规则管理系统

    这是一段介绍性视频: http://www.jboss.com/products/platforms/brms/

        3
  •  1
  •   flesh    16 年前

    我不确定上面的答案是否有那么大的帮助。

    expression trees . 您可以构建表示谓词的lambda表达式,动态编译和执行它们,然后触发一些响应操作。这种方法功能强大、灵活,并且消除了所有的if/else恐惧(这绝对不是一种可行的方法)。

    然而,您真正谈论的是逻辑编程。在.NET上有许多Prolog的实现。Prolog是一种基于逻辑的语言,大量用于人工智能应用程序,一旦你了解了它的范例,它就会变得非常强大。

    看看其中的一些。。

        4
  •  0
  •   Nick Miller    16 年前

    你可以试试类似的东西 this "event based" rules engine

        5
  •  0
  •   Mervin Yan    16 年前

    我认为任何基于RETE算法的规则引擎都适用于您的案例。你可以试试口水。

        6
  •  -1
  •   Aykut Akıncı    16 年前

    推荐文章