网站大量收购独家精品文档,联系QQ:2885784924

决策支持系统(双语)实验报告(DSS).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
决策支持系统(双语)实验报告(DSS)

《决策支持系统》实验报告 开课实验室:信息中心 学院 年级、专业、班 姓名 成绩 课程 名称 决策支持系统(双语) 实验项目 名 称 TSP问题的遗传算法求解 指导教师 教师评语 教师签名: 年 月 日 一、实验目的 1、掌握智能程序的构造方法; 2、掌握遗传算法的设计过程; 3、掌握概率发生器的编写过程; 4、讨论TSP问题中不同评价函数的使用结果。 二、实验原理 遗传算法(genetic algorithm, GA)是模拟生物进化的自然选择和遗传机制的一种搜索寻优算法。它利用适者生存的进化原则,通过演化逐步逼近问题的最优解。基本原理是通过随机方式将问题的每一个可能的解进行数字编码,编码后的解称作染色体(个体),随机选取N个染色体构成初始种群,通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择适应值高的染色体进行复制,通过遗传算子(选择、交叉、变异),产生一群新的适应环境的染色体,形成新的种群。这样一代一代不断进化,最后收敛到适应环境较好的一些个体中,求得问题的最优解。 遗传算法的执行过程中,每一代有许多不同的染色体(个体)同时存在,这些染色体中哪个保留、哪个淘汰是根据它们对环境的适应能力来决定的,适应性强的有更多的机会保留下来。适应性强弱是由适应值函数f(x)的值来判别的。每个个体代表一条可能的路径。个体n的适应值为,其中,N为种群数,为沿个体标示的城市序列所经过的路径长度,可通过以下公式计算出来:其中,表示个体第i位的城市编号。表示所有个体的路径长度的总和。适应值为非负,且取值越大越好。 遗传算法中主要的遗传算子有如下几种: (1)选择(selection)算子: 又称复制、繁殖算子。选择是从种群中选择生命力强的染色体产生种群的过程。依据每个染色体的适应值大小,适应值越大,被选中的概率就越大,其子孙在下一代产生的个数就越多。本实验采用的是比率法,比率法的原理是每个染色体产生后代的数目正比于它的适应值,并有一个约束条件,即每一代中染色体的总数应保持不变。 (2)交叉(crossover)算子 又称重组、配对算子。交叉采用部分匹配交叉策略,首先根据交叉概率,随机地从新复制的种群中选出要交叉的两个不同个体;然后,随机地选取一个交叉段,交叉段中两个个体的对应部分通过匹配换位实现交叉操作。 例如,对个体A和B: 交叉后得到: (3)变异(mutation)算子 即根据变异概率,随机地从种群中选出要变异的个体,随机地在该个体上选出两个变异位置,然后将两个位置上的城市序号进行变换。选择和交叉算子基本上完成了遗传算法地大部分搜索功能,而变异则增加了遗传算法找到接近最优解的能力。如: A=9 8 4 5 6 7 1 3 2 10 下划线部分为要变异的两个位置,变异为: A’=9 7 4 5 6 8 1 3 2 10 三、使用仪器、材料 计算机,VB系统 四、实验步骤 (1) 编写适应值函数 适应度值是根据适应度函数来计算的,如适应度函数代码如下: Public Function calfitness(ByRef c As Integer) As Single Dim temp As Single Dim i As Integer If Form1.Combo1.Text = 1 Then calfitness = 1# / lengthchro(c) Else temp = 0# For i = 1 To Pool_Size temp = temp + lengthchro(i) Next calfitness = temp - lengthchro(c) End If End Function (2)编写概率发生器 即选择算子,选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代产生后代个体,如代码: Public Sub reproduce() ReDim temppchropool(1 To Pool_Size, 1 To City_Num) As Integer ReDim temppro(0 To Pool_Size) As Single Dim rndnum As Single Dim i, j, k As Integer temppro(0) = 0# For i = 1 To Pool_Size temppro(i) = temppro(i - 1) + calprobability(i)

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档