50行matlab算法,一个用matlab实现的50行的实数染色体遗传算法程序 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

本文介绍了遗传算法的基本概念和流程,并提供了一个50行MATLAB代码实现的简单遗传算法,适用于实数变量的最优化问题。通过一个求解多变量函数最小值的例子,展示了如何自定义适应度函数并应用遗传算法求解。文章还附带了适应度函数的编写和结果绘图的脚本示例。
摘要由CSDN通过智能技术生成

【本文属作者原创,但已发表于科学网(链接地址:http://blog.sciencenet.cn/blog-3102863-1029280.html),现稍作格式上的修该后转载,并发金币祝大家新年快乐!】

1. 引言

遗传算法 (genetic algorithms) 是一种很有意思最优化方法,常用于解决一些传统方法力所不及的多变量最优化问题。这种方法很通用,即用同样的思想可以解决很多不同的问题。只要你能对问题所有可能的解定义一个反映其好坏程度的量,就有可能用遗传算法找到高质量的解。遗传算法的应用十分广泛,编程实现也很容易。本文介绍遗传算法的基本概念和算法流程,给出一个用matlab实现的50行的遗传算法程序,并用一个简单的例子展示它的应用。本文给出的程序适用于待优化函数的各个变量皆为实数的情形,可用于多变量拟合等问题。读者若弄明白了该程序,应该可以写出函数变量取整数值(比如二进制数值)的遗传算法程序,甚至写出整数与实数混合情形的程序。

2 遗传算法的基本概念

2.1 生物学中的相关概念

与遗传算法有关的生物学概念主要有:

a)  染色体(chromosome)。

所有生物都由细胞组成,每一个细胞中都有一套相同的染色体。一条染色体由若干基因(gene) 组成,每个基因控制一种特定的蛋白质,从而决定生物的某种特征。所有染色体合称为基因组(genome)。基因组完全决定了一个生物个体。该个体在微观(基因)层次的表现称为基因型 (genotype),在宏观(特征)层次的表现称为显型 (phenotype)。在简单的遗传算法中,将基因组中的若干条染色体看作一整条染色体。

b)  个体复制。

在复制的过程中,父母的染色体通过交叉(crossover)产生子女的染色体。染色体还可以以一定的小概率变异(mutate)。

2.2 遗传算法的基本概念

在一般的遗传算法应用中,我们研究的是这样的优化问题:对一个有 N 个参数 x_i (1 <= i <= N) 的实函数 f(x_i) (该函数可以有任何形式;我们不要求它有任何解析性质),找到一组合适的参数使得该函数的值尽可能地大或者尽可能地小。该函数叫做适应度函数 (fitness function),其值叫做适应度。

下面我们用这个最优化问题结合上面的生物学概念说明遗传算法中的基本概念:

a)  个体,问题的一个可能的解,即任何一组参数。这组参数也叫基因型,对应的函数值叫做显型。

b)  解空间,又叫搜索空间,即所有参数构成的 N 维空间。

c)  种群 (population)ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值