Answered You can hire a professional tutor to get the answer.
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...
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.txt file must be separated with commas. Example: 1,0,1,0,1,1 0,0,1,1,0,1 : 0,0,1,1,0,1 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 3 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