The algorithm presented in Chapter 3 runs in polynomial time. Unfortunately, we pay for the speed of the algorithm with inefficiencies in the resulting origami array. In the applications that have been generated by this algorithm so far, routing accounts for approximately 45%of all assigned nodes, while another 45%of the nodes are left unused entirely. When we consider that in an ideal situation each node would have a physical piece of hardware associated with it, and that the latency of the system is proportional to the height of the array, we can see that this is a tremendous amount of wasted time and hardware. Luckily, there appear to be a number of general ways to improve this algorithm.