1. A data processing system for solving a traffic congestion problem, the data processing system comprising: a storage device, wherein the storage device stores computer usable program code; and a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code comprises: computer usable code for selecting, using an application executing using a processor and a memory in a data processing system, a congested route section from a set of congested route sections; computer usable code for selecting a set of congesting vehicles, wherein the set of congesting vehicles causes congestion in the selected congested route sections by being positioned on the selected congested route section; computer usable code for populating a vacancy data structure corresponding to the selected congested route section, wherein the vacancy data structure stores information about available capacities of a set of candidate route sections, a candidate route section being a route section with available capacity to accommodate a congesting vehicle from the set of congesting vehicles, wherein the information is indexed in the vacancy data structure by a distance between a candidate route section in the set of candidate route sections and the selected congested route section; computer usable code for selecting a subset of the set of the congesting vehicles; and computer usable code for rerouting the subset of the set of the congesting vehicles to a candidate route section from in the vacancy data structure.