Spatial Partitioning Algorithms For Solving Location-Allocation Problems