啟發式知識

啟發式知識

啟發式知識是實現啟發式搜尋算法的電腦程式。著名的啟發式搜尋程式有20世紀70年代初N.J.尼爾松給出的A算法、A’算法,以及後來的與或圖啟發式AO‘搜尋算法等。

基本介紹

  • 中文名:啟發式知識
  • 外文名:Heuristic knowledge
  • 定義:實現啟發式搜尋算法的電腦程式
  • 性質:局域性、試探性、針對性
  • 套用:計算機
  • 學科:程式語言術語
概述,性質,套用環節,知識表示,搜尋求解,

概述

啟發式搜尋法是一種有效的重要方法,它不是依靠數學上的理論推導,而主要是靠一些總結出來的解決問題的有效經驗,如策略、法制、簡化步驟等來解決問題,把這些經驗性的東西寫成規則形式就是啟發式規則。
所謂搜尋過程是指一種利用局部性知識(如何從任一狀態向目標狀態靠近的知識)構造出全局性答案(問題的一個解或最佳解)的過程,系統內部事先沒有構造這種答案的全局性知識。反之,如果系統內部已經具有直接構造全局性答案的完整知識,則構造這個答案的過程不是搜尋過程。[2]
1987年,比利時學者H.穆勒利用啟發式知識發展支持決策系統,開發了複雜柔性生產系統的生產計畫專家系統H11。
1995年,何棟中研究了啟發式搜尋法在確定坯一材關係中的套用,制訂了最佳化的剪下方案。
啟發式程式是實現啟發式搜尋算法的電腦程式。著名的啟發式搜尋程式有20世紀70年代初N.J.尼爾松給出的A算法、A‘算法,以及後來的與或圖啟發式AO‘搜尋算法等。[1]
啟發式程式的套用包括兩個主要環節:一是知識表示;二是搜尋求解。
布魯納還提出了啟發式程式的某種特性:“啟發式程式實質上是達到解決難題的一種不嚴密的方法:啟發式程式常常使難題解決,但它提不出解決難題的保證。此外,算法也是解答問題的一種程式,如果進行得準確,它保證會經由一定的步驟發現問題的解答辦法——只要這個問題有解答之道。當算法的程式不明了的時候,往往可用啟發式程式,這是啟發式程式的優點之一。而且,即使有合用的算法時,啟發式程式也往往進度更快得多。另一方面,經常套用一般的啟發式規則——利用類比。

性質

啟發式程式具有3個性質:
(1)局部性:啟發式程式在求解某類問題的結果時.不一定保證是準確解或最佳解;
(2)試探性:啟發式程式求解問題時允許失誤而改用其他的方法;
(3)針對性:啟發式程式可以利用某些被解問題的特殊規律,大大簡化該問題的求解過程,具有較強的針對性。
依靠啟發,只須事先掌握把前提和結論聯繫起來的部分先驗信息,一般求解問題比較簡捷,在求解複雜問題時,可以更好地表現出人類智慧的特徵。在處理實際問題時.並不是單純地使用上述兩種方法中的某一種,而是交替地使用算法和啟發。一般是在戰略決策上較多地使用啟發,在戰術推進上較多地使用算法。

套用環節

知識表示

解決一個問題的前提是對此問題進行準確的描述,也就是對此問題中涉及的知識進行適當的表示。因此,運用知識表示方法對問題的概念、特點做出準確描述,為所求解問題建立準確的模型具有重要的意義。
知識表示方法是關於如何描述事物的一組約定。問題求解過程主要是一個獲得並套用知識的過程,而知識必須有適當的表示才能在計算機中儲存、檢索、使用和修改。所謂知識的機器表示技術就是研究在計算機中如何用最適合的形式對問題求解過程中所需的各種知識進行組織,它與問題的性質和求解的方法有密切的關係。
狀態空間表示法是最基本的知識表示方法,是討論其他形式化方法和問題求解技術的出發點。下面對狀態、操作和狀態空間做一簡單介紹。
所謂狀態(state),就是為描述某一類事物中各個不同事物之間的差異而引入的一組變數q(0),q(1),q(2),…的有序組合。它常表示成矢量形式:Q=[q(0),q(1),q(2),…]
式中,每個元素q(i)稱為分量,其相應的變域為[q(i),b(i)]。狀態的維數可以是有限的,也可以是無限的。給定每個分量的值g(i,k),就得到一個具體的狀態:Q(k)=[q(0,k),q(1,k),q(2,k),…]
狀態還可以表示成多元數組[q(0),q(1),q(2),…]或其他方便的形式。
引起狀態中的某些分量發生改變,從而使問題由一個具體狀態變化到另一個具體狀態的作用,稱為運算元(operator),它可以是一個機械性的步驟、過程、操作或規則。運算元描述了狀態之間的關係。
問題的狀態空間(state space)是一個表示該問題的全部可能狀態及其相互關係的圖,一般是一個賦值有向圖,其中包括以下三方面的詳細說明:
S:問題可能有的初始狀態的集合;
F:操作的集合;
G:目標狀態的集合。
所以狀態空間常記為三重序元(S,F,G)。在狀態空間表示法中,問題求解過程轉化為在圖中尋找從初始狀態
出發到達目標狀態
的路徑問題,也就是尋找操作序列口的問題。所以狀態空間中的解也常記為三重序元
,它包含了以下三方面的詳細說明:
:某個初始狀態;
:某個目標狀態;
a:把
變換成
的有限操作序列。

搜尋求解

所謂搜尋過程是指一種利用局部性知識(如何從任一狀態向目標狀態靠近的知識)構造出全局性答案(問題的一個解或最佳解)的過程,系統內部事先沒有構造這種答案的全局性知識。反之,如果系統內部已經具有直接構造全局性答案的完整知識,則構造這個答案的過程不是搜尋過程。例如盲人爬山時,他不知山在何方,向何處走(全局性答案),只知道每步都選最陡的方向前進(局部性知識),這個過程是搜尋;而利用解一元一次方程的算法,可以直接求出結果,這個過程不是我們所討論的搜尋問題,或稱為零步搜尋問題。
搜尋技術是套用十分廣泛的機械化推理技術之一,特別是其中的啟發式搜尋原理(heuristic search theory),它可以幫助我們利用部分狀態空間來求解問題,這樣就大大提高了解題效率。
傳統的基本搜尋策略都是非啟發式的搜尋,其控制性知識僅僅是基本搜尋策略,沒有包含輔助性策略,例如被解問題的解的任何特性。基本搜尋策略的優點是控制性知識比較簡單,但它原則上都要求知道問題的全部狀態空間圖,其搜尋效率不高,不便於許多複雜問題的求解。為了提高搜尋效率,人們研究了許多有較強啟發能力的搜尋策略。
啟發式搜尋的基本思想是在控制性知識中增加關於被解問題的解的某些特性,以便指導搜尋朝最有希望的方向前進。所以啟發式搜尋與基本搜尋不同,從原則上講只需要知道問題的部分狀態空間就可以求解該問題,搜尋效率較高。通過後面的討論可以看出,正是控制性知識中的啟發信息,彌補了由於略去部分狀態空間帶來的信息損失。

相關詞條

熱門詞條

聯絡我們