优化算法有哪些 多目标优化算法有哪些
小周今天给分享优化算法有哪些的知识,其中也会对多目标优化算法有哪些进行解释,希望能解决你的问题,请看下面的文章阅读吧!
优化算法有哪些 多目标优化算法有哪些
优化算法有哪些 多目标优化算法有哪些
1、安装A算法是游戏中路径搜索的常见算法。
2、Dijkstra是最短路径的经典算法,A算法的思路基本上和Dijkstra算法一致,在Dijkstra算法的基础上增加了启发函数,也就是:f(n) = g(n) + h(n)如果你明白Dijkstra算法,那么在这里h(n) = 0 的话,A算法就和Dijkstra算法一样了。
3、本文不详细讲解A算法,需要详细了解A算法的具体过程的,参见以下两篇文章:A算法优化的关键在于h(n)的选择。
4、 一个启发函数h(n)被称为admissible的,是指h(n)的估计,不会超过N到目标的实际花费。
5、其中d(x,y)是(x,y)的长度如果满足这个条件,就意味着没有任何需要被处理多次,也就是说,在DPython3.3+或者Python2.7ijkstra算法中,新加入一个会导致已添加中cost降低的情况不会存在,也就不需要去更新已添加(称为close set)。
6、如果一个启发函数是单调的,那么该启发函数一定是admissible的。
7、如果该启发函数是admissible的,那么可以证明A在同类算法中搜寻到最短的路径。
8、问题出在这里:如果我们更在意的是搜索的时间空间花费,而不是结果,那么A算法就有优化空间。
9、所以我们放松要求,修改我们的启发函数,使得我们搜寻到的路径不会比路径太多,就是优化算法,称为ε-admissible算法。
10、有多种ε-admissible算法,在此只举例最简单直接的一种: 加权A(静态加权)算法。
11、如ha(n)是一个admissible的启发函数,我们选取新的启发函数hw(n) = ε ha(n),其中ε>1 作为启发函数。
12、就可以在某种程度上进行优化。
13、 下图1是使用ha(n)作为启发式算法,下图2是使用hw(n)作为启发式算法,其中ε取5.图1:ha使用已经配置好的虚拟机(支持VMWare和VirtualBox)(x)作为启发算法图2:hn(x)作为启发算法可以看出,ha(n)可以找到最小路径,但是多了许多无用的搜索;而hw(n)找到的不是路径,但是减少了大量无用搜索。
本文到这结束,希望上面文章对大家有所帮助。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。