使用遗传算法演化矩阵
Evolving a matrix using a genetic algorithm
我最近发现了遗传算法,在做了一些研究后,我找不到任何关于如何进化比向量或字符串更复杂的结构的例子。
假设我正在使用协方差矩阵进行某个计算(例如计算马哈拉诺比斯距离),我想寻找一个更好的矩阵来完成这项工作并使某个标准最小化,是否有关于如何计算的经典示例演化矩阵和使用哪些交叉算子?
谢谢!
任何由数字(或任何其他元素)组成的固定大小和形状的结构都可以重写为一维向量并返回。然后,您可以使用任何您喜欢的适用于向量的运算符。
如果您想直接使用矩阵(或任何其他结构),您总是可以设计自己的运算符,但矩阵基本上 是 一个向量,只是用不同的语言编写方法。对于矩阵情况,有多种可能的运算符(交叉):
- 交换 rows/columns(在 parents 之间)
- 交换子矩阵(上面的概括)
- Continuous-space 交叉方法,如 BLX-alpha、PCX、算术交叉...这些都是为向量设计的,但您只需将矩阵视为向量(实际上并没有什么不同)。
突变可能或多或少与 vector-like 相同 - 您只需改变元素(或其中一些)即可。
我最近发现了遗传算法,在做了一些研究后,我找不到任何关于如何进化比向量或字符串更复杂的结构的例子。 假设我正在使用协方差矩阵进行某个计算(例如计算马哈拉诺比斯距离),我想寻找一个更好的矩阵来完成这项工作并使某个标准最小化,是否有关于如何计算的经典示例演化矩阵和使用哪些交叉算子?
谢谢!
任何由数字(或任何其他元素)组成的固定大小和形状的结构都可以重写为一维向量并返回。然后,您可以使用任何您喜欢的适用于向量的运算符。
如果您想直接使用矩阵(或任何其他结构),您总是可以设计自己的运算符,但矩阵基本上 是 一个向量,只是用不同的语言编写方法。对于矩阵情况,有多种可能的运算符(交叉):
- 交换 rows/columns(在 parents 之间)
- 交换子矩阵(上面的概括)
- Continuous-space 交叉方法,如 BLX-alpha、PCX、算术交叉...这些都是为向量设计的,但您只需将矩阵视为向量(实际上并没有什么不同)。
突变可能或多或少与 vector-like 相同 - 您只需改变元素(或其中一些)即可。