0% Plagiarism Guaranteed & Custom Written

# Task 1. Set up a project (Java, Python, C++, etc.) by following the instructions and routine practised in all tutorial exercises.

Task 1. Set up a project (Java, Python, C++, etc.) by following the instructions and routine practised in all tutorial exercises.

Task 2. Implement the grid based data structure reflecting exactly the one depicted by figure 1, either as a file to be imported by the application, or a built-in memory based data structure.

Task 3. Implement a human-computer interaction mode, where the following will be possible: a) Visualise the generated squared grid as depicted by figure 1; b) The user should be in a position to mark interactively the start and end cells for the shortest path finding algorithm. This could be done by either entering the coordinates (i, j) as positive integers for two arbitrary start and end points, A and B, respectively, or by clicking these cells with the cursor and mouse; c) Select from the three options of distance based metrics, i.e, Euclidean, Manhattan, Chebyshev, the one to apply for the shortest path finding algorithm.

Task 4. Design and implement your shortest path finding algorithm. Your implementation should switch over these three distance metrics and produce, for each one, as output: a) visualisation of the shortest path on the squared grid, b) the total cost of the shortest path depending on the applied distance metric.

Task 5. A brief report (no longer than half an A4-page) on the performance analysis of your algorithmic design and implementation. It suffices to discuss the performance analysis for one of these three distance metrics only, as no significant variations are expected. Your performance analysis should address the following: a) Methodology based on an empirical study, e.g., doubling hypothesis, as already discussed in the lectures and practised with almost all tutorials, by using the Java internal watch (see also comments within the framework implementation); b) Suggested order-of-growth classification (Big-O notation, i.e., average case) justified by and grounded on the results from (a) above.

Task 6. Demonstrate and defend the implemented algorithmic solution at viva by

a) Visualising the input grid as of figure 1. You may also make use of the landscape as a background image. b) Marking the start and end points, A and B, respectively; c)

Demonstrate the shortest path in both terms, drawn on the grid or landscape, as well as a number indicating the total cost, for each one of the distance metrics;

d) Justifying the results. To submit: • The source code to be used during the viva; (Tasks 3, 4) • The report about the algorithmic performance analysis (Task 5)

A brief report (no longer than half an A4-page) on the performance analysis of your algorithmic design and implementation. It suffices to discuss the performance analysis for one of these three distance metrics only, as no significant variations are expected. Your performance analysis should address the following: a) Methodology based on an empirical study, e.g., doubling hypothesis, as already discussed in the lectures and practised with almost all tutorials, by using the Java internal watch (see also comments within the framework implementation); b) Suggested order-of-growth classification (Big-O notation, i.e., average case) justified by and grounded on the results from (a) above.

100% Plagiarism Free & Custom Written, 