1. 设计逻辑
algorithms 包定义了系统中所使用的群智感知相关算法, 目前提 供了任务分配 、任务推荐和参与者选择算法接口 。algorithms 包实现 了算法与系统流程的解耦。在实现 algorithms 包中算法的过程中,基 于 system 包提供的保证, 可以解耦算法流程与系统流程, 确保系统流程的稳定运行。
2. 设计模式
algorithms 包涉及的设计模式主要有两种, 分别为:
1. algorithms 自身使用了工程模式 。每一类算法工厂产出一类特定的算法实现 。 目前每个算法工厂需要分别实现任务分配、任务推荐和参与者选择算法;
2. algorithms 与 Scheduler 交互时, algorithms 以模板模式的形式嵌入 Scheduler。
algorithms 包的 UML 类图如下:
3. 算法说明
algorithms 包中提供了四种经典的任务分配算法,分别为 T_Most、 PT_Most 、T_Random 、GGA_I 。 四种算法对应的算法工厂均继承自 算法适配器 AlgoFactoryAdapter, 每种算法都可支持但任务分配和多任务分配。
接口 AlgoFactory 定义了内核中使用的所有算法的接口,目前定义了三个功能:
返回值 |
原型 |
含义 |
TaskAssignmentAlgo |
getTaskAssignmentAlgo(); |
返回任务分配算法 |
TaskRecommendationAlgo |
getTaskRecommendationAlgo(); |
返回任务推荐列表算法 |
ParticipantSelectionAlgo |
get ParticipantSelectionAlgo(); |
返回参与者选择算法 |
算法适配器 AlgoFactoryAdapter 实现接口 AlgoFactory, 为系统提供了默认任务分配、任务推荐和参与者选择算法,若不进行算法选择,则系统提供其中的默认算法实现,具体算法的接入可通过继承算法适配器 AlgoFactoryAdapter 实现。