
如何用遗传算法实现多变量的最优化问题?
展开全部
是不是像求函数最值那样子?建议你了解一下遗传算法的实数编码,这个对于求函数最值很方便,不用像二进制那样需要转换。
简单介绍一下思路:
最重要的是确定适应度函数,只要确定这个函数就很容易了,就用你不会编程,直接调用matlab的工具箱就行了。
1st.设置种群规模,并初始化种群p,并计算各个个体的适应度。
例如,20个个体,每个个体包含5个变量,x1,x2,x3,x4,x5.
如果你用matlab来编程的话,这个可以很容易实现,会用到random('unif',a,b)这个函数吧。
例如x1的取值范围是[0,1],那么x1=random('unif',0,1).
2nd.采用轮盘赌选出可以产生后代的父本,p_parents。
额,轮盘赌的实质就是适应度大的被选出的概率大。这个不难,但说起来比较长,你可以自己去看一下。
3rd.杂交过程的思路随机将p_parents中的个体随机两两配对,然后随机产生一个1到n的数(n为变量的个数),设为i,交换每对父本中i之后的变量值。交换以后的p_parents成为后代p_offspring.
这里变起来有点点复杂,不过只要耐心一点,编好配对过程和交换过程。
4th.变异过程,这个比较简单,不过需要自己把握的较好。
基本的思路是设置一个概率,例如0.05,然后产生一个随机数如果随机数比0.05小那么这个变量值就要产生微小的增加或减少。
这个变异过程要历遍p_offspring所有的变量喔。
5th.将p和p_offspring合并起来,然后选出适应度大的,重新构成一个如原始种群规模相等的种群。
简单介绍一下思路:
最重要的是确定适应度函数,只要确定这个函数就很容易了,就用你不会编程,直接调用matlab的工具箱就行了。
1st.设置种群规模,并初始化种群p,并计算各个个体的适应度。
例如,20个个体,每个个体包含5个变量,x1,x2,x3,x4,x5.
如果你用matlab来编程的话,这个可以很容易实现,会用到random('unif',a,b)这个函数吧。
例如x1的取值范围是[0,1],那么x1=random('unif',0,1).
2nd.采用轮盘赌选出可以产生后代的父本,p_parents。
额,轮盘赌的实质就是适应度大的被选出的概率大。这个不难,但说起来比较长,你可以自己去看一下。
3rd.杂交过程的思路随机将p_parents中的个体随机两两配对,然后随机产生一个1到n的数(n为变量的个数),设为i,交换每对父本中i之后的变量值。交换以后的p_parents成为后代p_offspring.
这里变起来有点点复杂,不过只要耐心一点,编好配对过程和交换过程。
4th.变异过程,这个比较简单,不过需要自己把握的较好。
基本的思路是设置一个概率,例如0.05,然后产生一个随机数如果随机数比0.05小那么这个变量值就要产生微小的增加或减少。
这个变异过程要历遍p_offspring所有的变量喔。
5th.将p和p_offspring合并起来,然后选出适应度大的,重新构成一个如原始种群规模相等的种群。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询