Skip to content

基因表达式编程(Gene Expression Programming,GEP)属于遗传算法(GA)中的遗传编程算法(GP),它相对于传统遗传编程算法而言拥有更优秀的性能和更简单的实现方法。仓库源码使用面向对象方法实现了基因表达式编程(GEP),各功能模块有比较好的独立性,可以比较方便地在本地进行调试和改写。仓库源码属于C++控制台程序,在Windows和Linux系统上经过测试可正常运行。

License

az13js-org/GEP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
结束。

此外,仓库的源码来自下面几个仓库的综合,并经过一定程度的改造:

About

基因表达式编程(Gene Expression Programming,GEP)属于遗传算法(GA)中的遗传编程算法(GP),它相对于传统遗传编程算法而言拥有更优秀的性能和更简单的实现方法。仓库源码使用面向对象方法实现了基因表达式编程(GEP),各功能模块有比较好的独立性,可以比较方便地在本地进行调试和改写。仓库源码属于C++控制台程序,在Windows和Linux系统上经过测试可正常运行。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published