虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

实际问题

  • 遗传算法的MATLAB代码

    遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。 优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码,因为优化后要进行评价,所以要返回问题空间,故要进行解码。SGA采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;解码时应注意将染色体解码到问题可行域内。 遗传算法模拟“适者生存,优胜劣汰”的进化机制,染色体适应生存环境的能力用适应度函数衡量。对于优化问题,适应度函数由目标函数变换而来。一般遗传算法求解最大值问题,如果是最小值问题,则通过取倒数或者加负号处理。SGA要求适应度函数>0,对于<0的问题,要通过加一个足够大的正数来解决。这样,适应度函数值大的染色体生存能力强。 遗传算法有三个进化算子:选择(复制)、交叉和变异。 SGA中,选择采用轮盘赌方法,也就是将染色体分布在一个圆盘上,每个染色体占据一定的扇形区域,扇形区域的面积大小和染色体的适应度大小成正比。如果轮盘中心装一个可以转动的指针的话,旋转指针,指针停下来时会指向某一个区域,则该区域对应的染色体被选中。显然适应度高的染色体由于所占的扇形区域大,因此被选中的几率高,可能被选中多次,而适应度低的可能一次也选不中,从而被淘汰。算法实现时采用随机数方法,先将每个染色体的适应度除以所有染色体适应度的和,再累加,使他们根据适应度的大小分布于0-1之间,适应度大的占的区域大,然后随机生成一个0-1之间的随机数,随机数落到哪个区域,对应的染色体就被选中。重复操作,选出群体规模规定数目的染色体。这个操作就是“优胜劣汰,适者生存”,但没有产生新个体。 交叉模拟有性繁殖,由两个染色体共同作用产生后代,SGA采用单点交叉。由于SGA为二进制编码,所以染色体为二进制位串,随机生成一个小于位串长度的随机整数,交换两个染色体该点后的那部分位串。参与交叉的染色体是轮盘赌选出来的个体,并且还要根据选择概率来确定是否进行交叉(生成0-1之间随机数,看随机数是否小于规定的交叉概率),否则直接进入变异操作。这个操作是产生新个体的主要方法,不过基因都来自父辈个体。 变异采用位点变异,对于二进制位串,0变为1,1变为0就是变异。采用概率确定变异位,对每一位生成一个0-1之间的随机数,看是否小于规定的变异概率,小于的变异,否则保持原状。这个操作能够使个体不同于父辈而具有自己独立的特征基因,主要用于跳出局部极值。 遗传算法认为生物由低级到高级进化,后代比前一代强,但实际操作中可能有退化现象,所以采用最佳个体保留法,也就是曾经出现的最好个体,一定要保证生存下来,使后代至少不差于前一代。大致有两种类型,一种是把出现的最优个体单独保存,最后输出,不影响原来的进化过程;一种是将最优个体保存入子群,也进行选择、交叉、变异,这样能充分利用模式,但也可能导致过早收敛。 由于是基本遗传算法,所以优化能力一般,解决简单问题尚可,高维、复杂问题就需要进行改进了。 下面为代码。函数最大值为3905.9262,此时两个参数均为-2.0480,有时会出现局部极值,此时一个参数为-2.0480,一个为2.0480。算法中变异概率pm=0.05,交叉概率pc=0.8。如果不采用最优模式保留,结果会更丰富些,也就是算法最后不一定收敛于极值点,当然局部收敛现象也会有所减少,但最终寻得的解不一定是本次执行中曾找到过的最好解。

    标签: 遗传算法

    上传时间: 2015-06-04

    上传用户:芃溱溱123

  • C语言也能干大事

    有关C语言解决实际问题的经典解释 和一些面试相关的技巧

    标签: C语言也能干大事

    上传时间: 2016-03-29

    上传用户:谢谢谢谢

  • 函数的表示教案

    用适当的方法来表示函数 能运用函数来解决问题, 提高识图能力 、分析函数图像信息的能力,  通过利用图像解决实际问题 ,体会到数学知识来源于实际   生产、生活的需要,反之也很好的,服务于生产、生活。

    标签: 函数 教案

    上传时间: 2016-04-21

    上传用户:laodaidjj

  • 编程珠玑Jon Bentley

    如果让程序员们列举他们喜欢的书籍,Jon Bentley的《编程珠玑》一定可以归于经典之列。如同精美的珍珠出自饱受沙砾折磨的牡蛎,程序员们的精彩设计也来源于曾经折磨他们的实际问题。Bentley的“珍珠”基于坚实的工程学基础,为那些麻烦的问题提供了富于智慧性和创造性的解决方案。本书通过一些有趣的具有指导意义的程序,对程序设计技巧和基本设计原理进行了清晰而睿智的描述。因此本书对各个层次的程序员都具有很高的价值。 在这一版本中,作者对第一版本中的大多数素材进行了彻底更新,以反映现 在的程序设计方法和环境。此外还增加了三方面的新内容:测试、调试和计时,集合表示,字符串问题。所有原始程序都重新进行了改写,并生成了等量的新代码。读者可以从本书网站获取所有程序的C或C++实现。 在新版本中,作者对于程序设计问题本质仍然保持了极大的关注,并针对这些问题给出了实用的解决方案。不论您是第一次阅读这本经典读物,还是已经阅读过第一版,这本书都会成为您最喜爱的图书之一。

    标签: 编程 珠玑

    上传时间: 2016-12-06

    上传用户:yuandaima

  • MATLAB智能算法30个案例分析

    《MATLAB智能算法30个案例分析》是作者多年从事算法研究的经验总结。书中所有案例均因国内各大MATLAB技术论坛网友的切身需求而精心设计,其中不少案例所涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。《MATLAB智能算法30个案例分析》采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。《MATLAB智能算法30个案例分析》共给出30个案例,每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力。《MATLAB智能算法30个案例分析》可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。

    标签: MATLAB 智能算法 案例分析

    上传时间: 2017-05-31

    上传用户:jplalala

  • 粒子群与不顾年算法

    这是力气群算法解决实际问题,与布谷鸟算法做了一个 比较,看着还行

    标签: 粒子群 算法

    上传时间: 2018-06-02

    上传用户:batcoder

  • 最优装载贪心算法

    通过贪心算法来实现最优装载的实际问题,贪心算法有时候并不是最优的

    标签: 算法

    上传时间: 2019-06-20

    上传用户:计算机容易秃头

  • 灰色预测模型

    灰色预测模型(Gray Forecast Model)是通过 少量的、不完全的信息,建立数学模型并做出预 测的一种预测方法.当我们应用运筹学的思想方法 解决实际问题,制定发展战略和政策、进行重大 问题的决策时,都必须对未来进行科学的预测. 预测是根据客观事物的过去和现在的发展规律, 借助于科学的方法对其未来的发展趋势和状况进 行描述和分析,并形成科学的假设和判断.

    标签: 灰色预测模型

    上传时间: 2019-07-21

    上传用户:Tqco702

  • 《编程珠玑》英文版

    本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。

    标签: 编程 珠玑 英文

    上传时间: 2019-11-20

    上传用户:caod

  • 详解MATLAB在最优化计算中的应用

    本书首先介绍MATLAB的基本使用方法和程序设计基础,然后将MATLAB与最优化计算相结合,基于最优化理论与方法,讲解如何使用MATLAB求解最优化领域的实际问题。这些问题涵盖最优化理论与方法中的线性规划问题、整数规划问题、非线性规划问题、二次规划问题、多目标规划问题、图与网络优化问题和现代智能优化问题。本书内容循序渐进、由浅入深,并结合大量实例帮助读者理解和掌握最优化问题的建模方法与求解技巧。随书光盘中附有全部案例的源代码,并有大量教学视频,方便读者学习与提高。

    标签: MATLAB 最优化

    上传时间: 2020-07-25

    上传用户: