进化过程设计

进化过程包含四个基于 RDD 模型的操作。Spark 和 HDFS 的高度兼容性允许逐行处理存储在 HDFS 上的文本数据,因此初始种群的每个个体样本逐行存储在 HDFS 上。

(1) 交叉操作:

  1. 读取全局列表样本,随机分配到各个节点。
  2. 在每个节点上创建 RDD,并使用 take 函数采样所有数据。
  3. 将采样数据平均存储到两个列表中。
  4. 使用 parallelize 函数基于这两个列表再次生成两个 RDD。
  5. 通过组成 K-V 键值对的形式实现两个父代的随机配对 (如图 6 所示)。
  6. 使用 Map 函数对键值对 的键和值进行单点交叉操作。
  7. 分别提取交叉后的键和值。
  8. 通过 Map 合并创建交叉后的个体。