Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

the solution needed in Java programming language 1. (40 pts) Implement the the DFS algorithm. Use a text file (called input.txt) that contains an adjacency

the solution needed in Java programming language

image text in transcribed

1. (40 pts) Implement the the DFS algorithm. Use a text file (called input.txt) that contains an adjacency matrix to read-in data and create a directed graph to be searched. The matrix can be of any size. Row elements in the input.tt file must be separated with commas. Example: The output of your program should provide the order of visited nodes. In addition to source and documentation, provide a text file, called REPORT.TXT, briefly describing how (i.e. data structures) and what you have implemented (i.e. what works, what doesn't). Tip: Follow the suggested DFS data structure for the algorithm. Don't improvise. 2. (60 points) Iterative Deepening was developed in the 70's and combines the positive elements of DFS and BFS. It is a simple, but a somewhat counter-intuitive idea: perform repeated depth-limited depth-first searches, using an increasing depth limit, until a solution is found. It is counter-intuitive because each repetition of a depth-limited DFS will wastefully repeat all the work done by previous repetitions. However, in typical trees (not those that are very unbalanced), most of the nodes are in the bottom level, so it does not matter much if the upper levels are visited multiple times since: number of nodes at depth k> number of nodes at depth k - 1 or less This means that Iterative Deepening simulates BFS with linear space complexity. Assuming that a problem with branching factor b and the goal node at depth k, time complexity is O(bk), and space complexity is O(bk). Overall, the disadvantage of iterative deepening search is the painfully redundant, rechecking of every node it has already checked with each new iteration. Implement Iterative Deepening. Provide the source and a separate file for the input data. Use the same input and reading-in methods as you used on the first question. Using the same text file REPORT.TXT, briefly describe how (i.e. data structures) and what you have implemented (i.e. what works, what doesn't) for this problem. 3. Extra Credit: (15 pts-you must have correctly completed the other two problems to receive credit). Attempting to improve Iterative Deepening, one could provide the mechanism to "remember" what nodes have already been seen, but this sacrifices the gained memory efficiency that made the algorithm worthwhile. In addition, upon such improvement, nodes at the maximum level for one iteration will need to be re-accessed and expanded in the following iteration. Implement this "improved" Iterative Deepening. Provide the source and a separate file for the input data. 1. (40 pts) Implement the the DFS algorithm. Use a text file (called input.txt) that contains an adjacency matrix to read-in data and create a directed graph to be searched. The matrix can be of any size. Row elements in the input.tt file must be separated with commas. Example: The output of your program should provide the order of visited nodes. In addition to source and documentation, provide a text file, called REPORT.TXT, briefly describing how (i.e. data structures) and what you have implemented (i.e. what works, what doesn't). Tip: Follow the suggested DFS data structure for the algorithm. Don't improvise. 2. (60 points) Iterative Deepening was developed in the 70's and combines the positive elements of DFS and BFS. It is a simple, but a somewhat counter-intuitive idea: perform repeated depth-limited depth-first searches, using an increasing depth limit, until a solution is found. It is counter-intuitive because each repetition of a depth-limited DFS will wastefully repeat all the work done by previous repetitions. However, in typical trees (not those that are very unbalanced), most of the nodes are in the bottom level, so it does not matter much if the upper levels are visited multiple times since: number of nodes at depth k> number of nodes at depth k - 1 or less This means that Iterative Deepening simulates BFS with linear space complexity. Assuming that a problem with branching factor b and the goal node at depth k, time complexity is O(bk), and space complexity is O(bk). Overall, the disadvantage of iterative deepening search is the painfully redundant, rechecking of every node it has already checked with each new iteration. Implement Iterative Deepening. Provide the source and a separate file for the input data. Use the same input and reading-in methods as you used on the first question. Using the same text file REPORT.TXT, briefly describe how (i.e. data structures) and what you have implemented (i.e. what works, what doesn't) for this problem. 3. Extra Credit: (15 pts-you must have correctly completed the other two problems to receive credit). Attempting to improve Iterative Deepening, one could provide the mechanism to "remember" what nodes have already been seen, but this sacrifices the gained memory efficiency that made the algorithm worthwhile. In addition, upon such improvement, nodes at the maximum level for one iteration will need to be re-accessed and expanded in the following iteration. Implement this "improved" Iterative Deepening. Provide the source and a separate file for the input data

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions