# 基因表达式编程(GEP) **Repository Path**: az13js/GEP ## Basic Information - **Project Name**: 基因表达式编程(GEP) - **Description**: 基因表达式编程(Gene Expression Programming,GEP)属于遗传算法(GA)中的遗传编程算法(GP),它相对于传统遗传编程算法而言拥有更优秀的性能和更简单的实现方法。仓库源码使用面向对象方法实现了基因表达式编程(GEP),各功能模块有比较好的独立性,可以比较方便地在本地进行调试和改写。仓库源码属于C++控制台程序,在Windows和Linux系统上经过测试可正常运行。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 2 - **Created**: 2021-04-03 - **Last Updated**: 2023-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GEP 这是使用 C++ 实现的 GEP 算法,也就是 “ 基因表达式编程 ” 。编译并执行程序需要有可以支持 C++ 11 或以上版本的编译器,我本地编译采用的是 GCC 10 和 CMake 3.20 。 以我本地编译的方法为例: $ cd build $ cmake ../src $ cmake --build . 顺利的话,`build`目录里面会生成可执行程序`GEP.out`。如果采用其它的编译器或者编译套件,也可以简单地把`src`以及`src`下的子目录都设为搜索目录,然后执行编译即可。 程序运行效果(内有随机初始化的步骤,每次执行结果会有差别): ``` $ ./GEP.out 代数=0, 最大适应度=0.152698, 个体信息:(((((1.74247*1.12861)+(1.26272*2.77195))*((2.95397*2.24401)+(2.4401-1.67824)))*(((3.22668-0.488646)/(1.66096/2.2321))*(0.430719*1.66942)))-(((0.891015+2.66047)/(1.09807*1.45251))-((1.22155-3.18734)-(1.4885*3.39914))))=97.6444 代数=1, 最大适应度=0.152698, 个体信息:(((((1.74247*1.12861)+(1.26272*2.77195))*((2.95397*2.24401)+(2.4401-1.67824)))*(((3.22668-0.488646)/(1.66096/2.2321))*(0.430719*1.66942)))-(((0.891015+2.66047)/(1.09807*1.45251))-((1.22155-3.18734)-(1.4885*3.39914))))=97.6444 代数=2, 最大适应度=0.734705, 个体信息:((1.00861/0.0101795)+0.316817)=99.3991 代数=3, 最大适应度=0.734705, 个体信息:((1.00861/0.0101795)+0.316817)=99.3991 代数=4, 最大适应度=0.734705, 个体信息:((1.00861/0.0101795)+0.316817)=99.3991 代数=5, 最大适应度=0.981451, 个体信息:((((3.06426/1.08348)-(2.36369/0.969878))-((1.20654+1.73589)*(1.88141*3.4216)))*(((1.46114/0.864299)-3.31744)-(0.402928+3.36824)))=100.137 代数=6, 最大适应度=0.999971, 个体信息:(((2.06717*1.8507)*(3.22136/0.13488))+((2.59679/0.824276)*2.73746))=99.9946 结束。 ``` 此外,仓库的源码来自下面几个仓库的综合,并经过一定程度的改造: - 遗传算法: [https://gitee.com/az13js/cpp-genetic-algorithm](https://gitee.com/az13js/cpp-genetic-algorithm) - 节点、图、树: [https://gitee.com/az13js/GNode](https://gitee.com/az13js/GNode) - 数学表达式生成和求值: [https://gitee.com/az13js/Op](https://gitee.com/az13js/Op)