日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

状态空间表示

發(fā)布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 状态空间表示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

本文隸屬于專欄《人工智能》,該專欄為筆者原創(chuàng),引用請注明來源,不足和錯誤之處請在評論區(qū)幫忙指出,謝謝!

本專欄目錄結(jié)構(gòu)和參考文獻請見人工智能


引子

人工智能的多個研究領(lǐng)域從求解現(xiàn)實問題的過程來看,都可抽象為一個“問題求解”過程,問題求解過程實際上就是一個搜索過程。

在搜索過程開始之前,必須先用某種方法或某幾種方法的混和來表示問題。

問題求解技術(shù)主要涉及兩個方面:

  • 問題的表示
  • 求解的方法

狀態(tài)空間表示法就是用來表示問題及其搜索過程的一種方法


問題的狀態(tài)空間表示

狀態(tài)空間方法:基于解答空間的問題表示和求解方法,它是以狀態(tài)和算符為基礎(chǔ)來表示和求解問題的。

主要包括:

  • 狀態(tài)
  • 算符
  • 狀態(tài)空間

典型的例子:下棋、迷宮、各種游戲等。


狀態(tài)( State )

狀態(tài)是問題求解過程中每一步問題狀況的數(shù)據(jù)結(jié)構(gòu),一般用一組數(shù)據(jù)表示:

式中每個元素為集合的分量,稱為狀態(tài)變量

  • 每一個分量給予確定的值時,得到一個具體的狀態(tài)。
  • 任何一種類型的數(shù)據(jù)結(jié)構(gòu)都可以用來描述狀態(tài),只要它有利于問題求解。
  • 在程序中用字符、數(shù)字、記錄、數(shù)組、結(jié)構(gòu)、對象等表示狀態(tài)。

算符( Operator )

當(dāng)對一個問題狀態(tài)使用某個可用操作時,它將引起該狀態(tài)中某些分量值的變化,從而使問題從一個具體狀態(tài)變?yōu)榱硪粋€具體狀態(tài)。

  • 算符可理解為狀態(tài)集合上的一個函數(shù),它描述了狀態(tài)之間的關(guān)系。
  • 算符可以是某種操作、規(guī)則、行為、變換、函數(shù)、算子、過程等。
  • 算符也稱為操作,問題的狀態(tài)也只能經(jīng)定義在其上的這種操作而改變。

問題的狀態(tài)空間( Statespace )

用來描述一個問題的全部狀態(tài)以及這些狀態(tài)之間的相互關(guān)系

狀態(tài)空間常用一個三元組表示:

( S, F, G )
  • S :為問題的所有初始狀態(tài)的集合
  • F :算符的集合
  • G :為目標狀態(tài)的集合


狀態(tài)空間圖

狀態(tài)空間可用有向圖來描述,圖的節(jié)點表示問題的狀態(tài),圖的弧表示狀態(tài)之間的關(guān)系。

初始狀態(tài)對應(yīng)于實際問題的已知信息,是圖中的根結(jié)點。

在問題的狀態(tài)空間描述中,尋找從一種狀態(tài)轉(zhuǎn)換為另一種狀態(tài)的某個操作算子序列等價于在一個圖中尋找某一路徑

如下圖所示為用有向圖描述的狀態(tài)空間。

該圖表示對狀態(tài) S0 允許使用算符 O1 , O2 及 O3 ,分別使 S0 轉(zhuǎn)換為 S1 , S2 及 S3 。

這樣一步步利用操作算子轉(zhuǎn)換下去,如 S10 ∈ G ,則 O2 , O6 , O10 就是一個解。


實踐-八數(shù)碼問題

在 3 × 3 的棋盤,擺有八個棋子,每個棋子上標有 1 至 8 的某一數(shù)字。 棋盤上還有一個空格,與空格相鄰的棋子可以移到空格中。

如何將棋盤從某一初始狀態(tài)變成最后的目標狀態(tài)?


八數(shù)碼問題的狀態(tài)

X1X2X3
X8X0X4
X7X6X5

用向量 S =( X0, X1, X2, X3, X4, X5, X6, X7, X8 ) 表示狀態(tài) Xi 為變量, Xi 的值就是方格 Xi 內(nèi)的數(shù)字,取值為{ 0, 1, 2 … 8 },其中 0 表示空格。

于是,向量 S 就是該問題的狀態(tài)表達式。

則上圖中的狀態(tài)變化為:

  • 初始狀態(tài): S0=(028345671)
  • 目標狀態(tài): Sg=(012345678)

八數(shù)碼問題的算符

制定操作算符集:

  • 直觀方法一為每個棋牌制定一套可能的走步:左、上、右、下四種移動。這樣就需 32 個操作算子。
  • 簡易方法一僅為空格制定這 4 種走步,因為只有緊靠空格的棋牌才能移動。空格移動的唯一約束是不能移出棋盤。

八數(shù)碼問題的狀態(tài)空間圖

  • 從初始棋局開始,試探由每一合法走步得到的各種新棋局,然后再走一步而得到的下一組棋局。這樣繼續(xù)下去,直至達到目標棋局為止。
  • 把初始狀態(tài)可達到的各狀態(tài)所組成的空間設(shè)想為一幅由各種狀態(tài)對應(yīng)的節(jié)點組成的圖。 這種圖稱為狀態(tài)空間圖。
  • 圖中每個節(jié)點是它所代表的棋局。首先把適用的算符用于初始狀態(tài),以產(chǎn)生新的狀態(tài);算符可以看成狀態(tài)空間圖的邊。
  • 狀態(tài)空間的圖示形式稱為狀態(tài)空間圖(有向圖)。 其中圖的節(jié)點表示狀態(tài),圖的邊表示算符問題求解過程就是尋求圖的某一路徑的問題,實際上是一個搜索過程。

比如我們從下面這個初始棋局開始:

繪制的八數(shù)碼問題的狀態(tài)空間圖(部分)如下所示:

總結(jié)

以上是生活随笔為你收集整理的状态空间表示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。