欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    人工智能实验报告实用.docx

    • 资源ID:16485557       资源大小:48.32KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    人工智能实验报告实用.docx

    1、人工智能实验报告实用人工智能实验报告人工智能第二次实验报告一实验题目: 遗传算法的设计与实现二实验目的: 通过人工智能课程的学习,熟悉遗传算法的简单应用。三实验内容 用遗传算法求解f (x) =x2的最大值,x ,1,x取整数。可以看出该函数比较简单,只要是为了体现遗传算法的思想,在问题选择上,选了一个比较容易实现的,把主要精力放在遗传算法的实现,以及核心思想体会上。四. 实验过程:1.实现过程 (1)编码使用二进制编码,随机产生一个初始种群。L 表示编码长度,通常由对问题的求解精度决定,编码长度L 越长,可期望的最优解的精度也就越高,过大的会增大运算量。针对该问题进行了简化,因为题设中 0,

    2、31,所以将二进制长度定为5就够用了;()生成初始群体种群规模表示每一代种群中所含个体数目。随机产生N个初始串结构数据,每个串结构数据成为一个个体,N个个体组成一个初始群体,表示种群规模的大小。当取值较小时,可提高遗传算法的运算速度,但却降低种群的多样性,容易引起遗传算法早熟,出现假收敛;而当取值较大时,又会使得遗传算法效率降低。一般建议的取值范围是20-100. .感谢聆听.(3)适应度检测根据实际标准计算个体的适应度,评判个体的优劣,即该个体所代表的可行解的优劣。本例中适应度即为所求的目标函数;()选择从当前群体中选择优良(适应度高的)个体,使它们有机会被选中进入下一次迭代过程,舍弃适应度

    3、低的个体。本例中采用轮盘赌的选择方法,即个体被选择的几率与其适应度值大小成正比; (5)交叉遗传操作,根据设置的交叉概率对交配池中个体进行基因交叉操作,形成新一代的种群,新一代中间个体的信息来自父辈个体,体现了信息交换的原则.交叉概率控制着交叉操作的频率,由于交叉操作是遗传算法中产生新个体的主要方法,所以交叉概率通常应取较大值;但若过大的话,又可能破坏群体的优良模式.一般取0。4到。9。 .感谢聆听.()变异随机选择中间群体中的某个个体,以变异概率大小改变个体某位基因的值。变异为产生新个体提供了机会.变异概率也是影响新个体产生的一个因素,变异概率小,产生新个体少;变异概率太大,又会使遗传算法变

    4、成随机搜索。一般取变异概率为0010。1。(7)结束条件当得到的解大于等于90时,结束。从而观看遗传的效率问题.五. 代码及结果:*遗传算法设计最大值/ #inclu std。h inclde string.h include nclud ime。 defne C 0 /测试 fin CLA 4 /测试标记 #defne JIAOHRTE 0.5 /交叉概率一般取0。4到0。99definBIYI_ATE 0.09 /变异概率为00010 #dfine ITE_NUM 0 /迭代次数 #efie PP_M 0 /染色体个数dfine GE_UM 5 /基因位数 #dee FXP(x) ((x)

    5、()) /y=x2 tyedef unsigne n U; /染色体 edef suct car eneBitGEN_NU;/基因位 NT itValu; /适应值 Chromsome; /将二进制的基因位转化为十进制 UNT toDec(Chroosome po) UINT i; ITradix =1; NTresul 0; f(i=0;NE_UM; +) result+= (pp。enBiti-)rdix; ri = 2; reun esult; INT calcFiValue(UINT x) eturn FX(); voiet(Chrmoom *p) it i; in j; fr(i0;

    6、 iPP_UM; i) nt(”%d: ,i); for(j=0; jGE_NUM; j+) pitf(,pop.eneitj); pritf( 4d, oDec(o); printf(” fxVaue=%dn”, clcFitalu(tDec(opi); /变异得到新个体:随机改变基因 vi mutin(Chrmosome pp) N randow,ranol; UIN ranVl; radValueand()%10; if(andValu= (int)(IANYI_RAT*00) #f (C=1) & (CFLAG=4) printf(种群个体没有基因变异n”); #eif return

    7、; ndCol =rad()GENENUM; /随机产生将要变异的基因位 adRow =and()POP_NM; / 随机产生将要变异的染色体位 if(=1) (FLG=4) printf(n变异前n); est(pp); printf(n变异的位置为:染色体号=%d 基因位号=%”,rnow+,rndo); #enif poradowgeneBtandCo = (pprandwgeneitndCol=0) ?1:0;/1变为,变为1 opndRw.ftVau cacFitVau(oDe(opandRow) ); i(C1)& (CFAG=4) print(n变异后n); test(po);

    8、nif /创建初始群体 oid ceteop(Chromoom pp) UIi,j; UNT randVlue; UNTvae; sand(unsigne)tm(NULL)); for(i=0; iPONUM; i+) fo(j=0; EE_NM; +) ranl = and()2; popi.gneBijandVl+0; / 将随机数或1赋给基因 vlue= toDec(pp); popifale =calFitValue(ale); i (C=) & (CFLA=1) pinf(”n随机分配的种群如下:); tet(pop); edi /更新种群 vid upatePop(homo new

    9、Pop, Cromomeodp) Ni; for(i=0; POP_UM; +) oldopinewPopi; /选择优良个体:根据适应度选择最优解,即最优个体 vodseect(Chrmooepop) UNT ,j; UINT smFitValu; /总适应值 UNT aitVlu; /平均适应值 fa hoiceOP_NU; /选择 hrmosome ePp; /交换变量 #if(C=) (CFLAG)/测试 rntf(没有选择前的种群如下:); est(pop); edf /根据个体适应度冒泡降序排序 f(i=P_U; i0; i-) or(j=0; ppj.ftu) tmpPop p+

    10、1; po1 = o; popj = tepP; /计算总适应值 sitVale 0; fr(i=0; iPP_U; ) umtlue + opi.tVlue; FiValu (UINT)((float)sFitVle/OP_NU)+0.5); /计算平均适应值 /计算出每个群体选择机会,群体的概率=群体适应值/总适应值,平均概率= 平均适应值总适应值,群体选择机会 = (群体的概率/平均概率) for(i=0;iPOPNM;+) che =(at)popi.fitValue/sumFitValue)((fa)aFtVale/sumFiValue); choc=(oat)(in)(chocei

    11、*100+0.5)/0。0);/保留到小数点后2位 /根据选择概率来繁殖优良个体,并淘汰较差个体 fr(i=; iPOP_M; i+) f(((int)(chiei+0.55) = ) /如果hoici=淘汰繁殖一次最优的群体 popOPNUM1= pp; f(C=1)& (FLA=2) prit(经过选择以后的种群:n); test(pop); endif /交叉:基因交换 vod ros(Choosome p) chartmpStrGNE_=”; U i; N andPo; UINT randVaue; radVauernd()%0; f(nVlue =(int)(JIAOCA_AE100

    12、)) f (C=1) (CFLA3) rit(种群没有进行交叉.n); endif rturn ; #f(=1) & (CFLG=) ntf(n交叉前,种群如下:n”); st(pop); print(”n交叉的位置依次为:”); ndif /染色体两两交叉 fr(0; iOP_NM; i+=2) randPos (rand()(EN_NUM1)+1); / 产生随机交叉点,范围是1到GEE_UM1 strny(tmStr,poi。geneBi+ranPos, GENE_NMranPos); trcpy(pp。gnBitrandPo, poi。geneBit+raPos, GEE_NUMand

    13、Pos); strncpy(ppi+1.geBitrnos, tmStr, GEE_NUMranPo); if (=1)& (CFLG=) itf(”%”, randPos); endf / 对个体计算适应度 for(i0; OP_UM;i+) p.italue calcFVal(tDec(popi) ); i (C=1) &(CFLAG=3) rn(n交叉后,种群如下:); est(pp); ndf /输出结果vid resul(Crmosmepp) UI i; UINT x = 0; UIT axValu 0; / 函数的最大值 fr(;iO_M; i+) if(oi。ftValu max

    14、Vu) maxVaue op。ftalue; = toec(oi); ritf(当x=%时,函数得到最大值为:dn, x, maxVlue); int m(targc, char argv)t count; /迭代次数 Choosome cropPP_NUM; /初始种群或者当前总群 hromosoe nextPopPOP_NUM; /变异后种群 rtePop(rPo); for(count1; out(ER_NUM1); ount+) pdatePp(uop, extPop); / 更新种群 slec(extPop); /选择 crs(nextPop); /交叉 man(ePop); /变异 udatePop(nxtPop, urPop); /更新 print(”n第%d次迭代:n”, ount); test(urPo); esult(crPop); eurn 0; 实验结果: 实验小结:经过本次实验对遗传算法有了深刻的了解,充分体会到遗传算法对优缺点,了解了演化算法的基本思想,虽然过程中出现了很多小问题,比如大小写什么的还有就是逻辑错误,但是最终在理解的基础上成功实现了功能,认真分析后,提高了解决问题的能力.谢阅.


    注意事项

    本文(人工智能实验报告实用.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开