遗传算法代码实现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