Clique partitions, graph compression and speeding-up algorithms
Journal of Computer and System Sciences
A scheduling model for reduced CPU energy
FOCS '95 Proceedings of the 36th Annual Symposium on Foundations of Computer Science
A n5/2 algorithm for maximum matchings in bipartite
SWAT '71 Proceedings of the 12th Annual Symposium on Switching and Automata Theory (swat 1971)
Perfect matchings in o(n log n) time in regular bipartite graphs
Proceedings of the forty-second ACM symposium on Theory of computing
An efficient algorithm for computing optimal discrete voltage schedules
MFCS'05 Proceedings of the 30th international conference on Mathematical Foundations of Computer Science
Hi-index | 0.00 |
We study the following load balancing problem on paths (PB). There is a path containing n vertices. Every vertex i has an initial load hi, and every edge (j, j + 1) has an initial load wj that it needs to distribute among the two vertices that are its endpoints. The goal is to distribute the load of the edges over the vertices in a way that will make the loads of the vertices as balanced as possible (formally, minimizing the sum of squares of loads of the vertices). This problem can be solved in polynomial time, e.g, by dynamic programming. We present an algorithm that solves this problem in time O(n log n). As a mental aide in the design of our algorithm, we first design a hydraulic apparatus composed of bins (representing vertices), tubes (representing edges) that are connected between bins, cylinders within the tubes that constrain the flow of water, and valves that can close the connections between bins and tubes. Water may be poured into the various bins, to levels that correspond to the initial loads in the input to the PB problem. When all valves are opened, the water flows between bins (to the extent that is feasible due to the cylinders) and stabilizes at levels that are the correct output to the respective PB problem. Our algorithm is based on a fast simulation of the behavior of this hydraulic apparatus, when valves are opened one by one.