openGauss源码解析(102)
openGauss源码解析:SQL引擎源解析(17)
1. 文件结构
遗传算法作为相对独立的优化器模块,拥有自己的一套文件目录结构,见表6-17。
表6-17 优化器文件目录结构说明
文件名称 | 功能说明 |
geqo_copy.cpp | 复制基因函数,即gepo_copy函数 |
geqo_cx.cpp | 循环交叉(CYCLE CROSSOVER)算法函数,即cx函数 |
geqo_erx.cpp | 基于边重组交叉(EGDE RECOMBINATION CROSSOVER)实现,提供调用gimme_edge_table函数 |
geqo_eval.cpp | 主要进行适应度计算,调用make_one_rel函数生成连接关系 |
geqo_main.cpp | 遗传算法入口,即主函数geqo函数 |
geqo_misc.cpp | 遗传算法信息打印函数,辅助功能 |
geqo_mutation.cpp | 基因变异函数,在循环交叉cx函数失败时调用,即geqo_mutation函数 |
geqo_ox1.cpp | 顺序交叉(ORDER CROSSOVER)算法方式一函数,即ox1函数 |
geqo_ox2.cpp | 顺序交叉(ORDER CROSSOVER)算法方式二函数,即ox2函数 |
geqo_pmx.cpp | 部分匹配交叉(PARTIALLY MATCHED CROSSOVER)算法函数,即pmx函数 |
geqo_pool.cpp | 处理遗传算法的基因池,基因池是表示所有个体(包括染色体和多表连接后得到的新的染色体)的集合 |
geqo_px.cpp | 位置交叉(POSITION CROSSOVER)算法函数,即px函数 |
geqo_random.cpp | 遗传算法的随机算法函数,用来随机生成变异内容 |
geqo_recombination.cpp | 遗传算法初始化群体函数,即init_tour函数 |
geqo_selection.cpp | 遗传算法随机选择个体函数,即geqo_selection函数 |
这些文件作为优化器遗传算法的各个模块都在src/gausskernel/optimizer/gepo下。接下来的几个单元会着重根据这些文件中的代码进行解读。

浙公网安备 33010602011771号