• 计算几何中的模拟退火


    模拟退火(SA,Simulated Annealing)

     

    这是一种随机算法,其实模拟退火也算一种贪心算法。但是它在搜索过程中引入了随机因素。模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。

     

    顺便说一下爬山算法:爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。

    爬山算法的原理很简单,但是他很容易陷入进一个局部的最优解从而得不出想要的答案。

    这里网上有一个非常好的关于爬山算法和模拟退火算法的比喻:

    爬山算法:兔子朝着比现在高的地方跳去。它找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。

    模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高方向跳去。这就是模拟退火。

     

    当然,作为一种随机算法,模拟退火有可能不能每一次都正确的得到需要的最优值。。不过,在参数设置的合适的情况下,得到最优解的概率还是很高的。这种情况下,模拟退火的效率比穷举要高。所以,有时候还是要拼RP的。。。

     

    而模拟退火在计算几何中的应用多是:求平面最近点对,最远点,多边形的费马点,等等。还可以结合其他算法对搜索进行优化,用的地方还是挺多的。

    几道简单的模拟退火的题目:

          POJ 1379 Run Away
          http://poj.org/problem?id=1379
     
          POJ 2420 A Star not a Tree?
          http://poj.org/problem?id=2420
     
          POJ 2069 Super Star
          http://poj.org/problem?id=2069
     

     

     

  • 相关阅读:
    location 匹配规则
    nginx+keepalived 高可用方案
    Nginx 静态文件服务
    web服务器-nginx优化
    Oracle 修改字符集(AL32UTF8 转换成UTF8字符集)
    xshell复制粘贴
    关于mysql中的DDL,DML,DQL和DCL
    LVS实现Kubernetes集群高可用
    k8s实践(一):Centos7.6部署k8s(v1.14.2)集群
    Centos7.6部署k8s v1.16.4高可用集群(主备模式)
  • 原文地址:https://www.cnblogs.com/xdruid/p/SA.html
Copyright © 2020-2023  润新知