『壹』 爬山演算法曝光時間
2017年。
爬山演算法首次出現是在英國蒂姆·哈福德的書《混亂並碼》當中,這本書的書寫時間是2017年,書的出版時間是2018年,主要表達的是利用這種演算法度過人生當中的困難或蔽鍵,在2017年被人熟知之後用在了各種領域。
爬山演算法是一種局部擇優的方法,採用啟發式方法,是對深度優先搜索的一種改進,它利用衫巧反饋信息幫助生成解的決策。
『貳』 爬山演算法
爬山演算法是一種局部擇優的方法岩嫌罩,是一種局部貪心的最優演算法。
採用啟發式方法,是對深度優先搜索的一種改進,它利用反饋信息幫助生成解的決策。 該演算法每次從當前解的臨近解空間中選擇一個最優解作為當前解,
直到達到一個局部最優解,屬於人工智慧演算法的一種。
實現簡單,其主要缺點是會陷入局部最優者銀解,不一定能搜索到全局最優解。
如下圖所示:假設C點為當前解,爬山演算法搜索到A點這個局部最優解就會停止搜索,
因為在A點無論向那個方向小幅度移動都不能得到更優的解。
如果想進一步了解爬山演算法及其應用粗鬧,請參考:
基於爬山演算法求解TSP問題(JAVA實現)
機器學習優化演算法之爬山演算法小結
『叄』 爬山演算法
《混亂》
這本書提到了一個非常有效的演算法,
叫爬山演算法。
什麼叫爬山演算法?
(註:爬山演算法是人工智慧演算法的一種,
其原理是把你隨機地拋在地球上的一個點,拋在那個點以後,
你就近在最近的幾公里之內尋找最高點,然後找到最高點之後,
立刻站到這個最高點上去,再在最近的幾公里之內尋找最高點。)
用計算機模擬我們的人生,
我們的人生就是那個屏幕上,
現在屏幕中所有的坐標、高度都未知,
然後看看誰能用最快的方法找到這個屏幕上的最高點。
用什麼樣的方法找到最高點?
全球大量的計算機編程高手開始設計這套邏輯,
有的人沿著邊走,有的人直接到中心,有人用交叉、畫五角星法……
各種各樣的方法,到最後發現,
最優秀、最快能夠找到最高點的演算法只有一個,
這個演算法被稱作爬山演算法。
它的方法是什麼?
就是在整個屏幕上隨機一拋,
讓這個點落在任何一個地方,然後在能力范圍之內搜索,
在能力范圍之內盡量找到周圍最高的高度,找到最高的高度以後,
以這個最高的高度為圓心再找周圍最高的高度,然後依次循環(
找最高點周圍的下一個最高點),盡可能地找到最高的高點。
如果你今天特別倒霉,掉到一片沙漠中間,
這個沙漠周圍的高度都差不多,沒有特別高的高度,那該怎麼辦?
這時候需要重啟,拿起來隨機的一拋,
重啟到另外一個地方再找另外的高度。
爬山演算法裡面有兩個核心的點:
第一個點,
是你要接受隨機的一拋,
你要接受有不確定性的發生;
第二個點,
是無論命運把你拋到什麼地方,
你都要努力地展開搜索,
盡可能地做到最好,盡可能地找到最高的高點。
這就是爬山演算法的精髓。
使用爬山演算法探索一片屏幕,到最後發現這種方法是最快的。
就是要學會擁抱不確定性。
人生所有的煩惱、痛苦,
都是來自於我們對不確定性的抗拒。
我們希望我們的孩子按照一個模式成長,
我們希望我們的工作按照一個模式發展,
我們希望我們創業做的公司,
能夠按照一個節奏安全一個模式發展,
是這些抗拒給我們帶來大量的煩惱。
但是實際上你唯一需要做的事,是擁抱不確定性。
當不確定性發生、命運將你隨機一拋的時候,
你能夠隨時隨地、立刻展開最好的努力,
而不是待在原地拚命地抱怨,
拚命地對標,拚命地去維權,
反而這些東西浪費了我們太多的時間。
作者 | 樊登
來源 | 筆記俠(ID:Notesman)