最近看了下遗传算法.docVIP

  • 5
  • 0
  • 约2.3万字
  • 约 19页
  • 2017-02-07 发布于江苏
  • 举报
最近看了下遗传算法,刚看了一点,就觉得手痒,非要把程序编制出来看看效果(我现在总认为那些理论再高深,无法用计算机实现就是空话,呵呵)。下面是我调试了好久的代码,无赖没有学过数据结构&算法,程序写的很差,单效果还是出来了,高兴,和大家共同分享下成果吧。 还是一样,不想说原理,因为这里想搞个公式上去N麻烦。直接给点实际的东西。具体步骤是参考《MATLAB遗传算法工具箱及应用》(西安电子科技大学出版社)16~22页的相关说明编制的,有兴趣的同学可以去看看这本书。 在程序调试成功的同时,郁闷的是工作的事情,现在好多企业久是指名不要研究生,而我又是一个四不象,本专业是热能工程,可我本专业基本上还是本科水平,大部分时间都去自学一些杂七杂八的东西去了,比如人工智能,PLC,自动控制方面,图像处理啊,可又只是懂个皮毛,现在找工作也不知道怎么给自己定位了。有相关经历的同学可要指点我一二哦 。 Option Explicit 程序实现功能:用遗传算法求函数的最大值 作 者: laviewpbt 联系方式: laviewpbt@ QQ版本:Version 1.4.0 说明:复制请保留源作者信息,转载请说明,欢迎大家提出意见和建议 Dim N2(30) As Long 用来保存2的N次方的数据 Dim Script As Object 调用其Eval函数 Public Enum CrossOver OnePointCrossOver 单点交叉 TwoPointCrossOver 两点交叉 UniformCrossOver 平均交叉 End Enum Public Enum Selection RouletteWheelSelection 轮盘赌选择 StochasticTourament 随机竞争选择 RandomLeagueMatches 随机联赛选择 StochasticUniversalSampleing 随机遍历取样 End Enum Public Enum EnCoding Binary 标准二进制编码 Gray 格雷码 End Enum Private Type GAinfo Max As Double Cordinate() As Double End Type *********************************** 二进制码转格雷码 *********************************** 函 数 名: BinaryToGray 参 数: Value - 要转换的二进制数的实值 说 明: 如3对应的二进制表示为0011,而用格雷码表示为0010,这个函数的value为0011代表的实数 而返回的是0010所代表的实数(2) 返 回 值: 返回格雷码对应的二进制数的实值 源 作 者: 黄毅 开发语言: C语言 修 改 者: laviewpbt 时 间: 2006-11-4 *********************************** 二进制码转格雷码 *********************************** Public Function BinaryToGray(Value As Long) As Long Dim V As Long, Max As Long Dim start As Long, mEnd As Long, Temp As Long, Counter As Long Dim Flag As Boolean V = Value: Max = 1 While V 0 V = V / 2 Max = Max * 2 Wend If Max = 0 Then Exit Function Flag = True mEnd = Max - 1 While start mEnd Temp = (mEnd + start - 1) / 2 If Value = Temp Then If Not Flag Then Counter = Counter + (mEnd - start + 1) / 2

文档评论(0)

1亿VIP精品文档

相关文档