大创项目框架整理
这是一个关于多目标优化算法的框架,其中集合了多目标优化问题集,多目标优化算法,多目标优化算子。该框架参考了JMetal框架的思路,但是由于个人水平限制没有用到任何设计模式(u1s1,我虽然会一些设计模式,但是我真的不会用,hhhh),将代码分为solution解相关的类,problem问题相关类,algorithm算法相关类,operator算子相关类,下面我将会对每一个相关类进行详细的介绍。
solution解相关类
solution相关的类属于多目标优化算法中的解类,这个可以形象的理解为GA算法当中的个体,种群相关,SSA当中的松鼠个体与种群相关,以及其他的类似算法的个体与种群相关都会放在这里。
在这里我们认为,每一个多目标优化算法应该包含一个种群,即解的set的类,以及一个个体类。
solutionSet相关类
solutionSet类作为每一个具体解集类的父类,也就是个体类的集合,他的实现机制是使用ArrayList来实现的。
public ArrayList<solution> array;
并且在其内部,我们实现了
这些方法,但是请注意,这里的solutionSet类中的clone方法是使用的序列化文件流反序列化来实现的,这个方法在大量迭代之后,可能会引起段错误,因此我们一般会在后面的子类中重写这个方法,(ps:由于现在版本限制,也就是目前我还不是很会泛型的知识,因此每一个方法都需要重写一遍,但是对于其他方法,你只需要在重写时注意将solution替换为具体的solution子类就可以了)这个方法的具体替换方式一般为我们在solutionSet中将每一个solution的自变量值以及其他无法经计算得出的必要属性拷贝一遍返回,这里我们拿MaShOA算法举例: