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下。接下来的几个单元会着重根据这些文件中的代码进行解读。

posted @ 2024-04-30 10:35  openGauss-bot  阅读(11)  评论(0)    收藏  举报