25.07.2013 Views

AI assignment 2

AI assignment 2

AI assignment 2

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.<br />

Formulating the problem:<br />

<strong>AI</strong> <strong>assignment</strong> 2<br />

B93902027 資訊四 程瀚平<br />

a. The state:<br />

對蹹一個鞄 3x3 的 Rubik’s cube 來說,去移動每個鞄面的中間那格頴(下圖蹙的 center),是沒<br />

有意義的(也就是不會讓現在的 state 更接近 goal state),因為我們靽的 goal state 就<br />

是要讓 center 那面周圍的顏色都跟它一樣。<br />

因此我們靽可以把 center 當作 reference(定位的作用),只用 edge 跟 corner 來定義一<br />

個鞄 state。其中 edge 就是上圖蹙綠色區域,總共有 12 個鞄,且每個鞄 edge 由兩種顏色<br />

組成;corner 則是上圖蹙橘色部份,總共有 8 個鞄,每個鞄 corner 由三種顏色組成。<br />

一個鞄 state 就用這 20 個鞄 element 的排列來表示(12 edge + 8 corner)。<br />

b. Initial state:<br />

Initial state 可以是那 20 個鞄 element(edge 跟 corner)的任意排列組合。<br />

c. Successor function:<br />

這裡的 action 就是在六個鞄面中,選一個鞄面來轉,然後選擇要順時頗針轉 90 度、逆<br />

時頗針轉 90 度或是轉 180 度。除了第一個鞄 action 有 6 x 3 = 18 種可能的轉法可以選,<br />

之後第二個鞄 action 開始就在前一個鞄 action 選的面以外的五個鞄面選一面來轉,所以<br />

剩 5 x 3 = 15 種可能的轉法可選。<br />

d. Goal test:<br />

檢查各個鞄面的顏色是否都跟那個鞄面的 center 的顏色一樣。<br />

e. Path cost:<br />

每個鞄 action 的 cost 為 1。<br />

按照上面的定義,除了第一個鞄 depth 的 branching factor 是 18 外,之後的 branching<br />

factor 都是 15,若是跟最直覺 action 的定義—每次可以有 27 種轉法可選(就是中


間 center 所在的那層也能轉)—來比較跨的話,branching factor 從 27 降到 15,<br />

searching space 已經大大的縮小許多。<br />

2.<br />

如果說對蹹於任何一個鞄 initial state,它的 optimal solution 是在 depth n 的地方,按<br />

第一小題 problem 的定義,在 worst case 下 search tree 的 size 會等於 O( 15^n )。<br />

3.<br />

可以用三度空間的 Manhattan distance 來定義 heuristic function。就是去算每個鞄<br />

corner 跟 edge 各自根頨據所定義的 action,轉動到它們靽正確位置上的 Manhattan<br />

distance 的總和(例如把一個鞄 corner 轉到它正確的位置上要 3 個鞄 action,Manhattan<br />

distance 就是 3)。然後因為每個鞄 action 會改變 4 個鞄 corner 與 4 個鞄 edge 的位置,也<br />

就是 state 裡面的 8 個鞄 element,所以為了要 admissible,最後 Manhattan distance<br />

的總和還要除以 8,成為最後 heuristic function 的值靹。<br />

因為這個鞄 heuristic function 是 admissible 的,所以若是用 A*或 IDA*來做,可以<br />

保證找出 optimal solution 這是我認為它好的原鞝因。<br />

作業 reference:<br />

Richard E. Korf: Finding Optimal Solutions to Rubik's Cube Using Pattern Databases.<br />

AA<strong>AI</strong>/IA<strong>AI</strong> 1997: 700-705

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!