数学建模社区-数学中国
标题:
谢菲尔德大学的matlab遗传算法工具箱(一)
[打印本页]
作者:
2744557306
时间:
2023-10-20 17:31
标题:
谢菲尔德大学的matlab遗传算法工具箱(一)
遗传算法来寻找二元函数的最大值。以下是代码的详细解释:
3 O3 r6 R# ~$ `+ W( Z
" F# u& @6 M% l* f N* J
3.绘制函数图:
- A, k: ?, X O, _
4.使用 ezmesh 函数绘制了一个函数曲面,函数为 y*sin(2*pi*x) + x*cos(2*pi*y)。
, f, E7 h; W! z$ i: s
5.这个函数是一个在给定范围内([lbx, ubx]和[lby, uby])的二元函数,表示为 F(x, y)。
$ f' i0 u3 H& U' I
6.定义遗传算法参数:
1 ?) Z; M7 N9 r, n- D
7.定义了一系列遗传算法参数,包括种群大小 (NIND)、最大代数 (MAXGEN)、二进制位数 (PRECI)、代沟 (GGAP)、交叉概率 (px)、变异概率 (pm) 等。
3 `) S0 _' N* {4 q& G, k, J
8.FieldD 是一个区域描述器,指定了种群的搜索范围。
$ P C9 o& \2 U+ X
9.Chrom 是初始种群,通过 crtbp 函数生成。
# n* u$ u& r: s1 t$ ^* i, ` S/ a/ @
10.优化过程:
0 l: [7 g( k+ K8 w5 p' n
11.进入遗传算法的主要循环,其中 gen 用于计算代数。
6 U0 z v' p* K% ~8 l l, p# c3 s/ E
12.将二进制种群转化为实数值 (XY),计算每个个体的目标函数值。
& T* ?% a0 k* ^. a
13.使用适应度函数对个体进行排序,并选择适应度高的个体作为父代。
/ `( Y. S* I% G9 F4 R) b g
14.通过交叉 (recombin) 和变异 (mut) 操作产生子代。
: x6 d3 X5 I) ]' t& U2 U6 z7 D6 R: K
15.计算子代的目标函数值,然后使用 reins 函数将子代与父代组合,生成新的种群。
1 ]! n% V' |" N' M
16.每代最优解和最优值都被记录在 trace 数组中。
3 m6 F1 n& t3 C/ l% K
17.绘制进化图:
, v1 |+ g1 \0 |, [
18.在第二个图形窗口中,绘制了每代最优解的变化。
0 K' P8 a2 X9 h$ H/ f1 I
19.X轴是遗传代数,Y轴是最优解的值。
; ^/ R2 S4 U5 E' @0 l! a3 C
20.输出最优解:
+ U: Z" o! [! N3 _1 `2 D! s
21.计算并输出最终的最优解值,包括 X、Y 和 Z。
$ s3 n) c; a. p, S$ L
这段代码的主要目的是使用遗传算法来寻找二元函数的最大值,然后绘制了进化过程和最终的最优解。遗传算法被用于寻找函数 F(x, y) 的最大值,其中 F 由给定的函数表达式定义。
: F3 y/ r* L* u9 G" S2 g! p* `/ S
1 L7 G! b3 \4 J- D3 ~ ^, f: [
& L* _) }6 V' b* X* h( B
3 \2 Z0 P# ^: l p; j+ r6 E" C
/ q. C1 [% z) e5 t2 Y7 K+ A
example2.m
2023-10-20 17:31 上传
点击文件名下载附件
下载积分: 体力 -2 点
2.01 KB, 下载次数: 0, 下载积分: 体力 -2 点
售价:
3 点体力
[
记录
] [
购买
]
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5