演化算法作业

发布 2022-09-14 16:19:28 阅读 6518

利用演化算法求约束优化问题。

姓名学号指导老师:

1问题:用遗传算法求解下列约束优化问题:

采用实数向量编码,每一个个体是一实数对。本文采用二进制编码,自变量精度取小数点后三位,一个自变量需要二进制位数为14位,总共需要28位二进制来编码两个自变量。

将二进制编码翻译为变量的实数形式:

本文使用目标函数作为适应函数。

采用轮盘赌算法。

随机挑选两条不同的染色体,随机选出杂交位点,然后交换片段。完成后检查重组后的染色体是否满足约束条件,若不满足,则舍弃,恢复原染色体并重新杂交,直到完成15对染色体的杂交。

随机生成14个随机数对应于每条染色体的每个基因位点,若则对该基因位点进行变异。同时完成变异后检查是否满足约束条件,若不满足,则舍弃变异,恢复染色体并重新变异直到满足约束条件为止。

种群规模为30,最大代数为1000代,杂交概率0.9,变异概率0.1

随机产生初始种群,自动生成初始群体,完成检查是否满足约束条件,若不满足,则重新初始化直到有30个个体满足约束条件为止。

2.9 终止条件:

算法运行所指定的最大代数后终止,即1000代后终止迭代。

表1 四次实验结果比对表。

由表1可以看出迭代次数越多遗传算法的效果可能越好;并且多次迭代结果较为稳定,证明没有陷入局部优化。

表2 某2次迭代过程表。

由表2可以看出迭代结果在经过若干代后已经趋于稳定;同时随着迭代次数的增加,最优值越来越靠近目标值。

对原有遗传算法进行改进,在进行重组时将最好的两个个体保留下来直接进入下一次迭代,剩余个体继续保持原来重组方式。

表3 不同遗传算法运算比对表。

由表3可以看出实验结果稳定。

附录(演化算法j**a实现**):

import

import

public class ga

public static final int pop_size=30;//种群数目。

public static string pop=new string[pop_size];/种群编码。

public static pair result=new pair[pop_size];/种群代表的结果。

public static final int length=28;//编码长度,因为要精确到小数点后六位,所以编为22位长,有一公式可参考。

public static double fitness=new double[pop_size];/存放种群适应度。

public static final double pc=0.90;//交叉率。

public static final double pm=0.1;//变异率。

public static double p=new double[pop_size];/轮盘赌方法个体适应度概率。

public static double q=new double[pop_size];/q[i]是前i项p之和。

public static pair pair=new pair(0,0);

public static max max=new max(0, pair);/最大值。

public static random random=new random();用于产生随机数的工具。

/* 约束条件 */

public static double gx1(pair result)

public static double gx2(pair result)

/*初始化种群*/

public void initialization()

for(int i=0;i

* 解码方法,将二进制字节码还原为解。

public void decoding()

/* 适应度函数,也是目标函数*/

public void fitness()

/*交叉操作*/

public void crossover()

* 变异操作。

public void mutation()

for (int i = 2; i < i++)

string s=pop[i];

for (int j = 0; j < length; j++)

double k=

作业调度算法 先来先服务算法,短作业算法

操作系统 实验报告。题目 作业调度算法。班级 网络工程。姓名 朱锦涛。学号 e31314037 一 实验目的。用 实现页面调度算法,即先来先服务 fcfs 调度算法。短作业优先算法 高响应比优先调度算法。通过 的具体实现,加深对算法的核心的理解。二 实验原理。1.先来先服务 fcfs 调度算法。fc...

作业调度算法 先来先服务算法,短作业算法

操作系统 实验报告。题目 作业调度算法。班级 网络工程。姓名 朱锦涛。学号 e31314037 一 实验目的。用 实现页面调度算法,即先来先服务 fcfs 调度算法。短作业优先算法 高响应比优先调度算法。通过 的具体实现,加深对算法的核心的理解。二 实验原理。1.先来先服务 fcfs 调度算法。fc...

算法初步作业

1.下面对算法描述正确的一项是 a 算法只能用自然语言来描述 b 算法只能用图形方式来表示。c 同一问题可以有不同的算法 d 同一问题的算法不同,结果必然不同。2.对赋值语句的描述正确的是 可以给变量提供初值 将表达式的值赋给变量。可以给一个变量重复赋值 不能给同一变量重复赋值。a b c d 3....