ZKX's LAB

在MATLAB中用神经网络算法求解无约束最优化问题 遗传算法求解约束优化问题

2021-03-16知识1

用matlab的optimization工具箱遗传算法,添加约束条件的问题.优化一个很函数(函数很复杂,包含加减乘除,正弦余弦,反正弦反余弦反正切.),现在需要添加约束条件,(条件有四个,表达式也比较复杂),请问怎么添加条件,工具箱对话框似乎没法把我的约束条件添加进去?另外,我这个优化问题用遗传算法能解决吗,给个建议

懂罚函数的请进,有约束优化遗传算法的目标函数问题对于目标函数f最小,小弟用惩罚函数处理约束条件,把约束适当惩罚放入适应度函数中,那么最后求解适应度函数F最小即可,但是有一个问题:最后小弟该把F的值作为目标函数值呢,还是找出最优个体后,求f作为目标函数?龚纯的《matlab最优化计算》里面都是将F的值作为目标函数值的~

懂罚函数的请进,有约束优化遗传算法的目标函数问题 很显然,f 才是目标函数值,而F只是适应度函数值,用来评价个体优劣的。加上罚函数,仅仅是为了惩罚那些不满足约束条件的个体,以此来解决约束优化问题。但真正的目标函数是f,目的是f的值越小越好。

如何用遗传算法实现多变量的最优化问题 是不是像求函数最值那样2113子?建议你了解一下遗传算法的5261实数4102编码,这个对于求函数最值很方便,不用1653像二进制那样需要转换。简单介绍一下思路:最重要的是确定适应度函数,只要确定这个函数就很容易了,就用你不会编程,直接调用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小。

在MATLAB中用神经网络算法求解无约束最优化问题 遗传算法求解约束优化问题

#带约束的遗传算法#遗传算法求解约束优化问题

随机阅读

qrcode
访问手机版