蒙特卡洛算法

Monte Carlo方法是计算机模拟的基础,它的名字来源于世界著名的赌
城 ——摩纳哥的蒙特卡洛, 其历史起源于 1777 年法国科学家蒲丰提
出的一种计算圆周 π 的方法 ——随机投针法,即著名的蒲丰投针问题。

一般步骤:

建立概率模型 ---模拟统计试验 ---多次随机试验 ---统计事件发生的百分比
频率 事件发生的概率(大数定理) -------求出要估计的参数

蒙特卡洛使用matlab求解圆周率的代码如下:

tic
l=1;a=2;n=100000;
x=unifrnd(0,a/2,1,n);
y=unifrnd(0,pi/2,1,n);
[a,b]=find(x<l/2*sin(y));
m=length(a);
p=m/n; pi_m=1/p
toc

蒙特卡洛计算重积分
原理:用蒙特卡洛法计算N N重积分积分:设D D为n n维空间R R n n 的一个区
域 ,f(x)∈D R R n n →R, ,区域D D上的n n重积分用下式表示: :

可以认为 I=(区域D的测度 ) *(函数f的期望) )。基本的蒙特卡洛法就是
找一个超立方体( (测度已知, 为 Mc)包含区域 D,在D内随机生成 n(n一般
足够大) 个均匀分布的点, ,统计落入区域D的点, ,假设有m个

遗传算法( Genetic Algorithms,简称 GA)
        GA是一种基于自然选择原理和自然遗传机制的搜索(寻优)算法,它是模拟自然界中
的生命进化机制,在人工系统中实现特定目标的优化。遗传算法的实质是通过群体
搜索技术,根据适者生存的原则逐代进化,最终得到最优解或准最优解。

算法中的一些控制参数:
■ 种群规模
■ 最大换代数
■ 交叉率(crossover rate)就是参加交叉运算的染色体个数占全体
染色体总数的比例,记为P c ,取值范围一般为0.4~0.99。
■ 变异率(mutation rate)是指发生变异的基因位数所占全体染色
体的基因总位数的比例,记为P m ,取值范围一般为0.0001~0.1。

步骤如下:

基本遗传算法
步1 在搜索空间U上定义一个适应度函数f(x),给定种
群规模N,交叉率P c 和变异率P m ,代数T;
步2 随机产生U中的N个个体s 1 , s 2 , …, s N ,组成初始种
群S={s 1 , s 2 , …, s N },置代数计数器t=1;
步3 计算S中每个个体的适应度f() ;
步4 若终止条件满足,则取S中适应度最大的个体作
为所求结果,算法结束。

步5 按选择概率P(xi)所决定的选中机会,
每次从S中随机选定1个个体并将其染色体复制,
共做N次,然后将复制所得的N个染色体组成
群体S1;
步6 按交叉率Pc所决定的参加交叉的染色
体数c,从S1中随机确定c个染色体,配对进行
交叉操作,并用产生的新染色体代替原染色体,
得群体S2

步7 按变异率P m 所决定的变异次数m,从S 2
中随机确定m个染色体,分别进行变异操作,并
用产生的新染色体代替原染色体,得群体S 3 ;
步8 将群体S 3 作为新一代种群,即用S 3 代替
S,t = t+1,转步3;

篇幅有限,例子见下一篇博客,感谢各位!动动小手点个赞更好!!!

蒙特卡洛与遗传算法介绍相关推荐

  1. 遗传算法介绍(内含实例)

    遗传算法介绍(内含实例) 现代生物遗传学中描述的生物进化理论:遗传物质的主要载体是染色体(chromsome),染色体主要由DNA和蛋白质组成.其中DNA为最主要的遗传物质. 基因(gene)是有遗传 ...

  2. 遗传算法介绍并附上Matlab代码

    摘自http://www.cnblogs.com/hxsyl/p/5240905.html 该文中后面的代码是我在学校里面编写的,当时应该是可以用的,里面的图确实是我画出来的,但是我现在不确定是否正确 ...

  3. 遗传算法介绍和遗传算法的python实现

    遗传算法劫介绍和遗传算法的python实现 文章目录: Reference: 1.https://morvanzhou.github.io/tutorials/machine-learning/evo ...

  4. 遗传算法介绍三(来自维基百科)

    什么是遗传算法 遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种.进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传.突变.自然选择以及杂交等. 遗传算法通常实现为 ...

  5. [转载]遗传算法介绍

    遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法.它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对 ...

  6. 【遗传算法】遗传算法介绍

    参考:遗传算法简述 遗传算法(Genetic Algorithm,简称GA)是一种自适应随机搜索启发式算法.广泛应用于复杂函数系统优化.机器学习.系统识别.故障诊断.分类系统.控制器设计.神经网络设计 ...

  7. 蒙特卡洛搜索树python_蒙特卡洛树搜索介绍

    用这个极小化极大算法解决这个问题,完整搜索这颗博弈树花费总时间太多且不切实际.考虑到这类游戏在实战中具有极多的分支因素或每转一圈可移动的高胜率步数,因为这个极小化极大算法需要搜索树中所有节点以便找到最 ...

  8. 蒙特卡洛树搜索方法介绍——规划与学习

    蒙特卡洛树方法介绍--规划与学习 引言 环境与模型 规划思想与学习思想 规划与学习的相同点 规划与学习的不同点 规划的特点 学习的特点 引言 本节通过对动态规划方法.蒙特卡洛方法.时序差分方法进行归纳 ...

  9. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例

    强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例 4. 蒙特卡洛方法 4.1 蒙特卡洛预测 例4.1:Blackjack(21点) 4.2 动作价值的蒙特卡洛估计 4. ...

  10. 基于遗传算法实现自动组卷

    转自 http://www.cnblogs.com/liulang/articles/1614311.html 1  遗传算法介绍 1.1 遗传算法概要 遗传算法是模拟达尔文的遗传选择和自然淘汰的生物 ...

最新文章

  1. Docker(十五):Docker实战 使用 docker-compose
  2. HDU 2149 Public Sale (博弈)
  3. apigateway-kong(四)负载均衡理论及实现
  4. C# 公共控件及程序制作流程
  5. 王道计算机考研 计算机组成原理 第一章、计算机系统概述
  6. note4 android8,Note4配三枚麦克风 可同时录制8个声音
  7. Redis集群搭建与简单使用
  8. 第0003 天:论团队分工、成长
  9. 如何共享计算机磁盘,扩展群集共享磁盘的分区 - Windows Server | Microsoft Docs
  10. 学习document.location.href和document.location.replace 区别
  11. HITACHI日立印刷机电源维修W-PSX175
  12. 系统迁移工具迁移操作系统到别的硬盘
  13. 逆波兰表达式(后缀表达式)
  14. 如何使用Arduino和R305制作指纹考勤系统
  15. 北京知产局:鼓励当事人用区块链,获取、固定知识产权纠纷证据
  16. 第8章 资源管理调度框架YARN
  17. ITSS服务项目经理
  18. PHP扭蛋机原理,微信小程序 扭蛋抽奖机css3动画实现详解
  19. 微信小程序和uniapp开发工具
  20. 机器学习-白板推导系列(一)-绪论(机器学习的MLE(最大似然估计)和MAP(最大后验估计))

热门文章

  1. 关于刚毕业的程序员考取mba
  2. 反病毒工具-C32ASM
  3. CSS入门(狂神学习笔记)
  4. acwing 1904 奶牛慢跑
  5. Technorati 推出博客广告媒体
  6. appid 原始id_微信开发之小程序登录相关的各类ID
  7. 网卡加到linux网桥,[Linux] ubuntu 14 通过网桥将无线网络桥接给有线网卡
  8. csv to dbf java_将csv文件转换为dbf
  9. 解决小程序view之间默认的空隙
  10. 搜狗输入法不能再idea上输入中文