Shortest Possible Path A. Suppose that a computer engineer is designing a computer chip and wants to determine how efficient a finite set of node will be. Consider this computer chip to be represented as a simple x,y plane. Suppose that the engineer can add a finite number of nodes onto this plane. B. For simplicity, as an example, let’s say that the engineer wants to add a total of 4 nodes (minimum must be one node, not including the root node). B1. These nodes will be labeled S0(_,_), S1(_,_), S2(_,_), and S3(_,_). B2. Root’s coordinates are ALWAYS at (0,0) and can lie on any edge of the square. In other words, root will ALWAYS be the origin point at (0,0). The (_,_) represents an arbitrary point that will be defined by the user. C. See figure(A) for ONE possible way for the points to be placed. In this example, assume S0, S1, S2, and S3 are equally spaced apart. C1. In this case, the program should pick a point and find the midpoint of the nearest point. The midpoint between S0 and S1 has been marked. Label it “A.” C2. Then, it can look at S2 and S3 and determine the midpoint. It has been marked as “B.” C3. The program will then look at midpoints A and B and will find the midpoint between them called, “C.” This problem is very reminiscent of a binary tree. C4. The program has now created a path for root to each point. If we examine, further, we see that the path lengths from root S0, root S1, root S2, and root S3 are all equal to 4mm, which is the goal of the assignment. FIGURE A GOAL OF THE ASSIGNMENT: More explicitly, the goal of this assignment is to find the shortest path from root to any point and all path lengths must be equivalent. FIGURE A is an excellent example of this. If we examine figure A we see that the path length from root to S0 is 4, root to S1 is 4, root to S2 is 4, and root to S3 is 4. This is what I want. I need to find the shortest path and path lengths are all equal. PROBLEM: You might tell yourself, “this problem is simple. You just need to pick the path furthest from the root and make that your shortest path and map it on the rest of the points.” The following thinking will lead to the following diagram: While the above diagram is not wrong, the wire length from root to S1 can be shortened. I will explain the relevance behind this in terms of computer hardware in my presentation. DISCLAIMER: The midpoint technique might not always work to find the best path and the problem gets harder with odd number of non-root points. My goal for the assignment is to come up with an algorithm that will work for odd number of nonroot points. The above example works only for 2^n points. Time Budget: I have spent 20+ hours, thus far. I estimate that it will take me around 10 more hours to finish the coding AND the presentation slides. I require 10 more days to finish this assignment. TEAM: Abhishek Gupta Timeline: I have figured out an algorithm that can give me the shortest possible path given a finite set of placed nodes on a chip. This has taken me around 15 hours to complete (not including the time it took to plan out what I would do). I estimate to spend 10 more hours to come up with a revised algorithm that will help me come up and implement an algorithm that will come up with the shortest possible path using the midpoint method for 2^n non root points and odd number of points. I estimate that I will need no more than 5 minutes to present my project. RISKS: A risk I feel that I could come across is having extreme difficulty in figuring out a way to implement odd number of non-root points into my program. Also, once I find a way, how can I prove that this method is the best possible method? In other words, while I will finish my project, I risk not being able to achieve maximum efficiency and failure to prove why it is most efficient. MUST HAVE AND NICE TO HAVE: My must-have feature is that it must return the shortest possible path where the path length from root the any point on the graph is the same. My nice-to-have feature is that I want the path lengths to be as short as possible, but I want to limit long wires. My central point/midpoint method will handle that, as will the algorithm I come up with for odd number of non-root points.