[ad_1]

In this programming assignment, we aim to implement the A* search algorithm.
1 Windy 8-Puzzle Problem
We consider a variant of the 8-puzzle problem (http://tristanpenman.com/demos/n-puzzle)
under a windy condition. The initial state and the goal state are shown as follows: We assume
that the wind
comes from the north. The step cost regarding the agent’s moving a non-blank tile to the
neighboring blank tile is defined as follows: 1 for moving southward; 2 for moving westward or
eastward; 3 for moving northward.
The evaluation function f(n) = g(n) + h(n), where g(n) is the path cost and h(n) is the heuristic
function. g(n) is defined as the path cost until the current state n by considering the windy step
cost.
For h(n), we use a modified total Manhattan distance used in class by considering the windy
situation.
We define h(n) =ℎ(?) = ෌ ℎ௜(?)

௜ୀଵ where ℎ௜(?) is for each tile. For example, for the initial
node, regarding Tile 6, the agent has to move at least 1-step northward and 1-step eastward in
order to reach the goal.
Therefore, we have ℎ଺(?) = 3 *1 + 2 * 1 = 5 at the initial state.
In your implementation, please use a priority queue for the frontier and a hash table for the
expored set. The priority is based on the evaluation function f(n). The smaller the value, the
higher the priority. When adding children to an expansion node, use such order of moving the
non-blank tile to the neighboring blank tiles: first the west neighboring non-blank tile; then
north one; then the east one; then the south one. To break tie in picking an expansion node,
use FIFO order. In your testing output, please print out all expansion states in the sequence as
shown on next page: For the printout of each state, the last 2nd row includes g(n) value at the
left and h(n) value at the right, and the last row indicates the expansion order.
2 Submission
In your report, please provide the screenshots of all outcomes, and the highlighted code
segments and the detailed explanation on how you implement the followings:
 Data structure: priority queue for frontier set and hash table for explored set;
 Calculation of f(n) = g(n) + h(n);
 Adding leaves for expansion.
 Picking the smallest f(n).
Output should must like the following:
Each screenshot should include your usernames and the current time. Comment your code in
details.

[ad_2]

Testimonials

Windy 8-Puzzle Problem In C++ Or JAVA
We have updated our contact contact information. Text Us Or WhatsApp Us+1-(309) 295-6991