啓發式算法(Heuristic Algorithm)有不一樣的定義:一種定義爲,一個基於直觀或經驗的構造的算法,對優化問題的實例能給出可接受的計算成本(計算時間、佔用空間等)內,給出一個近似最優解,該近似解於真實最優解的偏離程度不必定能夠事先預計;另外一種是,啓發式算法是一種技術,這種技術使得在可接受的計算成本內去搜尋最好的解,但不必定能保證所得的可行解和最優解,甚至在多數狀況下,沒法闡述所得解同最優解的近似程度。我比較贊同第二種定義,由於啓發式算法如今尚未完備的理論體系,只能視做一種技術。
_______________________________________node
名詞解釋
Heuristics,我喜歡的翻譯是「探索法」 ,而不是「啓發式」,由於前者更親民一些,容易被理解。另外,致使理解困難的一個緣由是該詞常常出如今一些原本就讓人迷糊的專業領域語境中,例如,常常看 到某某殺毒軟件用啓發式方法查毒,普通民衆原本就對殺毒軟件很敬畏,看到「啓發式」就更摸不着北了。web
實際上,這個詞的解釋十分簡單,例如,查朗文詞典,能夠看到:算法
The use of
experience and
practical efforts to find answers to questions or to improve performance
維基百科詞條heuristic,將其定義爲基於經驗的技巧(technique),用於解決問題、學習和探索。並對該詞進行了更詳盡的解釋並羅列了多個相關領域:express
A heuristic method is used to
rapidly come to a solution that is hoped to be close to the best possible answer, or '
optimal solution'. A heuristic is a "
rule of thumb", an educated
guess, an
intuitive judgment or simply
common sense.
A heuristic is a general way of solving a problem. Heuristics as a noun is another name for heuristic methods.
Heuristic能夠等同於:實際經驗估計(rule of thumb)、有依據的猜想(educated guess, a guess beased on a certain amount of information, and therefore likely to be right)和常識(由經驗得來的判斷力)。 api
一個容易理解的解釋
人在解決問題時所採起的一種根據經驗規則進行發現的方法。其特色是在解決問題時,利用過去的經驗,選擇已經行之有效的方法,而不是系統地、以肯定的 步驟去尋求答案。啓發式解決問題的方法是與算法相對立的。算法是把各類可能性都一一進行嘗試,最終能找到問題的答案,但它是在很大的問題空間內,花費大量 的時間和精力才能求得答案。啓發式方法則是在有限的搜索空間內,大大減小嚐試的數量,能迅速地達到問題的解決。但因爲這種方法具備嘗試錯誤的特色,因此也 有失敗的可能性。科學家的許多重大發現,經常是利用極爲簡單的啓發式規則。網絡
本節內容摘自互動百科詞條《啓發式方法》多線程
計算機科學和認知科學領域
上節內容很抽象,不知道這個heuristics能幹什麼,在網絡上搜索關於heuristics的相關知識起源於某位朋友說個人一個系統設計是一種啓發式的。我真不知道他到底有何所指,暫時也沒有機會作深刻溝通。在網絡上搜索,看到一篇好文章,有關物理符號系統和啓發式搜索,能夠看出該文做者是有本身的理解的,不是像我這樣在網絡上surfing。 app
由於暫時沒有時間仔細閱讀和理解,看看這篇文章《什麼是啓發式(heuristic)?》也許可以增長一點直觀印象,尤爲它舉的例子(用以比較啓發式方法和算法)框架
駕駛汽車到達某人的家,寫成算法是這樣的:沿167 號高速公路往南行至Puyallup;從South Hill Mall 出口出來後往山上開 4.5 英里; 在一個雜物店旁邊的紅綠燈路口右轉,接着在第一個路口左轉;從左邊褐色大房子的車道進去,就是North Cedar 路714 號。
用啓發式方法來描述則多是這樣:找出上一次咱們寄給你的信,照着信上面的寄出地址開車到這個鎮;到了以後你問一下咱們的房子在哪裏。 這裏每一個人都認識咱們——確定有人會很願意幫助你的;若是你找不到人,那就找個公共電話亭給咱們打電話,咱們會出來接你。
_________________________________________________________less
羣體智能算法就是啓發式算法;研究的重點就是如何平衡局部搜索與全局搜索;有效逃離局部最優解;
近幾年比較活躍的算法有以下:
仿動物類的算法:粒子羣優化,螞蟻優化,魚羣算法,蜂羣算法等;
仿植物類的算法:向光性算法,雜草優化算法,等等;
仿人類的算法有:和聲搜索算法是較好的算法;
近年開始研究情感計算的人較多。
實際應用時差分進化算法較有優點。
關於粒子羣算法,理論成熟,應用普遍。
做者:李強
連接:https://www.zhihu.com/question/27666809/answer/43395837
來源:知乎
著做權歸做者全部,轉載請聯繫做者得到受權。
——————————————————————————————————————
通俗的解釋就是利用相似仿生學的原理,將天然、動物中的一些現象抽象成爲算法處理相應問題。當一個問題是NP難問題時,是沒法求解到最優解的,所以,用一種相對好的求解算法,去儘量逼近最優解,獲得一個相對優解,在不少實際狀況中也是能夠接受的
________________________________________________________
理論:物理符號系統和啓發式搜索
材料: 《做爲經驗探索的計算機科學:符號和搜索》(Computer Science as Empirical Inquiry: Symbols and Search)
這是紐厄爾和西蒙在第十次圖靈講座上的演講稿,中文版見《人工智能哲學》(瑪格麗特•博登 編)這本書的第五篇(翻譯的很讓人鬱悶)。英文版我找到了,下面的英文部分就是從英文版裏摘錄的。
(一)物理符號系統
1 定性結構定律(Laws of Qualitative Structure)
All sciences characterize the essential nature of the systems they study. These characterizations are invariably qualitative in nature, for they set the terms within which more detailed knowledge can be developed. Their essence can often be captured in very short, very general statements. One might judge these general laws, due to their limited specificity, as making relatively little contribution to the sum of a science, were it not for the historical evidence that shows them to be results of the greatest importance.
在研究某個系統的時侯,咱們能夠創建一個簡單而容易理解的模型來定性地描述這個系統的性質。就像生物學中的細胞學說,一切生物都是由細胞組成的,但任何一種生物的細胞都有極其複雜的種類、形態和功能。但咱們能夠創建一個標準的細胞模型:細胞由細胞核、細胞質和細胞膜組成,細胞核中有遺傳物質,細胞質中有各類行使不一樣功能的細胞器,細胞膜包在細胞質外面,負責細胞核環境的物質交換和信息交流。在此基礎上研究各類細胞的形態結構和功能就都顯得比較簡單了。一樣的道理,「智能」是個至關抽象的、讓人有點無從下手的研究對象,物理符號系統就是一個用以描述智能的,(相對來講)簡單而容易理解的模型。
2 物理符號系統的定義
物理符號系統是「物理的」,就是說它是遵循物理定律的,並且能用工程技術手段來實現,好比說你的計算機;它是一種「符號」系統,但不侷限於人類的符號系統。
物理符號系統包括符號(symbols)、表達式(expressions)和過程(Processes)。符號是一種物理模式,是實體。符號組合起來就成了表達式,這裏的組合方式能夠是多種多樣的。系統在任一時刻都包含着這樣一些表達式。過程能夠做 用於表達式來對錶達式進行創造(creation)、修正(modification)、再生(reproduction)或破壞 (destruction)。然而,物理符號系統內的表達式自己並不能描述一切對象(Such a system exists in a world of objects wider than just these symbolic expressions themselves.不知道可不能夠這樣理解)。
兩個核心概念:指稱(designation)和解釋(interpretation)
Designation. An expression designates an object if, given the expression, the system can either affect the object itself or behave in ways dependent on the object.
Interpretation. The system can interpret an expression if the expression designates a process and if, given the expression, the system can carry out the process.
Interpretation implies a special form of dependent action: given an expression the system can perform the indicated process, which is to say, it can evoke and execute its own processes from expressions that designate them.
我的理解:指稱表示的是一種表達式與對象的對應關係,就像指針同樣。解釋(或者譯成翻譯、說明)表示的是一種表達式與過程的對應關係,系統能夠經過一些表達式來執行相應的過程。
從定義來看,物理符號系統與一切通用計算機極爲類似,它實際上也確實不是什麼新的東西。不少已知的系統都具備這樣的特徵,其中最明顯的有兩個:計算機和人腦。
3 物理符號系統假設:物理符號系統是智能活動的充要條件
The Physical Symbol System Hypothesis:A physical symbol system has the necessary and sufficient means for general intelligent action.
By "necessary" we mean that any system that exhibits general intelligence will prove upon analysis to be a physical symbol system. By "sufficient" we mean that any physical symbol system of sufficient size can be organized further to exhibit general intelligence. By "general intelligent action" we wish to indicate the same scope of intelligence as we see in human action: that in any real situation behavior appropriate to the ends of the system and adaptive to the demands of the environment can occur, within some limits of speed and complexity.
其中,「必要性」的證實是認知科學的任務,也就是研究人類(或動物)的認知行爲,而後用物理符號系統來解釋這些認知行爲。「充分性」是人工智能的任務,也就是構造一些物理符號系統,看它們可否產生智能。
西蒙和紐厄爾把信息加工理論引入心理學,成爲信息加工心理學,也就是認知科學。人工智能的研究離不開認知科學研究中提出的各類假設。
剛開始,人們構造一些簡單的程序來讓計算機完成一些簡單的、精心設計的任務,後來以爲不過癮,就把研究工做擴展到了創建系統,如天然語言理解系統、模式識別系統、設計系統等。可是——
It would be surprising and unappealing if it turned out that the AI programs performing these diverse tasks had nothing in common beyond their being instances of physical symbol systems. Hence, there has been great interest in searching for mechanisms possessed of generality, and for common components among programs performing a variety of tasks. This search carries the theory beyond the initial symbol system hypothesis to a more complete characterization of the particular kinds of symbol systems that are effective in artificial intelligence.
完成這些形形色色的任務的程序之間有沒有什麼共性?找到了這些共性,就意味着對智能有了更深層的理解。
In the second section of this paper, we will discuss one example of a hypothesis at this second level specificity: the heuristic search hypothesis(啓發式搜索假設).
(二)啓發式搜索
系統的智能活動是經過問題解決來體現的,系統是經過啓發式搜索來解題的。啓發式搜索假設是AI的第二個定性結構定律(第一個是物理符號系統)。
1 啓發式搜索假設
Heuristic Search Hypothesis. The solutions to problems are represented as symbol structures. A physical symbol system exercises its intelligence in problem solving by search--that is, by generating and progressively modifying symbol structures until it produces a solution structure.
問題的解也是符號結構。物理符號系統解決問題的過程就是產生某種符號結構,再一步一步的修正它,直到它與問題的解的結構相一致。就像解方程AX+B=CX+D同樣,移項得(A-C)X=D-B,再消去係數(A-C),獲得X=(D-B)/(A-C)。這就是逐步修正方程的結構,最終獲得符合X=E的形式的解的過程。
假若有無限的時間和存儲空間還後無限的能量供應,那麼系統總能夠經過窮舉的方式,遍歷問題空間中的全部路徑來找到問題的解——這就是傳說中的蠻力搜索。但實際應用中這顯然是不可能的。實際應用中必須在有限的步驟中,有限的時間內找到答案,所以就要用啓發式搜索策略。
A condition, then, for the appearance of intelligence is that the distribution of solutions be not entirely random, that the space of symbol structures exhibit at least some degree of order and pattern. A second condition is that pattern in the space of symbol structures be more or less detectible. A third condition is that the generator of potential solutions be able to behave differentially, depending on what pattern it detected. There must be information in the problem space, and the symbol system must be capable of extracting and using it.
符號系統處於徹底混沌的狀態時,是不可能表現出智能的。符號系統的智能體如今它可以從問題空間中抽取信息,並運用這些信息指導搜索,從而避開錯誤的方向,避免迂迴曲折的分叉而高效的解決問題。因此,問題空間中必須包含信息,或者說,包含某種程度的秩序和結構。
實際中須要解決的問題不像解一元一次方程那樣只有一條路對應一個固定的解,而是在每一步都有多種選擇,對應着多個結局,造成一棵搜索樹。
The fact of limited resources allows us, for most purposes, to view a symbol system as though it were a serial, one-process-at-a-time device. If it can accomplish only a small amount of processing in any short time interval, then we might as well regard it as doing things one at a time. Thus "limited resource symbol system" and "serial symbol system" are practically synonymous. The problem of allocating a scarce resource from moment to moment can usually be treated, if the moment is short enough, as a problem of scheduling a serial machine.
這裏好像是說因爲資源有限,在實際應用中是按照線性過程在進行搜索的,是串行的,一次只能沿着搜索樹的一個分支走。(不過,有沒有「多線程」的並行搜索呢?)
In serial heuristic search, the basic question always is: what shall be done next? In tree search, that question, in turn, has two components: (1) from what node in the tree shall we search next, and (2) what direction shall we take from that node? Information helpful in answering the first question may be interpreted as measuring the relative distance of different nodes from the goal. Best-first search calls for searching next from the node that appears closest to the goal. Information helpful in answering the second question--in what direction to search--is often obtained, as in the algebra example, by detecting specific differences between the current nodal structure and the goal structure described by the test of a solution, and selecting actions that are relevant to reducing these particular kinds of differences. This is the technique known as means-ends analysis, which plays a central role in the structure of the General Problem Solver.
下一步搜索從樹的那一個節點開始?這就要進行不一樣節點與目標的相對距離測定。佳者優先策略要求從那個看起來離目標最近的節點開始下一步搜索。從該節點起應取什麼方向?這就須要測出當前節點的結構與目標結構之間的差別,並向着最能有效消除差別的方向前進。這就使傳說中的「手段—目的分析法」,在通用問題求解程序(GPS)中起主導做用。
具體操做中則須要一個估價函數f(n) = g(n) + h(n) 其中f(n) 是節點n的估價函數,g(n)實在狀態空間中從初始節點到n節點的實際代價,h(n)是從n到目標節點最佳路徑的估計代價。在這裏主要是h(n)體現了搜索的啓發信息,由於g(n)是已知的。若是說詳細點,g(n)表明了搜索的廣度的優先趨勢。可是當h(n) >> g(n)時,能夠省略g(n),而提升效率。(摘自百度百科,不過說實話這一段我沒看懂,歡迎高手指點)
Search—successive generation of potentional solution structures--is a fundamental aspect of a symbol system's exercise of intelligence in problem solving but that amount of search is not a measure of the amount of intelligence being exhibited. What makes a problem a problem is not that a large amount of search is required for its solution, but that a large amount would be required if a requisite level of intelligence were not applied. When the symbolic system that is endeavoring to solve a problem knows enough about what to do, it simply proceeds directly towards its goal; but whenever its knowledge becomes inadequate, when it enters terra incognita, it is faced with the threat of going through large amounts of search before it finds its way again.
並非搜索越多就意味着智能越高,正相反,智能高的表現偏偏是不用通過大量搜索也能解決問題。
啓發式搜索會形成這樣的結果:找到的解雖然是使人滿意的,卻不是最優的;或者說,雖不是最優的卻能使人滿意。實際上在認知心理學研究中也代表,動物在進行決策的時候採起的也是啓發式策略,尤爲是在資源(時間、食物等)不充足的狀況下。這樣作出的決策每每不是最優的,不過至少是有效的。這個就是西蒙「有限理性」的理論來源,使得西蒙後來得到了諾貝爾經濟學獎。
2 幾個啓發式搜索的實例
這部分參考《人工科學——複雜性面面觀》 司馬賀著 武夷山譯
http://www.douban.com/subject/1195595/
例一 通用解題者(General Problem Solver,GPS)P113-114
「……在輸入或感官一側,GPS必須能表現想望情況或想望物(就是上面說的目標結構),表現目前情況,它也必須能表現想望情況與目前情況的差異。 在傳出側,GPS必須能表現改變實物或情況的行動。爲了有目的的行動,GPS必須能不時地選擇這樣一些特定的行動,它們有可能消除系統探測到的目前狀態與 想望狀態之間的差異。在GPS這部機器中,這種選擇是經過一張關聯表實現的。該表將每種可探測到的差異與對減少那一差異有做用的行動聯繫起來。GPS的這 些聯繫(表現爲產生過程)將傳入情況與傳出情況掛上了鉤。因爲一般須要一系列行動才能實現某一目標,因爲某些努力也許是無效的,GPS也必須有探測本身的 進度(現實狀態與想望狀態間差異的變化)和試行新路子的手段。」
能夠看出GPS解決的是具備「良結構」(well structured)的問題。也就是說,等待解決的問題的當前狀態、目標狀態以及搜索空間中的路徑都很清楚。不能知足此條件的問題稱爲結構不良問題(poorly structured problem)
例二 「理解」(understand)P88
這是一個能夠解決結構不良問題的程序。
「有一個名叫「理解」的程序,它模擬人們對飲茶儀式這種問題創建內部表象(即進行理解)的過程。「理解」分兩階段進行工做:先對問題指令的句子進行語法分析,而後根據通過語法分析的句子摘取出的信息構造一個表象。
……分析的任務就是根據線性詞串推斷出隱含着的詞組和從句的層級結構。「理解」程序是用至關正統的方式(相似於現有的其餘語法分析程序)完成這一 步驟的。第二階段(構造)更爲有趣。這裏。對通過語法分析的句子進行考察,以期發現提到了哪些賓詞和賓詞集,提到了賓詞的那些性質,這些性質之間的關係是 什麼,哪些謂詞與關係描述了狀態,哪些描述了步驟,目標狀態是什麼。「理解」接着構造一個表現狀態的規則,產生出步驟符合規定(經過將一個狀態轉變爲另外一 狀態)的程序。」
這個看上去彷佛挺牛的,不過實際上它的功能很是有限。在西蒙的《思想模型》(Models of Thought)一書的7.1章到7.3章有關於「理解」程序的詳細描述。
例三 培根(BACON)P99
這是個具備發現能力的程序。
「BACON程序的目的是發現大量數據中的不變量。給定各行星至太陽的距離與它們的軌道週期的數據,該程序發現,對於全部的行星,軌道週期的立方 與行星至太陽的距離的平方之比都是同樣的(開普勒第三定律)。根據電流隨電路中電阻線長度而變化的數據,它推出了歐姆定律。同理,它發現了氣體定律、伽利 略自由落體定律和許多其餘定律。
爲了解釋發現的不變量,BACON就引入新概念。給定數據代表,當兩個物體互相加速時,二者加速度的比值老是相同的。BACON程序由此發明了質量的概念,並給每一物體一個質量。同理,它發明了折射率,以及比熱和化學價的概念。
……BACON的基本構造沒有多少新東西。給定兩組數據,若是它發現一組數據隨另外一組數據單調變化,就檢驗一下它們的比值(或乘積)是否不變。如 果成功了,它就發現了數值之間的定律關係;若是失敗了,它也定義了一個新的變量,可將此變量加到其餘變量上去,再重複這一過程。該系統的行爲了避免起的地方 是,經過這些步驟發現上述種種定律並不須要大量的搜索。爲找到一個不變量,不多須要考察原變量的十幾個以上的函數。」
科學家要失業了嗎?不會的。BACON以及後來出現的一大堆發現程序雖然能發現一些定律,但並不能解釋其中的內涵。我上小學的時候就知道E=mc2,但是到如今仍是不懂狹義相對論。
這些發現程序在化學學科中作了一些貢獻,但主要被用於深化對人類發現過程的認識。「例如,人們將BACON程序的模擬結果與物理學和化學的發現的 歷史事例進行了比較,還在實驗室中庸一些受試者進行了並行實驗,看看他們憑藉BACON程序努力作出的發現和基於科學史中記載的資料努力作出發現的情形有 什麼差別。」
總結一下
AI的兩個定性結構定律:
1 智能存在於物理符號系統中;
2 符號系統是經過生成潛在可能的解,並對其進行檢驗,也就是經過搜索的方式來解題的。
符號系統是許多模式和過程的集合體,過程可以產生、破壞或修正模式。模式能指稱對象、過程或其餘模式,當它們指稱過程的時候,它們就能獲得解釋,完成被指稱的過程。在咱們所瞭解的符號系統中有兩類意義最爲重大,就是人類和計算機。
符號系統的智能體如今它可以從問題空間中抽取信息,並經過搜索來解決問題。啓發式搜索就是一種這樣的搜索策略,經過估價函數來決定下一步搜索的起始點和方向,以有效率的解決問題。
經過認知心理學對人類及動物認知過程的研究,提出了不少關於智能的假設。以這些假設爲依據,人們開發了一堆各類各樣的智能程序,能完成不少看起來 很複雜的任務,好比語義理解,定律發現等。可是每一種程序都有它的侷限性。相信隨着認知科學研究的不斷深刻,會有更多更牛的程序誕生
__________________________________________________________
啓發式算法的計算量都比較大,因此啓發式算法伴隨着計算機技術的發展,取得了巨大的成就。
40年代:因爲實際須要,人們已經提出了一些解決實際問題快速有效的啓發式算法。
50年代:啓發式算法的研究逐步繁榮起來。隨後,人們將啓發式算法的思想和人工智能領域中的各類有關問題的求解的收縮方法相結合,提出了許多啓發式的搜索算法[]。其中貪婪算法和局部搜索等到人們的關注。
60年代: 隨着人們對數學模型和優化算法的研究愈來愈重視,發現之前提出的啓發式算法速度很快,可是解得質量不能保證。雖然對優化算法的研究取得了很大的進展,可是較大規模的問題仍然無能爲力(計算量仍是太大)。
70年代:計算複雜性理論的提出。NP徹底理論告訴咱們,許多實際問題不可能在合理的時間範圍內找到全局最優解。發現貪婪算法和局部搜索算法速度快,但解很差的緣由主要是他們只是在局部的區域內找解,獲得的解不能保證全局最優性。由此必須引入新的搜索機制和策略,纔能有效地解決這些困難問題,這就致使了超啓發式算法(meta-heuristic algorithms)的產生。
Holland模擬地球上生物進化規律提出了遺傳算法(Genetic Algorithm),它的不同凡響的搜索機制引發了人們再次引起了人們研究啓發式算法的興趣,從而掀起了研究啓發式算法的熱潮。
80年代之後: 模擬退火算法(Simulated Annealing Algorithm),人工神經網絡(Artificial Neural Network),禁忌搜索(Tabu Search)相繼出現。最近,演化算法(Evolutionary Algorithm), 蟻羣算法(Ant Algorithms), 擬人擬物算法,量子算法等油相繼興起,掀起了研究啓發式算法的高潮。因爲這些算法簡單和有效,並且具備某種智能,於是成爲科學計算和人類之間的橋樑。
優勝劣汰是大天然的廣泛規律,它主要經過選擇和變異來實現。選擇是優化的基本思想,變異(多樣化)是隨機搜索或非肯定搜索的基本思想。「優勝劣汰」是算法搜索的核心,根據「優勝劣汰」策略的不一樣,能夠得到不一樣的超啓發式算法。超啓發式算法的主要思想來自於人類通過長期對物理、生物、社會的天然現象仔細的觀察和實踐,以及對這些天然現象的深入理解,逐步向大天然學習,模仿其中的天然現象的運行機制而獲得的。
進化算法是借鑑生物界天然選擇和天然遺產機制的隨機搜索算法,包括:遺傳算法(GA),遺傳策略(GS),進化規劃(EP),進化策略(ES)。進化算法的基本框架仍是簡單遺傳算法所描述的框架,但在進化的方式上有較大的差別,選擇、交叉、變異、種羣控制等有不少變化。
模擬退火:是模擬統計物理中固體物質的結晶過程。模擬退火來自冶金學的專有名詞退火。退火是將材料加熱後再經特定速率冷卻,目的是增大晶粒的體積,並且減少晶格中的缺陷。材料中的原子原來會停留在使內能有局部最小值的位置,加熱使能量變大,原子會離開原來位置,而隨機在其餘位置中移動。退火冷卻時速度較慢,使得原子有較多可能能夠找到內能比原先更低的位置。
模擬退火的原理也和金屬退火的原理近似:咱們將熱力學的理論套用到統計學上,將搜索空間內每一點想象成空氣內的分子;分子的能量,就是它自己的動能;而搜索空間內的每一點,也像空氣分子同樣帶有「能量」,以表示該點對命題的合適程度。算法先以搜索空間內一個任意點做起始:每一步先選擇一個「鄰居」,而後再計算從現有位置到達「鄰居」的機率。在退火的過程當中,若是搜索到好的解接受;不然,以必定的機率接受很差的解(即實現多樣化或變異的思想),達到跳出局部最優解得目的。
神經網絡:模擬大腦神經處理的過程,經過各個神經元的競爭和協做,實現選擇和變異的過程。
禁忌搜索:模擬人的經驗,經過禁忌表記憶最近搜索過程當中的歷史信息,禁忌某些解,以免走回頭路,達到跳出局部最優解的目的。
螞蟻算法:模擬螞蟻的行爲,擬人擬物,向螞蟻的協做方式學習。
這幾種超啓發式算法都有一個共同的特色:從隨機的可行初始解出發,才用迭代改進的策略,去逼近問題的最優解。
他們的基本要素:(1)隨機初始可行解;
(2)給定一個評價函數(經常與目標函數值有關);
(3)鄰域,產生新的可行解;
(4)選擇和接受解得準則;
(5)終止準則。
其中(4)集中反映了超啓發式算法的克服局部最優的能力。
雖然人們研究對啓發式算法的研究將近50年,但它還有不少不足:
1.啓發式算法目前缺少統1、完整的理論體系。
2.因爲NP理論,各類啓發式算法都不可避免的遭遇到局部最優的問題,如何判斷
3.各類啓發式算法都有個自優勢如何,完美結合。
4.啓發式算法中的參數對算法的效果起着相當重要的做用,如何有效設置參數。
5.啓發算法缺少有效的迭代中止條件。
6.啓發式算法收斂速度的研究等。