1 / 9
文档名称:

遗传算法实验报告.doc

格式:doc   大小:27KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

遗传算法实验报告.doc

上传人:wdggjhm62 2022/2/13 文件大小:27 KB

下载得到文件列表

遗传算法实验报告.doc

文档介绍

文档介绍:-
. z.
信息与管理科学学院计算机科学系
实验报告
课程名称:人工智能
实验名称:遗传算法问题
XX:鹏海贾美丽妍汉昭
学号:1510003063 1510003024 毕条件,假设满足那么算法完毕,当前种群中适值最高的个体即所求解;否那么转
-
. z.
3
选择操作:
首先要知道适应度函数,所谓的适应度函数就是评价函数,通常是问题的目的函数〔或它的倒数〕,它描述了个体的优劣程度同时也决定了选择操作的概率,设fi表示第i个个体的适应度值,那选择第i个个体的概率就是fi/∑fj,简单来说,这个概率的大小就决定了该个体是被淘汰还是被保存。通常的具体做法是用类似赌盘的方法,每个个体占它的适应度那么宽的转盘大小,每次掷色子,落到哪一格就选哪一格对应的个体。
穿插操作:
穿插操作就是让2个以上的染色体进展穿插产生后代的过程,具体的穿插操作要看具体的问题。不过我觉得有一个原那么,就是要有对称性,穿插得到的后代中的基因要来源于父代的所有个体中,也就是说n个个体进展穿插是和它们的排列没关系,这样子代才有时机得到更优秀的基因。穿插操作是遗传算法中最重要的操作。最简单的根本方式是交换父代中染色体片段。
变异操作:
生物可以突变,有时候突变是好的,有时候却是坏的,但正是因为有了突变才让有限的种群中基因库可以非常丰富,也保证了种群的适应能力。变异操作通常是翻转个体中某段染色体,编码后的染色体在计算机中都是01串,也就可以随机的翻转某个〔或多个〕bit上的值。
穿插和变异不是一定要发生在选择了的个体上,而是按一定控制概率发生的,~,~。
五、实验程序
-
. z.
#include<>
#include<>
#include<>
typedef struct _indi//个体
{
double code;//染色体
double degree;//适应度
}Indi;
Indi group[40];//种群规模为40
//------------------------------------------------------
//适应度算法
void Judge(Indi &x)//适应度算法
{
double tmp=*-;
if(tmp>=0)
-
. z.
=/(+tmp)-;
else
=/(-tmp)-;
}
//------------------------------------------------------
int happened(double p)//是否发生一个概率在p=0~1的事件
{
return rand()<(int)(p*RAND_MAX);
}
//-----------------------

最近更新