使用规则引擎进行规划

时间:2016-10-27 14:58:00

标签: artificial-intelligence scheduling schedule rule-engine planning

我可以使用规则引擎解决作业调度问题(JSS)吗?

我想要像this这样的东西。这是可能的规则引擎或不是一个好主意。

3 个答案:

答案 0 :(得分:1)

甘特图

甘特图是一个可视化工作进度问题的想法。甚至NASA也使用一种名为" Europa T-Rex时间规划的软件"。在x轴上,时间刻度是可见的,在另一个轴上显示任务和子任务。挑战是发明一种算法,该算法确定哪个任务必须在什么时间完成。在现实生活中,经常使用概率调度,其利用参数来定义问题空间,并使用随机数生成器来填充计划,参见Using Adaptive Priority Weighting to Direct Search in Probabilistic Scheduling简单的想法:最简单的实现完全按随机填充调度计划。需要多次重复才能获得一个好的计划。一个更复杂的算法定义约束,例如"没有任务应该重叠"并且随机生成器仅在该子空间中用于生成计划。在高级方面,采取了额外的规则来详细说明问题。但在这种情况下,随机生成器也用于处理不确定性。

规则引擎

规则引擎最突出的例子是密码破解工具Hashcat Rule Based Attack中的规则引擎。我们的想法是使用启发式方法来加快速度。规则引擎实现为普通源代码。他们正在使用函数,循环和if / then请求。规则引擎和图灵机之间没有区别。

有时使用术语规则引擎的原因是与内容相关的问题。 Hashcat中的规则引擎是一段代码,用于处理打破别人密码的知识。甘特图的计划表中的规则引擎处理计划相关知识等。在1980年,通常所谓的人工智能语言喜欢CLIPS,Prolog或LISP被用来实现规则。但是普通的编程语言也非常适合。在大多数情况下,规则引擎描述了算法。算法是解决某个问题的一种方法。要为作业调度问题创建求解器,请务必详细说明。有时间表问题,生产计划或机器人的安排。

答案 1 :(得分:0)

您需要查看cron调度程序或其任何竞争技术。

答案 2 :(得分:0)

我相信,但它看起来更像是一个设计问题:

您可以查看this堆栈溢出问题和Martin Fowler's article有关规则引擎的问题,但乍一看这个图看起来像基本的瀑布式调度,可以在没有规则引擎的情况下轻松实现。

对于最简单的调度,您可以查看我的old project,其中只需迭代列表即可实现调度。