A* algorithm pay for homework answers online using a heuristic. When the heuristic is good, the algorithm produces good results within a very short time (Domingos, 278). Thus, with a good heuristic, the algorithm is best suited to find the shortest path where a large search space is involved. The heuristic is used to control the search, in that the unnecessary points (nodes) that the algorithm visits are pruned. The algorithm establishes the shortest path to any node it visits for a first time to ensure that every node is visited just once. This enhances the performance of the search by minimizing the number of nodes it visits statisticsguruonline.com.
In this project, an input data file will have the following format: each line will contain information about road segments within the map of the city. The line will have five integer numbers. The first integer will either be 1 or 2, where 1 will represent the one way road and 2 will represent a two-way road. The next two integers will represent the x and y coordinates of the starting point of the road segment. The last two integers will be the x and y coordinates for the end of the road segment. This input data will facilitate to establish the road segments that will be connected to come up with the required short paths.
The A* algorithm will be implemented using the Python language. There many open-source Python IDEs making it readily available for use in the project. Python also has high productivity and speed as a result of enhanced process control, strong integration and unit testing capabilities. This makes it ideal for this project.
Testing and Evaluation of the Project
In this section, the project will be tested. The testing will enable identification of errors and bug in the project code. Testing will involve three stages; test planning, execution and issue management. Test planning will involve the analyzing of the possible risks, such as undesirable outcome, and the coming up with the possible solution. Test execution will involve the actual testing. This will take place in phases, testing one project module after the other. When the execution is over the potential risks will have been identified (if they exist). If the potential risk has occurred, then it becomes an issue. The issue has to be managed, for instance, by correcting the errors that occurred.
Evaluation involves finding out whether the project has provided a solution to the problem in question, that is, whether the project is successful. Evaluation will be carried out to ensure accountability, that is, the project has achieved what it was meant to achieve. This will ensure that the shortest paths from one point on the map of Minneapolis to other can be achieved any time when traversing through the city is needed. This evaluation will also help identify any areas of the project that may need improvement. Evaluation will be carried out by using known and predetermined inputs, executing the project code and assessing the output. If the input, after the execution of the code, will bring the expected output, then the project will be termed successful.
In this case, when the shortest path between two points on the map is achieved and can be confirmed by comparing with the known and actual short path, then the project will be successful. If it will be found to have an area that will require improvement, changes to incorporate the new feature(s) will be made in the second release of the project.
Domingos, Pedro. The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World. , 2015. Internet resource.
Mehlhorn, Kurt, and Peter Sanders. Algorithms and Data Structures: The Basic Toolbox. Berlin: Springer, 2008. Internet reaource.