没有合适的资源?快使用搜索试试~ 我知道了~
×⊆软件X 18(2022)101085原始软件出版物GSGP-CUDA-几何语义遗传编程的CUDA框架放大图片创作者:George A.埃尔南德斯,Mauro Castellib,Juan J. TapiacaTecnológico Nacional de México/IT de Tianjin,Calzada Del Tecnológico S/N,Fraccionamiento Tomas Aquino,C.P. 22414,蒂华纳,不列颠哥伦比亚省,墨西哥bNOVA Information Management School(NOVA IMS),Universidade Nova de Lisboa,Campus de Campolide,1070-312,Lisboa,PortugalcInstituto Politécnico Nacional-CITEDI,Av. Instituto Politécnico Nacional No.1310 Colonia Nueva Tijuana,C.P.22435,蒂华纳,不列颠哥伦比亚省,墨西哥ar t i cl e i nf o文章历史记录:收到2020年2021年12月8日收到修订版,2022年保留字:遗传规划几何语义遗传编程GPUa b st ra ct几何语义遗传规划(GSGP)是一种基于进化计算的机器学习方法。GSGP直接在程序语义级别执行搜索操作,这比像大多数GP系统那样在语法级别上操作更有效。GSGP在C++中的有效实现利用了这一事实,但没有充分发挥其潜力。本文介绍了GSGP-CUDA,GSGP的第一个CUDA实现和最有效的,它利用GPU的GSGP的内在并行性。结果显示加速比大于1000相对到最先进的顺序实现,在模型训练过程中。此外,我们的实现允许用户通过最佳演化模型对新数据进行无缝推断,从而打开了在大数据问题上使用GSGP的可能性版权所有©2022作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2020_38Code Ocean computecapsulehttps://codeocean.com/capsule/1237406/treeGNU通用公共许可证GNU General Public Licensev3.0使用的代码版本控制系统使用C/C++/CUDA、CUBLAS的软件代码语言、工具和服务编译 要求, 操作 环境依赖性Toolkit CUDA v10.1 v9.2,GCC v7.4.0,CUBLAS v2.0,Headers Linux,类Unix系统(Ubuntu Linux18.04)如果可用,链接到开发人员文档/手册问题支持电子邮件:leonardo. tectijuana.edu.mx;daniel. tectijuana.edu.mx1. 动机和意义几何语义遗传编程(GSGP)是遗传编程(GP)的变体,是一种最先进的机器学习算法[1GP是一种进化计算方法,它遵循自然进化的高级模型进行搜索和优化。虽然标准GP使用遗传算子通过操纵父代的语法来产生后代*通讯作者。电子邮件地址:daniel. tectijuana.edu.mx(DanielE.Hernandez)。https://doi.org/10.1016/j.softx.2022.101085GSGP直接在语义空间上执行搜索操作,这导致了简化搜索的单峰适应度景观[6]。在符号回归问题中,GSGP-CUDA的应用领域,语义空间是SRn,其中n是训练样本或适应度案例的数量,允许搜索算子比语法操作更有效地实现这使得Vanneschi等人。[2]使用C++指针实现了GSGP的有效版本[4];该实现是当前工作的参考基线,此后称为GSGP-C ++。该库的更新版本已经发布[5],但核心搜索算法保持不变。2352-7110/©2022作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx放大图片作者:George E. Hernandez等软件X 18(2022)1010852= ∈∈=[]个×+·+=[]=+我=我我GSGP-CUDA 是 一 个 GSGP 框 架 , 它 使 用 图 形 处 理 单 元(GPU)利用GSGP集成了[4]中描述的GSGP算法的核心搜索功能以及[5]中提出的模型重建和评估过程,使用基于CUDA的并行实现来有效地演化模型。其目标是让GSGP从业者能够有效地解决大型问题。GSGP中的搜索算子定义了父个体的线性组合,使得后代的语义向量被定义为父个体的语义向量的线性组合。此操作是简单并行的,允许在GPU中直接实现。这种架构已经在深度学习中得到了利用[7],但很少用于GP [8请注意,Chitty [8]、Langdon和Banzhaf [9,10]的工作重点是实现CUDA和其他并行工具来加速语法树的解释,因为这是GP中最常用的表示。尽管如此,虽然GSGP也可以使用语法树,但这不是主演化循环的要求,特别是因为语法只针对初始种群进行评估。例如,在本工作中,使用线性表示代替。GSGP通过对父类的语义向量进行线性组合来生成新的个体,而不是像传统的GP算法那样通过组合或修改语法来生成新的主要的问题是,与数值计算相比,在GPU中对个体的语法操作效率不高。另一方面,使用GSGP,与现代GPU架构的协同作用更强。2. 软件描述GSGP可以简单地总结如下[1,11],专注于最常见的应用领域,实值符号回归。在这个问题中,适应度案例(或数据集样本)定义为fcj(xj,t j),其中t j R,xjRl和l是输入功能。在标准GP和GSGP中,个体通常使用语法树表示,因此我们将个体称为程序或树w.l.o.g.。语义sT={s T,1,. . .,s T,n}CUDA编程是异构的,因为GPU(设备)和CPU(主机)都可以使用。CPU上的代码管理内存并启动在GPU上执行的内核。并行性出现在内核的执行中,内核同时在多个线程上启动。CUDA执行模型依赖于三个主要概念:线程,块和网格;如图所示。1 .一、GSGP-C++使用语义矩阵管理GSGP的进化周期,因此可以有效地将这些结构迁移到GPU。虽然先前的工作已经开发了GP的基于GPU的实现[9,12-然而,由于GSGP不需要显式构造程序语法,因此它可以在GPU上利用有效的矩阵操作30.全球通用通用服务系统-海关数据自动化系统的演变过程分为以下几个阶段:1. 计算数据范围和进程并行化。取决于问题大小(特征l,适应度情况n)和GSGP配置(群体大小m和最大程序大小k),有必要定义配置 在线程、块和网格级别上的并行工作2. 创建内存变量。必须在设备上保留和分配所有全局内存区域。数据的manip- ulation是通过在每个阶段的指针向量3. - 是的在GPU上创建初始种群,使用程序的线性基因组表示[9,10]。结构被用来跟踪每个个体的进化谱系。4. 体能评估。在这个阶段中使用了两个内核。第一个内核是一个解释器,它根据每个人的基因组(及其后代)计算每个人的语义,而第二个内核计算由均方根误差(RMSE)给出的适应度。5. GSGP Evolution.这个过程包括在父代种群上应用GSM由于GSGP-CUDA是针对大型问题的,lems,通过应用突变一个树Ti的大小为n的向量,它表示树T i的其中sTi,j是第i棵树的输出,该输出是对来自第j个适应度情况的输入进行评估的。这样,树Ti的适应度计算为sTi之间的距离和 的 目标语义测试1,. . . ,t n. 而原来的GSGP公式包括几何语义交叉(GSC)和变异(GSM)算子,实验工作表明,变异通常足以执行进化搜索[2]。亲本T的突变后代被定义为TM不MS(R1)R2),其中R u,u1,2是值域为0,1的随机实函数,构造为R u(1 e−Tu)−1,其中T u是随机GP树,ms是变异步长。有用的属性GSM和GSC两者的优点在于,后代的语义基本上由父树和随机树的语义的线性组合来定义。因此,可以仅使用语义向量来计算后代的语义和适应度。这允许GSGP搜索的有效实现,通过构建和更新语义矩阵Smn,其中m是个体的数量(在种群或随机树集合中),如在GSGP-C++[4,5]中所做的那样2.1. 软件构架CUDA已经成为NVDIA GPU的通用并行计算API,旨在与高级编程语言(C,C++和Fortran)一起工作。CUDA是通用高性能计算(HPC)中使用最广泛的计算平台。所有的人都在人群中[1]。2.2. 软件功能GSGP-CUDA中的主要进化算法由具有顺序流的CPU控制,该顺序流启动使用单指令多数据(SIMD)执行执行每个进化过程的每个CUDA内核,在算法1中总结。对于每个内核,算法1指定所实现的并行级别。这是指在单个CUDA线程上执行一些参数是基于 GPU 卡 的 特 性 。 块 和 网 格 是 三 维 结 构 , 大 小 分 别 为(threads.x,threads.y,threads.z)和(blocks.x,blocks.y,blocks.z在这个实现中,网格和块都是一维的,所以只考虑threads.x和blocks.x,其他维度设置为1。 因此,我们将参考可变线程和块来定义这些结构的大小。块和线程变量在运行时使用CUDAOccupational API设置。这是使用CUDA Occupational API(在CUDA中可用)完成的6.5以及以后的),即cudaOccupancyMaxPotentialBlockSize函数,该函数以图解方式计算实现每个内核的最大多处理器级别占用的块大小- 是的GSM Population内核基于所需的种群大小和最大程序长度创建程序T的种群和GSM内核使用的随机树R的集合个体用线性基因组表示放大图片作者:George E. Hernandez等软件X 18(2022)1010853→▷→▷ →▷→▷▷+ −×Fig. 1. GPU执行模型。算法1:GSGP-CUDA进化算法输入:种群大小m,随机树数r,适应度情况(n×l)、目标语义t、最大程序大小k和矩阵ST,m×n和随机树语义矩阵SR,r×n。适合度计算。 ComputeFitness内核计算世代g;核遗传群体(m,k)→P;基因水平的遗传变异语义矩阵ST的每一行之间的RMSE目标向量t,m×n和核函数Population(r,k)→R;用于GSM核计算语义的随机树(P)ST,m×n;个人层面的竞争主义内核计算语义学(R)随机树的语义矩阵核计算适应度(ST,m×n,t)FT,m×1;个体水平上的相似性计算种群中每个个体的适应度。为了解释具有许多适应度情况和大量人口的大型数据集,语义矩阵的有效划分是必要的。每个线程计算单个个体的适应度。几何语义突变。 执行搜索操作1代=g做内核GSM(ST,m×n,SR,r×n元素级)→SO,m× n; 语义学上的语义主义GSM内核GSM运营商基本上是一个矢量加法运算,可以独立执行每个核计算适应度(SO,n×m,t)FO,m×1;后代精英主义的生存;使用CUBLAS和指针别名实现返回:最佳个人发现;由有效的终端(程序的输入)和函数(可以用来构建程序的基本元素)组成。终端包括输入特征和短暂随机常数,而算术运算符的简化函数集如[2]、of、和受保护除法中所建议的那样使用.每个基于以下概率随机确定染色体中的基因:函数为0.8,问题变量或特征为0.14,短暂随机常数为0.04。翻译ComputeSemantics内核基本上是一个解译器,它对每个GP树进行解码,并在所有适应度情况下对其进行评估,产生每个个体的语义向量作为输出。使用辅助LIFO堆栈D线性解释染色体,该堆栈D存储来自染色体的终端和来自有效操作的输出,遵循[15]。当解释器遇到染色体中的末端基因时,将值推入堆栈D。相反,当遇到函数基因时,对D执行弹出操作以获得函数的参数(操作数);弹出操作的数量等于函数的arity。在计算函数之后,输出被推送到堆栈D上。如果D中元素的数量小于函数的arity,则跳过操作,并将堆栈保留在原始状态(在遇到染色体中的函数基因额外的输出寄存器Out用于存储计算函数的所有有效输出。当解释器到达染色体的末尾时,内核返回Out的内容。对于训练数据集中的每个适应度情况重复这一过程。每个人都在一个线程上执行,在所有的健身情况下。ComputeSemantics内核生成语义语义元素sTi,j.然而,有必要选择两个随机树Ru和Rv的语义以及随机变异步骤ms。换句话说,虽然变异算子在个体水平上定义,但是它可以在个体水平上有效地实现语义元素级别,其中每个线程计算后代中的特定语义元素。因此,为了在多个线程上同步该操作,首先用两个辅助内核构建索引阵列和突变步骤阵列,第一个存储在每个突变操作中使用的随机树的索引u和v,而后者存储对应的突变步骤ms。之后,GSM内核使用这些阵列来计算后代语义向量的每个元素生存生存使用世代策略,在父母和后代群体中最好的个体都是精英。这个阶段用后代的种群、语义矩阵和适应度向量替换父种群、语义矩阵和适应度向量它依赖于CUBLAS ISAMIN函数来识别最佳个体。为了找到要替换的最差个体,如果精英个体在父群体中,则使用CUBLAS ISAMAX函数。2.3. 复杂性分析根据[11],顺序GSGP的复杂度取决于种群大小(m)和世代数(g),导致O(mg)的时间复杂度;因为在每一代评估新个体的计算成本是常数O(1)。然而,一般来说,这种评估也取决于适应度案例的数量n,复杂度为O(mgn)。的算法复杂度为O(n),其中t是不线程的数量对于现代GPU,t可以近似于m,在许多情况下为G或N,使得复杂度可以降低一个因子。类似地,内存复杂度取决于种群大小(m)和适应度情况的数量(n),但由于在所有迭代中使用相同的数组,因此代数(g)放大图片作者:George E. Hernandez等软件X 18(2022)1010854=关于我们=表1GPU设备的规格。Quadro P4000 Tesla P100GPU架构NVIDIA Pascal NVIDIA PascalGPU内存8 GB GDDR5 16 GB CoWoS HBM2 at 732GB/s或12 GB CoWoS表2用于基准测试GSGP-C++和GSGP-CUDA的实验参数。参数范围健康病例n=102,400特征数l=1,024程序大小(基因)k∈ [127,1023,2047]内存接口256位HBM2,549 GB/s4096位人口规模m10,240世代数内存带宽NVIDIACUDA核高达243 GB/s 732 GB/s或549 GB/s1792 358430岁系统接口PCI Express 3.0×16NVLink表3最大功耗105瓦250瓦与GSGP++相比,GSGP-CUDA的速度加快,考虑到10,240人的群体。并不影响内存的复杂性。然而,还有两个额外的维度影响内存复杂度,它们是:最大程序大小(k)和随机树的数量(r)。请注意,第一个仅用于数组中初始种群中个体的语法,而后者在整个进化过程中是恒定的。以这种方式,对于初始化阶段,该算法实现用于初始种群的大小为O(rk)的浮点数的数组,用于用于突变操作的随机树的大小为O(rk)的另一个浮点数的数组,用于保存每个个体的语义向量的大小为O(mn)的一个浮点数的数组,用于随机树的语义向量的大小为O(rn)的另一个浮点数的数组;以及最后,用于随机树的语义向量的大小为O(nl)的一个浮点数的数组。输入数据,由问题中的适应度案例数和特征数给出。对于算法的剩余迭代,使用额外的数组来存储在每次迭代中创建的新个体的语义向量,该数组的大小为O(mn)。因此,所提出的算法的内存复杂度为O(k2mnRNNL)。正如下一节将要描述的那样,呈现最大值的维度是适应度案例的数量(n)和群体大小(m)。因此,存储器增长由O(2mn)描述。3. 说明性实例实验评估有两个目标。首先,测量GSGP-CUDA相对于GSGP-C++的加速。第二,比较两种实现在实际问题上的性能3.1. 性能加速算法在以下硬件上执行。对于GSGP-C++,我们使用配备英特尔®至强® CPU E5-2650 v4@2.20 GHz处理器的Dell PowerEdgeR430服务器,使用在基于内核的虚拟机服务器上运行的具有8个至强内核和32 GB RAM的虚拟机。对于GSGP-CUDA,我们使用两个设备,NVIDIA Quadro P4000和NVIDIA Tesla P100;参见表1。Quadro卡可在戴尔精密7811工作站上工作,该工作站采用英特尔(R)至强CPU E5-2603 v4 1.70 GHz和32 GB RAM,采用64位Ubuntu Linux。Tesla卡运行在IBM Power8 S822LC HPC服务器上,具有两个Power8NVL4.20 GHz处理器,512 GB RAM和Ubuntu服务器16.04.为了评估实现之间的加速比,我们使用虚拟数据集来测量不同sce- narios的执行时间。表2显示了这些实验的范围和参数值。CUDA事件API用于计算处理时间,它是CUDA SDK的一部分,包括创建和销毁事件、记录事件和计算经过时间的使 用 事 件 函 数 cudaEvent_t 、 cudaEventCreate ( ) 、cudaEventRecord ( ) 、 cudaEventSyn-chronize ( ) 和cudaEventElapsedTime(),在两个事件之间以毫秒为单位。我们计算的运行时间的人口,ComputeSemantics和一个单一的GSGP代(迭代)。在后一种情况下,这包括GSM内核,以及所有辅助内核和生存阶段。此外,计算每次运行的总运行时间,包括训练数据的加载时间和将结果返回给主机的时间。表3显示了GSGP过程中GSGP-CUDA与GSGP-C ++相比的加速。考虑k127的情况,这是相对较大的程序和常见的GP设置[11,16]。请注意,由于CUDA的并行化以及GSGP-CUDA使用了更简单的线性染色体,因此在CSGP-Population内核中的加速最大。在特斯拉卡中,每一代GSGP也有近1000的大幅加速。但是,总运行时间的加速比更接近ComputeSemantics内核中实现的加速比。这是由于两个原因。首先,ComputeSemantics是计算成本最高的内核,因为每个个体对于每个适应度情况都是线性解释的。其次,这些测试只考虑了50代人。在许多现实世界的问题中,生成的数量可以高达2,000,以实现最佳性能,这将在实践中提高加速比。随着个体大小的增加,CRFPopulation内核和GSGP Generation的加速要么保持不变,要么增加。但是,ComputeSemantics内核的加速比会降低。比较Quadro和Tesla卡,图。 2总结了参数值扫描的结果。图中 显示 了ComputeSemantics 内 核30 次 运行 的运 行时 间 ( 水平轴),其中包含102,400个适应度案例和表2中的参数。注意,ComputeSemantics 内 核 对 程 序 大 小 很 敏 感 因 此 , 建 议 GSGP-CUDA的设置是使用小型或中型程序。3.2. 实符号回归问题GSGP-CUDA和GSGP-C++在表4中的一组基准问题上进行了评估,这些问题已被广泛用于个体大小CUDA内核加速Quadro提速特斯拉127人口554x1,177 xComputeSemantics96x112xGSGP生成29x872x总运行时间1x103x1023人口570倍2 039 xComputeSemantics23x31xGSGP生成28x850倍总运行时间22x30x2047人口1,130倍3 525倍ComputeSemantics24x29xGSGP生成32x946x总运行时间23x29x放大图片作者:George E. Hernandez等软件X 18(2022)1010855[客户端]∈===图二. Quadro和Tesla卡的性能比较,考虑ComputeSemantics内核。表4符号回归现实世界的问题。表6测试适应度(RMSE)在真实世界基准问题上的比较问题编号实例号特征描述GSGP C++GSGP CUDA混凝土[19] 1030 9混凝土抗压强度强度是建筑物参数的高度非线性函数。能源冷却[20] 768 9评估冷却建筑物的要求作为一个游艇8.628.511.101.848.798.711.14一点二九建筑功能参数能源供暖[20] 768 9评估供暖住房[21] 506 14作为建筑参数函数的建筑要求。关注波士顿郊区的房价。表7用于实际问题GSGP-C++和GSGP-CUDA基准测试的实验参数。参数范围数量30世代数l1,024程序大小(基因)k一千零二十四人口规模m1,024短暂常数的范围1,10突变概率交叉概率表5在真实世界的基准问题上比较训练适应度(RMSE)GSGP C++GSGP CUDA问题是说中值STDIQR是说中值STDIQR混凝土8.978.870.690.468.127.890.921.65冷却3.503.510.240.243.253.300.180.22加热3.593.380.790.522.973.010.210.23壳体4.244.270.180.264.264.250.340.32塔157.87160.8230.5835.5369.1670.045.437.91游艇8.398.201.041.178.358.340.670.55评价GP [3,17,18]。用于这些程序的参数示于表7中。结果总结于表5中。对于训练性能,表6中显示了去除离群值后所有运行的平均值、中位数、标准差(STD)和四分位距(IQR)。在大多数情况下,性能相当,只有轻微的变化。一个值得注意的结果是,GSGP-CUDA在最困难的问题Tower上优于GSGP-C++。这是由于GSGP-CUDA使用不同的表示法。GSGP-CUDA的性能可能会进一步提高,使用超参数优化或结合局部搜索方法[6]。3.3. 如何使用GSGP-cuda库运行参数定义在一个Roll.ini文件中,即:世代数、群体大小、程 序 大 小 、 函 数 和 终 端 比 率 以 及 常 数 的 值 限 制 要 编 译gsgpCuda.cu文件,只需运行:nvcc-std=c++11-O0 gsgpCuda.cu-o gsgpCuda.x-lcudagsgpCuda程序在两种模式下运行,遵循其他机器学习模型的两步执行,fit/predict。命令行参数决定运行模式。如果参数包括训练文件和可选的测试文件,以及结果模型的输出文件,则程序将执行搜索过程以找到适合训练数据的模型,命令行如下:./ GsgpCuda.x -train_data train_file_name>.txt[-test_data test_file_name>.txt]-output_model<型号名称>在这种情况下,train_file_name. txt和test_file_name. txt分别是包含训练和测试实例的文件;如果没有提供测试数据,算法将不会生成任何测试输出。列包含问题特征的值,而行包含实例。最后一列应该包含目标变量。该算法的输出是一个名为model_name的CSV文件,由用户指定,问题是说中值STDIQR是说中值STDIQR混凝土6.877.231.612.548.417.891.131.93冷却3.513.470.280.373.253.240.240.33加热3.673.470.810.632.993.050.230.26壳体4.294.200.420.684.334.290.530.81塔156.66161.1626.4637.8769.8870.895.778.75别墅[17]500026工业数据集色谱测定述组合物的蒸馏塔游艇[22]3087代尔夫特数据集,用于预测水动力性能从不同维度航行,速度放大图片作者:George E. Hernandez等软件X 18(2022)1010856使 用 输 出 模 型 进 行 进 一 步 推 断 所 需 的 辅 助 文 件 。model_name_initialPopulation.csv 文 件 存 储 初 始 种 群 的 个 体 ,model_name_randomTrees.csv文件包含搜索过程中GSM操作使用的辅助种群。此外,该算法生成两个文件来存储每一代中最佳个体的适应度值:model_name_fitnessTrain.csv和model_name_fitnessTest.csv。1类似地,同一个程序可以通过先前进化的模型对看不见的数据模型评估操作基于[5]中提出的算法。要在此模式下运行,命令行参数应定义模型和输入数据,以及用于存储模型预测的输出文件名命令行应如下所示./ GsgpCuda.x -模型模型名称>-输入数据.txt-prediction_outputpredicted_values>.csvmodel_name文件应该包含模型此外,前面描述的两个辅助文件应该与模型文件位于同一位置。new_data.txt文件包含新的不可见数据,而predicted_values.csv文件将存储模型对新数据生成的预测。4. 影响这项工作的主要贡献是提出了GSGP的第一个CUDA实现,其中进化周期的基本元素从实践的角度来看,GSGP-CUDA是该算法最有效的实现,并开辟了在大数据问题上使用GSGP和GP的可能性这一点很重要,因为GSGP在中小型问题上表现出了很大的潜力GP作为一种机器学习方法,一直无法有效地利用现代GPU技术,而该算法是朝着这个方向迈出的一大步。此外,从科学的角度来看,GSGP-CUDA允许对语义空间进行大规模分析,这是GP中最活跃的研究领域之一[23]。最后,通过遵循其他最先进的ML方法的拟合/预测模型,它简化了GSGP-CUDA算法的实现,使其更适合于比较。5. 结论本文介绍了第一次实现的强大的GSGP算法的GPU卡上执行,使用CUDA编程。鉴于GSGP的性质,移植到一个有效的CUDA实现,使用线性程序表示,在这项工作中演示。实验结果表明,GSGP-CUDA执行类似的顺序实现(GSGP-C++),但特别是在最困难的基准上表现更好此外,基准测试表明,GSGP-CUDA的加速比可以高达1,177倍的一些过程,并超过100倍的少数几代。此外,GSGP-CUDA框架包括模型重建和评估过程,遵循类似于其他最先进的监督学习模型的两阶段结构,其中首先模型被进化,然后用于对新数据样本进行预测未来的工作将集中在集成其他搜索元素,如本地搜索方法和扩展解释器,以允许不同的数据类型。1如果没有提供测试分区,程序只考虑训练实例,不返回任何测试结果。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢我们感谢Perla Juárez-Smith帮助实现了本软件中使用的一些源代码。我们还感谢墨西哥国家技术公司和CITEDI-IPN在发展过程中提供的行政和技术援助。这个工作。这项研究部分得到了FCT(Fundação para a Ciência e a Tecnologia)国家基金的支持,Por-tugal 通 过 项 目 GADgET ( DSAIPA/DS/0022/2018 ) 和 AICE(DSAIPA/DS/0113/2019)。Mauro Castelli感谢斯洛文尼亚研究机构(研究核心资金编号P5-0410)的财政支持。TecNM(墨西哥)2020年也通过研究项目“解决遗传学方案同时进行管理的多个问题”为这项工作提供了资金引用[1]Moraglio A,Krawiec K,Johnson CG.几何语义遗传程序。在:第12届国际会议上并行解决问题的性质-卷第一部分。PPSN,vol.12,2012,p.21比31[2]杨伟,王伟,王伟.几何语义遗传编程在现实生活中的应用。In:Riolo R,Moore JH,Kotanchek M,editors.遗传规划理论与实践Xi. New York,NY:SpringerNew York; 2014,p. 191-209.[3][10]杨文,李文,李文.住宅建筑能耗预测:遗传规划方法.能源建设2015;102:67-74。[4]作者:Castelli M,Silva S,Vanneschi L.几何语义遗传编程的C++框架。Genet Program Evol Mach2015;16(1):73-81.[5]曼 佐 尼 · 卡 斯 泰 利 GSGP-C++ 2.0 : 一 个 几 何 语 义 遗 传 编 程 框 架 。SoftwareX2019;10:100313.[6]Castelli M , Trujillo L , Vanneschi L , Silva S , Z-Flores E , Legrand P.Geometricsemantic genetic programming with local search. 2015年遗传与进化计算年会论文集。GECCO,vol. 15,2015,p. 999-1006[7] 格伦A使用scikit-learn和tensorflow进行机器学习:构建智能系统的概念、工具和技术。第1版O'Reilly Media,Inc. 2017年。[8]奇 蒂 DM 。 使 用 二 维 堆 栈 的 更 快 的 基 于 GPU 的 遗 传 编 程 。 SoftComput2016;21:3859-78.[9]作者 :W.用于 GPU图形 卡上 遗传编 程的 SIMD 解释 器。In: O'Neill M ,Vanneschi L, Gustafson S,Espar-A l c á z a rAI, De Falco I, DellaCioppa A,Tarantino E,editors.基因编程。Berlin,Heidelberg:SpringerBerlin Heidelberg; 2008,p. 73比85[10]Langdon WB.大规模生物信息学数据挖掘与图形处理单元上的并行遗传编程。In : Tsutsui S, Collet P , editors.基 于 GPGPU 的 大 规 模 并 行 进 化 计 算 。Berlin,Heidelberg:Springer Berlin Heidelberg; 2013,p. 311-47[11]万内斯基湖几何语义遗传规划导论。In:Schütze O,Trujillo L,Legrand P,Maldonado Y,editors. NEO 2015:数值和进化优化研讨会NEO 2015的结果。Cham:Springer International Publishing; 2017,p.3-42[12]Robilliard D , Marion V , Fonlupt C. GPU 上 的 高 性 能 遗 传 编 程 。 在 :BADS2009年[13]哈定SL,班扎夫W。使用CUDA在GPU上进行分布式遗传编程。2011年。[14]Augusto DA , Barbosa HJC. 使 用 OpenCL 加 速 并 行 遗 传 编 程 树 评 估 。 JParallel Distrib Comput2013;73(1):86-100.[15]放大图片作者:Robinson A.遗传程序设计和用推式程序设计语言进行自构造演化。Genet Program Evol Mach2002;3(1):7-40.[16]Poli R , LangdonWB , McPhee NF. 遗 传 编 程 的 现 场 指 南 。LuluEnterprises,UK Ltd; 2008年。[17]放大图片作者:Vladislavleva EJ,Smits GF,den Hertog D.以非线性阶数作为 pareto 遗 传 规 划 符 号 回 归 模 型 的 复 杂 性 度 量 。 IEEE Trans EvolComput2009;13(2):333-49.放大图片作者:George E. Hernandez等软件X 18(2022)1010857[18]Juárez-Smith P , Trujillo L , García-Valdez M , Fernández de Vega F ,Chávez F. 基于物种形成的遗传规划膨胀控制中的局部搜索。Genet ProgramEvol Mach2019;20(3):351-84.[19]叶 一 志 高 性 能 混 凝 土 强 度 的 人 工 神 经 网 络 建 模 。 Cem Concr Res1998;28(12):1797-808.[20]Tsanas A,Xifara A.使用统计机器学习工具对住宅建筑的能源性能进行精确的定量估计。能源建设2012;49:560-7。[21]小昆兰结合基于实例和基于模型的学习。载:机械学,第十届国际会议论文集.Amherst,MA,USA:University of Massachusetts; 1993,p. 236比43[22]I. Ortigosa JG.帆船剩余阻力预测的神经网络方法。在:海洋工程国际会议论文集 海 洋 。2007年,p.250块[23]放大图片Vanneschi L,Castelli M,Silva S.遗传程序设计中的语义方法综述。Genet Program Evol Mach2014;15(2):195-214.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功