2016-10-02 20 views
-1

我必須使用不知情的搜索技術來解決以下問題。找到穿越謎題的統一搜索技術

遊戲是這樣的:

在河的一邊,有一個警察,一個強盜,在紅色禮服和她的兩個孩子的女人,在一個黃色的衣服和她的兩個孩子的女人。有一艘船最多可載兩人。孩子們不能開船。 如果警察不在,那麼強盜會殺死人。如果穿紅裙子的女人不在,那麼穿着黃色衣服的女人會殺死穿紅衣服的女人的孩子,反之亦然。

我像往常一樣困惑。請幫我弄明白。 的問題,怎麼能夠解決(無需編程)顯示在下面的視頻:

https://www.youtube.com/watch?v=vSusAZBSWwg

謝謝。

+1

你需要以決策樹的形式對問題進行建模,然後解決它([by brute-force](http://cs.lmu.edu/~ray/notes/usearch/)) - 你如何模擬問題,這是你的任務。 – BeyelerStudios

+0

你的意思是dept first或broadth first tree? –

+0

對於一棵如此小的樹,只要你跟蹤已經遇到的遊戲狀態就沒有關係(即,發現哦,狼在那裏,其他人在這裏,它已經花費我少於或等於達到該位置在當前分支中,所以當前分支沒有任何意義)。 – kkm

回答

-1

諸如River Crossing Puzzle,Sokoban或者Lemmings之類的問題通常在遊戲樹中用Brute-Force-Search解決。該域被聲明爲規則(可以移動或不可移動)以及確定策略(策略=計劃通過遊戲樹)達到的點數量的函數。求解器的目標是找到一個好的策略。做這件事的最好的硬件是一臺無限速度的量子計算機,用於測試每秒可移動的移動量。

這個不實用的原因是因爲一種稱爲「組合爆炸」的現象,這種現象在1973年由James Lighthill首次提出,以推動人造智能尚未準備好用於現實世界。對這個問題的答案是,使用備選策略來注意蠻力搜索。

一種可能性是使用硬編碼到程序代碼中的啓發式。通常這些啓發式被稱爲宏觀動作或運動基元。一個例子是「強盜到另一邊」。該子功能執行預定義數量的動作。另一個宏觀行動可能是「如果兩個女人在同一邊檢查」。爲了實現這種完整的遊戲策略是一項艱鉅的任務。不是因爲CPU使用率高,而是因爲每個細節都必須編碼到軟件中。