2010-07-17 64 views
7

this遊戲我想知道如何控制偵探或罪犯可以工作的人工智能。如何建模這種人工智能?

對於懶惰的人遊戲的目的是簡單的:

  • 棋盤遊戲是有4種邊緣(即也可以爲相同的一對或頂點重疊)的無向圖中,每個類是需要特定種類票證的運輸方式
  • 偵探擁有一堆車票來繞過此圖,每轉一圈(這意味着從一個節點到另一個節點)。罪犯可以做同樣的動作(加上3條專屬路徑),但沒有限制票號
  • 罪犯通常隱藏在偵探中,但它必須在5個特定輪次中出現(然後再隱藏)
  • 如果偵探能夠在24次移動之前抓住他(他們中的一個必須佔據同一犯人的單元格),那麼他們將獲勝,否則犯罪分子必須顯示他每回合使用哪張票,但他也有每個偵探1張黑色票(讓我們假設5張)可用於消除這件事
  • 犯罪分子還有兩張2x票,允許他在同一回合中使用兩張票(以及兩個動作)

我可以有效地思考一個AI的犯罪,它只是一個minmax樹,試圖選擇最大化偵測到達他所需動作數量的動作(這似乎是一個很好的指標),但對於那些應該合作的偵探來說,我想不出任何足夠酷的東西,並且通過查看它使用的門票來猜測犯罪分子的位置。

這只是爲了好玩,但你現在有沒有什麼很酷的想法來找出一些相當聰明的東西?

+0

http://sourceforge.net/projects/scotland-yard/ – 2010-07-17 04:16:13

+0

謝謝你的鏈接,我已經看了一下這個實現:正如評論所述,逃逸AI的問題在於它選擇了_best_ move那不是_smarter_之一。根據距離度量標準,這只是最好的,它並沒有考慮到類似回溯移動的技巧(也許潛入偵探之間,而不是離他們很遠)。 – Jack 2010-07-17 04:32:25

回答

1

你問如何建模,而不是如何這有效地解決:

它可以很容易地建模爲部分可觀馬爾可夫決策過程(wiki link)。這對偵探和罪犯都有效。 POMDP是一個非常通用的模型。

1

我喜歡這個遊戲,我認爲你想爲偵探建模犯罪分子在每個地點的概率。每隔一段時間你就會知道罪犯的確切位置,然後你可以考慮他做出的以下動作,以確定他可能在哪個位置。

一旦你有了這個,我不太清楚如何優化偵探動作。你可以調動偵探減少一系列可能性,有效地控制罪犯。但是我相信還有一些更高層次的戰略需要圍繞票據而不是用完。

+0

我也很喜歡它,它確實是戰略性的雖然簡單..這就是爲什麼我最終嘟about在如何有效開發ai ..也許遺傳編程可以模擬不同的偏見的相似之處,偵探可以遵循不同的方法,如密切的小空間,而不是嘗試做其他事情等 – Jack 2010-07-17 04:19:59

0

我想像某種蒙特卡洛實現將是一個很好的候選人,即。模擬成千上萬種組合,並選擇以大多數時間以最佳結果結束的組合。由於罪犯必須能夠看到5次回合,所以分支因子應該保持在很好的控制之下,儘管MC也被證明是高分支因子游戲中的一種非常好的技術。走。

0

爲了讓偵探之間的團隊協作,你需要將他們建模爲團隊而不是個人。 Minimax仍然是一條好路,但(可惜)你的分支因素將會飆升。

而不是通過所有的偵探,讓每個偵探成爲最好的,而不是你的偵探團隊,你可以制定出他們可能做出的每一個移動排列。如果團隊合作在這場比賽中有所幫助,那麼超級巨人會支持偵探在一起工作的排列組合。

我不確定它是否實用,24層的5名偵探可能工作太多,但嘗試這很有趣,這就對了嗎?