人工智慧實驗

2021-09-01 07:55:52 字數 2622 閱讀 1776

這學期的人工智慧實驗,一共有三個。個人感覺,除了第二個實驗稍微複雜一些之外,剩下兩個還是比較簡單的。我們是6個人組成了一組,我負責做第二個實驗,雖然複雜了一些,但網上的參考還是很多的。人工智慧實驗已經驗收完了,考試也已經完事了,剛好輕鬆一下,在這裡簡單介紹一下這幾個實驗。

所有的實驗**在這裡給出:人工智慧實驗 這裡就不再貼上**了,只給出思想和解決方案。

實驗一主要是設計乙個解決方案,乙個猴子摘香蕉的解決方案。剛開始看到這個問題的時候,還是比較懵逼的,一度覺得,這問題也需要寫**?後來隊友把**搞出來了,才知道,原來可以這樣寫。

實驗的要求很簡單:

參照課程第二部分講授的知識表示方法完成,包括產生式系統、框架系統、語義網路等(還可以選擇其他方法)解決以下問題(不限於此),必要時上網查詢有關參考文獻。最好事先編好源**,然後再除錯執行。

乙個房間裡,天花板上掛有一串香蕉,有乙隻猴子可在房間裡任意活動(到處走動,推移箱子,攀登箱子等)。設房間裡還有乙隻可被猴子移動的箱子,且猴子登上箱子時才能摘到香蕉,問猴子在某一狀態下(設猴子位置為a,香蕉位置在b,箱子位置為c),如何行動可摘取到香蕉。

該問題的本質就是利用一種知識表示的方法來解決猴子摘香蕉的問題。如果把猴子、香蕉和箱子的位置用裡的數字表示(對應為a,b,c),那麼就可以用乙個三元組來表示問題的狀態,任意輸入乙個合法的狀態,即可輸出乙個從初始狀態到目標狀態的過程。實際實現需要使用四元組,還需要記錄猴子與箱子的相對位置。

按照題目要求,選擇產生式表示法。

首先定義乙個綜合資料庫,即包含所有狀態的狀態空間(monkey, box, banana,

monbox),分別表示猴子、香蕉和箱子的位置,用表示。

定義猴子的行動規則,即規則資料庫:走到x位置處;跳到箱子上;從箱子上跳下來;將箱子移到另乙個位置;如果站在箱子上且有香蕉,則可以摘香蕉。

根據問題,確定終止狀態是猴子摘到香蕉(x 屬於 )。

輸入乙個初始狀態(a, b, c, d)

有了上述條件,即可利用產生式的方法輸出乙個從初始狀態到目標狀態的解決方案。

這是乙個吃豆人吃豆的遊戲,專案整體其實挺龐大的,但大部分**已經給出,我們只需要在這個框架之上完成相應的功能即可。這是乙個國外大學的實驗,位址在這裡:uc berkeley cs188 intro to ai – course materials

先來看實驗要求:

採用且不限於課程第四章內各種搜尋演算法此編寫一系列吃豆人程式解決以下列出的問題1-8,包括到達指定位置以及有效的吃豆等。在這些已經設計好的框架中需要做的就是實現不同的圖的搜尋演算法。並通過策略選擇以最少的步數,在搜尋最少節點的情況下達成問題目標。

問題1:應用深度優先演算法找到乙個特定的位置的豆

問題2:寬度優先演算法

問題3:代價一致演算法

問題4:a*演算法

問題5:找到所有的角落

問題6:角落問題(啟發式)

問題7:吃掉所有的豆子

問題8:次最優搜尋

簡單地說,這個實驗就是分成了兩大部分,前四個是寫四種不同的搜尋演算法;後四個是在前四個的基礎上再去解決相對應的問題。

實驗要求中有這樣一句話:

前四個問題的策略其實也確實差不多,但還是有點區別的,所以,我都寫在了乙個函式中,根據不同的引數來呼叫不同的演算法。

後四個小問題的可發揮性就很高了,可以自由發揮。我這裡借鑑了同學的**,感覺比網上大部分的參考**都要簡潔許多。由於後四個問題基本上都不是我自己寫的,這裡就不解釋了,我在**中新增了一些注釋,想看解釋就去看注釋吧。

這個實驗就是利用貝葉斯網路進行計算,思路還是比較簡單的。

還是先來看一下實驗內容:

參照課程第五部分講授的貝葉斯網路完成,給定事件和事件之間的關係,並且給出每個事件的cpt圖,根據貝葉斯公式根據上述條件求出目標概率,編寫程式實現基於貝葉斯網路的推理。在這裡用到的貝葉斯演算法是建立在有向無環圖和cpt表的技術上實現的。

大概的思想就是,根據輸入檔案給的概率矩陣,構建貝葉斯網路。然後讀取問題檔案,利用構建的貝葉斯網路,計算出乙個cpt表,然後讀取解決問題檔案中的概率問題,給出概率值。

具體一些,就是說:

首先,利用讀取檔案的函式讀取檔案,然後構建乙個貝葉斯網路圖(使用geteverycpt函式,資訊儲存在儲存在count,strings,q,p中),計算出乙個cpt表。

利用資料結構,計算並儲存聯合概率。

然後讀取問題檔案(儲存在arraylist2中),根據貝葉斯網路的公式,計算相應的聯合概率,然後進行計算。將所有的全概率算出,利用窮舉法,將各種情況相加,相除得到結果。

其實可以不需要儲存所有的聯合概率的,太複雜了。後來複習的時候我們才知道有簡單一些的方法,但已經寫完**了,並不想改了。

改進的方法也只是相對簡單很多,但本質都是先求聯合概率,然後相加。不同的是,我們利用的是儲存所有的聯合概率,然後用的時候去查詢,這樣儲存,感覺方法比較笨。根據課件上的指導,可以根據條件概率與聯合概率成正比來計算,有乙個正比係數(其實就是計算概率的真假概率值和的倒數),利用聯合概率乘該正比係數即可求出條件概率。

本次人工智慧課程的三個實驗,其實都比較簡單。由於課程較多,時間緊迫,有些東西就沒有深究。其實,相比於其他同學選的機器學習課程,人工智慧課已經很簡單了。但是自己總感覺沒有學到太多實用的東西,感覺沒有機器學習有意思,以後有時間一定把機器學習的四個實驗寫一遍。

人工智慧實驗

五 測試 除錯及實驗結果分析 六 實驗結論與體會 一 實現人臉識別 二 實現雲資料庫應用 基於二哈實現多人人臉學習和識別 基於tinywebdb實現雲資料庫應用 基於easyiot實現mqtt資料上傳。硬體 掌控板 二哈識圖 huskylens ai視覺感測器 軟體 mind 1 mind 上的圖塊...

人工智慧實驗

一 實現人臉識別 二 實現雲資料庫應用 三 實現測溫資料mqtt上傳至物聯網雲平台 基於二哈實現多人人臉學習和識別 基於tinywebdb實現雲資料庫應用 基於easyiot實現mqtt資料上傳。硬體 掌控板 軟體 mind 1.基於二哈實現多人人臉學習和識別 首先使用二哈進行人臉學習,將二哈攝像頭...

人工智慧測溫實驗

本實驗目的如下 一 實現測溫 二 實現人臉識別 三 實現tinywebdb雲資料庫應用 四 實現測溫資料mqtt上傳至物聯網雲平台 實驗軟硬體環境 硬體 掌控板,huskylens ai 視覺感測器 溫度感測器 軟體 mind 實驗過程 1.接線效果圖如下 2.在mind 上程式設計,配置好mqtt...