2010-09-25 83 views
2

我記得當我在大學時,我們遇到了一個問題,那裏有一個智能代理,在一個方格的網格上,它必須清理廣場。它被授予清潔點。它也被扣除移動點。它必須時不時加油,最後根據網格上有多少個方格髒或乾淨得到最終分數。人工智能 - 智能代理,清潔和塗料

我試圖研究這個問題,因爲當我在大學看到它的時候它非常有趣,但是我找不到任何關於維基百科或任何在線的地方。你知道關於這個問題的具體名稱嗎?或者,也許這只是我的老師爲這堂課提出的問題。

我正在尋找AI清潔劑和類似的東西,但我沒有找到任何東西。我不知道,我想也許它有一些其他的名字。

如果你知道我在哪裏可以找到關於這個問題的更多信息,我將不勝感激。謝謝。

+1

我認爲這叫做Roomba;) – 2010-09-25 19:03:01

+0

@no Roombas * paint * now? :) – 2010-09-25 19:29:22

回答

0

這個問題讓我想起了this。作爲遺傳算法的一個例子,在書Complexity中簡要提及了類似的問題。這些版本雖然簡化,但沒有考慮燃料消耗。

2

也許一個「sti」「的方法與你的問題密切相關。有一個起點here,你可以在google scholar上搜索「死亡螞蟻」和「機器人」。

基本上:而不是建模一個精確的策略,你工作的概率方法。螞蟻(可能)按照一個簡單的規則堆積它們的死物,例如「如果那裏有一堆死螞蟻,我把這個屍體帶到這裏;否則,我會堆一堆」。你可以從簡化你的「清理」情況開始,看看你走到哪裏。

  • 「乾淨」的端部數目瓷磚
  • 的:

    另外,我覺得(?另一個)合適的方法可以與使用的健身功能,諸如仔細選擇組合的遺傳算法來建模由機器人

當然

如果機器人「模具」出來的飢餓,它會自動從基因庫,一拉達爾文獎:)

刪除自身取得的步數

你可以從建模一個非常非常簡單的基因型開始,這個基因型將被「計算」成一個行爲。考慮使用一個簡單的遺傳算法,如Inman Harvey的this one,然後給每個基因分配一個策略的一部分,或者一個完整的行爲。例如:如果基因A變成1,那麼機器人將嘗試隨機漫遊;如果基因B也變爲1,那麼它將優先自我充電,除非在距離X處有髒的瓷磚。或者使用浮動和模型概率。你的里程可能會有所不同,但我可以保證它會很有趣:)

2

問題是令人聯想到Shakey,雖然有清洗涉及(這就像Roomba - 一個設備,也可以編程來執行這些非常任務) 。

如果「問題空間」(或房間)足夠小,則可以使用簡單的基於A *的搜索來解決最佳解決方案,但可能不會,因爲這樣做不會很好有趣的問題。

這裏使用遺傳算法建議的機器學習方法是一種有趣的方法。考慮到問題領域,你只會有一個「規則」(一個move-to動作,因爲clean可以通過隱式清理任何你移動到的方塊來消除),所以你的學習者本質上將學習如何在環境中移動。問題在於建立一個適合任何特定平面圖的學習者,而不是僅僅精通清理一個非常具體的空間。

無論採取什麼方法,如果問題集足夠大,我還會考慮進行進一步的元推理步驟,並使用分區方法將地板劃分爲不同的區域,然後逐個征服它們。

您可以使用技術創建數據以使用「脫機」嗎?在那種情況下,我甚至會考慮創建一個最佳路線的「數據庫」,以清除某些包括所有可能的開始和結束方格的地板空間(1x1,例如5x5)。這類似於遊戲AI在達到一定深度時有效「解決」遊戲的「遊戲數據庫」(c.f.​​)。