遗传算法与专家系统

我在考虑为一个新软件选择哪种系统时有些犹豫。
目前还没有编写任何代码,我只是在分析所有的需求,然后再开始编码。
这个软件将在为其他公司提供现场和远程服务的计算机公司中实施。
这些是我的变量:

  • 技术人员数量
  • 客户位置
  • 问题类型
  • 技术人员已安排的服务
  • 技术人员对情况的专业知识
  • 客户优先级

可能还有一些变量没有列出,但这些是最重要的。
目前这项工作是手动完成的,作为人类,我们有时无法找到最佳的解决方案。
假设一个客户打电话说有打印机问题。
首先,检查哪个技术人员了解打印机。
然后,这个技术人员是否有空?离客户远吗?可以远程解决(软件问题)吗?
是否有更靠近客户位置的其他技术人员可以解决?
这个客户的优先级是否比另一个需要相同技术人员服务的客户高?
技术人员的日程安排是否已满?如果是,转给另一个打印机/硬件技术人员。

我知道我的英语不是很好(这不是我的母语),但我会尽量提供更多细节或根据需要修正文本。

所以,我的疑问是,您会采取哪种方法?遗传算法似乎适合这种工作,我对GAF和WatchMaker(Java遗传算法框架)也有一些经验。然而,阅读上述文本时,专家系统似乎也合适。
有人做过类似的事情吗?
我搜索过这种类型的软件,但找不到类似的。
是否有比这两种方法更好的其他方法?
另外,我正在建立一个表格,列出所有技术人员的能力和专业知识,使用简单的规则,如每个专业知识的1到5级评分。这也是一个决策因素。
谢谢。


回答:

为什么不两者兼用呢?使用专家系统(规则引擎)来定义你的约束条件,再使用元启发式算法(如局部搜索或遗传算法)来解决问题。规划引擎OptaPlanner(Java,开源)正是这样做的(使用规则引擎Drools)。其架构如下所示:

enter image description here

这里有一个视频展示了在车辆路径问题(VRP)上的约束灵活性演示。你的问题似乎是VRP的一个高级变体(VRP是TSP的一个变体)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注