IP Library Granted Patent US 11,416,787
Granted Patent B2
US 11,416,787 · App. 16/441,512 · Granted Aug 16, 2022

Parallel processing for solution space partitions

Inventors: Thomas Glenn Bailey (Alpharetta, GA); Bruce William Colletti (Alexandria, VA); Eric Charles Wait (Ardmore, PA); Alexander Coleman King (Atlanta, GA); Bhavin Ashitkumar Gandhi (Cambridge, MA)
Assignee: Cox Automotive, Inc.
G06Q10/047G06N5/003G06Q10/083
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,416,787
App. No.
16/441,512
Granted
Aug 16, 2022
Kind
B2
Abstract

Systems, devices, methods, and computer-readable media are disclosed for utilizing group theoretic techniques to enable data exchange between a supervisory central processing unit (CPU) and a group of graphical processing units (GPUs). The CPU may be configured to utilize a tabu search metaheuristic to explore a solution space to determine an optimal solution to an optimization problem. More specifically, the CPU may determine a fragmentation of a solution space that yields multiple partitions of the solution space and may assign each partition to a respective GPU configured to calculate a computational result. The CPU may then determine a new fragmentation of the solution space based on the computational results received from the GPUs that yields new partitions of the solution space and may assign each new partition to a respective GPU configured to again generate a computational result based on its assigned new partition. The CPU may continue to determine new fragmentations based on the computational results of the GPUs until stopping criteria are satisfied and a timely, high-quality solution to the optimization problem is determined.

Claims (67)

1. A system, comprising:

a central processing unit (CPU);

a graphical processing unit (GPU) comprising a plurality of arithmetic logic units (ALUs);

at least one memory storing computer-executable instructions; and

one or more buses that operatively couple the CPU, the GPU, and the at least one memory,

wherein the CPU is configured to access the at least one memory via at least one bus of the one or more buses and execute the computer-executable instructions to:

receive one or more vehicle attributes associated with one or more vehicles available to be transported by one or more carriers;

determine a solution space for an optimization problem associated with transportation of the one or more vehicles, wherein at least a portion of the solution space is represented by a first matrix;

determine, based on Group Theoretic Tabu Search (GTTS) processing, an initial solution to the optimization problem within a first cell of the solution space and an initial fragmentation of the solution space;

fragment the initial fragmentation into a proper subgroup of the initial fragmentation, wherein the proper subgroup comprises into a plurality of cells, wherein each cell comprises a respective disjoint subset of the solution space, wherein the plurality of cells are determined using negative arcs corresponding to negative entries in a second matrix, wherein the second matrix is determined by subtracting the initial solution from one or more rows of the first matrix;

cause the GPU to launch a respective GPU thread to perform GTTS processing on a corresponding cell of the plurality of cells, wherein each respective GPU thread utilizes a corresponding ALU of the plurality of ALUs to process the corresponding cell to determine a respective solution to the optimization problem;

determine one or more optimal solution sets; and

send the one or more optimal solution sets to a user device for selection via an online marketplace over a network.

2. The system of claim 1 , wherein the CPU is further configured to execute the computer-executable instructions to:

launch a plurality of kernels on the at least one memory, wherein each kernel is associated with a corresponding respective GPU thread.

3. The system of claim 1 , wherein the plurality of cells is a first plurality of cells, and wherein the CPU is further configured to execute the computer-executable instructions to:

fragment the solution space into a second plurality of cells that is different from the first plurality of cells based at least in part on the respective solution to the optimization problem determined by each respective GPU thread.

4. The system of claim 1 , wherein the CPU is further configured to execute the computer-executable instructions to:

receive one or more carrier constraints of a carrier, wherein the carrier is configured to transport one or more vehicles;

receive one or more vehicle attributes associated with one or more vehicles available to be transported by the carrier;

determine one or more optimal solution sets based at least in part on the one or more carrier constraints and the one or more vehicle attributes based at least in part on the processing of the plurality of cells; and

provide the one or more optimal solution sets to a user device.

5. The system of claim 4 , wherein the CPU is further configured to execute the computer-executable instructions to:

receive from a user device a modification to the optimal solution, wherein modification comprises at least one of adding, deleting, accepting, trading, swapping, rejecting, and modifying at least one of the one or more vehicles comprised in the one or more optimal solution sets.

6. The system of claim 4 , wherein each of the one or more vehicles available to be transported by the carrier is associated with an optimized route segment for transporting each respective vehicle from a pick-up location to a delivery location.

7. The system of claim 4 , wherein the CPU is further configured to execute the computer-executable instructions to:

assign a selected optimal solution set to the carrier;

generate a schedule for the carrier to transport each vehicle included in the selected optimal solution set; and

provide instructions for dispatching each vehicle included in the selected optimal solution set to be transported by the carrier according to the schedule.

8. The system of claim 4 , wherein the one or more optimal solution sets are provided to a user device for selection via an online marketplace listing over a wireless network.

9. The system of claim 1 , wherein causing the GPU to launch a respective GPU thread to perform GTTS processing on a corresponding cell of the plurality of cells further comprises using a cross-cell transversal, wherein the cross-cell transversal comprises:

perform GTTS processing on a first cell of the plurality of cells;

perform GTTS processing on a second cell of the plurality of cells;

index the first cell and the second cell;

determine that a transversal value is less than a threshold value; and

store, based on the determination that the transversal value is less than the threshold value, data indicating the GTTS processing of the first cell and the second cell, wherein the data provides an indication that the first cell and second cell have been processed to prevent cycling of the first cell and second cell in subsequent GTTS processing.

10. A non-transitory computer-readable medium storing computer-executable instructions, that when executed by at least one processor, cause the at least one processor to:

receive one or more vehicle attributes associated with one or more vehicles available to be transported by one or more carriers;

determine a solution space for an optimization problem associated with transportation of the one or more vehicles, wherein at least a portion of the solution space is represented by a first matrix;

determine, based on Group Theoretic Tabu Search (GTTS) processing, an initial solution to the optimization problem within a first cell and an initial fragmentation of the solution space;

fragment the initial fragmentation into a proper subgroup of the initial fragmentation, wherein the proper subgroup comprises a plurality of cells, wherein each cell comprises a respective disjoint subset of the solution space, wherein the plurality of cells are determined using negative arcs corresponding to negative entries in a second matrix, wherein the second matrix is determined by subtracting the initial solution from one or more rows of the first matrix;

cause a GPU to launch a respective GPU thread to perform GTTS processing on a corresponding cell of the plurality of cells, wherein each respective GPU thread utilizes a corresponding arithmetic logic unit (ALU) of a plurality of ALUs of the GPU to process the corresponding cell to determine a respective solution to the optimization problem;

determine one or more optimal solution sets; and

send the one or more optimal solution sets to a user device for selection via an online marketplace over a network.

11. The non-transitory computer-readable medium of claim 10 , wherein computer-executable instructions further cause the at least one processor to:

launch a plurality of kernels, wherein each kernel is associated with a corresponding respective GPU thread.

12. The non-transitory computer-readable medium of claim 10 , wherein the plurality of cells is a first plurality of cells, and wherein computer-executable instructions further cause the at least one processor to:

fragment the solution space into a second plurality of cells that is different from the first plurality of cells based at least in part on the respective solution to the optimization problem determined by each respective GPU thread.

13. The non-transitory computer-readable medium of claim 10 , wherein computer-executable instructions further cause the at least one processor to:

receive one or more carrier constraints of a carrier, wherein the carrier is configured to transport one or more vehicles;

determine one or more optimal solution sets based at least in part on the one or more carrier constraints and the one or more vehicle attributes based at least in part on the processing of the plurality of cells; and

provide the one or more optimal solution sets to a user device.

14. The non-transitory computer-readable medium of claim 13 , wherein computer-executable instructions further cause the at least one processor to:

receive from a user device a modification to the optimal solution, wherein modification comprises at least one of adding, deleting, accepting, trading, swapping, rejecting, and modifying at least one of the one or more vehicles comprised in the one or more optimal solution sets.

15. The non-transitory computer-readable medium of claim 13 , wherein each of the one or more vehicles available to be transported by the carrier is associated with an optimized route segment for transporting each respective vehicle from a pick-up location to a delivery location.

16. The non-transitory computer-readable medium of claim 13 , wherein computer-executable instructions further cause the at least one processor to:

assign a selected optimal solution set to the carrier;

generate a schedule for the carrier to transport each vehicle included in the selected optimal solution set; and

provide instructions for dispatching each vehicle included in the selected optimal solution set to be transported by the carrier according to the schedule.

17. A method comprising:

receiving one or more vehicle attributes associated with one or more vehicles available to be transported by one or more carriers;

determining a solution space for an optimization problem associated with transportation of the one or more vehicles, wherein at least a portion of the solution space is represented by a first matrix;

determining, based on Group Theoretic Tabu Search (GTTS) processing, an initial solution to the optimization problem within a first cell and an initial fragmentation of the solution space;

fragmenting the initial fragmentation into a proper subgroup of the initial fragmentation, wherein the proper subgroup comprises a plurality of cells, wherein each cell comprises a respective disjoint subset of the solution space, wherein the plurality of cells are determined using negative arcs corresponding to negative entries in a second matrix, wherein the second matrix is determined by subtracting the initial solution from one or more rows of the first matrix;

causing a GPU to launch a respective GPU thread to perform GTTS processing on a corresponding cell of the plurality of cells, wherein each respective GPU thread utilizes a corresponding arithmetic logic unit (ALU) of a plurality of ALUs of the GPU to process the corresponding cell to determine a respective solution to the optimization problem;

determining one or more optimal solution sets; and

sending the one or more optimal solution sets to a user device for selection via an online marketplace over a network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2022
From: BAILEY, THOMAS GLENN; COLLETTI, BRUCE WILLIAM; WAIT, ERIC CHARLES; KING, ALEXANDER COLEMAN; GANDHI, BHAVIN ASHITKUMAR
To: COX AUTOMOTIVE, INC.
Reel/Frame 060182/0435 →