遗传算法代码实现GO语言 遗传算法的python代码
Go语言基础语法(一)
本文介绍一些Go语言的基础语法。
创新互联建站主营呼图壁网站建设的网络公司,主营网站建设方案,成都APP应用开发,呼图壁h5微信小程序开发搭建,呼图壁网站营销推广欢迎呼图壁等地区企业咨询
先来看一个简单的go语言代码:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法。
go语言中格式化输出可以使用 fmt 和 log 这两个标准库,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包。
log包实现了简单的日志服务,也提供了一些格式化输出的方法。
执行结果:
下面来介绍一下go的数据类型
下表列出了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值。
常量是在程序编译时就确定下来的值,程序运行时无法改变。
执行结果:
执行结果:
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符。
算术运算符:
关系运算符:
逻辑运算符:
位运算符:
赋值运算符:
指针相关运算符:
下面介绍一下go语言中的if语句和switch语句。另外还有一种控制语句叫select语句,通常与通道联用,这里不做介绍。
if语法格式如下:
if ... else :
else if:
示例代码:
语法格式:
另外,添加 fallthrough 会强制执行后面的 case 语句,不管下一条case语句是否为true。
示例代码:
执行结果:
下面介绍几种循环语句:
执行结果:
执行结果:
也可以通过标记退出循环:
--THE END--
停机位分配遗传算法代码?
(1)读入初始化时输入的机位数和货物数,以及各货物的重量;
(2)设定初始种群大小,随机产生初始种群,以二进制表示每个个体的停机位分配方案;
(3)计算每个个体的适应度函数值,适应度值越大表示解被优化的机位分配越优;
(4)根据预设轮盘赌概率选择种群优秀个体进行交叉操作;
(5)根据预设变异概率进行变异操作;
(6)重复进化若干代,每一代计算受操作的种群最优个体(最优解);
(7)将进化一定代数后的最优解作为停机位最优分配方案。
如何用遗传算法实现多变量的最优化问题?
将多个变量的数值编码编排进去,进行组合。
简单的来说,就是将多个变量的数值编码编排进去,进行组合,只需要增长基因个体的长度,但是要明确每个变量具体的位置,然后让每个变量转化成二进制的等长编码,组合在一起,就可以来运算了!
初始代码:trace = zeros(3,MAXGEN);
然后,要构造一个译码矩阵FieldD,由bs2rv函数将种群Chrom根据译码矩阵换成时值向量,返回十进制的矩阵。
FieldD=[len;lb;ub;code;scale;lbin;ubin];
ObjV = Y.*sin(2*pi*X)+X.*cos(2*pi*Y);
然后按如下代码操作:
while gen MAXGEN
FitnV = ranking(-ObjV);
Selch = select('sus',Chrom,FitnV,GGAP);
Selch = recombin('xovsp',Selch,px);
Selch = mut(Selch,pm);
XY = bs2rv(Selch,FieldD);
X = XY(:,1);Y = XY(:,2);
ObjvSel = Y.*sin(2*pi*X)+X.*cos(2*pi*Y);
[Chrom,ObjV] = reins(Chrom,Selch,1,1,ObjV,ObjvSel);
XY = bs2rv(Chrom,FieldD);
gen = gen + 1;
[Y,I] = min(ObjV);
trace(1:2,gen) = XY(I,:);
trace(3,gen) = Y;
end
分享文章:遗传算法代码实现GO语言 遗传算法的python代码
标题URL:http://azwzsj.com/article/dojgghc.html