SpeedyGA:一种快速的简单遗传算法

版本1.22.0.0 (4.13 KB) Keki Burjorjee
一个矢量化的简单遗传算法在Matlab中的实现

24.6 k下载

更新2010年11月21日

查看许可协议

SpeedyGA是Matlab编程语言中遗传算法的矢量化实现。没有花哨的东西,它忠实地实现了M. Mitchell的GA书第10,11页给出的简单GA规范。有关详细信息,请参阅代码中的注释。

这个脚本在一种新的、统一的解释遗传算法(包括具有均匀交叉的算法)的适应能力的发展中发挥了关键作用,这种解释被称为生成固定假说。看到http://cs.brandeis.edu/~kekib/dissertation.html

Matlab针对数组执行操作进行了优化。循环,尤其是嵌套循环,在Matlab中往往运行缓慢。通过将循环转换为数组操作,可以显著提高Matlab程序的性能。这个过程被称为向量化。Matlab提供了丰富的函数集和许多有表现力的索引方案,使向量化代码成为可能。这样的代码不仅运行得更快,而且更短,更容易理解和更改(当然,前提是您对Matlab有一点了解)。

用C/ c++或Java实现的遗传算法通常有多个嵌套循环。因此,将这样的实现直接移植到Matlab将运行得非常慢。在典型的GA实现中发现的许多嵌套循环已从SpeedyGA中消除。生成的代码简短、快速且简单。当一种编程语言的结构与一项编程任务匹配得如此之好,以至于程序可以写得如此简洁时,这确实是一种令人愉快的巧合。

SpeedyGA证明了Matlab对于遗传算法的快速原型设计是一种有用的语言。这一点,再加上Matlab广泛的数据可视化功能,使Matlab成为GAs实验分析的一个非常有用的平台。

SpeedyGA已在Matlab 7 (R14)下创建和测试。它根据一最大值适应度函数进化出一个种群。皇家道路健身功能也包括在内,但目前还没有被调用。如果你发现SpeedyGA有用或发现任何错误,请让我知道。

享受吧!

注:对于可能显著提高返回解决方案质量的实验性遗传算法,请查看TurboGA (万博 尤文图斯//www.tianjin-qmedu.com/matlabcentral/fileexchange/24053

引用作为

Keki Burjorjee(2022)。SpeedyGA:一种快速的简单遗传算法(//www.tianjin-qmedu.com/matlabcentral/fileexchange/15164-speedyga-a-fast-simple-genetic-algorithm), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R14创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中寻找宝藏,并了解社区如何帮助您!

开始狩猎!