Page 1 of 1

Computer Science Artificial Intelligence

Posted: Thu Jul 14, 2022 2:19 pm
by answerhappygod
Computer Science Artificial Intelligence
Computer Science Artificial Intelligence 1
Computer Science Artificial Intelligence 1 (288.7 KiB) Viewed 29 times
Computer Science Artificial Intelligence 2
Computer Science Artificial Intelligence 2 (191.65 KiB) Viewed 29 times
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 \begin{tabular}{|lll|} \hline 7 & 6 & 5 \\ 8 & − & 4 \\ 1 & 2 & 3 \\ \hline \end{tabular} Goal state 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)=i=1∑8​hi​(n), where hi​(n) 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 h6​(n)=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.
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).