問題規約 漫談人工智慧

2022-08-05 12:24:14 字數 1154 閱讀 5529

問題規約(problem reduction):是另一種基於狀態空間的問題描述與求解方法。已知問題的描述,通過一系列變換把此問題最終變成另一個本原問題(事實,定理)集合;這些本原問題的解可以直接得到,從而解決了初始問題。

問題規約表示可以由下列三部分組成: 

(1)一個初始問題描述; 

(2)一套把問題變換為子問題的操作符; 

(3)一套本原問題描述。

先把問題分解為子問題和子-子問題,然後解決較小的問題。對該問題的某個具體子集的解答就意味著對原始問題的一個解答。問題歸約表示的組成部分:一個初始問題描述;一套把問題變換為子問題的操作符;一套本原問題描述。問題歸約的實質:從目標(要解決的問題)出發逆向推理,建立子問題以及子問題的子問題,直至最後把初始問題歸約為一個平凡的本原問題集合。

變換可區分為以下三種情況: (1)狀態變遷:導致問題從上一狀態變遷到下一狀態,這就是一般圖搜尋技術中操作運算元的作用。 (2)問題分解:分解問題為需同時處理的子問題,但不改變問題狀態。 (3)基於狀態變遷的問題分解:先導致狀態變遷,再實現問題分解,實際上就是前兩個操作的聯合執行。

例如:梵塔難題:

有3個柱子(1,2和3)和3個不同尺寸的圓盤(a,b和c)。在每個圓盤的中心有一個孔,所以圓盤可以堆疊在柱子上。最初,3個圓盤都堆在柱子1上:最大的圓盤c在底部,最小的圓盤a在頂部。要求把所有圓盤都移到柱子3上,每次只許移動一個,而且只能先搬動柱子頂部的圓盤,還不許把尺寸較大的圓盤堆放在尺寸較小的圓盤上。

解題過程:

將原始問題歸約為一個較簡單問題集合,要把所有圓盤都移至柱子3,我們必須首先把圓盤c移至柱子3;而且在移動圓盤c至柱子3之前,要求柱子3必須是空的。只有在移開圓盤a和b之後,才能移動圓盤c;而且圓盤a和b最好不要移至柱子3就不能把圓盤c移至柱子3。因此,首先應該把圓盤a和b移到柱子2上。然後才能夠進行關鍵的一步,把圓盤c從柱子1移至柱子3,並繼續解決難題的其餘部分。

梵塔問題歸約圖:子問題2可作為本原問題考慮,因為它的解只包含一步移動(最原始的狀態)。應用一系列相似的推理,子問題1和子問題3也可被歸約為本原問題。