Monte-Carlo MethodEvolutionary Algorithms之间是什么关系?从表面上看,它们似乎是用于解决复杂问题的不相关模拟方法。每种问题最适合哪种问题?他们可以解决同一组问题吗?两者之间是什么关系(如果有)?

最佳答案

以我的经验,“蒙特卡洛”这个词很重。人们似乎将它用于任何使用随机数生成器的技术(全局优化,方案分析(Google“ Excel蒙特卡罗模拟”),随机集成(每个人用来演示MC的the Pi calculation)。我相信,因为您提到了您所谈论的进化算法是关于数学优化的蒙特卡洛技术:您具有某种适应性函数,具有多个输入参数,并且您希望最小化(或最大化)该函数。

如果您的函数运行良好(无论您从哪个输入开始,都会有一个单一的全局最小值),那么最好使用确定的最小化技术(例如共轭梯度法)。许多机器学习分类技术涉及找到使超平面相对于训练集的最小二乘误差最小的参数。在这种情况下被最小化的函数是n维空间中的光滑,行为良好的抛物面。计算坡度并下坡。十分简单。

但是,如果您的输入参数是离散的(或者您的适应度函数不连续),则将无法再精确计算梯度。如果您使用一个或多个变量的表格数据来计算适应度函数(如果变量X小于0.5,请使用此表,否则请使用该表),则可能会发生这种情况。或者,您可能有一个从NASA获得的程序,该程序由20个由不同团队编写的模块组成,并作为批处理作业运行。您为它提供输入,它会吐出一个数字(请考虑黑框)。根据开始的输入参数,最终可能会得出错误的最小值。全局优化技术试图解决这些类型的问题。

进化算法形成一类global optimization技术。全局优化技术通常涉及某种“爬坡”(接受具有较高(更差)适应性功能的配置)。这种爬山通常涉及一些随机性/随机性/蒙特卡洛度。通常,这些技术更可能在早期接受较差的最佳配置,并且随着优化的进行,它们不太可能接受较差的配置。

进化算法宽松地基于进化类比。模拟退火基于类似于金属退火的模拟。粒子群技术也受到生物系统的启发。在所有情况下,您都应该将结果与配置的简单随机抽样(也称为“蒙特卡洛”)进行比较...这通常会产生同等的结果。

我的建议是从使用基于确定性梯度的技术开始,因为它们通常比随机/蒙特卡洛技术所需的功能评估少得多。当您听到蹄步时,请以为马不是斑马。从多个不同的起点进行优化,除非您要处理一个特别棘手的问题,否则最终应获得大致相同的最小值。如果没有,那么您可能有斑马,应该考虑使用全局优化方法。

关于montecarlo - 比较和对比蒙特卡罗方法和进化算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7465926/

10-09 02:46