# 进化计算 **Repository Path**: hebugui/evolutionary-computation ## Basic Information - **Project Name**: 进化计算 - **Description**: 进化计算作业 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-12 - **Last Updated**: 2023-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 进化计算 #### 介绍 进化计算作业 #### 说明 N维参数:传统的遗传算法只能对单个变量的目标函数进行最值求解,这极大局限了算法的应用面。为了解决这一点,本文将单个变量改为多变量。
RPC算法:RPC算法源自于一篇论文《Rank and Proximity Based Crossover (RPC) to Improve Convergence in Genetic Search》,针对传统的遗传算法的交叉算子做了改进,本文实现了三种改进中的两种,分别是两个体交叉和三个体交叉。
变长编码:传统的遗传算法的编码长度是固定的,这样的设计比较简单。但是也正是过于简单,容易产生一些问题。(1)无法动态调整搜索精度。
二进制编码:针对原始遗传算法C++代码,使用python语言进行重构,以方便python项目的开发。
工厂模式:传统的遗传算法不够灵活,只能解决一类问题,比如特定函数和特定编码。针对这一问题,我们将不同的遗传算法类用工厂模式聚合到一起。
聚类算法:传统的遗传算法的由于没有生殖隔离,可能会导致存在多个最优解的问题求解过程忽略了其中的一些解,无法求得完整的解。针对这一问题,我们采用聚类算法,首先将问题空间划分为多个部分(多个种群),然后在每个种群上独立运行遗传算法,不同种群个体间不能交流,形成生殖隔离。
实数编码:传统的编码方式为二进制,本文将对其改进为实数编码。主要有以下几个优点:(1)收敛速度快;(2)遗传算子更加灵活;(3)占用空间更小;
梯度下降:传统的遗传算法容易陷入局部最优,采用梯度下降进行局部搜索可以有效改善这一点。传统遗传算法在搜索时,可能由于搜索步长过大,来回震荡,导致算法不稳定,梯度下降局部精细化搜索,也可以有效解决这一问题。