A. 有關啟發式演算法(Heuristic Algorithm)的一些總結
節選自維基網路:
啟發法 ( heuristics ,源自古希臘語的εὑρίσκω,又譯作:策略法、助發現法、啟發力、捷思法)是指 依據有限的知識 (或「不完整的信息」)在短時間內找到問題解決方案的一種技術。
它是一種依據 關於系統的有限認知 和 假說 從而得到關於此系統的結論的分析行為。由此得到的解決方案有可能會偏離最佳方案。通過與最佳方案的對比,可以確保啟發法的質量。
計算機科學的兩大基礎目標,就是 發現可證明其運行效率良好 且可 得最佳解或次佳解 的演算法。
而啟發式演算法則 試圖一次提供一個或全部目標 。例如它常能發現很不錯的解, 但也沒辦法證明它不會得到較壞的解 ; 它通常可在合理時間解出答案,但也沒辦法知道它是否每次都可以這樣的速度求解。
有時候人們會發現在某些特殊情況下,啟發式演算法會得到很壞的答案或效率極差, 然而造成那些特殊情況的數據結構,也許永遠不會在現實世界出現 。
因此現實世界中啟發式演算法很常用來解決問題。啟發式演算法處理許多實際問題時通常可以在合理時間內得到不錯的答案。
有一類的 通用啟發式策略稱為元啟發式演算法(metaheuristic) ,通常使用隨機數搜索技巧。他們可以應用在非常廣泛的問題上,但不能保證效率。
節選自網路:
啟發式演算法可以這樣定義:一個 基於直觀或經驗構造 的演算法, 在 可接受的花費(指計算時間和空間)下給出待解決組合優化問題每一個實例的一個可行解 , 該可行解與最優解的偏離程度一般不能被預計。 現階段,啟發式演算法以仿自然體演算法為主,主要有蟻群演算法、模擬退火法、神經網路等。
目前比較通用的啟發式演算法一般有模擬退火演算法(SA)、遺傳演算法(GA)、蟻群演算法(ACO)。
模擬退火演算法(Simulated Annealing, SA)的思想借鑒於固體的退火原理,當固體的溫度很高的時候,內能比較大,固體的內部粒子處於快速無序運動,當溫度慢慢降低的過程中,固體的內能減小,粒子的慢慢趨於有序,最終,當固體處於常溫時,內能達到最小,此時,粒子最為穩定。模擬退火演算法便是基於這樣的原理設計而成。
求解給定函數的最小值:其中,0<=x<=100,給定任意y的值,求解x為多少的時候,F(x)最小?
遺傳演算法(Genetic Algorithm, GA)起源於對生物系統所進行的計算機模擬研究。它是模仿自然界生物進化機制發展起來的隨機全局搜索和優化方法,借鑒了達爾文的進化論和孟德爾的遺傳學說。其本質是一種 高效、並行、全局搜索 的方法,能在搜索過程中自動獲取和積累有關搜索空間的知識,並 自適應 地控制搜索過程以求得最佳解。
給定一組五個基因,每一個基因可以保存一個二進制值 0 或 1。這里的適應度是基因組中 1 的數量。如果基因組內共有五個 1,則該個體適應度達到最大值。如果基因組內沒有 1,那麼個體的適應度達到最小值。該遺傳演算法希望 最大化適應度 ,並提供適應度達到最大的個體所組成的群體。
想像有一隻螞蟻找到了食物,那麼它就需要將這個食物待會螞蟻穴。對於這只螞蟻來說,它並不知道應該怎麼回到螞蟻穴。
這只螞蟻有可能會隨機選擇一條路線,這條路可能路程比較遠,但是這只螞蟻在這條路上留下了記號(一種化學物質,信息素)。如果這只螞蟻繼續不停地搬運食物的時候,有其它許多螞蟻一起搬運的話,它們總會有運氣好的時候走到更快返回螞蟻穴的路線。當螞蟻選擇的路線越優,相同時間內螞蟻往返的次數就會越多,這樣就在這條路上留下了更多的信息素。
這時候,螞蟻們就會選擇一些路徑上信息素越濃的,這些路徑就是較優的路徑。當螞蟻們不斷重復這個過程,螞蟻們就會更多地向更濃的信息素的路徑上偏移,這樣最終會確定一條路徑,這條路徑就是最優路徑。
B. 在什麼樣的情境下,人們喜歡用啟發法解決問題,並舉例說明
針對模型求解方法而言的,一種逐次逼近最優解的方法,這種方法對所求得的解進行反復判斷實踐修正直至滿意為止。啟發法的特點是模型簡單,需要進行方案組合的個數少,因此便於找出最終答案。此方法雖不能保證得到最優解,但只要處理得當,可獲得決策者滿意的近似最優解。
一般步驟包括:定義一個計算總費用的方法;報定判別准則;規定方案改選的途徑;建立相應的模型;送代求解。
(2)啟發式演算法優缺點擴展閱讀
計算機科學的兩大基礎目標,就是發現可證明其執行效率良好且可得最佳解或次佳解的演算法。而啟發式演算法則試圖一次提供一或全部目標。 例如它常能發現很不錯的解,但也沒辦法證明它不會得到較壞的解;它通常可在合理時間解出答案,但也沒辦法知道它是否每次都可以這樣的速度求解。
有時候人們會發現在某些特殊情況下,啟發式演算法會得到很壞的答案或效率極差,然而造成那些特殊情況的數據組合,也許永遠不會在現實世界出現。因此現實世界中啟發式演算法常用來解決問題。啟發式演算法處理許多實際問題時通常可以在合理時間內得到不錯的答案。
C. 深度學習演算法與啟發式演算法的區別
演算法導向不同,包含內容不同。
深度學習演算法包含回歸演算法,基於實例的演算法,正則化方法,貝葉斯方法,人工神經網路五類演算法。啟發式演算法通常是以問題為導向的(ProblemSpecific),也就是說,沒有一個通用的框架,每個不同的問題通常設計一個不同的啟發式演算法,通常被用來解組合優化問題。
D. 採用准確優化技術和啟發式優化技術解決一個問題會存在什麼不同
採用准確優化技術和啟發式優化技術解決一個問題會存在的不同之處:
①確定性演算法和隨機性演算法是目前求解優化問題的方法。隨機性演算法一般是對社會行為和自然現象的模擬,具有對優化函數的解析性質要求低的特點,甚至對無顯示解析表達式的問題也可以求解,能較好解決優化中的雜訊、不可微、高維等問題。
②啟發式演算法作為隨機性演算法的一種,其良好的應用更加快了人們對各種優化方法的探索腳步。 近些年來不斷有學者將分形應用於優化中來,試圖運用分形思想來處理復雜的優化問題。
③其中,分形演算法通過對可行域的分形分割來尋優,是一種新穎的確定性演算法,但其局限性較大,只適用於低維簡單的問題,對於當今社會中高維復雜問題則幾乎無能為力,也使得該演算法的影響力微乎其微。
④啟發式技術是基於特徵值掃描技術上的升級,與傳統反病毒特徵值掃描技術相比,優點在於對未知病毒的防禦.是特徵值識別技術質的飛躍。
(4)啟發式演算法優缺點擴展閱讀
啟發式:簡化虛擬機和簡化行為判斷引擎的結合 Heuristic(啟發式技術=啟發式掃描+啟發式監控) 重點在於特徵值識別技術上的更新、解決單一特徵碼比對的缺陷.目的不在於檢測所有的未知病毒,只是對特徵值掃描技術的補充.主要針對:木馬、間諜、後門、下載者、已知病毒(PE病毒)的變種。
一、啟發式發展方向
現代啟發式演算法的研究,在理論方面還處於不斷發展中,新思想和新方法仍不斷出現。分析目前的現狀和發展方向,其發展方向有如下幾個方面:
①整理歸納分散的研究成果,建立統一的演算法體系結構。
②在現有的數學方法(模式定理、編碼策略、馬爾可夫鏈理論、維數分析理論、復制遺傳演算法理論、二次動力系統理論、傅立葉分析理論、分離函數理論、Walsh函數分析理論)的基礎上尋求新的數學工具。
③開發新的混合式演算法及開展現有演算法改進方面的研究。
④研究高效並行或分布式優化演算法。
二、啟發式演算法演算法機制特點
現代啟發式演算法在優化機制方面存在一定的差異,但在優化流程上卻具有較大的相似性,均是一種「鄰域搜索」結構。演算法都是從一個(一組)初始解出發,在演算法的關鍵參數的控制下通過鄰域函數產生若干鄰域解,按准則(確定性、概率性或混沌方式)更新當前狀態,而後按關鍵參數修改准則調整關鍵參數,一直優化到最優結果。
E. 近似演算法和啟發式演算法的區別與聯系
在計算機科學與運籌學,近似演算法是指用來發現近似方法來解決優化問題的演算法。近似演算法通常與NP-hard問題相關; 由於不可能有效的多項式時間精確算來解決NP-hard問題,所以一個求解多項式時間次優解。與啟發式演算法不同,通常只能找到合理的解決方案相當快速,需要可證明的解決方案質量和可證明的運行時間范圍。理想情況下,近似值最優可達到一個小的常數因子(例如在最優解的5%以內)。近似演算法越來越多地用於已知精確多項式時間演算法但由於輸入大小而過於昂貴的問題。
啟發式演算法(heuristic algorithm)是相對於最優化演算法提出的。一個問題的最優演算法求得該問題每個實例的最優解。啟發式演算法可以這樣定義:一個基於直觀或經驗構造的演算法,在可接受的花費(指計算時間和空間)下給出待解決組合優化問題每一個實例的一個可行解,該可行解與最優解的偏離程度一般不能被預計。現階段,啟發式演算法以仿自然體演算法為主,主要有蟻群演算法、模擬退火法、神經網路等。
F. 對 啟發式演算法的理解
啟發式演算法是一種能在可接受的費用內尋找最好的解的技術,但不一定能保證所得解的可行性和最優性,甚至在多數情況下,無法闡述所得解同最優解的近似程度
G. 智能計算/計算智能、仿生演算法、啟發式演算法的區別與關系
我一個個講好了,
1)啟發式演算法:一個基於直觀或經驗構造的演算法,在可接受的花費(指計算時間和空間)下給出待解決組合優化問題每一個實例的一個可行解,該可行解與最優解的偏離程度不一定事先可以預計。意思就是說,啟發式演算法是根據經驗或者某些規則來解決問題,它求得的問題的解不一定是最優解,很有可能是近似解。這個解與最優解近似到什麼程度,不能確定。相對於啟發式演算法,最優化演算法或者精確演算法(比如說分支定界法、動態規劃法等則能求得最優解)。元啟發式演算法是啟發式演算法中比較通用的一種高級一點的演算法,主要有遺傳演算法、禁忌搜索演算法、模擬退火演算法、蟻群演算法、粒子群演算法、變鄰域搜索演算法、人工神經網路、人工免疫演算法、差分進化演算法等。這些演算法可以在合理的計算資源條件下給出較高質量的解。
2)仿生演算法:是一類模擬自然生物進化或者群體社會行為的隨機搜索方法的統稱。由於這些演算法求解時不依賴於梯度信息,故其應用范圍較廣,特別適用於傳統方法難以解決的大規模復雜優化問題。主要有:遺傳演算法、人工神經網路、蟻群演算法、蛙跳演算法、粒子群優化演算法等。這些演算法均是模仿生物進化、神經網路系統、螞蟻尋路、鳥群覓食等生物行為。故叫仿生演算法。
3)智能計算:也成為計算智能,包括遺傳演算法、模擬退火演算法、禁忌搜索演算法、進化演算法、蟻群演算法、人工魚群演算法,粒子群演算法、混合智能演算法、免疫演算法、神經網路、機器學習、生物計算、DNA計算、量子計算、模糊邏輯、模式識別、知識發現、數據挖掘等。智能計算是以數據為基礎,通過訓練建立聯系,然後進行問題求解。
所以說,你接觸的很多演算法,既是仿生演算法,又是啟發式演算法,又是智能演算法,這都對。分類方法不同而已。
這次樓主不要再老花了哈!
H. 元啟發式演算法和啟發式演算法有什麼區別
啟發式演算法與元啟發式演算法對區別在於是否存在「隨機因素」。 對一個同樣的問題,啟發式演算法(heuristics)只要給定了一個輸入,那麼演算法執行的步驟就固定下來了,輸出也因此固定,多次運算結果保持一致。
而元啟發式演算法(meta-heuristics)裡麵包括了隨機因素,如GA中的交叉因子,模擬退火中的metropolis准則,這些隨機因素也使得演算法有一定概率跳出局部最優解而去嘗試全局最優解,因此元啟發式演算法在固定的輸入下,而輸出是不固定的。
啟發式演算法(Heuristic Algorigthm)是一種基於直觀或經驗構造的演算法,在可接受的花費(指計算時間、計算空間等)給出待解決優化問題的每一實例的一個可行解,該可行解與與最優解的偏離程度一般不可以事先預計。
啟發式演算法是一種技術,這種演算法可以在可接受的計算費用內找到最好的解,但不一定能保證所得到解的可行性及最優性,甚至大多數情況下無法闡述所得解與最優解之間的近似程度。
元啟發式演算法(MetaHeuristic Algorigthm)是啟發式演算法的改進,它是隨機演算法與局部搜索演算法相結合的產物,常見的啟發式演算法包括遺傳演算法、模擬退火演算法、禁忌搜索演算法及神經網路演算法等。
新興的元啟發式演算法有、粒子群優化演算法、差分進化演算法,蟻群優化演算法、螢火蟲演算法、布穀鳥演算法、和聲搜索演算法、差分進化演算法、隨機蛙跳演算法、細菌覓食演算法、蝙蝠演算法的演算法等。
I. 啟發式演算法的特點是什麼呢
啟發式演算法的特點是在理論上沒有精確的行為的分析,或者可以表明存在很壞的輸入,在這些輸入上運行很慢