[問題] 不是普通的8-puzzle問題...
各位板友好,初次發文,請多指教
如有疏忽之處,還請提點
誠如標題所述,本人想要解一個題目,經過各種關鍵字找尋後,感覺跟8-puzzle很像
不過,題目不只是單純的「移動方塊成為指定排列模式」而已
例如:
0 5 8
7 4 3
2 6 1
這是一個puzzle(用0代表空格),我需要把1移動到左上角就好了
(其他順序啥的不考慮)
然而,所要求移動的方式必須是「總成本」(Cost)最小的那個方式
例如
<--
5 0 8
7 4 3
2 6 1
這個狀態下,與剛剛的初始狀態比起來,移動了5,所以成本就是5
==============================================
本人的想法目前偏向BFS或DFS(都是遞迴)
BFS→一直往左上的方向,每個方向都移動一次,走的時候慢慢加cost
DFS→一直往左上的方向,每次要移動時只選最小的數字
這樣一來,因為都是一直往左上,自然就把防止逆向的功能整併了
可是不知道要用哪個方式才是正確的...
(剛剛手算DFS,感覺不像很快就能算出正確答案...)
希望各位板友能提點一下這個題目,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.13.149
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460995062.A.D2E.html
推
04/19 00:03, , 1F
04/19 00:03, 1F
這題並不是最短路徑...
※ 編輯: jh961202 (140.135.74.20), 04/19/2016 00:55:43
→
04/19 01:25, , 2F
04/19 01:25, 2F
→
04/19 01:25, , 3F
04/19 01:25, 3F
→
04/19 01:40, , 4F
04/19 01:40, 4F
→
04/19 01:41, , 5F
04/19 01:41, 5F
→
04/19 01:42, , 6F
04/19 01:42, 6F
→
04/19 02:43, , 7F
04/19 02:43, 7F
推
04/19 06:27, , 8F
04/19 06:27, 8F
→
04/19 06:27, , 9F
04/19 06:27, 9F
推
04/19 10:13, , 10F
04/19 10:13, 10F