Introduction
Coursework 1 studies a Matlab program which is adapted from MathWorks. The first question is based on your understanding of A* algorithm and extends your skills to develop two well-known tree search techniques. The main goal is to give you first-hand experience on implementing search techniques for solving the shortest route problem in Matlab, one of the mostly adapted high level languages and analytic tools in business and research. The second question is based on your understanding of the A* implementation and the ability of adopting it to solve different kind of questions.
Marks
Coursework 1 accounts for 15% of the COMP1037 marks. Corresponding marks will be awarded for answering each of the sub-questions in FAIcw1.doc. Report should be written using this file as the template (keeping the same format of margin, font size and spacing, etc.).
Plagiarism vs. Group Discussions
As you should know, there is no tolerance of plagiarism, and any breach of which will be dealt with according to the University’s standard policies. Please be very careful not to cross the boundary into plagiarism while having general discussions regarding the coursework to promote the generation of new ideas and to enhance the learning experience. The important part is that when you sit down to actually do the work and write the answers, you do it individually. If you do this, and you truly understand what you have written, you will not be guilty of plagiarism. Do NOT, under any circumstances, share code or share figures, graphs or charts, etc.
Deadline and submission procedure
The submission deadline is 4pm on the 9th April 2018 via Moodle. Late submission results into a 5% reduction of your coursework mark for each weekday. Any work handed in after the 16th April will receive zero marks.
Name your submission file: FAIcw1-XXX.zip (incl. 1. your report ‘FAIcw1-XXX.pdf’, 2. Your Astar-MazeSolver-XXX’ code folder), where XXX should be your student ID number, and submit a single compressed file via Moodle.
If you can’t submit your coursework on time due to Extenuating Circumstances, please contact your personal tutor first. I am only granting an extension of submission based on his / her recommendation.
Please remove the above text while writing your coursework report.
- This part is based on the A* matlab demo (A_Star). You need to understand how this demo works and answer the following questions. (6 marks)
- You are required to implement Greedy Search and Uninform Cost Search algorithms based on the A* code (In the report, show what changes you have made and explain why you make these changes. You can use screenshot to demonstrate your code verification). (2 marks)
- You are required to use the matlab basics from the first lab session to show the evaluation results of the three searching methods (hint: bar/plot) with respect to the ‘total path cost’, ‘number of nodes discovered’ and ‘number of nodes expanded’. Explain how you can extract the related information from data stored in variable ‘QUEUE’ (2 marks)
- Design and implement another heuristic h2 which is different from the one (h1) is used in the A* matlab code, explain how h2 works and show what changes you have made to change the heuristic function from h1 to h2. Is h2 optimal? Why? Which heuristic is better? Why? (2 marks)
- This part is based on the maze generator demo (MazeGeneration-master). The maze generator is a project written by some student using Matlab. He has adopted depth-first approach to randomly generate a maze with user defined size and difficulty. (9 marks)
- In the demo code, show which line(s) of code is used to implement depth-first approach, explain the logic the student adopts to generate the maze. (2 marks)
- Identify the problem of this maze generator if there is any. (1 marks)
- Write a maze solver using A* algorithm. (6 marks)
- The solver need be called by command ‘AStarMazeSolver(maze)’
- The maze solver should be able to solve any maze generated by the maze generator
- The maze solver should be able to find the optimal solution.
- Your code need display the all the routes that A* has processed with RED color.
- Your maze solver should be about to display the final result BLACK color.
Figure 1. Sample output