GEP
基因表达式编程(Gene Expression Programming,GEP)属于遗传算法(GA)中的遗传编程算法(GP),它相对于传统遗传编程算法而言拥有更优秀的性能和更简单的实现方法。仓库源码使用面向对象方法实现了基因表达式编程(GEP),各功能模块有比较好的独立性,可以比较方便地在本地进行调试和改写。仓库源码属于C++控制台程序,在Windows和Linux系统上经过测试可正常运行。
Install / Use
/learn @az13js-org/GEPREADME
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/GNode
- 数学表达式生成和求值: https://gitee.com/az13js/Op
Related Skills
node-connect
352.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
