程序员Step-by-step

2020-12-25

2020-12-25  本文已影响0人  预眸丶

人工智能:

首选爬山法(盲目爬山法):

见坡就上,但凡有比现在好的邻居结点,则立即过渡为邻居结点,不进行更多相邻的其他邻居结点比较。成为邻居结点后继续搜索,无脑冲。

最陡上升爬山法:

爬最陡的坡,成就最美丽的人生。搜索所有邻居结点,不断迭代最好邻居结点。如果遇到相同好的邻居结点,则压入到链表中,最后随机选取一个。

随机重启爬山法:

在遇见平地不知该去哪,或者达到一个小顶峰(极大值)时的踌躇,则完全重启爬山法,重新再爬。

模拟退火算法:

如果下一个结点比当前结点好,则变为下一个结点,如果比较差,则有一定概率会变成那个结点。每进行一次考虑,则温度下降一些

int E = Next_val- Cur_value;

        if (E < 0) {                    // 下一状态优于当前状态

           trial++;

        } else if (exp((-1)*E/temperature) > ((double)(rand() % 1000) / 1000)) { // 以一定的概率选取

            trial++;

        } 

temperature *= 0.999;

爬山法,模拟退火算法都是局部搜索算法,适用于有很多状态,同时又有多个解的情况,可以在较短时间内获得局部最优解。但是容易陷入局部最优状态。

上一篇下一篇

猜你喜欢

热点阅读