学习
STUDY
algorithms
发布时间: 2024年12月27日
来源: 西工大
点击数: 62

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 实现。